Here are a few resources for a better developer experience on Windows PC.
➡️Foundation
Fonts
Use Nerd Fonts - easier on eyes, supports programming ligatures and is also used by terminal applications.
There are numerous fonts to choose from. May I recommend -
Shared Settings
I use a shared config folder in OneDrive for easier sharing of configuration across machines. I name the folder .config and it exists at $HOME\OneDrive\99-share\.config.
Note that I can use $HOME in Powershell.
➡️Editor
VSCode
Use VSCode - that’s all your probably need.
Vim / Neovim
Neovim is awesome, fast and can make you super efficient.
Download, install Neovim.
winget install Neovim.Neovim
Using your own config can take time and effort - I found it easier to start with pre-configured setup -
➡️Terminal
WSL
Setup WSL with Ubuntu - see this tutorial.
Use ZSH.
sudo apt-get install zsh
Configure Oh my ZSH.
sudo apt-get install git
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Start zsh every time you open wsl.
vi ~/.bashrc
Enter the below lines at the beginning of the file.
if test -t 1; then
exec zsh
fi
Edit the ~/.zshrc and set a theme.
vi ~/.zshrc
# Find and change this
ZSH_THEME="robbyrussell"
Find pre-configured oh-my-zsh themes here.
Starship Shell
Starship is a better shell with easy configuration.
Below setup process is for Powershell. You would have to do this for wsl > zsh too.
winget install --id Starship.Starship
Create a file in the shared config folder starship.toml.
Create the config file for Powershell -$HOME\OneDrive\Documents\PowerShellMicrosoft.PowerShell_profile.ps1 if it does not exist. Start starship each time Powershell is opened by using two lines in the config file.
$ENV:STARSHIP_CONFIG = "$HOME\OneDrive\99-share\.config\starship.toml"
Invoke-Expression (&starship init powershell)
Configure starship in $HOME\OneDrive\99-share\.config\starship.toml.
# Get editor completions based on the config schema
"$schema" = 'https://starship.rs/config-schema.json'
# Inserts a blank line between shell prompts
add_newline = true
Here are a bunch of pre-configured options for Starship.
Alternatives: