Managed with chezmoi. Supports macOS (primary), Linux (servers), and Windows (WezTerm only).
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply moritzwilkschThis single command installs chezmoi, clones this repo, and applies all configs. On first run, chezmoi also:
- Installs system packages (Homebrew on macOS, apt/dnf/... on Linux)
- Installs pixi and syncs global tool environments
Pull the latest changes and re-apply:
chezmoi updateEdit the source files, then apply:
chezmoi edit ~/.config/fish/config.fish
chezmoi applyOr edit directly in this repo and run chezmoi apply.
The normal path is to let chezmoi manage run_onchange_* scripts:
chezmoi applyrun_onchange_* scripts re-run when their rendered content changes. For
run_onchange_install-packages.sh.tmpl, the # packages: comment at the top
is part of the trigger, so update that comment when adding or removing
packages.
If you need to re-run the package install script without changing the repo, you can render and execute it manually:
chezmoi execute-template --file home/run_onchange_install-packages.sh.tmpl | bashIf you want to force chezmoi to consider only that script "not yet run", delete
its current scriptState entry and then apply:
hash="$(chezmoi state get --bucket=entryState --key="$HOME/install-packages.sh" | jq -r '.contentsSHA256')"
chezmoi state delete --bucket=scriptState --key="$hash"
chezmoi applyhome/is the chezmoi source directory (set via.chezmoiroot)- Files prefixed with
dot_map to dotfiles (e.g.dot_zshrc->~/.zshrc) .tmplfiles are Go templates, used for OS-specific sections (shell paths, aliases, PATH).chezmoiignoreexcludes files per OS (e.g. WezTerm only on Windows,Library/only on macOS)run_once_*scripts run once per machine (pixi install)run_onchange_*scripts re-run when their content changes (package installs, pixi global sync)
| Config | macOS | Linux | Windows |
|---|---|---|---|
| fish shell | x | x | |
| tmux | x | x | |
| ghostty | x | x | |
| VS Code | x | x | |
| WezTerm | x | ||
| pixi globals | x | x | |
| zshrc | x | x |
reference/ contains Zed editor configs that are not auto-deployed. Copy manually as needed.