- 16 cross-shell utilities converted to sh/bash chezmoi executables: ai c2p cp-appid extract_agents fab gdc gh-sonr-org-migrate ghg-clone ghn gho git-summary launch_omp_livediff_overlay lc-elir mdcp mdp pj (ghg-clone not named ghg: unrelated cargo binary owns that name) - cwd/history helpers stay per-shell: yy c cd clip-last + ghg/ghn/gho cd-wrappers in bash/functions/ and zsh/functions/, loaded by rc files - fish keeps only shell-state functions; converted ones now hit PATH - cp-appid ignore gating moved to .local/bin path - dot_agents/skills: 82 skills materialized from dotstate storage so dot_claude skill symlinks resolve on fresh bootstrap; dotstate profile/symlinks.json released .agents/skills .bashrc .zshrc
2.2 KiB
dotfiles
Managed with chezmoi. One command on any machine:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply git@github.com:prdlk/dotfiles
First apply prompts once for name, email, and machine role
(desktop | laptop | mac | server). Role gates the Linux desktop
layer (niri, noctalia, fontconfig, systemd user units) — mac and
server get the universal toolset only.
Prerequisites
-
Arch:
parufor AUR packages (optional — the install script warns and skips AUR if missing).sudofor pacman. -
macOS: Homebrew.
-
Secrets:
age-encrypted files need the key at~/.config/chezmoi/key.txt. Copy it there beforechezmoi apply(distributed manually, never committed):mkdir -p ~/.config/chezmoi scp <existing-machine>:.config/chezmoi/key.txt ~/.config/chezmoi/key.txt chmod 600 ~/.config/chezmoi/key.txt
What's managed
Universal: fish, bash + zsh (starship prompt, shared aliases), nvim
(AstroNvim), tmux, kitty, yazi, lazygit, lazydocker, gh (+ extensions),
starship, git, ssh config, Claude Code (settings/commands/hooks/skills).
Packages declared in .chezmoidata/packages.yaml, installed by
.chezmoiscripts (idempotent, re-run when the manifest changes).
Aliases are defined once in .chezmoidata/aliases.yaml and rendered
into fish (fish/conf.d/20-aliases.fish) and bash/zsh
(~/.config/shell/aliases.sh, sourced by .bashrc/.zshrc).
Shell utilities live as standalone sh/bash executables in
~/.local/bin (ai, c2p, fab, gdc, gho, ghn, ghg-clone, git-summary,
mdp, mdcp, pj, …) so all shells share one implementation. Helpers that
must mutate shell state (cd-style: yy, c, cd, ghg/ghn/gho wrappers,
clip-last) are per-shell functions in fish/functions/,
bash/functions/, and zsh/functions/.
~/.agents/skills (agent skill library) is managed directly; the
symlinks under ~/.claude/skills resolve against it.
Linux desktop (role desktop/laptop only): niri, noctalia,
fontconfig, mimeapps, systemd user units, niri-launch.
gh needs gh auth login once per machine; the extension install
script skips gracefully until then, and re-runs on the next apply.
See MIGRATION-NOTES.md for the dotstate → chezmoi migration record.