Software

A catalog of software, utilities, games, and development tools I regularly install on Linux, macOS, and Windows systems.

Overview

This page serves as a reference for software I use, recommend, or routinely install when setting up a new machine.

Linux

System packages managed through APT and desktop applications through Flatpak.

Setup

Install Flatpak and configure Flathub

Installs Flatpak through APT and adds Flathub for the current user.

sudo apt install -y flatpak && flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

APT

Install all APT packages
sudo apt install -y apktool binwalk calibre cowsay curl ent ffmpeg fortune-mod gimp git handbrake imagemagick jq libreoffice lua5.4 micro mpv nala nodejs python3 racket thunderbird vlc yt-dlp
NamePackageDescription
ApktoolapktoolUnpacks Android APKs
BinwalkbinwalkFirmware analysis and extraction tool
calibrecalibreE-book manager and reader
cowsaycowsayMakes an ASCII cow say things
curlcurlCommand-line data transfer tool
ententPseudorandom number sequence test suite
FFmpegffmpegEverything-to-everything command-line media converter
fortunefortune-modDisplays random quotations
GIMPgimpPhoto editor
GitgitVersion control
HandBrakehandbrakeVideo transcoder
ImageMagickimagemagickCommand-line image wizardry
jqjqCommand-line JSON processor
LibreOfficelibreofficeOpen-source office suite
Lualua5.4Lightweight scripting language
MicromicroModern terminal text editor
mpvmpvMinimal command-line-oriented media player
nalanalaFriendlier command-line front end for APT
Node.jsnodejsJavaScript runtime environment
Pythonpython3Python programming language and runtime
RacketracketLisp dialect and programming language environment
ThunderbirdthunderbirdMail client
VLCvlcBecause Media Player chokes on half of the video formats
yt-dlpyt-dlpSwiss army knife for downloading online media

Flatpak

Install all Flatpaks
flatpak install --user -y flathub com.calibre_ebook.calibre com.vivaldi.Vivaldi com.vscodium.codium dev.geopjr.Tuba io.mpv.Mpv org.gimp.GIMP org.libreoffice.LibreOffice org.shotcut.Shotcut org.signal.Signal org.telegram.desktop org.videolan.VLC org.zotero.Zotero
NamePackageDescription
calibrecom.calibre_ebook.calibreE-book manager and reader
Vivaldicom.vivaldi.VivaldiMy favorite Chromium-based browser
VSCodiumcom.vscodium.codiumIDE for everything non-Java
Tubadev.geopjr.TubaMastodon client for Linux
mpvio.mpv.MpvMinimal command-line-oriented media player
GIMPorg.gimp.GIMPPhoto editor
LibreOfficeorg.libreoffice.LibreOfficeOpen-source office suite
Shotcutorg.shotcut.ShotcutOpen-source non-linear video editor
Signalorg.signal.SignalPrivate messaging client
Telegramorg.telegram.desktopMessaging client
VLCorg.videolan.VLCBecause Media Player chokes on half of the video formats
Zoteroorg.zotero.ZoteroResearch and citation manager

macOS

Command-line tools and desktop applications managed through Homebrew.

Homebrew Formulae

Install all Formulae
brew install apktool binwalk cowsay curl ent ffmpeg fortune git helix imagemagick jq libdvdcss lua micro mpv node openjdk@17 powershell python racket rizin udzura/lua51-mirror/lua51-mirror yt-dlp
NamePackageDescription
ApktoolapktoolUnpacks Android APKs
BinwalkbinwalkFirmware analysis and extraction tool
cowsaycowsayMakes an ASCII cow say things
curlcurlCommand-line data transfer tool
ententPseudorandom number sequence test suite
FFmpegffmpegEverything-to-everything command-line media converter
fortunefortuneDisplays random quotations
GitgitVersion control
HelixhelixModal terminal text editor written in Rust
ImageMagickimagemagickCommand-line image wizardry
jqjqCommand-line JSON processor
libdvdcsslibdvdcssLibrary for accessing encrypted DVDs
LualuaLightweight scripting language
MicromicroModern terminal text editor
mpvmpvMinimal command-line-oriented media player
Node.jsnodeJavaScript runtime environment
OpenJDK 17openjdk@17OpenJDK 17 runtime and development kit
PowerShellpowershellIdeally I would learn jq or Miller, but I still process data streams this way
PythonpythonPython programming language and runtime
RacketracketLisp dialect and programming language environment
RizinrizinReverse engineer binaries
Lua 5.1 Mirrorudzura/lua51-mirror/lua51-mirrorHomebrew tap providing Lua 5.1
yt-dlpyt-dlpSwiss army knife for downloading online media

Homebrew Casks

