@raisedadead's dotfiles
Managed with chezmoi. Previously managed with
homeshick, which served reliably for
years.
This repository is the public dotfiles source. A separate private repository handles credentials and sensitive configuration.
~/.dotfiles # this repo (public)
~/.dotfiles-private # private repo
Homebrew package management lives in a separate repo by design. When that repo is
applied, it provides ~/.config/brewfile/Brewfile.
brew bundle --file=~/.config/brewfile/BrewfileA bootstrap script handles the full sequence interactively:
# If you already have Homebrew + git:
git clone git@github.com:raisedadead/dotfiles.git ~/.dotfiles
~/.dotfiles/install.sh
# Or step by step — see below.┌──────────────────────────┐
│ 1. Install Homebrew │
└────────────┬─────────────┘
▼
┌──────────────────────────┐
│ 2. brew install │
│ chezmoi git just │
└────────────┬─────────────┘
▼
┌──────────────────────────┐ ┌─────────────────────────┐
│ 3. Install 1Password │────▶│ Enable SSH Agent in │
│ (manual / brew) │ │ Settings → Developer │
└────────────┬─────────────┘ └─────────────────────────┘
▼
┌──────────────────────────┐
│ 4. ./install.sh │
│ ├─ apply public │
│ ├─ clone + apply │
│ │ private (if SSH) │
│ └─ brew bundle │
└────────────┬─────────────┘
▼
┌──────────────────────────┐
│ 5. home check │
└──────────────────────────┘
-
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Install essentials:
brew install chezmoi git just
-
Set up 1Password and enable the SSH agent under Settings → Developer → SSH Agent.
-
Apply public dotfiles:
chezmoi init git@github.com:raisedadead/dotfiles.git --source ~/.dotfiles --apply -
Apply private dotfiles:
git clone git@github.com:raisedadead/dotfiles-private.git ~/.dotfiles-private chezmoi --source ~/.dotfiles-private apply
-
Install packages (optional, if your separate Brewfile repo is already applied):
brew bundle --file=~/.config/brewfile/Brewfile -
Verify:
home check
home is the day-to-day entrypoint. It wraps the public + private chezmoi
repos and gives you status, sync, apply, pull, and push commands that work
across both.
# Edit chezmoi source directly, then apply
$EDITOR ~/.dotfiles/dot_zshrc
home apply
# Or edit via chezmoi without touching the target file
home pub edit ~/.zshrchome pub add ~/.config/foo/config.toml
home prv add ~/.config/foo/secret.ymlhome pull
home applyhome checkgit -C ~/.dotfiles add -A && git -C ~/.dotfiles commit -m "chore: update configs"
# If private repo changed too:
git -C ~/.dotfiles-private add -A && git -C ~/.dotfiles-private commit -m "chore: update configs"
home push| Task | Command |
|---|---|
| Add a file (public) | home pub add <file> |
| Add a file (private) | home prv add <file> |
| Edit a file (public) | home pub edit <file> |
| Edit a file (private) | home prv edit <file> |
| Apply both repos | home apply |
| Pull both repos | home pull |
| Check status and drift | home check |
| Recover target-side edits | home re-add |
| List managed files | home pub managed / home prv managed |
ISC © 2017 Mrugesh Mohapatra