Table of contents
Open Table of contents
A New Discovery
If you’ve been following my blog, you might remember my previous setup for the terminal, where I explained how to use Zim and Starship to get a pretty and functional prompt. That setup served me well for a long time, but I recently discovered Oh My Posh and it has completely changed how I think about my terminal configuration.
What I love about Oh My Posh is how easy it is to set up, especially when it comes to installing fonts and themes. It feels much simpler and more integrated than my previous setup, and honestly, it’s more than enough for what I need.
Why Oh My Posh?
The main reason for the switch is simplicity. With Starship and Zim, I had to manage several different tools and configurations. Oh My Posh handles the prompt, themes, and even font installation in a very straightforward way.
- Easy Themes: Choosing and switching between themes is super simple, just download and change the configuration file.
- Font Management: It has a built-in command to install Nerd Fonts directly from the terminal (I absolutely love this feature!).
- Cross-Platform: It works exactly the same on Linux (WSL) and Windows (PowerShell).
Installation Guide
Here is how you can set it up for your environment:
Linux / WSL
-
Install Oh My Posh: Open your terminal and run the following command:
curl -s https://ohmyposh.dev/install.sh | bash -s -
Configure your shell and theme: Add the following line to your
~/.zshrc(or~/.bashrcif you use Bash). My personal choice for Ubuntu Linux is the gruvbox theme:eval "$(oh-my-posh init zsh --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/gruvbox.omp.json)"Note: You can also download the theme file locally and point to it with a local path. It will cache it anyway.
-
Install a Nerd Font: This is my favorite part. Just run:
oh-my-posh font installAnd select your favorite font (I still recommend Fira Code!).
Windows (PowerShell)
-
Install Oh My Posh: Using Winget, run:
winget install JanDeDobbeleer.OhMyPosh -s winget -
Configure PowerShell and theme: Open your PowerShell profile with
notepad $PROFILEand add this line. For Windows, I really like the powerlevel10k_rainbow theme:oh-my-posh init pwsh --config https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/powerlevel10k_rainbow.omp.json | Invoke-Expression -
Install a Nerd Font: Just like in Linux, run:
oh-my-posh font install -
Hide the welcome message (Optional): If you want to hide the “Windows PowerShell” welcome message, you need to launch PowerShell with the
-NoLogoflag. If you use Windows Terminal, go to Settings > PowerShell profile and change the Command line to:powershell.exe -NoLogo
Look and Feel
Here is a glimpse of how my terminal looks now with these themes:
WSL (Ubuntu)

Windows Terminal (PowerShell)

A Final Reminder for WSL Users
If you are using WSL within the Windows Terminal, remember that installing the font in WSL isn’t enough for the icons to show up correctly in your terminal window.
Don’t forget to:
- Install the font on Windows as well (Oh My Posh’s
font installusually handles this if run as Admin). - Go to Windows Terminal Settings.
- Select your WSL profile.
- Under Appearance, change the Font face to the Nerd Font you just installed (e.g., FiraCode Nerd Font).
- (Optional) Change the Background image or color scheme to match your new Oh My Posh theme, I personally like the Dark+ theme!
Happy coding with your new, shiny terminal! ✨