Install WSL, using version 2
wsl --set-default version 2
wsl --install Ubuntu-22.04
Once WSL is installed and configured, we will start using commands within Ubuntu
sudo apt-get update
sudo apt-get upgrade
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Use the following command to add Homebrew to the path
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> /home/$USER/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# Install Homebrew's dependencies if you have sudo access
sudo apt-get install build-essential
# We recommend that you install GCC:
brew install gcc
# Only choose one option
# To get the latest version use Homebrew
brew install fish
# To get the latest version within the ubuntu repositories
sudo apt install fish
Set fish as default shell
Check the fish path (In the examples below it was located at: /home/linuxbrew/.linuxbrew/bin/fish)
which fish
Add fish to the know shells (Replace FISH_PATH with your fish path)
Example path: /home/linuxbrew/.linuxbrew/bin/fish
# After this command restart WSL terminal.
sudo sh -c 'echo FISH_PATH >> /etc/shells'
Set fish as the default shell
# After this command restart WSL terminal.
chsh -s FISH_PATH
If fish has been installed correctly when you reopen WSL you will see a message like this
Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
Add brew binaries in fish path (use the fish path but remove the fish subfolder from the path in my case it would be this)
fish_add_path /home/linuxbrew/.linuxbrew/bin
Fisher plugin manager (Fisher repository)
curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher
You can create aliases to shorten commands, for example I like to shorten git commands
alias --save ALIAS_NAME="git checkout main"
alias --save myProject="cd ~/Documents/Projects/Project1"
# To use them just call them by their name
ALIAS_NAME #Execute "git checkout main"
myProject #Go to Project1 folder
brew install zellij
If you want to always start with zellij open fish config file
nano ~/.config/fish/config.fish
We add the following line and the file would look like this
# line to add in config.fish
eval "$(zellij setup --generate-auto-start fish)"
# config.fish
if status is-interactive
# Commands to run in interactive sessions can go here
eval "$(zellij setup --generate-auto-start fish)"
end
Save and restart WSL terminal and next time you start WSL it will start with Zellij and Fish
brew install nvim
Install LazyVim (LazyVim installation)
Verify and fix plugin dependencies (To verify errors, use :LazyHealth) and install nodejs
brew install ripgrep
brew install luarocks
brew install fd
brew install fzf
brew install lazygit
brew install node@20 # @version
# verifies the right Node.js version is in the environment
node -v # should print `v20.17.0`
# verifies the right npm version is in the environment
npm -v # should print `10.8.2`
- Copy .config folder
if you have a vs-code-json-language-server warning run this command
sudo ln -s /home/julian/.nvm/versions/node/v20.17.0/bin/node /usr/bin/node