Yet another dotfiles repository. Configuration files you can carry anywhere.
- Manage dotfiles with chezmoi
- Keep OS-specific files explicit (
karabineris only for macOS) - Keep setup scripts (
install/*.sh) as optional package/bootstrap helpers
- macOS (Only Apple Silicon)
- Ubuntu (Only x64)
- WSL (Ubuntu x64)
- Android (Only Termux x64)
Bootstrap a fresh machine with the official chezmoi entrypoint. It installs chezmoi if missing, clones this repository, and applies every dotfile in one command:
sh -c "$(curl -fsLS https://get.chezmoi.io)" -- init --apply ru-461Reload your shell so the new configuration takes effect:
exec zsh(Optional) Install development tools and packages via the bootstrap scripts:
bash "$(chezmoi source-path)/install/run.sh" --target autoThat's it. See Daily Operations for editing and updating your dotfiles afterward.
chezmoi diff
chezmoi apply
chezmoi updateage encryption can be configured when needed, but is not used yet. No encrypted files are tracked yet.
- Generate an age key pair:
chezmoi age keygen- Set your recipient in
~/.config/chezmoi/chezmoi.toml:
[age]
recipient = "age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"Dotfile deployment is handled by chezmoi.
Package and OS provisioning scripts remain under install/*.sh and functions/*.sh.
Use install/run.sh as the stable entrypoint.
bash "$(chezmoi source-path)/install/run.sh" --mode check
bash "$(chezmoi source-path)/install/run.sh" --target autoRun only selected steps when needed:
bash "$(chezmoi source-path)/install/run.sh" --target auto --only zsh,brew,bundle.config/karabiner/**is deployed only on macOS.- On Linux/WSL/Termux, karabiner files are excluded by
.chezmoiignore.tmpl.
Try dotfiles in a reproducible Ubuntu container. Build the image from a locally cloned dotfiles repository.
docker build -t dotfiles --force-rm .docker run -it --rm -v "$PWD":/workspace/dotfiles dotfilesAfter entering the container, run:
chezmoi init --apply --source=/workspace/dotfilesdocker run -it --rm dotfiles /usr/bin/bash -lc "chezmoi init --apply ru-461 && exec /usr/bin/bash"Happy Hacking.