mikejsavage.co.uk
•
About
•
Archive
•
RSS
•
Thanks for blocking ads!
Blocking ads owns:
AdGuard
uBlock Origin
18 Nov 2023 • 2023 Windows post-install checklist
This is a guide on how to set up Windows to not be annoying. You should set aside a few hours to go
through everything. Most steps, but not all, are detailed enough that you can autopilot your way
through it.
Initial setup and disabling security features
- Install the correct version. You want Windows 10 IoT Enterprise LTSC 21h1, which is pretty
stripped down out of the box and doesn't get feature updates. 21h1 is more or less a strict
downgrade from 1909 because you can't disable Windows Defender which tanks perf hard. You can't
install Visual Studio on LTSC 1909 anymore and none of the solutions for installing on older
versions of Windows actually work, so 21h1 it is.
- In the installer, do domain join instead of creating a web account. Say no to all the
location/telemetry garbage.
- Click the start button, Settings, Update & Security, Windows Update, Check for updates. Don't
reboot yet.
- Start, Edge, download another browser, e.g. Vivaldi.
- Install Search Everything. Sort by descending run count, and close
window on execute. Right click on things and set run count to seed them to appear at the top.
- Install AutoHotKey. Put a shortcut to your AHK script in
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
. See below for an example. - Install video drivers. If you have an NVIDIA GPU, use NVCleanstall because it's
easier and lets you skip GeForce Experience, unlike the official installer. If you used the
official installer you can just uninstall it afterwards anyway.
- Open Control Panel (search for it in the start menu or Control Panel.lnk/control.exe in
Everything):
- User Accounts, User Accounts (again), Change User Account Control settings, disable it.
- Programs, Turn Windows features on or off, check Windows Subsystem for Linux, this takes ages,
don't reboot yet.
- System and Security, Windows Defender Firewall, Turn Windows Defender Firewall on or off, turn
it off. Don't kill the service or it breaks the Windows Store, which then breaks WSL.
- System and Security, System, Rename this PC.
- System and Security, Security and Maintenance, Change Security and Maintenance settings. Turn
off all the security messages.
- Open settings, Update and Security, Windows Security, Virus & threat protection, Virus & threat
protection settings, Manage settings, disable everything, including tamper protection.
- gpedit.msc, Computer Configuration, Administrative Templates, System, Power Management, Sleep
settings, Require a Password when the computer wakes, Disabled.
- secpol.msc, Local Policies, Security Options, UAC: Run all administrators in Admin Approval Mode,
Disabled.
- devmgmt.msc, Mice and other pointing devices, [your mouse], Power Management, uncheck Allow this
device to wake the computer. This stops moving the mouse from waking your PC from hibernate.
- Ctrl+alt+del, More details, Startup, disable Windows Security notification icon and Microsoft
Edge.
- Download the Sysinternals Suite to use in a moment.
- Reboot into safe mode: Ctrl+Escape to open the start menu, power, shift click reboot, in the
startup menu go Troubleshoot, Advanced Options, Startup Settings, Restart. Then select safe mode
when it comes up again. If that doesn't work, Start your PC in safe mode in Windows.
- Run autoruns from the Sysinternals Suite you just downloaded. Uncheck the Hide Microsoft/Windows
entries "checkboxes" in the top bar, then disable the following:
- WSearch (Windows Search)
- WpnUserService and the one with an _asdf suffix (Windows Push Notification System
Service/Windows Push Notification User Service). This is the only way to disable the firewall
spam popups.
- SysMain (used to be called Superfetch)
- Sense/WdNisSvc/WinDefend (Windows Defender). This is quite pointless because it just turns
itself back on.
- wscsvc (Security Center)
- Reboot back to normal mode.
Disable everything else
- Make a documents folder somewhere that isn't My Documents. Too much software uses it as a dumping
grounds so it's not really usable for its intended purpose nowadays. I used C:\Users\mike\Mike
and psubst that to X:\, some people use stuff like C:\Docs.
- Win+E, View, Options, View. Check Show hidden files, folders and drives. Uncheck Hide empty
drives. Uncheck Hide extensions for known file types. Uncheck Hide protected operating system
files. Go down to Naviation pane, check Expand to open folder.
- Right click the desktop, Personalize, go through all of it including all the links. In
particular:
- Themes, Sounds, Sound Scheme, No Sounds.
- Start, disable stuff
- Taskbar, Combine taskbar buttons, Never. Put it on the left. Turn system icons on or off,
disable Action Center/Input Indicator/Meet Now.
- Right click the taskbar, Search, Hidden. Uncheck Show Task View button.
- Control Panel (control.exe):
- System and Security, System, Advanced system settings, Performance Settings..., disable almost
everything under visual effects, Advanced tab, set the pagefile size to 800MB. Go back to the
Advanced system settings window, Startup and Recovery Settings..., uncheck Automatically
restart if you want.
- Install the MarkC mouse acceleration fix.
- Open Settings:
- System:
- Display: Configure Night light.
- Sound: Disable all audio devices except the one you actually use. TODO blacklist the others
too so they don't get re-enabled randomly
- Notifications & actions: Off.
- Power & sleep: Probably set these to Never and Never.
- Devices. Typing, disable everything. AutoPlay, Off.
- Time & language. Set your time zone. Click Date, time & regional formatting, Change data
formats, pick what you like. Language, add UK, remove US.
- Gaming: Xbox Game Bar, Off. Game Mode, Off.
- Ease of Access. Keyboard, disable everything.
- Privacy. Go through every tab and disable basically everything.
- Update & security. For developers in the sidebar, enable Developer
Mode, disable Remote Desktop, disable never sleep when plugged in.
- Open PowerShell and set some registry keys:
- Make startup entries run more quickly:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Serialize" /v "StartupDelayInMSec" /t REG_DWORD /d "0" /f
- Don't show an option to search in Windows Store when opening unfamiliar file types:
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\Explorer" /v "NoUseStoreOpenWith" /t REG_DWORD /d "1" /f
- Disable window previews in the taskbar:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v "ExtendedUIHoverTime" /t REG_DWORD /d "30000" /f
- Disable the searching for a solution to this problem popup:
reg add "HKLM\SOFTWARE\Microsoft\Windows\Windows Error Reporting" /v "Disabled" /t REG_DWORD /d "1" /f
- Hide the Music folder:
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" /f
and reg delete "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{3dfdf296-dbec-4fb4-81d1-6a3438bcf4de}" /f
- Hide the Pictures folder:
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" /f
and reg delete "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{24ad3ad4-a569-4530-98e1-ab02f9417aa8}" /f
- Hide the Videos folder:
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" /f
and reg delete "HKLM\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{f86fa3ab-70d2-4fc7-9c99-fcbf05467f3a}" /f
- Hide the 3D Objects folder:
reg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" /f
and reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}" /f
WSL
- Install WSLtty. It is the only reasonable terminal emulator
on Windows. I have tried them all, everything else suffers from at least one of:
- Incapable of rendering text (alacritty, wezterm, ...)
- Drops to below 1FPS under normal use (Windows Terminal, ...)
- Clipboard issues (the old X server + Linux terminal trick)
- Renders itself inoperable under normal use (Windows Terminal)
If you pin it to the taskbar, right click the icon > right click WSL Terminal > Properties, set
the icon to C:\Windows\System32\cmd.exe. - Install AlpineWSL. It has pretty comprehensive repos and
comes with the least garbage (5MB!). Actually NixOS is the only Linux distro that won't
irreparably self destruct under normal use and you should use that, but I haven't figured it out
on WSL yet.
- Run
apk update; apk add openssh; ssh-keygen -t ed25519; ssh-keygen -f
/etc/ssh/ssh_host_ed25519_key -t ed25519
. Disable PasswordAuthentication in
/etc/ssh/sshd_config. Set up authorized_keys. Create sshd.vbs somewhere:
WScript.CreateObject( "shell.application" ).ShellExecute "WSL", "/usr/sbin/sshd", "", "open", 0
and copy a shortcut to %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
. apk add bind-tools coreutils ctags curl fish fzf git grep htop less man man-pages mdocml-apropos
p7zip the_silver_searcher tig tmux tree vim whois
Software I like
- 7-Zip. Go into settings and associate it with everything
that isn't zip. Disable all the junk context menu items.
- Create halt.bat somewhere containing
shutdown /s /t 0
. Create reboot.bat containing shutdown
/r /t 0
. Create hibernate.bat containing shutdown /h
. Use Everything to run these. - Search Everything. Sort by descending run count, and close window
on execute. Right click on things and set run count to seed them to appear at the top. halt.bat,
reboot.bat, Control Panel.lnk, Snipping Tool.lnk, vivaldi.exe, etc.
- Start Killer. Use Everything as a launcher instead.
- AltBacktick.
- Windows Auto Dark Mode.
- Clink.
- Dina font.
- Download psubst.
psubst X: C:\Users\mike\Mike /P
. - Sumatra PDF.
- Syncthing.
- Obsidian.
- Shairport4w. Airplay to your PC.
- Apple Music for Windows 10. You
need to modify setup.bat a bit to not kill any processes or install any dependencies and just
install Apple Music. Maybe also install it to Program Files and not Documents.
- mpv. Put yt-dlp.exe in the same folder.
Put sponsorblock_minimal.lua in
mpv/scripts. Periodically run
yt-dlp -U
. - ShareX. 21h1 LTSC nukes Win+Shift+S, you can point AutoHotKey at ShareX
to do the same thing (see below).
Dev tools
- Visual Studio
2022.
Install C++ build tools, Windows 11 SDK, and HLSL tools. JIT debugging is quite broken in VS22 so
just use RemedyBG.
- RemedyBG. See this Github issue to register it as a JIT
debugger.
- Install Microsoft
Store. Install
WinDBG preview.
- Git.
- CMake, sadly.
- NSIS.
- Intel Architecture Code
Analyzer.
- Vulkan SDK.
- Renderdoc.
- Nsight Graphics.
- Blender.
- Zeal. Make a hotkey in your text editor to open
dash://[selected text]
. - Path Editor. Add VS compiler stuff
(cl.exe, MSBuild.exe, rc.exe, use Everything to find where they are), IACA, and NSIS to path.
- Control Panel, System and Security, System, Advanced system settings, Environment Variables.
Point INCLUDE and LIB at VS and the Windows SDK. I have:
INCLUDE:- C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\include
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\shared
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\ucrt
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\um
- C:\Program Files (x86)\Windows Kits\10\Include\10.0.22000.0\winrt
LIB:- C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\lib\x64
- C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\ucrt\x64
- C:\Program Files (x86)\Windows Kits\10\Lib\10.0.22000.0\um\x64
This and the previous step are what vcvarsall.bat is supposed to do for you, except vcvarsall is
extremely slow for no reason and this isn't.
startup.ahk
This script maps capslock to escape, adds some hotkeys for launching/closing programs, and doesn't
open the start menu when you press the windows key.
InstallKeybdHook
#SingleInstance Force
SetCapsLockState( "Off" )
SetCapsLockState( "AlwaysOff" )
CapsLock::Escape
#e::Run( "X:\" )
#p::Run( "C:\Program Files\Everything\Everything.exe" )
#Enter::Run( "wt.exe" )
#x::WinClose( "A" )
#space::return
~LWin::Send( "{Blind}{vkE8}" )
#+s::Send( "^{PrintScreen}" ) ; then bind Ctrl+PrintScreen to "Capture region" in ShareX
#m:: { ; run "mpv.exe {clipboard}"
Run( Format( '"C:\Program Files\mpv\mpv.exe" "{1}" "--window-maximized"', A_Clipboard ) )
Tooltip( "mpv " . A_Clipboard )
SetTimer( ToolTip, -1000 )
}