| Host | Role | CPU | GPU | Storage | Features |
|---|---|---|---|---|---|
| dayman | Laptop | Intel | NVIDIA | NVMe (disko) | TLP, Thunderbolt, Lid controls |
| nightman | Desktop | AMD | NVIDIA | NVMe + drives (imperative) | Triple monitors, Virtualization |
| lab | SBC / lab box | — | — | SATA (disko) | Minimal Hyprland, firewall off |
There is also a testvm target — a throwaway VM build (GNOME desktop) used to test config changes; it is not a physical host.
- NixOS 25.11 with Flakes
- Disko for declarative disk partitioning
- Home Manager for user environments
- Hyprland (Wayland compositor) with extensive customization
- Catppuccin Macchiato theme throughout
- Waybar, Wofi, SwayNC for desktop utilities
- GNOME is also available (used by the
testvmtarget)
- Editors: Cursor, VS Code, Neovim (LazyVim), Claude Code
- Languages: Python, Node.js, Go
- Tools: Git, Direnv, FZF, Ripgrep, Bat
- Containers: Docker, Libvirt/QEMU
- Terminal: Zsh + Starship, Zellij
- Claude Code, OpenCode, Codex, and OMP managed via Home Manager modules
- Shared skills under
home/modules/agent-skills/skills/symlink into~/.claude/skills/and~/.agents/skills/
- 1Password integration
- YubiKey support (PAM U2F)
- opnix (1Password-backed) for secret management
- NetBird mesh VPN (see
nix/modules/network/netbird.nix)
just update # Update flake inputs
just switch # Apply configuration (current host)
just build hostname # Build a specific host without applying
just deploy host ip # Remote deployment
just testvm hostname # Boot a host config in a throwaway VM
just testvm-headless h # Same, headless with SSH on a forwarded port- Clone repository
- Update hardware configuration for your system
- Run
just switch hostname - Change default password immediately:
passwd
- Updates:
just updatethenjust switch - Garbage collection: Runs automatically (daily, 3-day retention)
- VM testing:
just buildvm hostname, orjust testvm hostnameto boot it
Each host pins its own
system.stateVersion(set at install time and intentionally left alone per host — it is not a "current NixOS version" and should not be bumped on upgrade).
.
├── flake.nix # Entry point, defines hosts via mkSystem
├── nix/
│ ├── <host>.configuration.nix # Per-host system config
│ ├── modules/ # System modules (common, desktop, hardware, software, virtualization)
│ ├── disks/ # Disko layouts
│ ├── hardware/ # Per-host hardware configs
│ ├── profiles/ # Reusable system profiles
│ └── users/ # User definitions
└── home/
├── <host>.nix # Per-host Home Manager config
├── modules/ # Home Manager modules (shell, editors, desktop apps)
│ ├── agent-skills/ # Shared SKILL.md set for coding agents
│ ├── claude-code/ # Claude Code commands, plugins, settings
│ ├── opencode/
│ ├── omp.nix # OMP coding agent and LiteLLM discovery
│ └── hyprland/
├── configs/ # Application dotfiles
├── scripts/
└── wallpapers/
