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
Background: crowned > need for speed, Fluent terminal with Bright Lights theme

My Windows dev setup / howto

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)

Programs i always install

Turn on hyper-v

some programs require this or work better so i usually turn this on
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

To quickly access the subsystem's filesystem add the following network drive under "This PC" \\wsl$\Ubuntu note: this does not work on wsl1

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

Fluent terminal

Download the z-Bright-Lights.itermcolors theme underhere and import it into the fluent terminal
For more themes: https://iterm2colorschemes.com (dowanlod the zip and extract the schemes folder)

Add Fluent terminal to context menu: install.bat

Steam

  1. download Steam customizer tool
  2. download the dracula skin

Winaero

Tweaked settings:

  • Disable timeline context menu
  • Take ownership context menu
  • Screen snip context menu
  • Screen snip shortcuts > place the shotcut in %appdata%\Microsoft\Windows\Start Menu\Programs
  • Disable cortana windows apps
  • Ads and unwanted software behavior
  • Compressed overlay icon file explorer
  • Shortcut arrow shortcuts > No

AMD Radeon settings

The radeon software has a list of hotkeys that are also in use by some programs so i unbind them usually,
Settings arrow right top > Hotkeys > unbind the keys you find annoying for me that's almost everything :)

Windows UI

I do most things via the wox so i don't need the taskbar anymore, it's just a waste of space screenshot

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

Notes for myself

  • Windows start menu dir: %appdata%\Microsoft\Windows\Start Menu\Programs
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Ansi 0 Color</key>
<dict>
<key>Blue Component</key>
<real>0.098039215686274508</real>
<key>Green Component</key>
<real>0.098039215686274508</real>
<key>Red Component</key>
<real>0.098039215686274508</real>
</dict>
<key>Ansi 1 Color</key>
<dict>
<key>Blue Component</key>
<real>0.35686274509803922</real>
<key>Green Component</key>
<real>0.20784313725490197</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 10 Color</key>
<dict>
<key>Blue Component</key>
<real>0.46274509803921571</real>
<key>Green Component</key>
<real>0.90980392156862744</real>
<key>Red Component</key>
<real>0.71764705882352942</real>
</dict>
<key>Ansi 11 Color</key>
<dict>
<key>Blue Component</key>
<real>0.31764705882352939</real>
<key>Green Component</key>
<real>0.76078431372549016</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 12 Color</key>
<dict>
<key>Blue Component</key>
<real>1</real>
<key>Green Component</key>
<real>0.83529411764705885</real>
<key>Red Component</key>
<real>0.46274509803921571</real>
</dict>
<key>Ansi 13 Color</key>
<dict>
<key>Blue Component</key>
<real>0.90588235294117647</real>
<key>Green Component</key>
<real>0.46274509803921571</real>
<key>Red Component</key>
<real>0.72941176470588232</real>
</dict>
<key>Ansi 14 Color</key>
<dict>
<key>Blue Component</key>
<real>0.70980392156862748</real>
<key>Green Component</key>
<real>0.74901960784313726</real>
<key>Red Component</key>
<real>0.42352941176470588</real>
</dict>
<key>Ansi 15 Color</key>
<dict>
<key>Blue Component</key>
<real>0.84313725490196079</real>
<key>Green Component</key>
<real>0.78431372549019607</real>
<key>Red Component</key>
<real>0.76078431372549016</real>
</dict>
<key>Ansi 2 Color</key>
<dict>
<key>Blue Component</key>
<real>0.46274509803921571</real>
<key>Green Component</key>
<real>0.90980392156862744</real>
<key>Red Component</key>
<real>0.71764705882352942</real>
</dict>
<key>Ansi 3 Color</key>
<dict>
<key>Blue Component</key>
<real>0.31764705882352939</real>
<key>Green Component</key>
<real>0.76078431372549016</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Ansi 4 Color</key>
<dict>
<key>Blue Component</key>
<real>1</real>
<key>Green Component</key>
<real>0.83137254901960789</real>
<key>Red Component</key>
<real>0.46274509803921571</real>
</dict>
<key>Ansi 5 Color</key>
<dict>
<key>Blue Component</key>
<real>0.90588235294117647</real>
<key>Green Component</key>
<real>0.46274509803921571</real>
<key>Red Component</key>
<real>0.72941176470588232</real>
</dict>
<key>Ansi 6 Color</key>
<dict>
<key>Blue Component</key>
<real>0.70980392156862748</real>
<key>Green Component</key>
<real>0.74901960784313726</real>
<key>Red Component</key>
<real>0.42352941176470588</real>
</dict>
<key>Ansi 7 Color</key>
<dict>
<key>Blue Component</key>
<real>0.84313725490196079</real>
<key>Green Component</key>
<real>0.78431372549019607</real>
<key>Red Component</key>
<real>0.76078431372549016</real>
</dict>
<key>Ansi 8 Color</key>
<dict>
<key>Blue Component</key>
<real>0.098039215686274508</real>
<key>Green Component</key>
<real>0.098039215686274508</real>
<key>Red Component</key>
<real>0.098039215686274508</real>
</dict>
<key>Ansi 9 Color</key>
<dict>
<key>Blue Component</key>
<real>0.35686274509803922</real>
<key>Green Component</key>
<real>0.20784313725490197</real>
<key>Red Component</key>
<real>1</real>
</dict>
<key>Background Color</key>
<dict>
<key>Blue Component</key>
<real>0.098039215686274508</real>
<key>Green Component</key>
<real>0.098039215686274508</real>
<key>Red Component</key>
<real>0.098039215686274508</real>
</dict>
<key>Bold Color</key>
<dict>
<key>Blue Component</key>
<real>0.75576734293193715</real>
<key>Green Component</key>
<real>0.70378700769969904</real>
<key>Red Component</key>
<real>0.62377825081598537</real>
</dict>
<key>Cursor Color</key>
<dict>
<key>Blue Component</key>
<real>0.0</real>
<key>Green Component</key>
<real>0.29334646463394165</real>
<key>Red Component</key>
<real>0.95475113391876221</real>
</dict>
<key>Cursor Text Color</key>
<dict>
<key>Blue Component</key>
<real>0.19370138645172119</real>
<key>Green Component</key>
<real>0.15575926005840302</real>
<key>Red Component</key>
<real>0.0</real>
</dict>
<key>Foreground Color</key>
<dict>
<key>Blue Component</key>
<real>0.84313725490196079</real>
<key>Green Component</key>
<real>0.78823529411764703</real>
<key>Red Component</key>
<real>0.70196078431372544</real>
</dict>
<key>Selected Text Color</key>
<dict>
<key>Blue Component</key>
<real>0.098039215686274508</real>
<key>Green Component</key>
<real>0.098039215686274508</real>
<key>Red Component</key>
<real>0.098039215686274508</real>
</dict>
<key>Selection Color</key>
<dict>
<key>Blue Component</key>
<real>0.84313725490196079</real>
<key>Green Component</key>
<real>0.78823529411764703</real>
<key>Red Component</key>
<real>0.70196078431372544</real>
</dict>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment