My Configs for a Fancy-Looking Terminal (starship, exa, fonts)
My starship and exa configs for a fancy command prompt in bash and pwsh (PowerShell). How to make it work with Windows Terminal having nerd fonts and a nice background.

My terminal environments are usually customized as follows:
- starship for a nice command-line prompt,
- exa for nice directory listing instead of original
ls
, - nerdfonts for beautiful glyphs in the terminal application,
- Windows Terminal, as a terminal application for setting up all the beauty.
bash
is the main shell I usually work in.
It is worth mentioning that I use Windows Terminal as a terminal application for simultaneous access to different terminal environments and shells in different tabs, mainly two ones:
- Ubuntu in Windows Subsystem for Linux (WSL2) with
bash
shell. - Windows environment enabled with
pwsh
(PowerShell).
Windows Terminal allows rendering custom fonts and backgrounds and also supports working with WSL2 and PowerShell simultaneously in different tabs. Meanwhile, customization of the command prompt happens inside of the shell configurations.
🚀 Starship
Starship is used for a nice command prompt.
How to Install
sudo apt install gcc cmake
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
cargo install starship
eval "$(starship init bash)"
Add the next line into .bashrc
:
eval "$(starship init bash)"
Don't forget to apply.
source .bashrc
How the command prompt finally looks:

git
repository instead of a long local path (you have to cd
into the Git repo directory): cocoon
Git repo, main
branch, rust
v1.67.0, Ubuntu
, bash
👮♂️ Additionally, set up starship
for the root user.
Change a user to be a root
.
sudo su
vi ~/.bashrc
Add the following line into /root/.bashrc
(it's literally ~/.bashrc for the root... and don't forget to change the <user>
).
eval "$(/home/<user>/.cargo/bin/starship init bash)"
Run the command above in the command line or apply the config:
source .bashrc
How it finally looks for the root:

🌎 You can install starship
on the remote node, then after logging in with ssh
you can see something like this:

starship
on different hosts helps to distinguish a remote and a local hosts🔧 Starship bash
config
cat ~/.config/starship.toml
[shlvl]
disabled = false
threshold = 1
symbol = "↕️ "
[shell]
disabled = false
bash_indicator = ""
[os]
disabled = false
format = "$symbol "
symbols.Ubuntu = ""
shlvl
config makes it show the number of a shell level, e.g. it shows "↕️ 1" when running undermc
(Midnight Commander).shell
module helps identify a shell that is currently in use (bash
,fish
,pwsh
).os
module shows the operating system.
The last 2 options are needed because I can open another tab with PowerShell, and, with properly configured Starship there, it allows me to quickly recognize shells between each other.
🔧 Starship PowerShell pwsh
config
cat ~\.config\starship.toml
[shell]
disabled = false
powershell_indicator = ""
cmd_indicator = ""
[os]
disabled = false
format = "$symbol "
symbols.Windows = ""
How It Looks in the Tabs

Tab #1 can be a WSL2 Ubuntu/Linux bash
terminal:

, bash
, shell level 1 under mc
, path ~/.config
Tab #2 can be a PowerShell pwsh
terminal:

, PowerShell
, path ~\.config
🦀 =exa=

exa
is a modern replacement for ls
written in Rust.
How to install:
sudo apt install exa
Modify ~/.bashrc
config. If the ls
alias is already defined there, then substitute it with the following line:
alias ls='exa --icons -F -H --group-directories-first --git -1'
--icons
shows the icons (I want a fancy look!)-F
type indicators-H
hard links--group-directories-first
list directories before other files--git
list each file's Git status-1
show a table listing, 1 entry by line
And ll
is usually already defined like this:
alias ll='ls -alF'
📺 Windows Terminal
Finally, a proper setup of the Windows Terminal is needed to fully enable starship
and exa
showing fancy fonts (e.g. "nerd" glyphs
,
) on a custom background (💡) with support of different terminal environments (e.g. bash
, pwsh
).
-
Install the Windows Terminal from the Microsoft Store: https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701
-
Install Nerd Fonts. Download a "FiraCode Nerd Font": https://github.com/ryanoasis/nerd-fonts/releases/download/v2.3.3/FiraCode.zip
Find the
Fira Code Retina Nerd Font Complete Mono Windows Compatible.ttf
inside of the archive and install it (double click).💡 You can find more nerd fonts at nerdfonts.com.
-
Set the Campbell color theme and FiraCode NFR Retina font, installed in the previous step:
-
Download my bulbs background:
And set it in the Windows Terminal:
Voila!
My final setup is shown in the initial screenshot at the beginning of the article:
