Notes · · updated
Louis's software recommendations (macOS, Windows & Linux)
Contents
This started life as a pure macOS list from my work Mac, which I used up until 2024. Since then my daily driver is a Windows machine, and at home I run Arch Linux exclusively. Having lived on all three, a lot of these tools are the same everywhere — so I’ve merged everything into one filterable catalogue and tagged each entry with the platforms it runs on.
Use the toolbar to search, filter by platform, or show only the tools I currently have installed or am actively using (marked with a ✓). Where there’s a clean one-liner to install something, it’s listed per platform.
The list is a living document — I re-sync it against what is actually installed on my machines every now and then (most recently against my Windows work PC; see the updated date above). Deprecated tools get swapped for their maintained forks rather than silently removed, so if you remember an entry that has changed name, that is why.
Installing things the easy way 📦
Do yourself a favour and use a package manager — you rarely need to hunt the web for installers again:
- macOS — Homebrew:
brew install <name>(orbrew install --cask <app>for GUI apps). It covers almost everything below. - Windows — winget
is built into modern Windows:
winget install <id>. Prefer a GUI? UniGetUI wraps winget, Scoop and Chocolatey in one window. - Linux — your distro’s package manager:
sudo pacman -S <name>(Arch),sudo apt install <name>(Debian/Ubuntu), orsudo dnf install <name>(Fedora). Homebrew works on Linux too. The Linux commands below usepacman(withyayfor AUR packages) as the representative — swap in your distro’s equivalent.
The catalogue
GUI
Battery charge limiter. Li-Ion cells last significantly longer when you cap the daily charge at ~80%.
brew install --cask aldente Tiling window manager for macOS — handy if you like a keyboard-driven tiling workflow, as I do.
brew install --cask amethyst Powerful keep-awake utility. Stops the Mac from sleeping — useful for long computations, filming a screen, or watching something.
mas install 937984704 Menu-bar manager that keeps status icons reachable when they would otherwise vanish behind the notch. See iBar for a free, less feature-rich alternative.
brew install --cask bartender Virtual audio driver for capturing system output (e.g. into OBS). Note: OBS has native output capture on macOS 13 "Ventura" and later.
brew install blackhole-2ch Celluloid
✓ in useClean GTK front-end for mpv — my IINA equivalent on Linux.
sudo pacman -S celluloid SFTP / cloud storage client with a friendly UI.
brew install --cask cyberduck winget install Cyberduck.Cyberduck Disk Inventory X
WinDirStat-style disk-space usage analyser (treemap).
brew install --cask disk-inventory-x A temporary floating "shelf" to collect files, links and clipboard items via drag-and-drop.
brew install --cask dropover HandBrake
✓ in useFree and open-source video converter / transcoder.
brew install --cask handbrake winget install HandBrake.HandBrake sudo pacman -S handbrake HiddenBar
Minimal menu-bar manager to hide icons that would otherwise disappear behind the notch.
brew install --cask hiddenbar Menu-bar manager that moves overflow icons into a second row so the notch stops hiding them.
mas install 6443843900 Native macOS front-end for mpv — in my opinion the best video player available.
brew install --cask iina Feature-rich terminal replacement. I run Powerlevel10k, and the default Terminal.app cannot render my fonts/themes correctly.
brew install --cask iterm2 Lightweight archiver for compressing/extracting a wide range of formats.
brew install --cask keka Krita
✓ in useFree and open-source raster image editor (also opens Photoshop files).
brew install --cask krita winget install KDE.Krita sudo pacman -S krita Save the current session of open apps and reopen it later — handy for getting a clean desktop before a presentation.
Clipboard-history manager. Also strips formatting on paste, which macOS oddly makes hard by default.
brew install --cask maccy Mount SSHFS, NTFS and EXT (Windows/Linux external disks and USB sticks) on macOS. Requires loading a kernel extension.
brew install --cask macfuse Easiest way to get a complete LaTeX runtime on macOS. Open the bundled "TeX Live Utility" occasionally and "Update all packages" to avoid incompatibilities.
brew install --cask mactex Window management via screen-edge snapping, like Windows Snap. See Rectangle for a free alternative.
mas install 441258766 ImPlay
✓ in useCross-platform mpv front-end with a lightweight ImGui interface — what I currently use as video player on Windows.
brew install --cask implay winget install tsl0922.ImPlay yay -S implay-bin Inkscape
✓ in useFree and open-source vector graphics editor — figures, diagrams, logos and SVG clean-up.
brew install --cask inkscape winget install Inkscape.Inkscape sudo pacman -S inkscape KiCad
✓ in useFree and open-source EDA suite for schematics and PCB layout. Has become genuinely excellent in recent versions.
brew install --cask kicad winget install KiCad.KiCad sudo pacman -S kicad Okular
✓ in useKDE’s universal document viewer — PDF, EPUB, DjVu and more, with proper annotations. A good Skim/Preview substitute outside macOS.
winget install KDE.Okular sudo pacman -S okular TeraCopy
✓ in useReplaces the Explorer copy dialog: queueing, pause/resume, verification hashes and a proper error list instead of one-by-one prompts.
winget install CodeSector.TeraCopy Twinkle Tray
✓ in useControl the brightness of external monitors from the system tray (via DDC/CI) — no more fiddling with monitor buttons.
winget install xanderfrangos.twinkletray QuickLook
✓ in useBrings macOS-style Quick Look to Windows: select a file in Explorer, press Space, see a preview. Plugins add Markdown, Office and more.
winget install QL-Win.QuickLook WireGuard
✓ in useFast, minimal VPN. I use the official client for the tunnel to my home server; Tailscale for the zero-config mesh in between.
brew install --cask wireguard-tools winget install WireGuard.WireGuard sudo pacman -S wireguard-tools OBS Studio
✓ in useThe go-to tool for screen recording and streaming.
brew install --cask obs winget install OBSProject.OBSStudio sudo pacman -S obs-studio WebKit browser by Kagi — a Safari-like feel that also runs Firefox and Chrome extensions.
brew install --cask orion Window management via edge snapping. An easier-to-use alternative to Amethyst, and a free alternative to Magnet.
brew install --cask rectangle PDF viewer focused on annotating and reviewing.
brew install --cask skim Shows system information (CPU, RAM, network, temps) in the menu bar.
brew install --cask stats Synergy
✓ in useSoftware KVM: drive several computers with one keyboard/mouse. Like Universal Control, but across macOS, Windows and Linux.
Cross-platform VNC remote-desktop client.
brew install --cask tigervnc-viewer Per-service browser/app router — e.g. open YouTube in Firefox, Netflix in Safari, everything else somewhere else.
brew install --cask velja Visual Studio Code
✓ in useMy primary text and code editor. See the extension list further down.
brew install --cask visual-studio-code winget install Microsoft.VisualStudioCode yay -S visual-studio-code-bin Zotero
✓ in useExcellent reference/citation manager for academic writing.
brew install --cask zotero winget install DigitalScholar.Zotero yay -S zotero-bin UniGetUI
✓ in useA polished GUI over winget, Scoop and Chocolatey — browse, install and bulk-update Windows packages in one place. The closest thing Windows has to a friendly app store for CLI package managers.
winget install MartiCliment.UniGetUI.UniGetUI Tailscale
✓ in useZero-config mesh VPN built on WireGuard. Reach all my machines securely from anywhere, no port-forwarding.
brew install tailscale winget install tailscale.tailscale curl -fsSL https://tailscale.com/install.sh | sh KDE Connect
✓ in useBridges phone and desktop: shared clipboard, notifications, file transfer and remote input over the local network.
winget install KDE.KDEConnect sudo pacman -S kdeconnect OrcaSlicer
✓ in useMy 3D-printing slicer — fast, feature-rich and supports a huge range of printers.
brew install --cask orcaslicer winget install SoftFever.OrcaSlicer FreeCAD
✓ in useOpen-source parametric 3D CAD modeller for mechanical design.
brew install --cask freecad winget install FreeCAD.FreeCAD sudo pacman -S freecad 3D Slicer
✓ in useOpen-source medical image computing platform — my go-to for viewing, segmenting and processing CT/MRI volumes.
brew install --cask slicer winget install Kitware.Slicer Audacity
✓ in useClassic open-source multi-track audio recorder and editor.
brew install --cask audacity winget install Audacity.Audacity sudo pacman -S audacity Blender
✓ in useThe open-source powerhouse for 3D modelling, sculpting, animation and rendering.
brew install --cask blender winget install BlenderFoundation.Blender sudo pacman -S blender PowerToys
✓ in useMicrosoft’s power-user toolkit: FancyZones window tiling, PowerToys Run launcher, Keyboard Manager, image resizer and much more. Essential on Windows.
winget install Microsoft.PowerToys Everything
✓ in useInstant filename search for Windows by indexing the NTFS MFT. Finds any file in milliseconds — nothing else comes close.
winget install voidtools.Everything 7-Zip
✓ in useThe definitive Windows archiver — high compression, wide format support, and it just works.
winget install 7zip.7zip ShareX
✓ in useFeature-packed screenshot and screen-recording tool with capture regions, annotations, and configurable upload/after-capture workflows.
winget install ShareX.ShareX CLI
aria2
✓ in useVery powerful multi-connection download utility (HTTP/FTP/BitTorrent/Metalink).
brew install aria2 winget install aria2.aria2 sudo pacman -S aria2 Homebrew
✓ in useThe package manager for macOS (and Linux). No more hunting the web for installers — "brew install firefox" and you are done. It installs most of the GUI apps in this post too.
btop
✓ in useA powerful, good-looking resource monitor for the terminal. On Windows the btop4win port does the job.
brew install btop winget install aristocratos.btop4win sudo pacman -S btop Run Linux containers anywhere. On Windows it runs on top of WSL2. Docker Desktop needs a licence for larger companies, which is why I switched to Podman.
brew install --cask docker winget install Docker.DockerDesktop sudo pacman -S docker Podman
✓ in useDaemonless, rootless drop-in replacement for the Docker CLI ("alias docker=podman" mostly just works). Podman Desktop adds a GUI if you want one.
brew install podman winget install RedHat.Podman sudo pacman -S podman dua
✓ in useFast parallel disk-usage analyzer. The interactive mode ("dua i") is the quickest way I know to find what is eating a full disk.
brew install dua-cli winget install Byron.dua-cli sudo pacman -S dua-cli FFmpeg
✓ in useThe Swiss-army knife for processing video, audio and other multimedia files and streams.
brew install ffmpeg winget install Gyan.FFmpeg sudo pacman -S ffmpeg ImageMagick
✓ in usePowerful image conversion/manipulation, e.g. "magick image.png image.jpg" (also PDF, mp4, etc.).
brew install imagemagick winget install ImageMagick.ImageMagick sudo pacman -S imagemagick Command-line interface for the Mac App Store — great for scripting and automating installs.
brew install mas neofetch
✓ in usePrints system info next to your OS logo — the classic terminal flex.
brew install neofetch yay -S neofetch pv
✓ in usePipe Viewer — measure throughput of data moving through a shell pipe.
brew install pv sudo pacman -S pv scrcpy
✓ in useView and control Android devices from the desktop over USB or Wi-Fi.
brew install scrcpy winget install Genymobile.scrcpy sudo pacman -S scrcpy speedtest-cli
✓ in useTest internet bandwidth from the terminal.
brew install speedtest-cli winget install Ookla.Speedtest.CLI sudo pacman -S speedtest-cli tree
✓ in usePrint directory structures as an indented tree.
brew install tree sudo pacman -S tree yt-dlp
✓ in useDownload video/audio from YouTube and hundreds of other sites. The actively maintained youtube-dl fork; pairs with FFmpeg.
brew install yt-dlp winget install yt-dlp.yt-dlp sudo pacman -S yt-dlp Typst
✓ in useModern typesetting system — LaTeX quality with a sane syntax and instant compiles. I use it for presentations and reports (see Tinymist below).
brew install typst winget install Typst.Typst sudo pacman -S typst WSL
✓ in useWindows Subsystem for Linux — a real Linux userland integrated with the Windows file system, VS Code and Windows Terminal. The main reason Windows is bearable as a daily driver.
wsl --install usbipd-win
✓ in useShare USB devices with WSL over USB/IP — flash microcontrollers or talk to serial adapters from Linux tooling inside WSL.
winget install dorssel.usbipd-win yay
✓ in useMy AUR helper on Arch — a pacman wrapper that also builds and updates packages from the Arch User Repository in one command (e.g. "yay -S <name>").
sudo pacman -S --needed git base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si Self-hosted
Nextcloud
✓ in useSelf-hosted cloud: files, sync, calendars, contacts and photos on your own hardware — my Dropbox/Google-Drive replacement for years, running on a Raspberry Pi.
Collabora Online
✓ in useLibreOffice-based office suite that runs in the browser, integrated into my Nextcloud — documents, spreadsheets and slides get edited right where they are stored, no desktop office install needed.
Forgejo
✓ in useLightweight self-hosted git forge (the Codeberg-backed Gitea fork): private repos, issues, PRs and CI via Forgejo Actions. This site deploys through it.
Podsync
✓ in useTurns YouTube and Vimeo channels into podcast RSS feeds — subscribe to creators in your podcast app instead of fighting the YouTube algorithm.
Quick Look
Render Markdown files in Quick Look.
Preview many more video types in Quick Look.
Syntax-highlighted Quick Look previews for source code.
Browser extension
ClearURLs
✓ in useStrips tracking parameters from URLs, making them shorter and cleaner to share.
Decentraleyes
✓ in useServes common CDN libraries locally to cut third-party tracking and speed up page loads.
SponsorBlock
✓ in useCrowd-sourced skipping of sponsor segments, intros and other filler on YouTube.
uBlock Origin
✓ in useThe one and only best content blocker — please don’t use anything else. Consider whitelisting sites you want to support; not every ad is malicious.
uMatrix
✓ in useAdvanced per-site script/content firewall for when uBlock Origin is not enough. Warning: can overwhelm new users.
VS Code extension
Better Todo Tree
✓ in useCollects TODO/FIXME tags from your code comments into a browsable tree. Maintained fork of the original Todo Tree, which is no longer updated.
code --install-extension fanaticpythoner.better-todo-tree C/C++ & CMake Tools
✓ in useMicrosoft’s C/C++ language support plus CMake Tools for configuring, building, debugging and testing CMake projects from the editor. My daily C++ setup at work.
code --install-extension ms-vscode.cpptools-extension-pack Code Spell Checker
✓ in useSpell-check your prose in code — especially useful for LaTeX and other documents. Additional dictionaries (e.g. German) are separate extensions.
code --install-extension streetsidesoftware.code-spell-checker Format in context menus
✓ in useRun a formatter across multiple files from the right-click menu.
code --install-extension lacroixdavid1.vscode-format-context-menu GitLens
✓ in useThe best in-editor git UI: blame, history, comparisons and more.
code --install-extension eamodio.gitlens LaTeX Workshop
✓ in useTurns VS Code into a great LaTeX authoring environment — in my opinion the best way to write LaTeX.
code --install-extension James-Yu.latex-workshop LTeX+
✓ in useHighly recommended grammar/spell checker (LanguageTool) tuned for LaTeX, Markdown, Typst and more. Catches higher-level mistakes, not just typos. Maintained fork of the abandoned LTeX.
code --install-extension ltex-plus.vscode-ltex-plus markdownlint
✓ in useStyle and consistency linting for Markdown — keeps READMEs and notes tidy.
code --install-extension DavidAnson.vscode-markdownlint Makes VS Code one of the best development environments for microcontrollers I have used.
code --install-extension platformio.platformio-ide Python + Pylance
✓ in useMicrosoft’s Python support with the Pylance language server: fast type-aware completions, refactorings, debugging and environment management.
code --install-extension ms-python.python Rainbow CSV
✓ in useEdit CSVs comfortably: colourises columns, aligns them, and runs SQL-like queries over the data.
code --install-extension mechatroner.rainbow-csv Remote - SSH / WSL
✓ in useWork on remote machines, containers or a WSL distro over SSH as if the files were local. On Windows, Remote - WSL is how I do most Linux-y work.
code --install-extension ms-vscode-remote.remote-ssh Sort lines
✓ in useSort selected lines — I used it to keep the original tables in this post tidy.
code --install-extension Tyriar.sort-lines Tinymist (Typst)
✓ in useLanguage server and live preview for Typst — the modern LaTeX alternative I now use for presentations and reports.
code --install-extension myriad-dreamin.tinymist Trailing Spaces
✓ in useHighlights and removes trailing whitespace — at worst it causes bugs, at best it is just ugly.
code --install-extension shardulm94.trailing-spaces vscode-mwel
✓ in useLanguage support for the MWorks Experiment Language (MWEL). Maintained by me. :)
code --install-extension padok.vscode-mwel Worth mentioning
Bitwarden
✓ in useThe password manager I use. I strongly recommend using a password manager in general — but do your own research on the security trade-offs of storing everything in one place. This is not a specific endorsement of Bitwarden.
Ventoy
✓ in useTurn a USB stick into a multi-boot drive: just copy ISOs onto it and boot any of them. Perfect if you install operating systems often.
No tools match those filters.
Recommended resources for more
- Awesome Mac — a huge curated macOS list: github.com/jaywcjlove/awesome-mac
- Awesome Windows — the Windows equivalent: github.com/Awesome-Windows/Awesome
- Awesome Linux Software: github.com/luong-komorebi/Awesome-Linux-Software
- Quick Look plugins (macOS): github.com/sindresorhus/quick-look-plugins