My Development Setup

NOTE: Please Read Yes I still use Windows. No I don't want to switch to Linux. No I don't want to dual boot or use virtual machines. Don't tell me how I should use or not use my own systems. I mainly made this guide as a tutorial for myself so I don't forget how I setup my computers, so don't expect it to be some 10x dev guide.

Install the Windows Subsystem for Linux

  1. Enable WSL by running the code below in PowerShell as Administrator.
    > dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
    > dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
    
  2. Restart your computer then update to WSL2 with this executable: wsl_update_x64.msi

  3. Run wsl --set-default-version 2.

  4. Install any Linux Distro of your choosing in the Windows Store. I like to use Ubuntu.

  5. Install the Windows Terminal (Preview) on the Windows Store.

  6. Run the following inside of Ubuntu (or your OS of choice).
    $ sudo apt update; sudo apt upgrade -y; sudo apt autoremove -y
    

Customizing the Terminal

  1. Install the Hasklug Nerd Font (or your font of choice) at the Nerd Fonts Downloads, you’ll need to install the Windows Compatible files.

  2. You can download my terminal settings from here. NOTE: You will have to change some things such as your username.

  3. Install Oh My ZSH by running the code below.
    $ sudo apt install zsh -y
    $ sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
    
  4. Install Powerlevel10k by running the following code below.
    $ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k
    
  5. Install zsh-autosuggestions and zsh-syntax-highlighting by running the following.
    $ git clone https://github.com/zsh-users/zsh-autosuggestions.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    $ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    

Adding Convenience Plugins and Extensions

  1. Installing APT packages:
    $ sudo apt install fzf neofetch -y
    
  2. Install GitHub software.
    # Install Git LFS.
    $ curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
    $ sudo apt install git-lfs -y
    
    # Install GitHub CLI.
    $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
    $ sudo apt-add-repository https://cli.github.com/packages
    $ sudo apt update; apt install gh -y
    
  3. Installing Gem packages:
    $ sudo apt install ruby-full build-essential zlib1g-dev -y
    $ gem install colorls jekyll bundler
    
  4. Installing Python3 packages:
    $ sudo apt install python3-dev python3-pip python3-setuptools -y
    $ sudo pip3 install thefuck bpytop
    
  5. Installing Node.js with PNPM:
    $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
    $ nvm install --lts; npm i -g pnpm
    

Setup ~/.zshrc

Instead of posting my long ~/.zshrc file here, just download it here: .zshrc You can also download my p10k.zsh here: .p10k.zsh