Setting up a new Windows laptop recently, I made notes on what I had to install to get a functioning system that worked for me, personally.

From WinGet

This is a curated list of WinGet package identifiers that should specify the exact app to be installed. To install, run winget install -e --id, tacking on a Package ID below. The -e flag means “exact”, and further prevents installing unofficial/alternate packages.

e.g. winget install -e --id package1

NamePackage IDNotes
Adobe Acrobat ReaderAdobe.Acrobat.Reader.64-bitworks with the widest range of strange PDF forms
AudacityAudacity.Audacityfor recording and editing audio
batsharkdp.batlike cat but with syntax highlighting, for viewing files on the CLI
BitwardenBitwarden.Bitwardenpassword management
deltadandavison.deltasee Delta
ezaeza-community.ezals with better UX
fdsharkdp.fdfind files quickly; used by my Neovim setup
GitGit.Gitcode versioning and source control management
Google DriveGoogle.GoogleDrivestore and share files in the cloud
hexylsharkdp.hexyla CLI hex viewer
lazygitJesseDuffield.lazygita CLI GUI for git
LINELINE.LINElike messenger, but more common in Asia
Logitech Options+Logitech.OptionsPluscontrol software for my mouse
Microsoft PowerToysMicrosoft.PowerToysa collection of Windows tools for power users
NeovideNeovide.Neovidesee Neovide
NeovimNeovim.Neovim.Nightlysee Neovim
nomacsnomacs.nomacsfree and open source image viewer with wide-ranging format support
Notepad3Rizonesoft.Notepad3a better Notepad, but same minimal footprint
OBS StudioOBSProject.OBSStudiofor recording the screen to video
ObsidianObsidian.Obsidianknowledge management and notes
Oh My PoshJanDeDobbeleer.OhMyPoshbetter PowerShell prompts
pastelsharkdp.pastelcolor manipulation for CLI
PythonPython.Python.3.12sometimes required by, of all things, Node.js
ripgrepBurntSushi.ripgrep.GNUsearch the contents of files quickly; used by my Neovim setup
sed-windowsmbuilov.sedCLI text editor used for find & replace in Neovim
SignalOpenWhisperSystems.Signallike messenger, but private and secure
SyncthingSyncthing.Syncthingsync files between my devices
VoltaVolta.Voltamanage Node.js versions and globally installed node CLI tools
WizTreeAntibodySoftware.WizTreequickly find and analyse how disk space is being used
zoxideajeetdsouza.zoxidea better cd with handy shortcuts

These tools are purely for work, and I’ve kept them separate:

NamePackage IDNotes
.NET SDK 8.0Microsoft.DotNet.SDK.8
Azure CLIMicrosoft.AzureCLI
Microsoft TeamsMicrosoft.Teams
Visual Studio 2022 CommunityMicrosoft.VisualStudio.2022.Communityalso install the Desktop development with C++ workload, which is required by obscure things like node-gyp
Visual Studio CodeMicrosoft.VisualStudioCode

From Scoop

I only tend to install from Scoop when WinGet doesn’t work. Similar to above, run scoop install package_id substituting any one or more IDs below.

NamePackage IDNotes
GNU Compiler Collection (gcc)gccNeeded for some Neovim packages
makemakeNeeded for some Neovim packages
numbatnumbat

From NPM

Some CLI tools are only available from NPM, so I manage them through Volta by running volta install and related commands.

Package IDNotes
serveeasily web serve a local directory
wranglerWrangler for deploying Cloudflare Pages