Table of contents
- Step 1 – Enable WSL
- Step 2 – Install Ubuntu
- Step 3 – Install Windows Terminal
- Step 4 – Configure Windows Terminal
- Step 5 – Fixing WSL Home Directory Issue
- Step 6 – Install ZSH
- Step 7 – Install oh-my-zsh
- Step 8 – Install Powerlevel10k Font
- Step 9 – Installing Powerlevel10k Theme
- Step 10 – Powerlevek10k Configuration
- Further Customization
The following guide will help you install Windows Subsystem Linux, Windows Terminal and ZSH.
Step 1 – Enable WSL
It’s pretty easy to install Windows Subsystem Linux, open Powershell as Administrator, and run the following. The following command will require a restart.
Step 2 – Install Ubuntu
Navigate to the Windows Store and search for Ubuntu. You’ll have three options.
You can choose to install Ubuntu 20.04 LTS or Ubuntu 18.04 LTS. However, if you simply choose Ubuntu you will get Ubuntu 20.04 LTS.
Totally up to you what you pick. Either works.
Once installed, you will have to launch Ubuntu so that it can continue the installation process. You’ll choose a username and password.
Step 3 – Install Windows Terminal
Windows Terminal provides a tabbed manager for all of your various terminals such as Powershell, Command Prompt and WSL!
You can download Windows Terminal via the Windows Store
Step 4 – Configure Windows Terminal
Windows Terminal has a bunch of configuration options that you will find are useful. Here are the ones I suggest you configure.
- Start up -> Default Profile -> Ubuntu
- Interaction -> Automatically copy selection to clipboard
Step 5 – Fixing WSL Home Directory Issue
When you launch WSL you’re placed into /mnt/c/Users/<username> versus the typical Linux home directory of /home/<username>
So you’ll have to make one small change.
- Go into Windows Terminal Settings ( Ctrl + , )
- Profiles -> Ubuntu -> General
- Set Starting Directory to: //wsl$/Ubuntu/home/<username>
Step 6 – Install ZSH
You can install ZSH like you would on any Ubuntu system!
Enter in your password and Ubuntu will update it’s cache of packages and install ZSH.
You can then type “zsh” to launch the ZSH shell. You can also set your default shell to zsh by typing “chsh”. However you will need to know the full path to zsh, and we can find this out by typing “which zsh”
Now you can type “chsh” enter your password and the path to zsh like so!
Step 7 – Install oh-my-zsh
You can install oh-my-zsh using a one liner from their website at https://ohmyz.sh or use the command below taken from their website.
Step 8 – Install Powerlevel10k Font
What’s Powerlevel10k? it’s a zsh theme and successor to Powerlevel9k. I personally love using it. You can see the full installation instructions on Github at https://github.com/romkatv/powerlevel10k
The installation involves installing a supported font and the theme itself. I highly suggest installing the font as you’ll not be able to see all the fancy icons.
If you visit the installation page mentioned above, you’ll find a link to download the font. Here’s a direct link.
Download the font, double click on the font and press install!
You’ll then need to setup Windows Terminal with the font.
Open Settings (
Ctrl+,), under “Profiles” click “Ubuntu” then “Appearance” and set “Font Face” to “MesloLGS NF”. Save, exit and relaunch.
Step 9 – Installing Powerlevel10k Theme
Again, you can refer the the Github page for installation instructions or use the following one liner for oh-my-zsh
Then you’ll need to set the theme in your .zshrc file. There should already be a line for ZSH_THEME, simply change it to powerlevek10k
Step 10 – Powerlevek10k Configuration
Close your Windows Terminal and relaunch it. You should now be taken through the Powerlevel10k configuration screens. Once complete, you can start using your ZSH shell with oh-my-zsh and the Powerlevel10k theme!
There are tons of configuration options for the Powerlevel10k theme, you can read all about it on the Github repository.
I’ve actually create my own custom ZSH setup that does most of the work above, except for the font (Step 8). I’ve also add in some custom aliases and commands. It’s very much a WIP!