Skip to content

Rishab's blog

Beautify your Terminal-WSL2

Linux1 min read

I used Ubuntu as a VM for the front-end development. But recently I have been testing Windows Subsystem of Linux (WSL 2) and so far its good. No need to run VM anymore! (Since I only care about the command line functionality). Also, I have been trying out the oh-my-zsh and I gotta say that it is amazing!

Here is a guide on how to get started with WSL by @jeremycmorgan.

So my terminal looks like this right now: Alt Text

And here is the guide for the same. (Assuming that you have WSL enabled, Ubuntu and Windows Terminal App installed, if not, you can follow this guide)

Install oh-my-zsh:

Make sure zsh is installed:

1apt install zsh

Install ohmyzsh

1sh -c "$(curl -fsSL [<>](<>))"

Install and configure Powerline fonts

To install the Powerline fonts:

  1. Open a Powershell session as administrator.

  2. Download and expand the Powerline fonts repository:

    powershell -command "& { iwr [<>](<>) -OutFile ~\\ }" Expand-Archive -Path ~\\ -DestinationPath ~

  3. Update the execution policy to allow the installation of the fonts:

    Set-ExecutionPolicy Bypass

  4. Run the installation script:


  5. Revert the execution policy back the default value:

    Set-ExecutionPolicy Default

Edit the settings for WSL:

To configure the fonts:

For Windows Terminal App:

  • Open the Windows Terminal App.
  • Go to settings. Alt Text
  • Update the json, list one of the Powerline fonts. Alt Text

For Ubuntu App:

  • Open the Ubuntu app.
  • Open the Properties dialog.
  • From the Font tab, select one of the Powerline fonts, such as ProFont for Powerline.
  • Click OK.

Choose you theme! 🎨

You can now choose the theme you want for your terminal, there are many to choose from. I am using "agnoster". You can do so by:

  • Edit the '.zshrc' file nano ~/.zshr
  • Change the theme to one that you selected:
1# Set name of the theme to load --- if set to "random", it will
2# load a random theme each time oh-my-zsh is loaded, in which case,
3# to know which specific one was loaded, run: echo $RANDOM_THEME
4# See
7# Set list of themes to pick from when loading at random
8# Setting this variable when ZSH_THEME=random will cause zsh to load
9# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
10# If set to an empty array, this variable will have no effect.
11# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )

You can also enable different Plugins:

2 git
3 bundler
4 dotenv
5 osx
6 rake
7 rbenv
8 ruby

Let me know which theme you picked! Also feel free to reach out if you have any concerns.