Here are 3 nice visual changing terminal tools written in Rust that I have integrated into my workflow. Coding requires spending most of your time looking at your screen, it should at least look visually pleasing. All of the packages mentioned here are compatible Linux, WSL, and Mac. They are very easy to implement, as they pretty much work out of the box after installation. The only configuring you would want to do is in your
~/.bashrc (or whichever shell’s
rc you use), as 2 of these packages will replace some of your main commands.
This is a neat tool that changes your prompt on all common shells. It is very customizable with a toml file (
~/.config/starship/starship.toml ), and has hot reload functionality on the config file as well. The main useful features I’ve noticed so far is that it can display prompt command’s runtime, language environment, git branch, and also git status. Check out installation here. You can also check my dotfiles on my github to see some of the customization I do to my starship prompt.
Note: My dotfiles will change over time, feel free to watch or star it for updates.
less replacement. This tool will do both
less , depending on the current size of your terminal. So if the file to display requires you to scroll,
less the file. Visa-versa,
cat a file if it can be displayed within the terminal height. It also can syntax color the text in terminal as well, which makes reading files a lot easier if it is code or a config file. Github link here.
Below is my alias for replacing
cat. I manually enter the style since it has line numbers by default, and that interferes with copy and pasting the output from my terminal.
alias cat='bat --style=header,grid'
tree replacement. This tool makes customizing the
ls output a lot easier, which lets you remove parts of the output with a simple command flag. It also color codes the permissions, which makes it a little bit easier to read. By default,
exa will also show a file’s size in k, M, and G instead of only k. Github link here.
Below are my aliases for replacing
-F flag adds a slash at the end of directories.
alias ll="exa -Fl"
alias lll="exa -Fla"
alias l="exa -F"
alias tree="exa --tree -F"