A short while ago, I saw a blog post from someone about modernizing their shell. Unfortunately, I lost the blog post, but there was some really good stuff in there. Just mentioning this in case someone knows what I’m talking about.
One tweak I remember they mentioned was about fixing programs that have broken formatting. It prevents scenarios like
user@hostname:~$ echo "hi"
hiuser@hostname:-~$
where the output and shell prompt get placed on the same line. I noticed this happens with bash with C programs that don’t include a \n in the final printf statement.
Here’s my .zshrc:
https://gitlab.com/theshatterstone/dotfiles/-/blob/main/.zshrc
and ~/.config/zsh:
https://gitlab.com/theshatterstone/dotfiles/-/tree/main/.config/zsh
This config uses Starship for a prompt (https://starship.rs/), Homebrew as an extra package manager, and my own custom fetch script at:
https://gitlab.com/theshatterstone/fetch
A lot of it was taken from Luke Smith’s zsh config. Say what you will about him, he’s got a good zsh config. Link: https://www.youtube.com/watch?v=eLEo4OQ-cuQ
That is a rabbit hole. There are as many tools as sand on the beach.
One of the tools you are looking for is probably starship.
But you can make it as easy as customiying PS1 with e.g. https://bash-prompt-generator.org/
rabbit holes can be fun sometimes and the ones for shell feels like techy masturbation to me. lol
Get a term app that does all the things for you, install ohmyzsh or fish or something, then learn that thing.
There is no universal or worthwhile catchall for any of this because it’s so subjective. Find what works for you, and get good at it.
Seconding fish shell. Very nice experience and the only real downside (or upside depending on perspective) is the non-POSIX syntax for some things.
set -o vi
Either nushell or fish shell if you want a modern shell.
But honestly shell usage tends towards vim or emacs workflows.