Personal toolchain (a nix flake) + config (symlinked from home/), set up
via install.sh.
git clone <repo> ~/dotfiles
cd ~/dotfiles && ./install.shinstall.sh:
- Symlinks every file under
home/into the matching path in$HOME(relative symlinks, so the repo can be relocated). - Sets the default login shell to
zshif it isn't already. - Installs Determinate Nix if
nixisn't on PATH. - Starts
nix-daemonif it's not running (containers without systemd). - Installs the nix profile entry from this flake.
Idempotent — re-run safely after edits.
After first install, npm-based tools that aren't in nixpkgs:
npm install -g jj-stack @openai/codexjust # show available recipes
just upgrade # bump pins (flake.lock) and rebuild
just packages # list every tool with its resolved version
just rollback # revert to previous nix profile generation
just edit # open flake.nix in $EDITOREdit home/<...> files in place — they're symlinked, so $HOME edits
are repo edits. The starship prompt shows a yellow ● when there are
uncommitted changes here.
.
├── README.md
├── install.sh
├── justfile
├── flake.nix # nix profile source
├── flake.lock
└── home/ # mirror of $HOME, symlinked in by install.sh
├── .zshrc
├── .zsh_aliases
└── .config/
├── jj/config.toml
└── starship.toml
- nixpkgs:
cargo-binstall,delta,gh,go,jujutsu(jj),nodejs,starship,zellij. jj-domino— pulled from upstream flake (github:zombiezen/jj-domino), not nixpkgs.
Migrated off chezmoi + mise. Pattern based on https://github.com/jeremywmoore/dotfiles; context for the nix switch: https://gist.github.com/jeremywmoore/6c5a3349d1fa79ab474343c9f0feeab9.