DEV Community

Rishab Kumar
Rishab Kumar

Posted on • Updated on


Beautify your Terminal - WSL2

I used Ubuntu as a VM for front-end development. But recently I have been testing Windows Subsystem of Linux (WSL 2) and so far it's 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:

apt install zsh

Enter fullscreen mode Exit fullscreen mode

Install ohmyzsh

sh -c "$(curl -fsSL"

Enter fullscreen mode Exit fullscreen mode

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 your 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:
# Set name of the theme to load --- if set to "random", it will
# load a random theme each time oh-my-zsh is loaded, in which case,
# to know which specific one was loaded, run: echo $RANDOM_THEME
# See

# Set list of themes to pick from when loading at random
# Setting this variable when ZSH_THEME=random will cause zsh to load
# a theme from this variable instead of looking in ~/.oh-my-zsh/themes/
# If set to an empty array, this variable will have no effect.
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
Enter fullscreen mode Exit fullscreen mode

You can also enable different Plugins:

Enter fullscreen mode Exit fullscreen mode

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

Top comments (0)

An Animated Guide to Node.js Event Loop

Node.js doesn’t stop from running other operations because of Libuv, a C++ library responsible for the event loop and asynchronously handling tasks such as network requests, DNS resolution, file system operations, data encryption, etc.

What happens under the hood when Node.js works on tasks such as database queries? We will explore it by following this piece of code step by step.