Install all Casks
brew install --cask alt-tab android-studio bluestacks calibre crystalfetch deezer discord draw-things genymotion gimp grandperspective handbrake libreoffice macwhisper malwarebytes megasync microsoft-teams parallels parallels-toolbox shotcut signal steam telegram temurin@17 the-unarchiver thunderbird utm vivaldi vlc vscodium webex webkinz whatsapp windows-app xiv-on-mac xquartz zotero
NamePackageDescription
AltTabalt-tabWindows-style window switching for macOS
Android Studioandroid-studioAndroid development environment
BlueStacksbluestacksAd-ridden Android emulator, but it's performant.
calibrecalibreE-book manager and reader
CrystalFetchcrystalfetchDownload Windows installer images on macOS
DeezerdeezerMusic streaming client
DiscorddiscordNot a good thing according to VSauce Michael
Draw Thingsdraw-thingsLocal AI image generation for Apple platforms
GenymotiongenymotionAndroid emulator for development and testing
GIMPgimpPhoto editor
GrandPerspectivegrandperspectiveDisk usage visualizer for macOS
HandBrakehandbrakeVideo transcoder
LibreOfficelibreofficeOpen-source office suite
MacWhispermacwhisperLocal audio transcription for macOS
MalwarebytesmalwarebytesTolerable on-demand virus scanner
MEGAsyncmegasyncMEGA cloud storage synchronization client
Microsoft Teamsmicrosoft-teamsWorkplace chat and meeting client
Parallels DesktopparallelsDesktop virtualization for macOS
Parallels Toolboxparallels-toolboxCollection of desktop utilities for macOS
ShotcutshotcutOpen-source non-linear video editor
SignalsignalPrivate messaging client
SteamsteamDRM games, good launcher
TelegramtelegramMessaging client
Temurin 17temurin@17Boring, reliable Java JDK.
The Unarchiverthe-unarchiverArchive extraction utility for macOS
ThunderbirdthunderbirdMail client
UTMutmVirtual machines for Apple platforms
VivaldivivaldiMy favorite Chromium-based browser
VLCvlcBecause Media Player chokes on half of the video formats
VSCodiumvscodiumIDE for everything non-Java
WebexwebexVideo meetings and workplace communication
WebkinzwebkinzWebkinz desktop game client
WhatsAppwhatsappMessaging client
Windows Appwindows-appMicrosoft remote desktop and cloud PC client
XIV on Macxiv-on-macFinal Fantasy XIV launcher for macOS
XQuartzxquartzX Window System implementation for macOS
ZoterozoteroResearch and citation manager

Windows

Applications and tools managed through Chocolatey.

Chocolatey

Install all Chocolatey packages
choco install -y 7zip androidstudio apktool bluestacks calibre curl discord everything ffmpeg foobar2000 forkgram gimp git goggalaxy handbrake helix imagemagick jq jre8 libreoffice-fresh lua malwarebytes megasync micro microsoft-teams-new-bootstrapper mpv nodejs-lts openjdk17 powershell-core powertoys python racket rizin shotcut signal steam sumatrapdf sysinternals temurin17 thunderbird vivaldi vlc vscodium webex yt-dlp zotero
NamePackageDescription
7-Zip7zipThe good unzipper
Android StudioandroidstudioAndroid development environment
ApktoolapktoolUnpacks Android APKs
BlueStacksbluestacksAd-ridden Android emulator, but it's performant.
calibrecalibreE-book manager and reader
curlcurlCommand-line data transfer tool
DiscorddiscordNot a good thing according to VSauce Michael
EverythingeverythingActual half-decent search index of your hard drive
FFmpegffmpegEverything-to-everything command-line media converter
foobar2000foobar2000Keep-it-simple music player
ForkGramforkgramTelegram client fork
GIMPgimpPhoto editor
GitgitVersion control
GOG GalaxygoggalaxyDRM-free games, bad launcher
HandBrakehandbrakeVideo transcoder
HelixhelixModal terminal text editor written in Rust
ImageMagickimagemagickCommand-line image wizardry
jqjqCommand-line JSON processor
Java 8 Runtimejre8The Java runtime I install when something inevitably requires Java 8.
LibreOfficelibreoffice-freshOpen-source office suite
LualuaLightweight scripting language
MalwarebytesmalwarebytesTolerable on-demand virus scanner
MEGAsyncmegasyncMEGA cloud storage synchronization client
MicromicroModern terminal text editor
Microsoft Teamsmicrosoft-teams-new-bootstrapperWorkplace chat and meeting client
mpvmpvMinimal command-line-oriented media player
Node.jsnodejs-ltsJavaScript runtime environment
OpenJDK 17openjdk17OpenJDK 17 runtime and development kit
PowerShellpowershell-coreIdeally I would learn jq or Miller, but I still process data streams this way
PowerToyspowertoysThere's really something for everyone in this utility. I wish they would implement more of it in the actual OS.
PythonpythonPython programming language and runtime
RacketracketLisp dialect and programming language environment
RizinrizinReverse engineer binaries
ShotcutshotcutOpen-source non-linear video editor
SignalsignalPrivate messaging client
SteamsteamDRM games, good launcher
SumatraPDFsumatrapdfDoesn't open every last PDF feature, but it's light and responsive.
SysinternalssysinternalsAdvanced Windows system utilities
Temurin 17temurin17Boring, reliable Java JDK.
ThunderbirdthunderbirdMail client
VivaldivivaldiMy favorite Chromium-based browser
VLCvlcBecause Media Player chokes on half of the video formats
VSCodiumvscodiumIDE for everything non-Java
WebexwebexVideo meetings and workplace communication
yt-dlpyt-dlpSwiss army knife for downloading online media
ZoterozoteroResearch and citation manager