Installation
cd dotfiles./core/install/installer.sh| Option | Description |
|---|---|
--force | Remove stale symlinks from other dotfiles before linking |
-h, --help | Show help |
# Standard install./core/install/installer.sh
# Clean install (removes old symlinks first)./core/install/installer.sh --forceThe installer runs these steps in order:
- Install Homebrew and Nix (if missing)
- Apply nix-darwin configuration (all packages via Nix)
- Set up language runtimes with mise
- Detect stale symlinks
- Create config symlinks
- Back up existing files (keeps the 7 most recent)
Package management (Nix)
Section titled “Package management (Nix)”All packages are managed through a Nix flake. Install priority:
- nixpkgs — primary source
- overlays — custom packages not in nixpkgs
- brew-nix — GUI apps compatible with brew-nix
- nix-darwin homebrew — fallback for problematic GUI apps / Homebrew-only CLI
- cargo install — Rust tools not available elsewhere
| File | Purpose |
|---|---|
core/nix/flake.nix | Nix flake entrypoint |
core/nix/darwin.nix | macOS system settings |
core/nix/overlays.nix | Custom package definitions |
domains/*/packages/home.nix | Per-domain user packages |
domains/*/packages/homebrew.nix | Per-domain Homebrew fallbacks |
Updating packages
Section titled “Updating packages”After changing package config, apply with:
# Quick update./core/nix/update.sh
# Full rebuild (slower, thorough)./core/nix/update.sh --rebuild
# After adding npm packages./core/nix/update.sh --node2nixAdding npm packages (node2nix)
Section titled “Adding npm packages (node2nix)”- Edit
domains/dev/packages/node2nix/package.json - Run
./core/nix/update.sh --node2nix
{ "dependencies": { "@anthropic-ai/claude-code": "*", "aicommits": "^1.0.0" }}Backups
Section titled “Backups”Existing config files are backed up automatically.
- Format:
{filename}.backup.{timestamp} - Example:
.zshrc.backup.20250123_012345