Skip to content

connormckinnon93/dotfiles

Repository files navigation

Dotfiles

macOS dotfiles managed with chezmoi. One command bootstraps a complete development environment with 1Password secrets, Catppuccin theming, and modern CLI tools.

Features

  • One-Command Setup - Bootstraps Homebrew, packages, fonts, and system preferences
  • 1Password Secrets - SSH keys, commit signing, and credentials stay in your vault
  • Catppuccin Mocha - Consistent colors across terminal, editor, git tools, and prompt
  • Modern CLI - eza, bat, ripgrep, fd, delta replace ls, cat, grep, find, diff
  • Polyglot Runtimes - Mise manages Node, Python, Ruby, and Go
  • Claude Code - Superpowers plugins and episodic memory

Quick Start

sh -c "$(curl -fsLS get.chezmoi.io)" -- init --one-shot <github-username>

The --one-shot flag applies dotfiles then removes chezmoi (use --apply to keep it). Bootstrap installs Homebrew (SHA256-verified), 1Password CLI, packages, casks, fonts, configures macOS, and sets up runtimes via mise.

Shell

Tool Purpose
zsh Shell
zap Plugin manager
starship Prompt
zoxide Smart cd
fzf Fuzzy finder

Plugins: zsh-completions, fzf-tab, zsh-autosuggestions, zsh-history-substring-search, zsh-syntax-highlighting

CLI Replacements

Old New Why
ls eza Icons, git status
cat bat Syntax highlighting
grep ripgrep Fast, recursive
find fd Intuitive syntax
top htop Interactive
diff delta Side-by-side, colors

Development

Version Control: git (with aliases, delta), gh, lazygit, gitleaks

Editors: neovim (LazyVim), VS Code

Containers: Docker Desktop, lazydocker

Runtimes: mise (Node LTS, Python, Ruby, Go)

Git

Workflow: Rebase pulls with auto-stash, fast-forward merges, auto-prune, SSH signing via 1Password

Hooks: Gitleaks blocks secrets; commit-msg enforces conventional format

Aliases:

git lg    # Log graph
git st    # Status
git df    # Diff stats
git go    # Checkout or create branch

Applications

  • Browser: Chrome
  • Terminal: Ghostty
  • Passwords: 1Password + CLI
  • AI: Claude, Claude Code
  • Windows: Rectangle
  • Fonts: JetBrains Mono, Fira Code, Hack, Meslo LG (Nerd Fonts)

Claude Code

Plugins: superpowers, episodic-memory, elements-of-style, double-shot-latte

MCP: Context7 (documentation lookup)

Working with Worktrees

A shell wrapper detects when you are inside a git worktree of this repository and passes --source to chezmoi automatically. No special flags are needed:

cd ~/.claude-squad/worktrees/cm/some-branch
chezmoi diff    # reads from the worktree, not ~/.local/share/chezmoi

To override manually:

chezmoi --source=/path/to/worktree diff

Structure

.
├── .chezmoi.toml.tmpl           # Config (name/email prompts)
├── .chezmoidata/
│   ├── packages.yaml            # Brews, casks, extensions
│   └── claude.yaml              # Claude permissions
├── .chezmoiexternal.toml.tmpl   # External repos
├── .chezmoiscripts/             # Install scripts
├── dot_claude/                  # Claude Code
├── dot_config/                  # App configs
├── dot_gitconfig.tmpl           # Git
├── dot_zshenv.tmpl              # Environment
├── dot_zshrc.tmpl               # Shell
└── private_dot_ssh/             # SSH (1Password agent)

Customization

Add packages in .chezmoidata/packages.yaml:

darwin:
  brews:
    - your-package
  casks:
    - your-application
  vscodes:
    - publisher.extension-name

Add runtimes in dot_config/mise/config.toml:

[tools]
node = "lts"
python = "latest"

Add variables to dot_zshenv.tmpl (all shells) or dot_zshrc.tmpl (interactive).

Run chezmoi apply.

macOS Preferences

  • Dock: Auto-hide, fast animations
  • Finder: Hidden files, extensions, path bar
  • Keyboard: Fast repeat, short delay
  • Trackpad: Tap to click
  • Screenshots: ~/Screenshots, PNG

Security

  • 1Password stores SSH keys and secrets
  • 1Password SSH agent handles connections
  • All commits signed via 1Password
  • Gitleaks blocks accidental secret commits
  • Homebrew installer SHA256-verified

Requirements

  • macOS
  • Internet (initial setup)
  • 1Password

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •