This page looks best with JavaScript enabled

Workstation

 ·   ·  ☕ 2 min read

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.

1
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.

1
sudo apt-get install zsh

Configure Oh my ZSH.

1
2
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.

1
vi ~/.bashrc

Enter the below lines at the beginning of the file.

1
2
3
if test -t 1; then
exec zsh
fi

Edit the ~/.zshrc and set a theme.

1
vi ~/.zshrc
1
2
# 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.

1
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.

1
2
$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.

1
2
3
4
5
# 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:

Stay in touch!
Share on

Prashanth Krishnamurthy
WRITTEN BY
Prashanth Krishnamurthy
Technologist | Creator of Things


What's on this Page