My Windows Setup: Starting From a Fresh Install
Update: I recently got a new laptop - going through the same process again so some items will change
Welcome to my Windows setup! Recently I reinstalled Windows on a higher-capacity Samsung SSD, removing the old one. Here I’ll list the programs I install as well as the configuration steps I perform.
In general, before a major hardware change, I back up everything if possible. I put the old SSD in a Sabrent USB enclosure for convenient access to backed-up files.
I’m planning to update this article over the next few days, as I run into issues and remember more programs to install.
Installations §
First Programs §
The first thing I install is Scoop. Then I use Scoop to install almost everything else. After install, do a scoop install git
and then use scoop bucket add
to add the bucketsextras
, nonportable
,nirsoft
, and java
. Scoop doesn’t automatically add things to the context menu, which I like since my context menu tends to get too cluttered. I add the items I want manually.
To make it easier to associate files with Scoop-installed programs, I saw that the “open with” context menu item points to C:\Program Files
. I just added two shortcuts to the Program Files folder that I created on the desktop — the first to C:\Users\USERNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Scoop Apps
and the second to C:\Users\USERNAME\scoop\apps
Things that I can’t find on Scoop, I use Chocolatey. I’ve found that Chocolatey doesn’t clean up as easily so I try not to install too many things with it.
Scoop §
I’ve categorized the programs I install with Scoop here in no particular order. The Scoop name for installing is next to the main software name. Note that git has to be installed before everything else.
-
Developer Tools
- AWS CLI
aws
- git
git
- Gnu on Windows
gow
- Node.js
nodejs
[1] - Sublime Text
sublime-text
- R
r
- RStudio
rstudio
- RTools
rtools
- AWS CLI
-
General Tools
- 7-Zip
7zip
- Bandizip
bandizip
[2] - BleachBit
bleachbit
- Bulk Crap Uninstaller
bulk-crap-uninstaller
[3] - Bulk Rename Utility
bulk-rename-utility
- espanso
espanso
- Everything
everything
- Geek Uninstaller
geekuninstaller
- HashCheck
hashcheck
- Keypirinha
keypirinha
- LaTeX
latex
[4] - LockHunter
lockhunter-np
[5] - HWiNFO
hwinfo
- Microsoft Powertoys
powertoys-np
- Pandoc
pandoc
- pandoc-crossref filter
pandoc-crossref
- Pixie
pixie
- ShareX
sharex
- ShellMenuView
shellmenuview
- Sysinternals
sysinternals
- Winscp
winscp
- WizTree
wiztree
- 7-Zip
-
Notes and Research
-
Remote
-
Editing
-
Media
-
Misc
- LibreOffice Fresh
libreoffice-fresh
Not working at the moment - NVIDIA Profile Inspector
nvidia-profile-inspector
- qBittorrent
qbittorrent
- LibreOffice Fresh
-
Dependencies
- .NET SDK
dotnet-sdk
- Visual C++ Redistributable 2019
vcredist2019
- OpenJDK
openjdk
- .NET SDK
Note that I install my password manager separately, checking the hashes manually.
Other Installs §
Some of these programs are on Chocolatey but I prefer to install them manually.
- Adobe products
- Drawboard PDF for annotating PDFs
- Nvidia RTX Voice or Nvidia Broadcast
- Lyx
- Logitech G Hub
- Microsoft Office
- Microsoft Whiteboard
- Motherboard drivers, esp. audio
- My password manager
- Startup Delayer[9]
- Windows Terminal Preview
- Firefox
- Google Chrome
- Visual Studio Code `vsco
- Gaming
Chocolatey §
I usually set choco feature enable -n allowGlobalConfirmation
so I don’t have to press type y
or -y
for every package. The Chocolatey name is next to the name of software.
- A lot of bcurran3’s packages
- Choco Cleaner
choco-cleaner
Choco Optimize atRemoved from free tier of chocolateychoco-optimize-at
- Choco Upgrade All at
choco-upgrade-all-at --params "'/WEEKLY:yes /DAY:SAT /TIME:01:00'"
- Choco Cleaner
- ActivityWatch
activitywatch
- Corsair iCue
icue
- Dropbox
dropbox
- EA Origin
origin
- Epic Games Launcher
epicgameslauncher
- Java Runtime Environment
jre8
- JetBrains Mono
jetbrainsmono
- Malwarebytes
malwarebytes
- OBS Studio
obs-studio
[10] - pyenv for Windows
pyenv-win
- Samsung Magician
samsung-magician
- Ubisoft Connect
ubisoft-connect
- Vivaldi
vivaldi
- Opera GX
opera-gx
- ZenTimings
zentimings
Windows Configuration §
I like my taskbar to use small buttons and never combine, and for multiple monitors, show on main taskbar and taskbar where window is open. I turn off User Account Control (UAC).
I ran into a weird bug where I couldn’t create new folders. For some reason,
HKEY_CLASSES_ROOT\Folder
in regedit had (Default)
set as pdf_auto_file
. I changed it to Folder
, signed out and back in, and things worked again.
If necessary, I use ShellMenuView to edit the right-click context menu.
I boost my microphone and change headphone equalizer settings.
Optional features can be added with “Turn Windows features on or off.” I add Windows Sandbox, Virtual Machine Platform, and [Windows Subsystem for Linux](#Windows Subsystem for Linux).
Copy From Backup §
I copy over everything from Dropbox from the old drive. I copy over my folder of git repositories which takes longer than it should due to node_modules folders.
I copy wallpapers from my wallpaper folder to the default DesktopBackground folder (I get most of my wallpapers from wallpaperhub.app)
I install various fonts as needed.
Change Folders and Search Options §
Show hidden files, folders, and drives.
Uncheck “hide extensions for known file types”.
Smaller Programs Configuration §
For espanso, I copy over my default.yml file.
Keypirinha §
I configure Keypirinha to use alt+space and startup. I install PackageControl which contains packages from ueffel’s Package Repository. These are the packages I install:
Some plugins weren’t working for me, including Command and sharex.
Everything §
Start on startup, run as admin, install and use the everything service. I change the show window hotkey: CTRL+ALT+SHIFT+SPACE.
7-Zip §
Associate with all formats and integrate into explorer shell (context menu).
Zotero §
Copy over the user profile folder at C:\Users\<User Name>\AppData\Roaming\Zotero\Zotero\Profiles\<randomstring>
.
I store my Zotero storage folder in cloud storage. One should make a directory junction (as opposed to symlinks or hardlinks) to storage, since a junction will be valid even when viewed over the network from another computer while a symlink will not. Use mklink /J storage TARGET_PATH
.[11]
I install the BetterBibTex plugin.
Steam §
I store some games in other drives. To re-add the libraries to Steam, go to Steam > Settings > Downloads > Steam Library Folders.
Also turn off start on boot using Steam > Settings > Interface.
Firefox Configuration §
I sync my settings, which installs most of my browser extensions. Regarding browser extensions, my essential ones are Privacy Badger and uBlock Origin. Here’s how I configure a few others:
Enhancer for YouTube— speed up to 1.2x, control volume with mouse cursor, autoplay at higher quality. Note that it can be worth it to play at a higher quality than your monitor resolution due to compression.
Tab Unloader for Tree Style Tab — tabs unloaded should be hidden from top and only shown in the sidebar. Unfortunately, I can’t seem to get it working like it used to.
Foxy Gestures - I customize my gestures to be more like old Opera.
Hardware Configuration §
144hz Display §
Nvidia control panel — Enable for windowed and full screen mode.
For other settings I follow Blur Buster’s Optimal G-Sync Settings
Developer-Related Configuration §
Git Configuration §
Open git bash and enter:
git config --global user.name "First Last"
git config --global user.email "myemail@email.com"
I copy over my old SSH keys as well.
Python Configuration §
Use pyenv-win from chocolatey and conda. Turn off Python’s app execution aliases in Windows to prevent the Microsoft Store from opening up when trying to use Python
pyenv update
pyenv install --list
pyenv install 3.x.x
pyenv global 3.x.x
Conda §
Generate a new GUID using New-Guid
command in powershell. Windows terminal configuration:
{
"guid": "{af025e50-575e-4298-b3bf-19aa00e1df57}",
"name": "Anaconda Powershell",
"commandline": "powershell.exe -ExecutionPolicy ByPass -NoExit -Command & 'C:\\Users\\USERNAME\\scoop\\apps\\anaconda3\\current\\shell\\condabin\\conda-hook.ps1' ; conda activate 'C:\\Users\\USERNAME\\scoop\\apps\\anaconda3\\current\\envs\\general'",
"hidden": false
},
You can customize it further.
Jupyter Lab §
I install ipyvolume and ipympl
NPM and Node §
WIP
Windows Subsystem for Linux §
The installation guide is here. Make sure you enable the two required optional features (oxymoron) using “Turn Windows features on or off” or the PowerShell commands in the guide.
Includes npm. ↩︎
I used to use Peazip, but startup time was too slow. ↩︎
Too many chocolatey packages will slow this down. ↩︎
actually MikTeX ↩︎
Non-portable, for the context menu item. ↩︎
install jre8 with chocolatey ↩︎
calibre-normal
is the non-portable version. ↩︎Sometimes GUIs are nice, especially if you don’t want to memorize all the keyboard shortcuts. ↩︎
Dropbox and OneDrive interfere with the screen capture shortcuts that I want to give to ShareX, so I ensure ShareX starts first using Startup Delayer. ↩︎
Can’t be installed with scoop because plugins don’t persist across versions. ↩︎
Note that
mklink
exists in the command prompt but not PowerShell. ↩︎