DEV Community

Cover image for From WSL2 to Pop!_OS - My Full Linux Experience Journey
Atif Aiman
Atif Aiman

Posted on

From WSL2 to Pop!_OS - My Full Linux Experience Journey

Salam and good day everyone! Whew, after a 2-month hiatus, I start again with different thing from coding, and this time it is about me from depending a lot on WSL2 on Windows 10, to a full Linux experience using Pop!_OS 20.04, a debian-based Linux distro.

Previous Workflow - WSL2

Most of us are extremely familiar with Windows, and currently at Windows 11 with a lot of features. Though, my machine cannot upgrade from Windows 10 for incompatibility (yeah, I know there is workaround).

As most of you knew, my works are mostly revolves around Javascript and NodeJS, and a bit touch of other things. However, there are tools that I have been used to this day that requires Linux, especially Docker, to experience most of the full capability. And so, I have been using WSL2 for 2 years now. Setting my developer experience around WSL2 has been a journey as well, including setting up terminals, VSCode and others.

As you might think, why didn't I just move to Linux distro fully earlier? Well, there are several reasons that didn't convince me that much:

  • I rely really much on Microsoft services, such as Office 365.
  • There are softwares which I used that requires a non-Linux environment.
  • My gaming-ass is really not sure whether Linux can really handle game really much, though I know that ProtonDB can do that much.
  • And of course, not mentally ready πŸ˜…

Then, what makes me to move now?

  • Windows 10 really demands a lot of my graphic capability (well, so many unnecessary services).
  • I have make myself less dependent to Window-related services and softwares (since now design works can be done online).
  • Peer pressure. Yes, peer pressure!

Time to move out

And so, this week, I decided to move to a friendly distro, Pop!_OS 20.04, since I used Ubuntu 20.04 on top of my WSL2 previously. Well, I know most of the CLI already, so I expect a smooth transition from WSL2 to Pop!_OS. And so, here is what I did.

1) Download Pop!_OS image from Pop!_OS by System76. I choose the image with the NVIDIA drivers.

Pop!_OS website

1.1) Optionally, you can verify the image by running CertUtil.

// For Intel/AMD
CertUtil -hashfile Downloads\pop-os_21.04_amd64_intel_7.iso sha256

CertUtil -hashfile Downloads\pop-os_21.04_amd64_nvidia_7.iso sha256
Enter fullscreen mode Exit fullscreen mode

2) To set up bootable USB, I used balenaEtcher, which can be downloaded from balena website.

balena Etcher

3) Just open balenaEtcher, choose the image, and choose your bootable drive to be used later.

...and there, you have a bootable drive with Pop!_OS ready for you!

And from Windows 10, you need to check out several things:

1) You have to turn of Secure Boot so Linux can access the kernel. To do that, you have to go to bios menu.

Click Windows, and find "Advanced Startup" or find it on Settings > Update & Security > Recovery. Then, click "Restart Now"

2) After your laptop restarts and Advanced Options appears, choose Troubleshoot > Advanced Options > UEFI Firmware Settings. Later, you will be brought to the bios menu.

Advanced Startup - UEFI Firmware

3) Go to Security tab, and you will find the option for Secure Boot. Go ahead and disable it.

4) Save changes and restart. Don't forget to make sure that your bootable device is being boot and not your Windows 10.

...and that's it!

Let say, you still have doubts, just install the demo version. But why demo, when you can go all the way?

The First Light of Pop!_OS

Well, my first experience is quite good, where I experience way less disturbance and way better graphic performance. The great plus to the beauty of Pop!_OS, I really enjoy the experience!

β€” Atif al-SerembaniοΌˆγ‚γƒγƒƒγƒ—) (@alserembani) January 27, 2022

Time for Productivity

And so, I have to set up my workspace, of course! The tools that I need:

  • VSCode
  • Steam (with Dota πŸ˜–, apology for my gamer side)
  • Discord
  • Equaliser (yeah, I am audiophile)
  • Customise my terminal - PowerLevel10K

1. VSCode

You can head to Pop!_Shop, and find VSCode, and make sure you use Pop!_Shop version and not flakpak, since it is buggy.

VSCode on Pop!_Shop

Since I have my VSCode Sync on, I got all my goodness from my previous configurations, including font ligatures etc.

2. Steam

You can head to Pop!_Shop, and find Steam. And of course, Pop!_Shop version as well! But beware, that only some of the games compatible with Linux.

Steam on Pop!_OS

3. Discord

I love to communicate through Discord, especially when I want to build a community at my locals. Just head to Pop!_Shop, and you know the drill!

Discord on Pop!_OS

4. Equaliser

I love to listen to music while I code, and I love to customise my experience. So I choose PulseEffects.

PulseEffects on Pop!_OS

5. Customising Terminal!

Well, this is the time, I kept seeing tutorial with beautiful terminal, so I want to experience one! So here is my step:

a) Install zsh. Some of distro already has zsh. If not, then you can just head to your terminal and install zsh.

sudo apt install zsh
Enter fullscreen mode Exit fullscreen mode

b) Install Oh My Zsh.

sh -c "$(curl -fsSL"
Enter fullscreen mode Exit fullscreen mode

If you can see the rainbow, that means you successfully install Oh My Zsh.

c) Add PowerLevel10K theme!

First, you need to clone the theme to be added to Oh My Zsh.

git clone --depth=1 ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
Enter fullscreen mode Exit fullscreen mode

Then, you need to change the ~/.zshrc that contains all configuration of your zsh. Set ZSH_THEME="powerlevel10k/powerlevel10k"

Edit ~/.zshrc

d) Configure your PowerLevel10K theme.

For the first time, you can enter this in your terminal.

p10k configure
Enter fullscreen mode Exit fullscreen mode

Then, you will be guided through the configuration to your taste. For further settings, you can edit ~/.p10k.zsh later on.

e) Additionally, zsh cannot detect my NVM, and so I added yet another plugin, which is called zsh-nvm. First, clone zsh-nvm

git clone ~/.oh-my-zsh/custom/plugins/zsh-nvm
Enter fullscreen mode Exit fullscreen mode

Then, add the zsh-nvm and also git plugin to your ~/.zshrc.

Enter fullscreen mode Exit fullscreen mode

zsh plugins

And here, is my result!

alserembani Terminal

Cool, right?!

Future Possibility

Someone teases me that I will be distro hopping sooner or later and ended up using Arch. Well, who knows, right?

Moving forward, I will learn a lot more, and increases my productivity even further, especially learning Docker and Kubernetes (for serious this time πŸ˜…). Pray for my future endeavours!

And thanks for the read. Adios and peace be upon ya'll!

Top comments (0)