No description
  • Shell 72.5%
  • JavaScript 11.2%
  • Vim Script 7%
  • Lua 4.6%
  • PowerShell 1.9%
  • Other 2.8%
Find a file
2026-04-14 12:03:46 -05:00
.chezmoidata remove chrome from packages. replaced by ungoogled-chromium 2026-02-22 14:36:43 -06:00
.chezmoiscripts fix(chezmoi): add python build dependencies to system packages 2026-03-21 14:09:50 -05:00
.chezmoitemplates fix(chezmoi): replace lookPath with runtime command -v checks 2026-03-21 14:23:34 -05:00
.forgejo/workflows feat: add claude code integration 2026-02-28 16:13:56 -06:00
.github/workflows Create gitleaks.yml 2024-11-25 10:58:41 -06:00
docs docs: enhance README and usage documentation for various tools, including 1Password, AWS, Docker, Git, GitHub, Go, Kubernetes, Python, Terraform, and VS Code; remove outdated files and improve terminal setup instructions 2025-05-06 12:56:33 -05:00
dot_claude update doc 2026-04-14 12:03:46 -05:00
dot_local/bin change git email 2026-04-13 12:16:08 -05:00
dot_vim style(dot_p10k.zsh.tmpl, dot_vim/vimrc, dot_zshenv.tmpl, dot_zshrc.tmpl): add vim modeline and newline at EOF for better file formatting 2024-10-15 19:03:36 -05:00
dot_warp/themes feat(dracula.yml): add Dracula theme configuration file for Warp terminal 2024-04-26 10:16:40 -05:00
Library/private_Application Support/private_VSCodium/User feat(vscodium): add settings, keybindings, and extension install script 2026-03-05 22:19:45 -06:00
private_dot_config revert(git): remove git_email variable, restore hardcoded mh@mvh.dev 2026-04-13 12:23:46 -05:00
private_dot_gnupg fix multiple template issues found in code review 2025-12-25 22:30:59 -06:00
private_dot_ssh fix(chezmoi): replace .osid with .chezmoi.os for all linux checks 2026-03-21 14:17:51 -05:00
.chezmoi.toml.tmpl revert(git): remove git_email variable, restore hardcoded mh@mvh.dev 2026-04-13 12:23:46 -05:00
.chezmoiexternal.toml.tmpl feat(chezmoiexternal.toml.tmpl): add configuration for various git repositories and files for oh-my-zsh, fzf, tmux, vim, git fuzzy, and Dracula themes 2024-04-26 08:40:28 -05:00
.chezmoiignore ignore some stuff 2026-03-26 15:49:51 -05:00
.chezmoiremove chore(chezmoiremove): comment out .viminfo and .zcompdump entries to prevent them from being removed 2024-04-25 20:53:30 -05:00
.envrc packages: update brew packages 2025-05-10 11:31:31 -05:00
.gitignore update gitignore and pre-commit config 2025-12-25 18:37:59 -06:00
.pre-commit-config.yaml update gitignore and pre-commit config 2025-12-25 18:37:59 -06:00
CLAUDE.md docs: update README and CLAUDE.md for install chain and template conventions 2026-03-21 14:30:40 -05:00
dot_aliases.tmpl fix(chezmoi): replace .osid with .chezmoi.os for all linux checks 2026-03-21 14:17:51 -05:00
dot_gitleaks.toml Initial commit 2024-04-25 07:52:20 -05:00
dot_opencommit.tmpl fix multiple template issues found in code review 2025-12-25 22:30:59 -06:00
dot_p10k.zsh.tmpl fix(chezmoi): replace .osid with .chezmoi.os for all linux checks 2026-03-21 14:17:51 -05:00
dot_screenrc Initial commit 2024-04-25 07:52:20 -05:00
dot_tmux.conf make tmux suck less 2026-02-22 18:17:12 -06:00
dot_zprofile.tmpl move brew shellenv to zshrc for all interactive shells 2025-12-25 20:00:07 -06:00
dot_zshenv.tmpl style(dot_p10k.zsh.tmpl, dot_vim/vimrc, dot_zshenv.tmpl, dot_zshrc.tmpl): add vim modeline and newline at EOF for better file formatting 2024-10-15 19:03:36 -05:00
dot_zshrc.tmpl fix(chezmoi): replace lookPath with runtime command -v checks 2026-03-21 14:23:34 -05:00
LICENSE Initial commit 2024-04-25 07:52:20 -05:00
README.md docs: update README and CLAUDE.md for install chain and template conventions 2026-03-21 14:30:40 -05:00

gitleaks

dotfiles

Personal dotfiles for macOS and Linux, managed by chezmoi.

Quick Start

