Groundwork

Personal layer

Customize Groundwork without forking it.

Groundwork is a shared base, not an all-or-nothing box. Keep your personal preferences in local files and machine-local chezmoi data so you can keep pulling updates without losing your own habits.

Rule of thumb

Small personal additions go in .local files. Setup choices go in ~/.config/chezmoi/chezmoi.toml. Full ownership of a managed file means ignore it or maintain your own fork.

#Tier 1: local override files

Use this for the normal case: a few aliases, a different Git preference, or one tmux binding. These files are not managed by Groundwork, and they load after the shared defaults, so your local choices win.

~/.zshrc.localShell aliases, functions, exports, PATH additions, and prompt-adjacent tweaks.
~/.gitconfig.localPersonal Git preferences, conditional includes, aliases, and per-directory identities.
~/.config/tmux/tmux.local.confPersonal tmux options, bindings, status tweaks, and plugin settings.
example local shell override
$ cat >> ~/.zshrc.local <<'EOF'
alias c='clear'
export VISUAL=code
EOF
$ source ~/.zshrc

Some managed files have no .local overlay — starship.toml, the Ghostty config, ~/.claude/keybindings.json. For those, edit the managed source so your change and Groundwork's stay in one place: chezmoi edit --apply ~/.claude/keybindings.json. Your edit lives in your local copy of the source; if a later Groundwork update touches the same file, Git shows a visible conflict instead of silently overwriting you. If you find yourself diverging heavily from upstream in one of these files, that's Tier 3.

#Tier 2: re-answer setup choices

Choices that Groundwork already asks about live in ~/.config/chezmoi/chezmoi.toml. That file is machine-local. Edit it directly or re-run chezmoi init, then apply.

machine-local choices
$ chezmoi init
$ chezmoi diff
$ chezmoi apply

Use this tier for values like work-vs-personal machine, Git identity, password manager, code directory, reset behavior, signing key, and Obsidian vault name.

#Tier 3: full ownership

If you want to fully own an entire file, do not keep fighting chezmoi apply. Either ignore that file for this machine or maintain a fork.

Ignore a file locallyUse when one machine should stop receiving a managed file from Groundwork. Add the path to your local chezmoi ignore setup only after deciding you really want full ownership.
Fork GroundworkUse when your whole team or long-term personal setup should diverge from the upstream defaults.
Do not hand-edit managed targets

If you edit ~/.zshrc, ~/.gitconfig, or ~/.config/tmux/tmux.conf directly, the next chezmoi apply can replace your edits. Put personal changes in the local override files instead.