9 stable releases
3.2.0 | Dec 29, 2023 |
---|---|
3.1.0 | Aug 22, 2023 |
3.0.1 | Jul 20, 2023 |
3.0.0 | Jun 28, 2023 |
1.0.1 | Mar 4, 2023 |
#54 in Visualization
26KB
559 lines
charasay 🐮
🐈 The future of cowsay 🐮! Colorful characters saying something 🗨️.
Re-engineered cowsay in rust 🦀. Display colorful ANSI arts saying something in your terminal 💻.
Motivation
I use terminal emulator almost every day. I stare at it so much. I need some
entertainment in terminal, so I found ponysay
which is beautiful
and giving my terminal some colors. But ponysay
kind of bloated for me since
I don't display all those ponies.
So, I want to make my own minimal tool to make my terminal so colorful and
display the character that I like. This chance is a great time to learn rust
.
This project is mainly for me to learn rust and hopefully I get some feedback
while this make us all happy 😁.
Installation
AUR
For Arch Linux, package available via AUR. Example install this with AUR helper:
yay -S charasay
or
yay -S charasay-bin
Cargo
If you have rustup
or cargo
, this tool available on crates.io. Install this with:
cargo install charasay
Manual
Just donwload from the release page
for your compatible Operating System, then extract the zip archive, give permission
to execute on extracted file, then place it on your PATH
.
Alternatively, clone this repository, then build this with cargo build --release
.
Prerequisites
To display characters, your terminal needs to support true color (24-bit color). Unicode fonts are needed to render the border of speech bubble.
Usage
Display Default Character to Say Something
Run chara say something that motivating.
It would display colorful cow saying
something that motivating.
.
If message is empty, it would accept from standard input, piping would works:
fortune | chara say
.
Display Different Character
Run chara say -f ferris "Hello rustaceans!"
.
It could display external .chara
files: chara say -f ~/path/test.chara "Nice"
.
Note:
.chara
files could be generated from PNG file.I want to implement this builtin in this tool. For now, you could generate
.cow
file with Cowsay file converter then rename.cow
into.chara
.
Shell Completions
Shell completions also available with chara completions
which would print out
completions script to standard output. Please consult to your shell documentation
on how to add completions.
Consult to Help Command
For updated usage please consult to help command.
$ chara --help
The future of cowsay 🐮! Colorful characters saying something 🗨️.
Usage: chara <COMMAND>
Commands:
say Make the character say something
completions Generate completions for shell. Default to current shell
convert TODO: Convert pixel-arts PNG to chara files
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
-V, --version Print version
$ chara help say
Make the character say something
Usage: chara say [OPTIONS] [MESSAGE]...
Arguments:
[MESSAGE]... Messages that chara want to say/think. If empty, read from STDIN
Options:
-r, --random Choose random chara
-a, --all Print all available chara
-t, --think Make chara only thinking about it, not saying it
-w, --width <WIDTH> Max width of speech bubble. Default to terminal width
-f, --file <CHARA> Which chara should say/think
-h, --help Print help
Hacking to the Gate~! 🧑💻🎶
MIT License © Latif Sulistyo
Acknowledgements
- All pixel-art artist on each chara files
- @charc0al for cowsay file converter
- Rustaceans 🦀
Dependencies
~9–19MB
~257K SLoC