Microsoft Windows for the avoidant

February 11, 2017 — December 8, 2023

Figure 1

1 Getting windows in a fit state for civilized usage

Martin Hoye said this perfectly:

I have modest requirements for “tolerable”, I’d like to think, but the process of getting Windows there from the defaults is really gritty. Microsoft’s front-end designers have done heroic work keeping their company’s quarterly bonus plan from bursting out of Windows’ chest like a Xenomorph with a Two-Week Executive MBA certificate, but you can see the Redmond incentive structure straining against their efforts at every turn, squirming in the ribcage of every undulating interaction. But the raw material we need is in there. We just need to scrape off a few layers of short term thinking.

The “tolerable” that I’m asking for isn’t really much muchness. I want to not see advertisements, popups or anything I don’t specifically ask for. I want to choose what’s in my taskbar and desktop and what’s not, and I’d like to have both of those things without signing up for accounts or services I don’t particularly want, need or trust.

You’d think that would be an easy bar to clear but the entire Win11 start-me-up experience has reminded me of a distinction I’ve seen drawn between “industry” and “business”; that is, “process improvement” v. “value extraction”. It’s a useful oversimplification but I think the stark difference between Win11 and, say, Win7 isn’t technical or cosmetic, but epistemic.

Windows 7, for any flaws it had, manifested a believe that process improvements were the way to give users something more valuable; Windows 11 treats whatever value you can extract from those users as the metric by which process improvement is judged. That’s the opposite of what you’d want as customer, but it’s so much easier to measure and that means it’s easier to manage and that has to be the same as better, right?

1.1 Minimising advertising

Modern windows is some kind of spam factory designed to distract you from what you came here for. This can be ameliorated but not fixed. See How to Disable All of Windows 10’s Built-in Advertising. I would happily pay $50 extra licensing fees for all advertising to be excluded from Windows, but that’s not an option they offer plebeians.

1.2 Package management

Missing homebrew, the excellent Mac package manage? (I presume no one misses yum or dpkg, the adequate-but-stodgy Linux package managers.) A windows equivalent seems to be Chocolatey. I’ve found no use for it yet, since everything I’ve needed so far seems to be in the Linux ecosystem. But your mileage will surely vary.

2 Conveniences

Debbie Ding solved a bunch of problems for me at once, recommending everything for search (free, looks fancy but closed-source), wox as a spotlight replacement (open source) and seer ($12.18) as a quicklook near-replacement.

The “power user” toolkit microsoft/PowerToys includes several tweaks to civilise the computing experience.

2.1 Clipboard management

See clipboard managers for the general case. Since 10.2018, windows has good clipboard management though and I would not bother installing anything extra.

2.2 Fresh.app equivalents

I want to have all my recently opened files and folders accessible with a keyboard shortcut. Who would not want that? People who do menially repetitive and narrow tasks, I suppose.

2.3 Application switching

Switcher?

3 Terminals

Cmder seems fine.

4 Securing things

Decent outgoing firewall? Complicated, but Windows Firewall Control comes recommended.

Disk encryption? Bitlocker is only for windows professional? Probably better than nothing.

Update: bitlocker ran well for about a month on my computer, then it bricked and no longer unlocks. Then I threw my windows computer into the ewaste.

5 SSH

Install OpenSSH. It is easy via windows settings, or slightly more complicated via PowerShell, if I want the SSH server as well at least.

6 Services

NSSM - the Non-Sucking Service Manager

nssm is a service helper which doesn’t suck. srvany and other service helper programs suck because they don’t handle failure of the application running as a service. If you use such a program you may see a service listed as started when in fact the application has died. nssm monitors the running service and will restart it if it dies. With nssm you know that if a service says it’s running, it really is. Alternatively, if your application is well-behaved you can configure nssm to absolve all responsibility for restarting it and let Windows take care of recovery actions.

7 Mouse/trackpad

Scroll wheel natural scrolling is available only via some tedious horror of manual tweaking in Registry Editor, or via powershell script:

Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters FlipFlopWheel -EA 0 | ForEach-Object { Set-ItemProperty $_.PSPath FlipFlopWheel 1 }
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Enum\HID\*\*\Device` Parameters FlipFlopHScroll -EA 0 | ForEach-Object { Set-ItemProperty $_.PSPath FlipFlopHScroll 1 }

Run that every time you plug a new mouse in, then unplug the mouse and plug it back in again.

Or use the FlipFlopWheel script.

8 AV

8.1 codecs

K-Lite Codec Pack Mega is necessary to get Windows talking to macOS and Linux regarding media formats (thanks for the tip, Ableton.) There is some complicated configuration and possible clashes between solutions; be careful.

8.2 Where are my VSTs?

Here:

64-Bit VST2: C:/Program Files/Steinberg/VSTplugins
64-Bit VST3: C:/Program Files/Common Files/VST3

To save veeeery long load times for plugins every time you change your sample rate, I can try excluding plugins from Windows Defender. This is probably a security risk.

9 Filesystem cantrips

9.1 Case-sensitive windows files system

NTFS is optionally case-sensitive. This is how you enable that via powershell.

<#
.RESOURCES
    Windows Central — How to enable NTFS support to treat folders as case sensitive on Windows 10
    https://www.windowscentral.com/how-enable-ntfs-treat-folders-case-sensitive-windows-10
#>
# Root of the folder you want to enable/ disable case sensitivity for
[string] $PathRoot = 'folder here'
# Enable ($true) or Disable ($false) CaseSensitivity
[bool] $EnableCaseSensitivity = $true
# Loop all folders, apply SetCaseSensitivityInfo
@(Get-ChildItem -Path $PathRoot -Recurse -Directory | Select-Object -ExpandProperty 'FullName') | ForEach-Object {
    cmd /c ('fsutil.exe file SetCaseSensitiveInfo "{0}" {1}' -f ($_,$(if($EnableCaseSensitivity){'enable'}else{'disable'})))
}

9.2 Burning USB boot drives

See flashing USB drives.

9.3 Reading Linux FS

Ext4 etc can be handled by Paragon extfs for windows (USD20).

9.4 Dual boot

When making space on a computer for Linux by shrinking the Windows partition, hiccups can arise. Mihai Neacsu, How to shrink a disk volume beyond the point where any unmovable files are located. Alex Che gives some useful tips about failure modes of the above method.

9.5 Windows Subsystem for Linux

A Linux that runs inside windows, kinda. Well supported; for information, see WSL.

Alternatively there are some classic alternatives…

9.6 Cygwin derivatives

Cygwin, is that still a thing? Gus pointed out in the comments, yes it is. This and the recent MSYS2 get you lots of linux and linux adjacent technology inside windows.

9.7 Partition management

Keywords: diskpart, bcdedit, bcdboot.

9.8 Disk encryption

TBD

10 Headless usage

apt install powershell
apt install krb5-multidev
ldconfig
apt-get install krb5-user

# Ensure `/etc/krb5.conf` default_realm is set to YOUR.REALM. You should get the correct result when you run the following command
pwsh
Enter-PSSession -Credential YOUR.REALM\<ident> -Authentication Kerberos <windows_machine_address>

11 Replacing Window with clones of windows

  • reactos duplicates windows but is open source
  • wine runs windows programs on Linux/macOS
  • Crossover (USD60) is a friendlier commercial version of wine. The compatibility testing is worth the price of admission.
  • Looking Glass is a windows VM with special support for high performance GPU app

12 Incoming