skills/daracci/nix-config/project-structure

project-structure

SKILL.md

Project Structure

Directory Layout

flake.nix           # Top-level flake definitions
flake/
  dev/              # Development shell, CI scripts, formatting
  ci/               # CI-specific flake and scripts
  home-manager/     # Home-Manager flake module
  nixos/            # NixOS flake module

modules/            # Reusable module fragments
  home-manager/     # Home-Manager specific modules
  nixos/            # NixOS specific modules

lib/                # Shared Nix functions and helpers
  builders/         # System and home builders (mkSystem, mkHome)

overlays/           # Nixpkgs overlays
pkgs/               # Custom packages and package sets

hosts/              # Per-machine NixOS configurations
  shared/
    global/         # Applied to ALL hosts
    optional/       # Optional features (gaming, containers, etc.)
  desktop/          # Desktop machines
    shared/         # Shared across all desktops
    <machine>/      # Machine-specific config
  laptop/           # Laptop machines
    shared/
  server/           # Server machines
    shared/
    <machine>/

home/               # User-specific Home-Manager configurations
  shared/           # Shared across all users
    global/         # Applied to all users
    applications/   # Application configs
    desktop/        # Desktop environment configs
    features/       # Feature modules (cli, etc.)
  <user>/           # User-specific configs
    <machine>.nix   # Machine-specific overrides
    os-config.nix   # OS config applied to all machines
    hm-config.nix   # Home-Manager entry point

docs/               # Project documentation

Key Files

File Purpose
flake.nix Flake inputs and outputs
flake.lock Locked input versions
.sops.yaml SOPS encryption rules
state.version NixOS state version
lib/builders/mkSystem.nix Host system builder
lib/builders/home/mkHome.nix Home configuration builder
modules/nixos/default.nix NixOS module exports
modules/home-manager/default.nix Home-Manager module exports
pkgs/default.nix Custom package registry
overlays/default.nix Overlay definitions

Finding Things

  • Host config: hosts/<type>/<hostname>/default.nix
  • User config: home/<username>/hm-config.nix
  • User on host: home/<username>/<hostname>.nix
  • NixOS module: modules/nixos/<category>/<name>.nix
  • HM module: modules/home-manager/<category>/<name>.nix
  • Custom package: pkgs/<package-name>/default.nix
  • Secrets: hosts/<type>/<hostname>/secrets.yaml or home/<user>/secrets.yaml
Weekly Installs
14
GitHub Stars
18
First Seen
Feb 21, 2026
Installed on
opencode14
claude-code14
github-copilot14
codex14
kimi-cli14
gemini-cli14