Shared Utilities & Command-Line Tools
All machines managed by this flake come with a carefully curated set of small but powerful command-line programs. The goal is to provide a consistent and delightful developer experience on both NixOS and macOS (Darwin).
Why these tools?
- A predictable environment across every computer you log in to.
- Fast and modern replacements for the ageing default utilities.
- Sensible defaults and the lovely Catppuccin colour palette out-of-the-box.
How packages are installed
- System packages – added to
environment.systemPackages
, they are available to every user. - User packages – installed with Home-Manager so each user gets their own copy and can opt-out if desired.
The lists below are grouped by purpose so you can quickly see what is installed and why.
System packages
Package(s) | Purpose |
---|---|
wget / curl | Download files over HTTP / HTTPS |
coreutils | GNU core utilities (ls , cp , mv , …) |
unzip | Extract .zip archives |
openssl | Cryptographic toolkit and SSL/TLS helpers |
dnsutils | DNS look-ups (dig , nslookup ) |
nmap | Port scanner and network exploration |
util-linux | Assorted low-level system utilities |
whois | Query domain registration information |
moreutils | Additional Unix toys such as sponge |
git | Distributed version control |
age / sops / ssh-to-age | Encryption and secrets management |
tcpdump | Network packet capture |
nvd | Diff Nix package versions |
User packages (Home-Manager)
Package | Purpose |
---|---|
tlrc | A colourful tldr client |
fontconfig | Font configuration utilities |
fd | Faster alternative to find |
jq / yq | JSON and YAML processors |
direnv | Automatic loading of .envrc files |
atac | REST & GraphQL API tester |
comma | Run a binary from the Nix registry without installing it |
autojump | Smart directory jumping |
ollama | Local LLM manager |
nixvim | Custom Neovim distribution |
Modules that add extra configuration
Some programs benefit from additional setup. The .nix
files in this folder provide sensible defaults, shell integrations and themed output.
Module | What it configures |
---|---|
zsh.nix | Z-shell with plugins, aliases and Catppuccin syntax highlighting |
starship.nix | Beautiful prompt with Git integration |
kitty.nix | GPU-accelerated terminal with transparency & blur on macOS |
direnv.nix | Enables direnv and hooks it into Zsh |
eza.nix | Modern replacement for ls with icons |
yazi.nix | TUI file manager |
zoxide.nix | Jump to directories you visit regularly |
fzf.nix | Fuzzy finder wired into the shell |
bat.nix | Syntax-highlighted cat replacement |
ripgrep.nix | Ultra-fast text search |
bottom.nix | TUI resource monitor (think htop on caffeine) |
k9s.nix | Kubernetes dashboard in the terminal |
ssh.nix | Opinionated SSH client configuration |
sops.nix | Age + SOPS integration for secret management |
nh.nix | Quality-of-life helper for working with Nix flakes |
Cross-platform considerations
Each module contains conditional logic so that:
- File paths are correct on both Linux and macOS.
- Persistent data is stored on ZFS datasets when they are available.
- macOS-specific niceties, such as Keychain integration, Just Work™.
Usage
After activating the system (nixos-rebuild switch
or darwin-rebuild switch
) the utilities are ready to use. Many come with handy aliases defined in zsh.nix
– feel free to tweak them to your liking.