Personal NixOS and Home Manager configuration built on the upstream
vic/den default-template structure.
alpha: desktop workstation, media services, gaming, streaming, backup jobs.beta: laptop profile with the shared host baseline plus laptop-specific input, power, and display handling.
flake.nix: generated flake file. Regenerate it withnix run .#write-flakeafter changingflake-fileinputs.modules/defaults.nix: repo-wideden.defaultand shared host composition.modules/hosts/: host aspects.modules/aspects/: reusable den aspects. Compose these withincludes.modules/_services/: NixOS service modules imported by the service aspect.modules/_packages/: local package definitions and service-only packages.modules/checks.nix: flake checks.modules/git-hooks.nix: development shell and pre-commit hooks.knowledge/: OKF-style knowledge bundle for repo architecture, hosts, services, decisions, and runbooks.secrets.yaml: encryptedsops-nixsecrets.
- Configure generated aspects through
den.aspects.<name>. - Use
includesfor aspect composition. - Use
importsonly for real Nix module imports. - Put repo-wide defaults in
modules/defaults.nixviaden.default. - Keep related logic together, usually wrapped in the same aspect.
- Put reusable features in dedicated aspect files.
- Do not put plaintext secrets in the repo; use
sops-nix.
nix flake show
nix flake check
nh os switchRepo knowledge lives in knowledge/index.md. It uses markdown files with YAML frontmatter so the docs stay useful for both humans and agents.
Start with these runbooks:
- Make host-specific hardware and behavior easier to scan by extracting repeated bootloader, filesystem, CPU microcode, and user profile patterns only where the abstraction removes actual duplication.