Configuration Reference

June 11, 2026 · View on GitHub

All dotfiler configuration: zstyle keys, the exclusions file, and environment variables. Set zstyles in your .zshrc before sourcing check_update.zsh.


Paths — :dotfiles:*

Source: helpers.zsh. Each key reads the style named path; relative values resolve against the dotfiles directory.

KeyDefaultDescription
':dotfiles:directory' pathauto-detectedThe dotfiles repo location.
':dotfiles:scripts' path.nounpack/dotfiler inside the repoWhere dotfiler's scripts live (set for standalone installs).
':dotfiles:install' path.nounpack/install inside the repoThe install-modules directory.
':dotfiles:exclude' pathdotfiles_exclude in the repo rootThe exclusions file.
zstyle ':dotfiles:directory' path '/path/to/dotfiles'
zstyle ':dotfiles:scripts'   path "$HOME/.dotfiler"     # standalone install
zstyle ':dotfiles:install'   path '/path/to/install'
zstyle ':dotfiles:exclude'   path '/path/to/my-exclusions.txt'

Updates — :dotfiler:update

Source: check_update.zsh, update_core.zsh. See How Updates Work for behavior; Update Internals for mechanics.

KeyDefaultDescription
modepromptLogin-check behavior: prompt | auto | background | reminder | disabled.
frequency3600Seconds between login checks (also gates self-update; env fallback UPDATE_DOTFILE_SECONDS).
release-channelreleaseRound 2 targets: release (semver-tagged commits only) | any (branch tip).
branch(empty)Explicit Round 2 branch override — actively checked out when set.
in-tree-commitautoPointer/marker recording after component updates: auto | prompt | none.
subtree-remotedotfilerSubtree topology: '<remote>' or '<remote> <branch>'. Prefer the single-word form — an explicit branch in the spec hard-pins it and bypasses the branch zstyle and the rest of the resolution chain.
subtree-urlcanonical repo URLRemote URL for subtree pulls (set for forks; auto-registers the remote if missing).
verbosedefaultSet silent to pass -q to the login-triggered update run.

Component scopes mirror these keys — e.g. ':zdot:update' branch, release-channel for zdot, or ':my-component:update' for your own hooks.

OMZ compatibility: when ':dotfiler:update' mode is unset, ':omz:update' mode is consulted, then the legacy DISABLE_UPDATE_PROMPT=true (→ auto) and DISABLE_AUTO_UPDATE=true (→ disabled) env vars.

Hooks — :dotfiler:hooks

KeyDefaultDescription
dir$XDG_CONFIG_HOME/dotfiler/hooksDirectory scanned for component update hooks (Update Hooks).

The exclusions file

gitignore-style patterns deciding which files are skipped during auto-ingest and unpack. Default location: dotfiles_exclude in the repo root (copy the shipped example to start).

.git/              # never track version control internals
.nounpack/         # never track dotfiler itself
dotfiles_exclude   # never track the exclusion file
node_modules/
.DS_Store
*.swp

Pattern types: trailing / matches a directory and its contents; a pattern containing / matches the full relative path; a bare name matches the filename anywhere; shell globs apply. Exclusions are the authoritative gate for what gets unpacked — files under .nounpack/ are never included.

Environment variables

VariableDescription
DOTFILER_VERBOSEProgress output from the update machinery.
DOTFILER_DEBUGDebug tracing (implies verbose).
GH_TOKEN / GITHUB_TOKENAuthenticated GitHub API requests for update checks (raises rate limits).
UPDATE_DOTFILE_SECONDSFallback for ':dotfiler:update' frequency.
INSTALL_PROFILEInstall profile for dotfiler install (default full).
FORCE_INSTALLSet automatically by install --force; read by install modules.