Skip to content

Package manifest

What is installed, where it is declared, and why. Choices follow requirement 17 (performance and security first, Rust implementations preferred) and the operator’s existing configs. Items that need an explicit decision are opt-in via my.features.<name> = true (set in my/private.nix); everything else is on.

AreaPackages / modulesNotes
coreutilsuutils-coreutils-noprefix (hiPrio), uutils-findutils, uutils-diffutilsRust coreutils ahead of GNU in PATH (base-packages.nix)
privilegesudo-rsmemory-safe sudo/su (hardening/permissions.nix)
base toolsgit, file, tree, pciutils, usbutils, smartmontools, cryptsetup, btrfs-progs, lm_sensors
boot/cryptosbctl (lanzaboote), systemd-cryptenroll (systemd)boot-crypto.nix
YubiKeypcscd, yubikey-manager, age-plugin-yubikey, age, sopsyubikey.nix
peripheralsusbguard + usbguard-notifier, fwupd, bluezhardening/peripherals.nix
sandboxingapparmor + apparmor-profiles, flatpak, xdg-desktop-portal, bubblewraphardening/sandbox.nix
networkNetworkManager, iwd, systemd-resolved, nftables, mihomo (+ metacubexd UI)hardening/network.nix
desktopPlasma 6, SDDM, PipeWire/WirePlumberdesktop-kde.nix (elisa, khelpcenter excluded)
input/fontsfcitx5 (rime, mozc), Noto/Noto CJK/Sarasa/Fira Code/JetBrains Mono (+ Nerd)locale-fonts.nix
anonymitytor (client + torsocks), tor-browsertor.nix
messengersSignal, Element — as Flatpaks (nix-flatpak) for portal-confined executionmessaging.nix; Telegram not installed by default
AreaPackagesNotes
shellfish (vi mode), starship, kitty, zellijidentical settings to the macOS config
Rust CLI kiteza, bat, fd, ripgrep, ripgrep-all, zoxide, skim, dust, xh, gping, trippy, bandwhich, rustscan, ouch, jaq, tailspin, hyperfine, tokei, procs, sd, btop, yazi, joshuto, tealdeer, lazygit, delta, difftasticclassic names aliased in fish (ls→eza, du→dust, curl→xh, …)
downloadsaria2 (RPC loopback-only), yt-dlp, qbittorrent-enhanced
editorsneovim (+ neovim-remote), VSCodium with the pinned extension setVSCodium instead of VS Code: no telemetry. Dropped ms-python.vscode-pylance (licence bound to Microsoft’s build; pyright LSP covers it). Switch back with programs.vscode.package = pkgs.vscode.
languagesRust nightly (rust-overlay: rust-src, llvm-tools, rust-analyzer; wasm32 + musl targets) + cargo-{edit,outdated,audit,machete,expand,llvm-cov,zigbuild}, zig; Go; Python 3 env (aiohttp, numpy, pylsp stack, ipykernel, …); Node 26 + pnpm; deno; uv, pipx; luarocksrust.nix, packages.nix
LSP/formatbash, ccls, dockerfile, fish, lua, pyright, stylua, nil, topiary, eslint, vscode-langservers, yaml-language-server, yamlfmt
browserFirefox + pinned arkenfox 144.0 + overrides, uBlock Origin (policy-installed)firefox.nix
crypto/mailgnupg + gpg-agent (SSH support, pinentry-qt), protonmail-bridge, protonmail-desktop, thunderbird
GUImpv, inkscape, wireshark, xournalpp, qalculate-qt, easylpac
misc CLIcaddy, mkcert, rclone, wget, rich-cli, trash-cli, 7zz, unar, ascii-image-converter, djvulibre, figlet, glow, gnuplot, imagemagick, librsvg, libqalculate, lolcat, lynx, numbat, pandoc, pngcrush, poppler-utils, w3m, tree-sitter, nix-prefetch, claude-code, wl-clipboard

Opt-in (my.features) — decide per machine

Section titled “Opt-in (my.features) — decide per machine”
ToggleAddsWhy not default
zoomzoom-usproprietary conferencing client with broad system access; enable only if needed
javatemurin-binlarge; only for JVM work
juliajulia-binlarge; only for Julia work
foundryfoundry (forge/cast/anvil)Ethereum tooling; only for that work
azureazure-clilarge; cloud-specific
androidAndroid SDK/emulatorseveral GiB, requires accepting Google’s licence; not yet ported
killSwitchnftables egress drop while mihomo is down (hardening/killswitch.nix)captive portals unreachable while on; gives mihomo a static service user

Dropped from the macOS manifest (platform-specific)

Section titled “Dropped from the macOS manifest (platform-specific)”

iina, pinentry_mac, mas, ideviceinstaller, the .app wrappers, Homebrew casks, the Apple-Keychain secret helpers, pyobjc-core, antigravity-cli/-ide (no Linux build), rayburst/motrix-next (not in Linux nixpkgs).

  • Catppuccin Latte theming — done in home/modules/theme.nix (pinned upstream theme files for bat, btop and yazi; kitty/starship/fish keep their own palettes). catppuccin/nix was rejected: it imports from derivations at evaluation time.
  • Android SDK: port androidenv.composeAndroidPackages behind my.features.android.
  • Emacs: the operator’s emacs overlay is present but disabled in both source configs; not ported.