sh -c "$(curl -fsSL get.chezmoi.io)" -- init --apply mauvehed

This downloads chezmoi, clones this repo, and runs the initial apply. On Linux, system packages (build-essential, zsh, Python build dependencies) are installed via apt first, then Homebrew, 1Password CLI, brew packages, and asdf runtimes are installed automatically.

Set Machine Type

After the first run, edit the chezmoi config to set the machine type:

chezmoi edit-config

Set personal = true or work = true, then re-apply:

chezmoi --force apply

Known hostnames (e.g. cypher, airblade, computah) are auto-detected and don't require manual config.

1Password Integration

Secrets are stored in 1Password and fetched via onepasswordRead in templates. After the initial apply:

eval $(op signin)
chezmoi apply

What's Managed

Shell

Tool Purpose
Zsh Shell
oh-my-zsh Shell framework and plugins
oh-my-posh Prompt theme engine
fzf Fuzzy finder with fd integration
zoxide Smart cd replacement
eza Modern ls replacement
bat Cat replacement with syntax highlighting

Shell Config Load Order

  1. ~/.zshenv - XDG dirs, GPG, asdf env vars
  2. ~/.zprofile - Login shell (minimal)
  3. ~/.zshrc - Homebrew, PATH, oh-my-zsh plugins, oh-my-posh, fzf, zoxide, asdf, 1Password SSH agent, iTerm2 integration, ssh-tmux wrapper, Python venv auto-activation
  4. ~/.aliases - Alias aggregator (sources per-platform alias files)

Aliases

Aliases are composed from templates in .chezmoitemplates/:

  • aliases_all.tmpl - Cross-platform (docker, fzf, eza, bat, zoxide, tailscale, mosh)
  • aliases_git.tmpl - Git shortcuts (ga, gb, gco, gd, gl, gp, gst)
  • aliases_macos.tmpl - macOS-only
  • aliases_linuxos.tmpl - Linux-only

Aliases use conditional checks to only activate when the target binary is present.

Dev Tools

Tool Purpose
asdf Runtime version manager (Node.js, Python, Go)
direnv Per-directory environment variables (via Homebrew)
Neovim Editor with Lazy plugin manager
tmux Terminal multiplexer with Dracula theme
git With diff-so-fancy, SSH signing via 1Password

Packages

Homebrew packages are defined in .chezmoidata/packages.yaml and installed via brew bundle. Packages are organized hierarchically:

  • core - Installed everywhere
  • personal.core / work.core - Machine-type specific
  • darwin / linux - OS-specific
  • personal.darwin / personal.linux - Machine-type + OS specific

Managed Configs

  • ~/.config/git/config - Global git config (SSH signing, diff-so-fancy, URL rewrites)
  • ~/.config/nvim/ - Neovim with Lazy plugins
  • ~/.config/oh-my-posh/themes/ - Custom prompt themes
  • ~/.config/iterm2/ - iTerm2 profile and Dracula color scheme
  • ~/.config/btop/ - btop with Dracula theme
  • ~/.claude/ - Claude Code settings and hooks
  • ~/.ssh/ - SSH config (keys from 1Password)
  • ~/.tmux.conf - tmux with TPM and Dracula theme

Custom Scripts (~/.local/bin/)

  • git-update - Batch-pull all repos under ~/gitwork/*/*/*
  • git-config - Set per-repo git user/email for multiple GitHub orgs
  • git-upstream - Git upstream management
  • brew-update - Homebrew update wrapper
  • crt.sh - Certificate transparency lookup
  • randkey - Random key generator
  • check_uptime.sh - Warn if uptime exceeds 60 days
  • fzf-git.sh - fzf git integration helpers

External Resources

Managed via .chezmoiexternal.toml.tmpl with auto-refresh:

  • oh-my-zsh + zsh-syntax-highlighting plugin
  • MesloLGS Nerd Font files
  • fzf shell integrations
  • tmux Plugin Manager (TPM)
  • git-fuzzy
  • Dracula eza color theme

Security

  • Secrets are fetched from 1Password at apply time via onepasswordRead
  • gitleaks runs via pre-commit hook and GitHub Actions
  • Git commits are signed with SSH keys via 1Password

Command Reference

chezmoi diff                        # Preview changes before applying
chezmoi apply -v                    # Apply changes verbosely
chezmoi -R apply                    # Force refresh external resources
chezmoi edit <file>                 # Edit a managed file
chezmoi add <file>                  # Add a file to chezmoi
chezmoi add --template <file>       # Add as a template
chezmoi execute-template < f.tmpl   # Test template rendering
chezmoi data                        # View all template data
chezmoi update                      # git pull + chezmoi apply
chezmoi git status                  # Run git in chezmoi source dir

Resources