My Setup

Ever looked at the fancy terminals in the various Youtube tutorials or other websites and wondered "What if I had my own customized setup?..." Well have a look at my own setup.

Starship : The cross-shell minimal, blazing-fast, and infinitely customizable prompt

Here we are using Starship even though there are other available options to customize the setup (including those of using zsh for a more immersive experience) as it is quite minimal and runs super fast as well as it is easy (and light) on the cpu. The setup can be mirrored on any vanilla shell. In my case, I am using Ubuntu 20.04 with a Bash Shell.

Follow the below steps :

Step 1 : Install the Firacode font

sudo apt install fonts-firacode

Step 2 : Install Starship using Curl (if you don't have Curl, you will need to install it first)

curl -fsSL https://starship.rs/install.sh | bash

Step 3 : Add startship to bash (open the .bashrc and add the following line to its end)

nano .bashrc
eval "$(starship init bash)"

Step 4: Configuring Starship

mkdir -p ~/.config && touch ~/.config/starship.toml
This creates a starship.toml file in the .config folder. This can be edited to configure the starship as per your needs.

Below is the starship.toml file that I use for my personalized configuration. You can make your own customizations on top of mine or create your own.
Its fast and snappy and also looks prettier than the pre-configured vanilla terminal that comes with Ubuntu20.04.

# Configuration file for the Starship prompt
# See: https://starship.rs/config/

# Don't print a new line at the start of the prompt
add_newline = false

# Wait 10 milliseconds for starship to check files under the current directory.
scan_timeout = 10


[directory]
truncation_length = 3
truncation_symbol = "…"

[aws]
disabled = true

# Configure battery symbols
[battery]
full_symbol = "🔋"
charging_symbol = "⚡️"
discharging_symbol = "💀"

#shows when battery below threshold
# "bold red" style when capacity is between 0% and 10%
[[battery.display]]
threshold = 10
style = "bold red"
# "bold yellow" style when capacity is between 10% and 30%
[[battery.display]]
threshold = 30
style = "bold yellow"

#to display the hostname before the character line
[hostname]
ssh_only = false
style = "italic blue"
format = "[$hostname]($style) in "
disabled = false

#the character at the start of line where command is entered
[character]
use_symbol_for_status = true
error_symbol = "[✗](bold red)"
vicmd_symbol = "[V](bold green)"


[git_branch]
symbol = "🌿 "

[git_commit]
disabled = false

[git_status]
conflicted = "⚔️ "
ahead = "🏎️💨 ×${count}"
behind = "🐢 ×${count}"
diverged = "🔱 🏎️ 💨 ×${ahead_count} 🐢 ×${behind_count}"
untracked = "🛤️  ×${count}"
modified = "📝 ×${count}"
staged = "🗃️  ×${count}"
renamed = "📛 ×${count}"
deleted = "🗑️  ×${count}"

[python]
pyenv_version_name = false

[conda]
symbol = "🅒🐍 "


[memory_usage]
format = "$symbol[${ram}( | ${swap})]($style) "
symbol = "🌒️"
show_percentage = true
show_swap = true
threshold = 60
style = "bold dimmed white"
disabled = false

#The status module displays the exit code of the previous command. 
#The module will be shown only if the exit code is not 0
[status]
disabled = false
                

After the above steps you will have setup your terminal that looks similar to the one shown at the top(obviously not the same).