Managed with chezmoi.
sh -c "$(curl -fsLS https://get.chezmoi.io)" -- init --apply --ssh sp0rkrun_onchange_setup.sh runs automatically when it changes. It installs all managed tools, symlinks the repo git hook, sets the default shell to zsh, and sets git/chezmoi editors to lite-xl.
On macOS, packages are installed with Homebrew where available. Lite XL is installed from the latest official GitHub DMG into ~/Applications. On Linux, apt is used for packaged tools, and Lite XL is installed from the latest official GitHub tarball into ~/.local.
- Shell
- zsh — Default shell, set automatically on first run.
- oh-my-zsh — Zsh plugin/theme framework.
- p10k — Powerlevel10k prompt theme for zsh.
- CLI
- bat — Better
cat(replacescat). - bottom — Better
top. - yazi — Terminal file manager.
- zoxide — Better
cd(replacescd). - eza — Better
ls(replacesls). - thefuck — Corrects previous console commands.
- tree — Directory listing in tree format.
- tldr — Better
man.
- bat — Better
- Apps
- kitty — Terminal emulator.
- Lite XL — Text editor.
- espanso — OS-wide text expander.
gitmacossublimefzf-tabzsh-autosuggestionsweb-searchcopyfilecopybufferdirhistory1passwordaliasescolored-man-pagescommand-not-foundcommon-aliasescolorizethefuckcommand-timezsh-syntax-highlighting
Also installed by the setup script when missing:
ffmpegjq7zip/sevenzippoppler-utils/popplerfd-find/fdripgrepfzfzoxideimagemagickresvg
Following files are created empty by chezmoi and never overwritten. Edit them directly on each device:
| File | Purpose |
|---|---|
~/.config/zsh/pre.local.zsh |
Sourced at the start of .zshrc |
~/.config/zsh/secrets.local |
Sourced near the start of .zshrc with auto-export enabled for local secrets |
~/.config/zsh/post.local.zsh |
Sourced at the end of .zshrc |
~/.config/zsh/aliases.local.zsh |
Sourced at the end of .zsh_aliases |
~/.config/kitty/local.conf |
Included at the end of kitty.conf |
~/.config/lite-xl/local.lua |
Loaded at the end of Lite XL init.lua |
Put shell-style assignments in ~/.config/zsh/secrets.local, for example FOO_API_KEY=bar.
They are exported automatically so commands launched from zsh can read them from the environment.
A pre-push hook checks chezmoi diff before pushing. If there are unapplied changes, it prompts to apply, force push, or abort. The hook is symlinked from hooks/pre-push by run_onchange_setup.sh.
![]() |
![]() |
|---|

