Skip to content

isaacseymour/dotfiles

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

962 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Isaac's dotfiles

Personal config managed by chezmoi.

Bootstrap on a fresh Mac

Public bootstrap is intentionally simple so it works before you have SSH/GitHub auth set up. Once you've authenticated to GitHub, the private overlay (Claude memory, work-flavoured config) gets pulled in automatically on the next chezmoi apply.

# 1. Use Safari to download Chrome.
# 2. Install Xcode CLT.
xcode-select --install

# 3. Install Homebrew.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 4. Install chezmoi + the password managers + age.
brew install chezmoi gh age 1password-cli
brew install --cask 1password dashlane

# 5. Sign into both password managers (GUI). For Dashlane: copy the
#    "age master key" secure note into ~/.config/chezmoi/key.txt
#    (chmod 600). For 1Password: enable CLI biometric integration in
#    its settings.

# 6. GitHub auth (for the private overlay).
gh auth login                    # browser flow in Chrome
gh ssh-key add                   # uploads a fresh SSH key

# 7. Bootstrap chezmoi.
chezmoi init --apply isaacseymour

chezmoi init --apply clones this repo into ~/.local/share/chezmoi, renders all templates, and writes the result to $HOME. Re-run chezmoi apply to pick up new commits.

Day-to-day

Action Command
Edit a managed file chezmoi edit ~/.zshrc
Pull latest, then apply chezmoi update
See what would change chezmoi diff
Add an existing file chezmoi add ~/.foo
Open the source repo chezmoi cd

The source dir is at ~/me/dotfiles (configured via ~/.config/chezmoi/chezmoi.toml). Files live in chezmoi naming:

Source path Target
dot_zshrc ~/.zshrc
dot_zsh/ ~/.zsh/
dot_config/nvim/ ~/.config/nvim/
dot_gitconfig.tmpl ~/.gitconfig (templated by arch)
private_dot_gnupg/ ~/.gnupg/ (mode 700)
private_dot_ssh/ ~/.ssh/ (mode 700)
dot_claude/ ~/.claude/
dot_local/bin/executable_* ~/.local/bin/* (chmod +x)

Companion private repo

isaacseymour/dotfiles-private holds Claude Code memory and any work-flavoured config that shouldn't be public. It's pulled in via chezmoi's .chezmoiexternal, gated on having an SSH key with access. On the very first chezmoi apply (before gh ssh-key add) the external is skipped; a follow-up apply picks it up.

Secrets

Two-password-manager split:

  • Dashlane (personal): stores the age master key as a secure note. Personal secrets (GPG private key, etc.) live age-encrypted in the private repo and decrypt on apply.
  • 1Password (work): referenced from chezmoi templates via {{ onepasswordRead "op://..." }}. Whole-file env files use op inject from a small helper script.

Neither password manager's CLI is on the bootstrap critical path beyond "have it installed and signed in"; chezmoi pulls from them at apply time and caches.

About

My dotfiles for my dev environment, compromising of tmux, vim, zsh and git.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 60.8%
  • Vim Script 23.8%
  • Go Template 11.5%
  • Ruby 2.2%
  • Lua 1.7%