Skip to content

Jayllyz/setupWSL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

setupWSL

GitHub last commit (by committer) Super-Linter

What is WSL? 🤔

The Windows Subsystem for Linux (WSL) is a feature of Windows that allows you to run native Linux command-line tools directly on Windows. It provides a Linux-compatible kernel interface developed by Microsoft, which allows you to use Linux applications on Windows.

This means that you can use Linux tools and utilities at the same level of performance as if they were running on a native Linux system, which is way better than using a virtual machine.

learn more here. 📖

Installation 💻

  1. Open PowerShell as Administrator and run:

    • Default distribution is Ubuntu if you want another one use : wsl --install -d <Distribution name>
    • To see all available distribution use : wsl --list --online
    wsl --install

    ℹ️ Later you can update wsl in Microsoft store or by using wsl --update in powershell/cmd.

  2. Restart your computer.

  3. Search the distribution you have chosen in the Start menu and run it.

  4. When installed, you will be prompted to create a new user account and password. This will be the user account you will use to log in to your Linux distribution.

Configuration 🔧

Terminal

I recommend using Windows Terminal or WezTerm, they are both great and have a lot of features to enhance your development experience.

Recommend to use a Nerd Fonts for icons support (JetBrains Mono is a good choice).

Better terminal with Zsh

  1. Install Zsh & cURL.

    # Zsh is a shell designed for interactive use, you can have plugins, themes, etc.
    sudo apt update && sudo apt upgrade -y
    sudo apt install zsh curl -y
  2. Install Oh My Zsh.

    # Oh My Zsh is an open source, community-driven framework for managing your Zsh configuration.
    sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
  3. Install Zsh plugins, you can find more plugins here.

    git clone https://github.com/zsh-users/zsh-autosuggestions ${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

    Then add the following line to your ~/.zshrc file :

    plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
  4. (optional) Install starship.

    # Starship is a minimal, fast, and customizable prompt
    curl -fsSL https://starship.rs/install.sh | bash

    Then add the following line at the end of your ~/.zshrc file :

    eval "$(starship init zsh)"

    Then you need to set your Zsh theme to an empty string in your ~/.zshrc file :

    ZSH_THEME=""

    For more information about starship, refer to the starship documentation.

  5. Nano configuration.

    Configuring Nano is optional, you can use another editor like Vim, Emacs, if you prefer.

    nano ~/.nanorc
    
    # Add this in the file :
    set atblanks
    set mouse
    set cutfromcursor
    set softwrap
    set tabsize 4
    set tabstospaces
    include "/usr/share/nano/*.nanorc"
    set speller "aspell -x -c"
    set constantshow
    set linenumbers
    set casesensitive
    set historylog
    set positionlog
    set smarthome
    set zap
    set autoindent
    bind ^C copy main # CTRC+C - Copy
    bind ^V paste all # CTRL+V - Past
    bind ^S savefile main # CTRL+S - Save

Configuration

  1. Install build essential. (gcc, g++, make, must have for development)

    sudo apt install build-essential -y
  2. Install Git.

    sudo apt install git -y
    git config --global user.email 'your email'
    git config --global user.name 'your name'
  3. Install Docker Desktop

    Docker Desktop uses the dynamic memory allocation feature in WSL 2 to optimize resource consumption.
    For more information, refer to the Working with Docker & WSL documentation.

  4. Tool versioning.

    Managing version of tools is usefull for development, my favorite tool for this is proto.

    If you only need to manage Node.js version, you can use fnm.

    # Requirements
    sudo apt install unzip gzip xz-utils -y
    
    curl -fsSL https://moonrepo.dev/install/proto.sh | bash
    
    proto setup
    
    # Install what you need :
    proto install node lts
    proto install python 

    You can find more information about proto here.

  5. Update, upgrade and clean package list.

    sudo apt update && sudo apt upgrade -y && sudo apt autoremove

Useful Tools and Informations

Note

There are numerous useful tools you can install to enhance your experience on Linux and WSL link.
Microsoft has also created a guide to help you maximize the benefits of WSL if you use VS Code link.

When working with WSL, always clone or create your projects inside the Linux file system,
otherwise performance may significantly decrease, and certain features might not work properly (e.g: hot reloading).
For more information, refer to the Docker best practices documentation.

Thank you for reading! ✨

^ back to top ^

You are now ready to start developing on WSL! 🎉

Made with ❤️ by @Jayllyz