Fold dotfiles-nixos into this repository #1
Reference in New Issue
Block a user
Delete Branch "nixos-migration"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Folds the separate
dotfiles-nixosrepository into this one, so a single repo owns machine configuration instead of two serving the same purpose.What this does
The 28 commits from
dotfiles-nixosare rebased on top of this repo'smain, followed by one commit removing the pre-NixOS tree.The branch tip is byte-identical to
dotfiles-nixos@main— verified withgit diff, which is empty.The two repositories turned out to be almost perfectly disjoint: exactly one tracked path collided (
.gitignore), resolved as the union during the rebase and then reset to the flake's own version, since the dotfiles-era entries no longer describe anything in the tree.What was removed, and why it is safe
The removal commit deletes 88 files:
.config/,.gitconfig,.github/, and the repo-local.claude/.Every one remains reachable in history for reference while the migration finishes.
The
.claude/deletions are worth calling out specifically, because they are superseded rather than dropped.modules/claude-code/claude-code.nixalready carries all 14 skills viaskills = ./skills, plusgitea-axiwhich the old copy lacked, and installshooks/attention-bell.shthroughbuiltins.readFile.settings.jsonis generated from the module's Nix attrset and has no repo file at all.Verification
nix eval .#nixosConfigurations.neogaia.config.system.stateVersionreturns26.05at the branch tip.The branch is fast-forwardable from
main.Before merging
One thing the reviewer should weigh, not blocking:
~/.dotfilesbare repo. That repo has$HOMEas its work tree, so the removal commit would delete the live~/.config/fish,~/.config/nvim,~/.gitconfigand the rest on a machine still running CachyOS.~/.dotfilesshould stay pinned to the currentmainuntil the migration actually lands.Commit messages
The rebased messages were rewritten to drop forge-specific and workflow references, since this repository is mirrored to GitHub where they resolve to nothing or to the wrong thing:
(task NNNN)suffixes,Address PR review:prefixes, and cross-references to task numbers in bodies. Each subject now names the change itself.Content is untouched — every commit tree is byte-identical to before the rewrite, verified pairwise.
— Claude
Bring the declarative half of ~/.claude into modules/claude-code and apply it when the Module is enabled: the global agent instructions (context = ./CLAUDE.md), the skills tree (skills = ./skills), the attention-bell hook, and settings.json (model = opus plus the Stop/Notification/SessionStart hook wiring). Runtime state (projects, plugins, cache, history, sessions) and the .credentials.json secret are left out, so login survives rebuilds and no secret enters the repo. Verified against the built home-files that ~/.claude/{CLAUDE.md,settings.json,skills,hooks/attention-bell.sh} are generated, the hook executable.0cb63b06f5to064971f601