JC Logo Articles Blog Work About

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.

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.

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.

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

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.


  1. Includes npm. ↩︎

  2. I used to use Peazip, but startup time was too slow. ↩︎

  3. Too many chocolatey packages will slow this down. ↩︎

  4. actually MikTeX ↩︎

  5. Non-portable, for the context menu item. ↩︎

  6. install jre8 with chocolatey ↩︎

  7. calibre-normal is the non-portable version. ↩︎

  8. Sometimes GUIs are nice, especially if you don’t want to memorize all the keyboard shortcuts. ↩︎

  9. 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. ↩︎

  10. Can’t be installed with scoop because plugins don’t persist across versions. ↩︎

  11. Note that mklink exists in the command prompt but not PowerShell. ↩︎

Posted: 2020-12-06
Modified: 2022-09-27