Home Manager configuration for macOS (aarch64-darwin) and Ubuntu/NixOS (x86_64-linux) machines.
# First-time setup
just bootstrap
# Apply config (reads $HM_FLAKE_ATTR from .envrc.local)
just switch.
├── flake.nix # Entry point: inputs, homeConfigurations, devShells
├── justfile # Task runner: switch, check, fix, update, gc
├── home-manager/
│ ├── home.nix # Main HM config
│ ├── modules/ # core/, programs/, shell/
│ └── config/ # Raw configs (.npmrc, iterm2.json, pi/)
├── secrets/ # agenix-encrypted secrets
├── docs/ # Detailed docs per topic
└── bin/ # bootstrap.sh, check-eval.sh
See AGENTS.md for the full architecture.
| Command | Description |
|---|---|
just switch |
Apply Home Manager config |
just check |
Validate evaluation + run tests |
just fix |
Format (alejandra) + lint (deadnix, statix) |
just update |
Update nixpkgs-unstable flake input |
just gc |
Garbage collect profiles older than 2 days |
| Doc | Topic |
|---|---|
| AGENTS.md | Full architecture, directory layout, conventions |
| docs/macOS.md | macOS-specific setup |
| docs/ubuntu.md | Ubuntu/NixOS setup |
| docs/atuin.md | Atuin shell history (setup, sync, troubleshooting) |
| docs/dev-env.md | Development environment details |
| docs/pi-deepseek.md | Pi coding agent with DeepSeek |
| docs/edge.md | Nixpkgs edge/unstable usage |
| docs/bookmarks.md | Browser bookmarks |
| docs/NixOS.md | NixOS-specific notes |
| docs/coding-agents.md | Personal experience with coding agents (Claude Code, Pi, OpenCode, etc.) |
