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
Name | Package ID | Notes |
---|---|---|
Adobe Acrobat Reader | Adobe.Acrobat.Reader.64-bit | works with the widest range of strange PDF forms |
Audacity | Audacity.Audacity | for recording and editing audio |
bat | sharkdp.bat | like cat but with syntax highlighting, for viewing files on the CLI |
Bitwarden | Bitwarden.Bitwarden | password management |
delta | dandavison.delta | see Delta |
eza | eza-community.eza | ls with better UX |
fd | sharkdp.fd | find files quickly; used by my Neovim setup |
Git | Git.Git | code versioning and source control management |
Google Drive | Google.GoogleDrive | store and share files in the cloud |
hexyl | sharkdp.hexyl | a CLI hex viewer |
Inkscape | Inkscape.Inkscape | free and open source vector graphics editor |
lazygit | JesseDuffield.lazygit | a CLI GUI for git |
LINE | LINE.LINE | like messenger, but more common in Asia |
Logitech Options+ | Logitech.OptionsPlus | control software for my mouse |
Microsoft PowerToys | Microsoft.PowerToys | a collection of Windows tools for power users |
NanaZip | 9N8G7TSCL18R | a 7-zip fork made to better integrate with Windows 11 |
Neovide | Neovide.Neovide | see Neovide |
Neovim | Neovim.Neovim.Nightly | see Neovim |
nomacs | nomacs.nomacs | free and open source image viewer with wide-ranging format support |
Notepad3 | Rizonesoft.Notepad3 | a better Notepad, but same minimal footprint |
OBS Studio | OBSProject.OBSStudio | for recording the screen to video |
Obsidian | Obsidian.Obsidian | knowledge management and notes |
Oh My Posh | JanDeDobbeleer.OhMyPosh | better PowerShell prompts |
Paint.NET | dotPDN.PaintDotNet | free and open source Photoshop alternative |
pastel | sharkdp.pastel | color manipulation for CLI |
Python | Python.Python.3.12 | sometimes required by, of all things, Node.js |
ripgrep | BurntSushi.ripgrep.GNU | search the contents of files quickly; used by my Neovim setup |
Signal | OpenWhisperSystems.Signal | like messenger, but private and secure |
Syncthing | Syncthing.Syncthing | sync files between my devices |
Volta | Volta.Volta | manage Node.js versions and globally installed node CLI tools |
WizTree | AntibodySoftware.WizTree | quickly find and analyse how disk space is being used |
zoxide | ajeetdsouza.zoxide | a better cd with handy shortcuts |
These tools are purely for work, and I’ve kept them separate:
Name | Package ID | Notes |
---|---|---|
.NET SDK 8.0 | Microsoft.DotNet.SDK.8 | |
Azure CLI | Microsoft.AzureCLI | |
Microsoft Teams | Microsoft.Teams | |
Visual Studio 2022 Community | Microsoft.VisualStudio.2022.Community | also install the Desktop development with C++ workload, which is required by obscure things like node-gyp |
Visual Studio Code | Microsoft.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.
Name | Package ID | Notes |
---|---|---|
GNU Compiler Collection (gcc) | gcc | Needed for some Neovim packages |
make | make | Needed for some Neovim packages |
numbat | numbat |
From NPM
Some CLI tools are only available from NPM, so I manage them through Volta by running volta install
and related commands.
Why Volta?
Volta manages Node.js/NPM tools independently from the Node.js instance currently being used, so it guarantees that these CLI tools will exist and remain functional, even across Node.js upgrades and switches. Volta also provides tools for managing and pinning Node.js versions in a variety of use cases.
Package ID | Notes |
---|---|
serve | easily web serve a local directory |
wrangler | Wrangler for deploying Cloudflare Pages |