2026-08-15 15:10:48 -04:00
2026-08-14 13:54:55 -04:00
2026-08-15 15:10:36 -04:00
2026-08-15 15:10:48 -04:00
2026-08-14 15:01:38 -04:00
2026-08-15 15:10:36 -04:00
2026-08-14 13:53:55 -04:00
2026-08-14 13:53:55 -04:00

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: paru for AUR packages (optional — the install script warns and skips AUR if missing). sudo for pacman.

  • macOS: Homebrew.

  • Secrets: age-encrypted files need the key at ~/.config/chezmoi/key.txt. Copy it there before chezmoi 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.

S
Description
No description provided
Readme
35 MiB
0 Stars 1 Watchers 0 Forks
Languages
Shell 78%
Go Template 10.4%
Python 9%
CSS 2.4%
TypeScript 0.2%