How I turned my Windows PC into a productivity machine for development (wsl + hyper + oh my zsh + Dracula)

Image for post

First of all why windows, why not Linux?

I have been using Linux for more than 3 years and I really liked working on it. From day one, I had to deal with all sort of errors, like grub errors, installation errors, etc. Also, I had to switch back to windows anytime I wanted to play games or use Adobe software like adobe XD.

And it was all OK until my Spotify stopped working. I tried many solutions but they only fixed it temporarily. Fortunately, windows released an update with wsl(windows subsystem for Linux) and that was perfect for me. Currently, I am using wsl2 on windows and everything works fine now. No more bugs. Still, I have to deal with updates though!

What is wsl?

WSL is a new feature of Windows 10 (1607 and later) that enables you to run Linux distros directly on Windows 10 alongside your favourite Windows applications. It has several advantages over a virtual machine instance in that it uses very little resources (comparatively) and is highly integrated into the desktop experience.

With WSL it's like using Linux and windows all together + Same Linux commands in the terminal.

Let’s get started

  1. Here is how to install WSL if u haven’t already.
  2. Then install Ubuntu from Microsoft store
  3. Install hyper.js terminal

While experimenting with the setup I tried a lot of terminals including Cygwin, windows new terminal, default Command prompt, etc. I also tried to customize windows PowerShell. But I think hyper is best of them all. It’s highly customizable, powerful and well-tested.

Image for post

Setting up hyper

Press Ctrl + , to bring up Hyper.js configuration file. Look for plugins: [ edit and add my favourite Dracula theme.

plugins: ['hyper-dracula'],</span>

Setup Hyper.js to automatically open Ubuntu on Windows

  • Open up Hyper.js configuration again and type Ctrl + ,
  • Scroll down to shell and change it to C:\\Windows\\System32\\bash.exe
// the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    // if left empty, your system's login shell will be used by default
    //
    // Windows
    // - Make sure to use a full path if the binary name doesn't work
    // - Remove `--login` in shellArgs
    //
    // Bash on Windows
    // - Example: `C:\\Windows\\System32\\bash.exe`
    //
    // PowerShell on Windows
    // - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
    shell: 'C:\\Windows\\System32\\bash.exe',
// for setting shell arguments (i.e. for using interactive shellArgs: `['-i']`)
    // by default `['--login']` will be used
    shellArgs: [],

Install ZSH on Ubuntu Bash Windows

  • Run this sudo apt-get install zsh
  • Open your bash profile vim~/.bashrc
  • Add this to set it to use ZSH as default:
screenfetch
bash -c zsh
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples# If not running interactively, don't do anything
case $- in</span>

Install Oh My ZSH

Install Oh My Zsh with sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Change the ZSH Theme to avit

vim ~/.zshrc

# Set name of the theme to load. Optionally, if you set this to "random"
# it'll load a random theme each time that oh-my-zsh is loaded.
# See [https://github.com/robbyrussell/oh-my-zsh/wiki/Themes](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes)
ZSH_THEME="avit"

Don’t forget to add syntax highlighting and auto-suggestions plugin. These come really handy.

Image for post

Install other Oh My ZSH plugins — https://github.com/robbyrussell/oh-my-zsh

Install other Hyper.js themes — https://hyperthemes.matthi.coffee/

Dracula for everything

Image for post

I am using Dracula theme for almost everything — Firefox, slack, hyper, VS Code.

Check out Dracula theme it’s FREE. Its available for almost everything.

Check out my GitHub repo for complete hyper configuration. https://github.com/abhinandansharma/hyper

There is a lot more that I wanted to write, but I am saving that for another article. This is already getting boring. Comment below for any queries!


Thanks for reading till the END! Stay tuned for the next one.