nix-rebuild
Nix System Rebuild
After changing any Nix-managed config in ~/.config/dotfiles, the system must be rebuilt for changes to take effect. Nix store symlinks are read-only — you cannot edit them in place.
Quick Rebuild
cd ~/.config/dotfiles
sudo darwin-rebuild switch --flake .
darwin-rebuild has a NOPASSWD sudoers rule, so this works non-interactively.
Using hey
The hey command wraps rebuilds:
hey rebuild # or: hey re
hey test # build + activate without boot entry
hey rollback # roll back to previous generation
When to Rebuild
- After editing any
.nixfile - After editing config files symlinked through home-manager (lazygit, ghostty, etc.)
- When you see "permission denied" writing to a Nix store path
Workflow
- Edit source config in
~/.config/dotfiles/ - Commit changes
- Run
sudo darwin-rebuild switch --flake ~/.config/dotfiles - Verify the symlink now points to updated Nix store path
More from edmundmiller/dotfiles
jj-history-investigation
Investigate jj commit history, split commits, annotate file changes, and clean up redundant commits. Use when debugging history, splitting large commits, or rewriting shared history.
52tmux-status-debug
Debug and test tmux pane status detection for AI agents (opencode, claude, amp). Use when patterns aren't matching, status icons are wrong, or adding new detection patterns.
50using-jj-workspaces
Set up isolated jj workspaces for parallel development. Use when creating new workspaces, organizing workspace directories, or setting up gitignore for workspaces.
47agenix-secrets
>
46hass-config-flow
>
45nix-platform-specific-options
Write Nix modules with platform-specific options (NixOS vs Darwin) without infinite recursion. Use when mkIf causes evaluation errors or options don't exist across platforms.
43