My dotfiles.
- macOS with Ghostty and cmux
- Linux hosts
- Dev Containers
This repository links and loads configuration, and installs zsh plugins managed by this repository. It does not install system packages, Homebrew packages, language runtimes, or shell frameworks.
Install tools with the host package manager, devcontainer.json, or a
Dockerfile. Shell startup checks whether optional commands exist before loading
their integration.
Shell integrations live under zsh/lib/integrations/*.zsh and load only when
their commands exist. User-facing controls:
- Oh My Zsh: used when it is already installed. zsh falls back to native
completion and a simple prompt when it is not available. Override
DOTFILES_ZSH_THEMEin~/.zshrc.envto choose a theme without replacing the upstreamZSH_THEMEvariable directly. - Oh My Zsh plugins: repo-managed plugins are installed by
bootstrap.sh. SetDOTFILES_OMZ_PLUGINSto a space-separated plugin list to override the defaults. - mise: loaded in shim mode by default. Set
DOTFILES_MISE_MODE=fullbefore zsh starts if you want fullmise activate zshhook behavior. - tmux: auto-attaches on non-macOS interactive zsh sessions when
tmuxexists. SetDOTFILES_DISABLE_TMUX_AUTO=1to disable this. - Tests and one-off checks: set
DOTFILES_SKIP_INTEGRATIONS=1to skip optional command integrations while still loading the base zsh config.
These files are created if missing and are intentionally not managed here:
~/.zshrc.local: machine-specific shell settings and secrets.~/.zshrc.env: early shell environment settings loaded before Oh My Zsh.~/.gitconfig_local: machine-specific Git includes and identities.
git clone https://github.com/blauerberg/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./bootstrap.sh
for test in tests/*.sh; do sh "$test"; done
zsh -n zsh/zshrc
MIT