My cross-platform Nix configuration — a single flake that declaratively manages NixOS, WSL, and macOS (nix-darwin) machines, my dotfiles, my editor, and my theming.
Each host is named after a Shinto deity.
My day-to-day NixOS-on-WSL system (x86_64-linux), built on
NixOS-WSL.
An aarch64-linux NixOS virtual machine running the GNOME desktop on Wayland,
themed with Stylix.
My Apple Silicon Mac (aarch64-darwin), managed with
nix-darwin and
nix-homebrew.
- hjem — manages all user-level config files. Used standalone (no home-manager) to keep dotfile management fast and minimal.
- nh — wraps every NixOS/darwin
rebuild. All builds and switches go through
nhrather than the stocknixos-rebuild/darwin-rebuildcommands. - nvf — manages my entire Neovim configuration declaratively, shared across every host.
- Stylix — system-wide theming (Catppuccin Mocha by default; Gruvbox available).
- llm-agents — Numtide's flake packaging LLM coding agents; used here to provide Amp across every host.
- Shared package set — one common package list across all hosts plus per-host extras, covering shells, dev tooling, cloud CLIs, and more.
Note
This configuration does not use home-manager or other heavyweight modules. Dotfiles are handled by hjem standalone and the editor by nvf, deliberately keeping the module surface small to streamline build and switch times.
.
├── flake.nix # Entry point; defines all host configurations
├── flake.lock # Pinned inputs
├── system/ # Per-platform system config (wsl, darwin, aarch64-linux)
│ └── desktop-environment/ # GNOME / KDE Plasma
├── hardware/ # Hardware configuration (aarch64-linux)
├── home/hjem/ # User dotfiles via hjem
├── modules/ # nvf, stylix, nix-darwin, nix-homebrew modules
├── packages/ # Per-platform package sets + fonts
└── images/ # Screenshots used in this README
Clone the repo and apply the configuration for the relevant host with nh.
NixOS / WSL (Inari, Fujin):
nh os switch . -H inari # or -H fujinmacOS (Amaterasu):
nh darwin switch . -H amaterasu| Host | Platform | Builder | Config |
|---|---|---|---|
inari |
x86_64-linux |
NixOS (WSL) | .#inari |
fujin |
aarch64-linux |
NixOS | .#fujin |
amaterasu |
aarch64-darwin |
nix-darwin | .#amaterasu |


