- Investigate dotfiles management for WSL with this technique: https://developer.atlassian.com/blog/2016/02/best-way-to-store-dotfiles-git-bare-repo/
- Look at Microsoft Boxstarter/ Chocolatey scripts: Dev box setup scripts
- https://github.com/felixrieseberg/windows-development-environment
- https://char.gd/blog/2017/how-to-set-up-the-perfect-modern-dev-environment-on-windows for front-end specific tips
- Install Windows with offline profile (no MSFT account) so that user folder is set correctly (rather than to a truncated email address)
- Make sure BitLocker is enabled
- Sign in to MSFT account to get OneDrive syncing. Sync Development folder first
- Change name of computer (to something memorable, instead of DESKTOP-FDSFFE or some other random name)
Disassembler0 script to edit Win10 defaults
Customized version of script located in OneDrive; remember to git pull upstream master and inspect updates before running.
- Let OneDrive sync itself
- Restore other use folders from File History backups
- Symlinks
- Symlink from dotfiles folder in OneDrive to User folder
- Elevated PS prompt:
New-Item -Type SymbolicLink -Name .name -Target PathToTarget
- Enable Development mode in Windows settings and enable script execution
- Install chocolatey (in Powershell):
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) - In
OneDrive/Developmentfolder:- Run
update_tools.ps1to install majority of development tools - Run Ninite installer
- Run
- Enable WSL and Hyper-V
- Control Panel > Add/ Remove Windows Features > Windows Subsystem for Linux & Hyper-V
- Reboot
- Install Ubuntu from Windows Store
- Symlink files from
OneDrive/Development/dotfiles(working directory: ~)- Elevated PS prompt:
New-Item -Type SymbolicLink -Name <linkName> -Target ./OneDrive/Development/dotfiles/<target>
- Elevated PS prompt:
- Install desired global npm modules (using yarn)
- Make sure Node has its environment set up properly: https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#compiling-native-addon-modules
- From elevated PS:
npm install --global --production windows-build-tools
- From elevated PS:
- Look at
npm-global.txtinOneDrive/Development
- Make sure Node has its environment set up properly: https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#compiling-native-addon-modules
- Other software (as needed)
- Visual Studio
- C++ Development
- Linux Development
- Docker
- Insomnia Rest Client
- Anaconda
- Visual Studio
- Sync VS Code settings from gist
- Install development fonts (choose 1+)
- Hack, which comes with Powerline support built in
- Knack NF, a Hack derivative from Nerd Fonts
- Powerline Fonts, a less customized version of Nerd Fonts
- Fira Code, for fancy ligatures
- Import Cmder (ConEmu) settings from
conemu.xml; Hyper.JS settings from.hyper.js - Change cmd.exe colors (also applies to Bash on Windows): Colortool
- WSL changes
- Install ZSH:
sudo apt-get update && sudo apt-get install zsh - Install important development packages:
sudo apt-get install git build-essential - Install Prezto and Pure theme for Prezto
- Use own fork of Prezto as master and pull changes from upstream
- Install ZSH:
- Non-development apps
- Anki
- OEM apps (Dell Update, Intel Driver Update, etc.)
- Run the Windows 10 Tweak script in OneDrive
- This also takes care of uninstall a lot of the 3rd party apps that get installed
- Read carefully and be conservative to make sure important services aren't disabled
- Backblaze
- Inherit backup state from old installation
- MS Store apps
- Microsoft Todo
- Microsoft Office
- Spotify
- Paint.NET
- Facebook, Twitter, FB Messenger, WhatsApp Desktop
- Lunacy
- Setup accounts
- Sign in to email accounts in Mail;
- Lastpass
- Browser syncing: Sign into Google account in Chrome; Mozilla account in Firefox
- Spotify
- Edge extensions
- uBlock origin
- LastPass
- To get VirtualBox and Hyper-V to cooperate, need to create separate BCD entries for Hyper-V on and off.
- In elevated PS:
bcdedit /copy '{current}' /d "No Hyper-V",bcdedit /set '{<new entry UUID>}' hypervisorlaunchtype off