Starship

If you spend time in the terminal then you'll want it to look somewhat pleasing to the eye. I used to ssh into servers with no customization, use vi to edit a file or two, then get back to my regularly scheduled programming in VS C**e...

One of the first steps for me loving my terminal was a beautiful prompt...

Prompt

The default sh/bash/zsh prompts are... to put it lightly... garbage... I can't speak for other shells like fish simply because I do not use them but let me justify my trash talk.

Here's the default sh prompt...

Alt Text

Then switching to zsh you get something marginally better (plus tab completion!)

Alt Text

But this still is super gross... there's nothing to indicate file types and no status information readily available (ie. git status etc.)

Oh-My-Zsh!

Now there are several ways to make your prmompt nicer depending on your shell (terminal emulator plays a role too). Now I use zsh and there's a great tool out there oh-my-zsh that brings a crazy amount of customization to the terminal experience.

I do not use oh-my-zsh for theming though and that's simply because of my other choices - I use kitty themes since I understood the implementation better. Kitty themes though - do not give me a nice prompt.

The default prompt you get with oh-my-zsh themes isn't bad though (and you can pick from several default themes)...

Alt Text

Notice that you get some nice coloring and some default git status stuff, mainly the branch you are on. There's plugins to show you more and that's all well and good, but again it's not my choice...

If I don't use this then what's my goto?

Starship

starship is a cross-shell prompt with nice default and super easy customizaton!

To get started click that link and follow the "Getting Started" button - it's incredibly fast to get up and running with sane defaults.

The default starship config is plenty nice but I got a little tired of emojis in my prompt and wanted to switch to icons instead...

To get started with your own customizaton you add a starship.toml file to ~/.config My starship config is found here.

Note you need a font installed patched with nerdfonts - I use JetBrains Mono

Now I have a beautiful prompt with relevant information that's a dream to look at!

Alt Text

I have configured my starship to show me relevant git status options (stashes, untracked files, etc etc.) I also have starship show me if I'm in a git repo, what branch I'm on, if I'm in a python project and if so what virtual environment is active. I do some work in AWS at work and so I have starship show me if my aws cli is configured to the right region for whichever project I'm in!

There's a billion more options and after a few minutes of play it becomes really easy and intuitive to customize colors, icons, etc.