My personal config files managed with chezmoi.
| App | Description |
|---|---|
| btop | System monitor |
| cava | Audio visualizer |
| fastfetch | System info |
| fish | Shell |
| ghostty | Terminal emulator |
| mpv | Media player |
| niri | Wayland compositor |
| opencode | AI coding assistant |
| paru | AUR helper |
| vivaldi | Browser (config only) |
| yay | AUR helper |
chezmoi init --apply https://github.com/Linuxuser67/dotfiles.git| Command | Description |
|---|---|
dots-capture <file> |
Explicitly review and capture one public target |
dots |
Review, commit, and push already-captured public changes |
chezmoi apply |
Apply the source state to this machine |
chezmoi edit <file> |
Edit a file in the source dir |
chezmoi update |
Pull the latest source and apply |
chezmoi cd |
Jump into the source dir |
dots is deliberately fail-closed for the public repository:
- It never runs broad
chezmoi re-add; usedots-capture <file>for an explicit, reviewed public target under~/.config. - It refuses untracked files and stages only already-approved tracked paths.
- It runs the local
dots-upload-guardagainst the complete Git index and all local refs before commit/push. - It asks for confirmation before committing and pushing.
- ChezMoi automatic commits and pushes are disabled.
The active guard is the installed copy at ~/.local/bin/dots-upload-guard;
the repository copy is source material, not the enforcement boundary. The
trusted public allowlist lives outside the repository at
~/.config/dots-upload-guard/policy.json and must be initialized explicitly:
python3 ~/.local/bin/dots-upload-guard --repo ~/.dotfiles --init-policy --accept-baselineThe guard is accident prevention, not an absolute boundary: a deliberate
git push --no-verify, a different clone without the guard, or a manually edited
local policy can bypass it. Do not put private files in this public repository;
use a private repository or secret manager for those files.
The source dir follows chezmoi conventions:
| Source | Target |
|---|---|
dot_config/fish/config.fish |
~/.config/fish/config.fish |
dot_local/bin/executable_dots-upload-guard |
~/.local/bin/dots-upload-guard (executable via executable_ prefix) |
private_fish_variables, OpenCode service/session state, credentials, and nested
Git metadata are local-only and must not be added to the public source.
Repo-only files (not managed by chezmoi): README.md, .gitignore, .chezmoiignore, .chezmoi.toml.tmpl (chezmoi's own config template).