0006 Dotfiles vendored in-repo with chezmoi

accepted date 2025 (backfilled 2026-07-08) deciders jawn #adr
  • Context

    • Dotfiles lived in a standalone jonpulsifer/dotfiles repo, creating a second PR surface and a bootstrap dependency (network clone) on fresh hosts. home-manager was considered and rejected as too heavy for what is mostly static config.

  • Decision

    • Merge the dotfiles repo into dotfiles/ with history (git filter-repo) and keep them chezmoi-managed — not a flake input, no home-manager.

    • The repo-root .chezmoiroot points chezmoi at dotfiles/. On NixOS hosts, nix/system/chezmoi.nix carries the tree into the system closure and an activation script runs chezmoi apply --source <store-path> for jawn on every rebuild/boot.

  • Consequences

    • No network clone at activation time; dotfiles self-heal on every rebuild and are versioned with the infra that consumes them.

    • Edits under dotfiles/ ship on the next chezmoi apply/rebuild — one repo, one PR.

    • The WSL image needs no build-time seeding; the activation script applies dotfiles on first boot.

    • chezmoi remains usable standalone on non-NixOS machines pointed at the same source.

  • Links

Linked references 4

ADR

ADR/0006 Dotfiles vendored in-repo with chezmoi — no home-manager, no separate repo

Runbooks/Deploy a NixOS Host

Dotfiles are chezmoi-managed from the in-repo dotfiles/ tree. nix/system/chezmoi.nix carries that subtree into the system closure and runs chezmoi apply --source <store-path> during activation. See ADR/0006 Dotfiles vendored in-repo with chezmoi.

Architecture/NixOS

chezmoi-managed from the in-repo dotfiles/ tree; an activation script applies them from the store path on every rebuild/boot, no network clone. See ADR/0006 Dotfiles vendored in-repo with chezmoi.