nix-config
Reproducible system configuration for macOS and Linux using Nix flakes, nix-darwin, system-manager, and home-manager.
Built on flake-parts with easy-hosts for auto-discovered host management. Tasks are managed with mise.
Platforms
| Platform | System Config | User Config | Package Manager |
|---|---|---|---|
| macOS (Apple Silicon) | nix-darwin | home-manager | Homebrew + Nix |
| macOS (Intel) | nix-darwin | home-manager | Homebrew + Nix |
| Ubuntu Linux (headless) | system-manager | home-manager | Nix |
Quick Start
Bootstrap a fresh machine with a single command:
sh -c 'curl -sSfL https://raw.githubusercontent.com/RobertDeRose/nix-config/main/bootstrap.sh | bash -s -- <hostname>'
Or from a local clone:
./bootstrap.sh <hostname>
See Bootstrapping for details.
Key Design Decisions
- No flake.nix editing to add hosts – drop a directory into
hosts/and it’s auto-discovered. - Shared modules, per-host overrides – global config in
modules/andhome/, host-specific additions inhosts/<arch>-darwin/<hostname>/orsystems/<arch>-linux/<hostname>/. - Declarative Homebrew – casks, brews, and Mac App Store apps are managed via Nix and cleaned up automatically.
- Consistent Ayu Mirage theme – terminal, editor, multiplexer, and prompt all share the same color palette.