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:
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 or Ubuntu)
- Arch Linux Terminal Tutorial (If you use Arch Linux)
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 command1:
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.
Fixing the Command Not Found error
When you type oh-my-posh but it says Command Not Found, do one of these methods:
- Method 1: Give them an executable permission:
sudo chmod +x ~/.local/bin/oh-my-posh # Alternative: sudo chmod 777 ~/.local/bin/oh-my-posh - Method 2: Add them into the
$PATHenvironment variable- Open Nano Text Editor:
sudo nano ~/.bashrc - Add
export PATH="$PATH:/home/<username>/local/bin"into the end of the file - Save by using Ctrl+S, exit by using Ctrl+X
- Refresh the terminal:
source ~/.bashrc
- Open Nano Text Editor:
- Method 3 (Recommended): Add them into
fish_user_pathsfish_add_path ~/.local/bin/
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
- GNOME โ GNOME Tweaks โ Fonts โ Monospace Text
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 and GNOME Terminal
- 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".
- Close the Preferences Window
Arch Terminal
Use the following command to change the Arch Console shell:
chsh -s /usr/bin/fish
# Alternative:
chsh -s $(which fish)The sudo chsh -s /usr/bin/fish or sudo chsh -s $(which fish) on the user terminal changes the root shell
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 and GNOME Terminal
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 fastfetch
Run the following command to install fastfetch:
sudo apt-get install fastfetch
Then open the preferred file explorer, open the ~/.config/fish/config.fish file with the text editor, and add fastfetch above the oh-my-posh command.
Update (2026-01-30): Make sure to use fastfetch instead of neofetch since Neofetch is no longer maintained and it becomes deprecated.
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/fish/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/fish
# Alternative:
chsh -s $(which fish)And restart the root terminal:
exit
sudo suThe root terminal is successfully customized!
If it brings Unknown command: oh-my-posh on the root fish terminal also, use this command:
fish_add_path /home/<username>/.local/binBash 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:
fastfetch # If you want to add fastfetch
eval "$(oh-my-posh init bash -c ~/.poshthemes/<theme>.omp.json)"If you installed via the second method:
fastfetch # If you want to add fastfetch
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