dotfiles

Home

Chezmoi + rig/dots links.

SurfacePathApply
Runtime linksrig/dots/* → $HOMEbootstrap
Chezmoirig/home/chezmoi --source rig/home
Ghostty template datarig/home/.chezmoidata.tomlpublic [ghostty] defaults so config.tmpl applies without live Chezmoi data; config.local stays machine-only
direnvrig/home/private_dot_config/direnv/chezmoi (do not use mise)
fd ignorerig/home/private_dot_config/fd/ignorechezmoi
bat configrig/home/private_dot_config/bat/configchezmoi
atuinrig/home/private_dot_config/atuin/config.tomlchezmoi; db/key stay in ~/.local/share/atuin/
ast-greprig/home/sgconfig.yml → ~/sgconfig.yml (XDG copy under private_dot_config/ast-grep/)chezmoi; not a secrets scanner
DuckDBrig/home/dot_duckdbrcchezmoi; no auto-install extensions
xhrig/home/private_dot_config/xh/config.jsonchezmoi; sessions untracked
lnavrig/home/private_dot_config/lnav/configs/dotfiles/chezmoi
visidatarig/home/private_dot_config/visidata/config.pychezmoi
Agent Deck trialrig/home/private_dot_config/agent-deck/config.tomlchezmoi; isolated tmux -L agent-deck; no conductor
Apple textrig/home/private_dot_config/apple-text/chezmoi JSON + just apple-text; local overlay ignored; Apple text
IINA / Hammerspoonrig/home/dot_hammerspoon/ · rig/home/Library/Application Support/com.colliderli.iina/chezmoi loader + plugin + input_conf; overlay/history/plugin prefs untracked; IINA
usqlrig/home/dot_usqlrcchezmoi; no DSNs
yazirig/home/private_dot_config/yazi/ (yazi.toml, init.lua, keymap.toml, package.toml, theme.toml)chezmoi; locked plugins/flavors; gv opens VisiData
git XDGrig/home/private_dot_config/git/chezmoi

direnv + uv

Routine layout uv evaluation is activation-only: it activates the existing UV_PROJECT_ENVIRONMENT (default .venv) and returns an actionable error when the environment is absent. Package synchronization is an explicit .envrc action; call the direnv library function from an allowed project .envrc:

layout_uv_sync                 # uv sync --frozen, then activate
layout_uv_sync 3.12 --no-dev   # explicit Python and uv sync options

This keeps an ordinary cd from creating an environment, resolving packages, or reaching the network.

Yazi packages and theme

package.toml pins the official git, toggle-pane, and piper plugins plus the existing DuckDB, torrent, and notebook preview plugins. It also pins both Rosé Pine flavors; theme.toml maps rose-pine to dark mode and rose-pine-dawn to light mode.

Install the tracked lock after applying the home config. Use fully qualified references when intentionally refreshing the official plugin locks:

ya pkg install
ya pkg add yazi-rs/plugins:git
ya pkg add yazi-rs/plugins:toggle-pane
ya pkg add yazi-rs/plugins:piper

DuckDB horizontal preview scrolling uses Left Option-H / Left Option-L (<A-h> / <A-l>); Yazi's preset g h, H, and L navigation remains available. Ghostty maps the left Option key to Alt.

just home-diff
just check-zsh          # dots ↔ home parity
just check-yazi-config  # fields, locks, flavors, keys, isolated parse

Parity mirrors (dot_zshrc.tmpl, dot_p10k.zsh) stay in the Chezmoi source tree for cmp only. .chezmoiignore must list target paths (.zshrc, .p10k.zsh, AGENTS.md, IINA plugin .data/.preferences/history.plist/watch_later/screenshots) — source names match nothing. Gate: just check-chezmoi-ignore. Ghostty defaults live in rig/home/.chezmoidata.toml. Aliases: dot_zsh/aliases.zsh → ~/.zsh/aliases.zsh. Overrides: ~/.zshrc.local, untracked includes, optional ~/.config/ghostty/config.local. Nightly backup: dot_local/bin/executable_kopia-nightly + LaunchAgent template — Backup. See Shell, Terminal.

On this page