nixos_config/README.md
2026-03-10 21:58:35 +01:00

1.6 KiB

NixOS Configuration Layout

This repository is structured around explicit NixOS and Home Manager layers.

Directory Overview

  • nixos/hosts/<host>/
    • Host-specific configuration.nix and hardware-configuration.nix.
  • nixos/modules/
    • Shared NixOS modules:
      • base.nix
      • profiles/ (workstation.nix, server.nix)
      • wm/ (sway.nix, gnome.nix)
      • theme/ (stylix.nix)
  • home/users/
    • User base modules (alisceon, root).
  • home/profiles/
    • Shared Home Manager profile composition.
  • home/modules/
    • Home Manager feature modules grouped by programs/, services/, and wm/.
  • home/hosts/alisceon/
    • Host-specific Home Manager overrides for alisceon.
  • lib/
    • Shared helper libraries imported by modules.
  • util/
    • Local helper scripts.

Composition Rules

  • flake.nix is the single composition entrypoint for hosts.
  • NixOS host modules should import only host-local hardware config and rely on shared modules from nixos/modules.
  • Home Manager host overrides should stay small and contain only host deltas.
  • Reusable behavior belongs in nixos/modules or home/modules, not in host files.

Local Validation

Run these in your normal environment:

nix flake show
nix eval .#nixosConfigurations.electra.config.system.build.toplevel.drvPath
nix eval .#nixosConfigurations.tower.config.system.build.toplevel.drvPath
nix eval .#nixosConfigurations.tesla-nixos.config.system.build.toplevel.drvPath
nix eval .#nixosConfigurations.nuc.config.system.build.toplevel.drvPath
nix flake check --no-build