Skip to content

Instantly share code, notes, and snippets.

@mjarkk
Last active May 19, 2025 05:19
Show Gist options
  • Save mjarkk/d73f43f96e07d08702601f829512ff96 to your computer and use it in GitHub Desktop.
Save mjarkk/d73f43f96e07d08702601f829512ff96 to your computer and use it in GitHub Desktop.
How i use windows for development

screenshot

How i do development on windows

Get the latest build of windows

For some dumb reason windows always installes an old version so i use the insider program to get the latest windows version

  1. Settings > Updates & Security > Windows Insider Program > do your things here
  2. Settings > Updates & Security > Update Windows > Check for updates (This will take a shitload of time)

Base programs i always install

Turn on hyper-v

some programs work better with this tunred on so i turn this on usually
Control Panel > Programs > Turn Windows features on or off > hyper-v

Linux Subsystem

As administrator run: (to allow the windows subsystem)

Enable-WindowsOptionalFeature -Online -FeatureName $("VirtualMachinePlatform", "Microsoft-Windows-Subsystem-Linux")
wsl --set-default-version 2

Install Ubuntu 18.04 LTS

After installing you might have to convert the subsystem to windows subsystem version 2 using:

wsl -l -v
wsl --set-version Ubuntu 2

To view localhost only exposed servers create .wslconfig in the user root dir with the following contents:

[wsl2]
localhostForwarding=true

Docker

Download Docker desktop
After install:

  1. go to Docker desktop settings
  2. Under command line enable: Enable experimental features
  3. Under general enable: Enable the experimental WSL 2 based engine (if the docker desktop craches install this kernel update)
  4. Install docker in the ubuntu subsystem there is no need to start the docker service
  5. In the docker desktop settings > Resources > WSL intergration > Enable ubuntu or whatever you have

Fish, omf & nvm in the subsystem

I use fish as my main shell on linux so i also install it on my subsystem

# install fish v3
sudo add-apt-repository ppa:fish-shell/release-3
sudo apt install fish

# set fish as main shell
chsh -s `which fish`

# install oh my fish
curl -L https://get.oh-my.fish | fish

# install nvm (node version manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
omf install nvm
nvm install 13
nvm use 13
nvm alias default 13

# Get a nice fish theme if you want:
omf install nai

I usually edit the .config/omf/init.fish to add a few handy shotcuts:

alias h='cd ~'
# ...

Theming & Custom settings

Fish & vscode

See my dotfiles

Wox

  1. Download: https://github.com/dracula/wox
  2. Place Dracula.xaml in %LOCALAPPDATA%\Wox\app-X.X.XXX\Themes, in wox type restart wox > settings > Theme > Dracula

Problems

  • This setup eats noticable more memory than working on my linux machine, around 3-5gb more ram usage.
  • Sometimes after login the localhost forwarding in wsl doesn't work and the only solution to fix it seems to be restarting my pc
  • Restarting wsl (wsl --shutdown > open a terminal) breaks the docker access from within wsl, the docker command still work but starting a webserver and trying access it doesn't work. Usually i restart my pc if i still need to use docker after this, but i suspect you can also figgle around with the docker desktop settings to get it working again.
  • Sometimes the subsystem or the fish shell seems to crach but kinda still works???, it's supper wired but in the end i always restart my pc to solve it (note: Always when this happends there is also an update that can be installed when rebooting).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment