Introduction
Do you want to make your Linux terminal look modern, cool, professional, and beautiful? This guide will show how to customize your Linux terminal using:
- Fish shell
- oh-my-posh
- Nerd Fonts
- neofetch
It's perfect for both beginners and advanced Linux users! ๐ง
If you prefer watching instead of reading, watch the full video guide on YouTube:
- Linux Terminal Tutorial
- Linux Mint Terminal Tutorial (If you use Linux Mint)
Step 1 - Installing the Fish Shell
Open the preferred terminal, then run:
sudo apt-get install fish
Enter your password and press Y when prompted.
After that, type fish to verify the shell works.
Step 2 - Installing Oh-my-posh
Oh-my-posh lets you customize your shell with beautiful prompt themes.
Method 1
-
Go to the Official GitHub repo of oh-my-posh: https://github.com/JanDeDobbeleer/oh-my-posh
-
Open the Releases section and download the correct executable:
posh-linux-amd64- for x64 systemsposh-linux-arm- for ARMposh-linux-arm64- for ARM64
-
Download themes.zip as well.
If you're unsure about your CPU architecture, run uname -m, and then download the correct executable
Extracting themes
Once themes.zip has finished downloading, create the folder:
mkdir -p ~/.poshthemes # or mkdir -p /home/<username>/.poshthemesThen run the following command:
unzip ~/Downloads/themes.zip -d ~/.poshthemesThis extracts all .omp.json theme files.
Using the unzip command saves time compared to extracting through the file manager.
Installing the binary
After that, rename the executable to oh-my-posh and choose where to place it.
- Install to
~/.local/bin(Recommended)cp ~/Downloads/oh-my-posh ~/.local/bin chmod +x ~/.local/bin/oh-my-posh - Install to
/usr/bin(system-wide)sudo cp ~/Downloads/oh-my-posh /usr/bin sudo chmod +x /usr/bin/oh-my-posh
Make sure to type oh-my-posh and hit Enter to verify the installation.
Method 2
To install oh-my-posh quickly, run the following command:
curl -s https://ohmyposh.dev/install.sh | bash -sAnd themes will be installed in the ~/.cache/oh-my-posh/themes folder.
It will install to ~/bin, ~/.local/bin, or the existing oh-my-posh executable folder depending on which one exists.
If your terminal can't find the oh-my-posh command after installation, make sure ~/bin or ~/.local/bin is in your PATH.
Step 3 - Changing the Terminal Font
Go to the official Nerd Fonts download page: https://www.nerdfonts.com/font-downloads
Choose a font such as Fira Code Nerd Font, and download the chosen font.
Extract these fonts into the folder and update the font references by running the following command:
unzip ~/Downloads/<font-name>.zip -d ~/.local/share/fonts
sudo fc-cache -f -vChanging font settings
- KDE Plasma โ System Settings โ Appearance โ Fonts โ Fixed Width
- Linux Mint โ System Settings โ Fonts โ Monospace Choose your installed nerd font.
Step 4 - Profile Configuration
Open the ~/.config/fish/config.fish file with the text editor, and add this above the if statement:
oh-my-posh init fish -c ~/.poshthemes/<theme>.omp.json | sourceIf you installed via the second method:
oh-my-posh init fish -c ~/.cache/oh-my-posh/themes/<theme>.omp.json | source
<theme>- Any oh-my-posh theme (example: atomic)
KDE Plasma
- Open Terminal settings โ Manage Profiles
- Create a new profile
- Set the command to
/bin/fish(or/usr/bin/fish) - Check Default Profile โ Apply โ OK
Linux Mint
- Right-click on Terminal โ Preferences
- Create a profile
- Go to the Command section
- Enable the "Run a custom command instead of my shell" option
- Enter
fishas a custom command. - Open the dropdown menu and select "Set as default".
Step 5 - Changing the color scheme
Color schemes improve your terminal appearance.
KDE Plasma
- Terminal โ Manage Profiles
- Select your profile โ Edit
- Appearance โ Choose a color scheme
- Or click "Get New", search e.g., Dracula, install the color scheme, and choose it Apply โ OK
Linux Mint
Right-click on the terminal โ Preferences โ Colors โ Select a scheme
Make sure to edit the correct profile.
(Recommended: the GNOME color scheme.) Once finished, click on the Close button
Adding neofetch
Run the following command to install neofetch:
sudo apt-get install neofetch
Then open the preferred file explorer, open the ~/.config/fish/config.fish file with the text editor, and add neofetch above the oh-my-posh command.
Update (12-12-2025): Make sure to use fastfetch since Neofetch is no longer maintained.
Root Terminal Customization
While the user terminal customization is complete, we're customizing the root terminal now. Run the following command to enter the root terminal:
sudo su
# Requires entering the password if promptedExtract themes.zip again into the newly created folder:
unzip /home/<username>/Downloads/themes.zip -d ~/.poshthemesEdit the config.fish with nano:
nano ~/.config/config.fishAdd the oh-my-posh command above the if statement:
oh-my-posh init fish -c ~/.poshthemes/<theme>.omp.json | sourceIf you installed via the second method:
oh-my-posh init fish -c /home/<username>/.cache/oh-my-posh/themes/<theme>.omp.json | sourceAfter that, save the file by pressing
Ctrl+SAnd close Nano by pressing
Ctrl+XChange root shell:
chsh -s /bin/fishAnd restart the root terminal:
exit
sudo suThe root terminal is successfully customized!
Bash Shell Customization
If you're still using the Bash terminal and you don't want to change the shell to fish, this section will help you apply Oh My Posh to the Bash shell.
Open the terminal, and run the following command:
sudo nano ~/.bashrcThis opens the .bashrc file with nano. Then scroll all the way down and add the following bash command:
neofetch # If you want to add neofetch
eval "$(oh-my-posh init bash -c ~/.poshthemes/<theme>.omp.json)"If you installed via the second method:
neofetch # If you want to add neofetch
eval "$(oh-my-posh init bash -c ~/.cache/oh-my-posh/themes/<theme>.omp.json)"Save the file by pressing
Ctrl+SAnd close Nano by pressing
Ctrl+XUse the following command to apply the changes:
source ~/.bashrcUse
eval "$(oh-my-posh init bash -c /home/<username>/.cache/oh-my-posh/themes/<theme>.omp.json)"
If you used the second method and you want to change the bash shell of the root terminal (.bashrc inside the root terminal)
Conclusion
And that's it! Your Linux terminal is now fully modern, clean, and stylish. From installing fish to using oh-my-posh and Nerd Fonts, you now have a powerful terminal setup that looks way better than the default design.
Whether you're a developer, a student, or someone exploring Linux for the first time, having a clean and beautiful terminal can make your daily tasks more enjoyable. You can always experiment with different color schemes, fonts, and themes until you find the perfect style for your system.
Thanks for reading the guide! If you want more tutorials like this, check out my YouTube channel!
GitHub @ArsenTech ย ยทย YouTube @ArsenTech ย ยทย Patreon ArsenTech ย ยทย ArsenTech's Website