{"id":26647483,"url":"https://github.com/mauvehed/dotfiles","last_synced_at":"2026-04-08T16:32:21.229Z","repository":{"id":236061295,"uuid":"791813784","full_name":"mauvehed/dotfiles","owner":"mauvehed","description":"mauvehed's dotfiles for personal and work environments","archived":false,"fork":false,"pushed_at":"2026-03-21T19:30:43.000Z","size":400,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-22T07:32:25.176Z","etag":null,"topics":["chezmoi","dotfiles","iterm2","linux","macos","shell","terminal"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mauvehed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-25T12:26:00.000Z","updated_at":"2026-03-21T19:30:47.000Z","dependencies_parsed_at":"2024-04-25T13:59:51.425Z","dependency_job_id":"4337fb17-1b3c-4ac1-b2fd-1d523861ce32","html_url":"https://github.com/mauvehed/dotfiles","commit_stats":null,"previous_names":["mauvehed/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mauvehed/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauvehed%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauvehed%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauvehed%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauvehed%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mauvehed","download_url":"https://codeload.github.com/mauvehed/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mauvehed%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31564899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chezmoi","dotfiles","iterm2","linux","macos","shell","terminal"],"created_at":"2025-03-24T23:52:19.161Z","updated_at":"2026-04-08T16:32:21.224Z","avatar_url":"https://github.com/mauvehed.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![gitleaks](https://github.com/mauvehed/dotfiles/actions/workflows/gitleaks.yml/badge.svg)](https://github.com/mauvehed/dotfiles/actions/workflows/gitleaks.yml)\n\n# dotfiles\n\nPersonal dotfiles for macOS and Linux, managed by [chezmoi](https://www.chezmoi.io/).\n\n## Quick Start\n\n```sh\nsh -c \"$(curl -fsSL get.chezmoi.io)\" -- init --apply mauvehed\n```\n\nThis 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.\n\n### Set Machine Type\n\nAfter the first run, edit the chezmoi config to set the machine type:\n\n```sh\nchezmoi edit-config\n```\n\nSet `personal = true` or `work = true`, then re-apply:\n\n```sh\nchezmoi --force apply\n```\n\nKnown hostnames (e.g. `cypher`, `airblade`, `computah`) are auto-detected and don't require manual config.\n\n### 1Password Integration\n\nSecrets are stored in [1Password](https://1password.com) and fetched via `onepasswordRead` in templates. After the initial apply:\n\n```sh\neval $(op signin)\nchezmoi apply\n```\n\n## What's Managed\n\n### Shell\n\n| Tool | Purpose |\n|---|---|\n| [Zsh](https://www.zsh.org/) | Shell |\n| [oh-my-zsh](https://ohmyzsh.org/) | Shell framework and plugins |\n| [oh-my-posh](https://ohmyposh.dev) | Prompt theme engine |\n| [fzf](https://github.com/junegunn/fzf) | Fuzzy finder with fd integration |\n| [zoxide](https://github.com/ajeetdsouza/zoxide) | Smart cd replacement |\n| [eza](https://github.com/eza-community/eza) | Modern ls replacement |\n| [bat](https://github.com/sharkdp/bat) | Cat replacement with syntax highlighting |\n\n### Shell Config Load Order\n\n1. `~/.zshenv` - XDG dirs, GPG, asdf env vars\n2. `~/.zprofile` - Login shell (minimal)\n3. `~/.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\n4. `~/.aliases` - Alias aggregator (sources per-platform alias files)\n\n### Aliases\n\nAliases are composed from templates in `.chezmoitemplates/`:\n\n- `aliases_all.tmpl` - Cross-platform (docker, fzf, eza, bat, zoxide, tailscale, mosh)\n- `aliases_git.tmpl` - Git shortcuts (ga, gb, gco, gd, gl, gp, gst)\n- `aliases_macos.tmpl` - macOS-only\n- `aliases_linuxos.tmpl` - Linux-only\n\nAliases use conditional checks to only activate when the target binary is present.\n\n### Dev Tools\n\n| Tool | Purpose |\n|---|---|\n| [asdf](https://asdf-vm.com/) | Runtime version manager (Node.js, Python, Go) |\n| [direnv](https://direnv.net/) | Per-directory environment variables (via Homebrew) |\n| [Neovim](https://neovim.io/) | Editor with Lazy plugin manager |\n| [tmux](https://github.com/tmux/tmux) | Terminal multiplexer with Dracula theme |\n| [git](https://git-scm.com/) | With diff-so-fancy, SSH signing via 1Password |\n\n### Packages\n\nHomebrew packages are defined in `.chezmoidata/packages.yaml` and installed via `brew bundle`. Packages are organized hierarchically:\n\n- `core` - Installed everywhere\n- `personal.core` / `work.core` - Machine-type specific\n- `darwin` / `linux` - OS-specific\n- `personal.darwin` / `personal.linux` - Machine-type + OS specific\n\n### Managed Configs\n\n- `~/.config/git/config` - Global git config (SSH signing, diff-so-fancy, URL rewrites)\n- `~/.config/nvim/` - Neovim with Lazy plugins\n- `~/.config/oh-my-posh/themes/` - Custom prompt themes\n- `~/.config/iterm2/` - iTerm2 profile and Dracula color scheme\n- `~/.config/btop/` - btop with Dracula theme\n- `~/.claude/` - Claude Code settings and hooks\n- `~/.ssh/` - SSH config (keys from 1Password)\n- `~/.tmux.conf` - tmux with TPM and Dracula theme\n\n### Custom Scripts (`~/.local/bin/`)\n\n- `git-update` - Batch-pull all repos under `~/gitwork/*/*/*`\n- `git-config` - Set per-repo git user/email for multiple GitHub orgs\n- `git-upstream` - Git upstream management\n- `brew-update` - Homebrew update wrapper\n- `crt.sh` - Certificate transparency lookup\n- `randkey` - Random key generator\n- `check_uptime.sh` - Warn if uptime exceeds 60 days\n- `fzf-git.sh` - fzf git integration helpers\n\n### External Resources\n\nManaged via `.chezmoiexternal.toml.tmpl` with auto-refresh:\n\n- oh-my-zsh + zsh-syntax-highlighting plugin\n- MesloLGS Nerd Font files\n- fzf shell integrations\n- tmux Plugin Manager (TPM)\n- git-fuzzy\n- Dracula eza color theme\n\n## Security\n\n- Secrets are fetched from 1Password at apply time via `onepasswordRead`\n- [gitleaks](https://github.com/gitleaks/gitleaks) runs via pre-commit hook and GitHub Actions\n- Git commits are signed with SSH keys via 1Password\n\n## Command Reference\n\n```sh\nchezmoi diff                        # Preview changes before applying\nchezmoi apply -v                    # Apply changes verbosely\nchezmoi -R apply                    # Force refresh external resources\nchezmoi edit \u003cfile\u003e                 # Edit a managed file\nchezmoi add \u003cfile\u003e                  # Add a file to chezmoi\nchezmoi add --template \u003cfile\u003e       # Add as a template\nchezmoi execute-template \u003c f.tmpl   # Test template rendering\nchezmoi data                        # View all template data\nchezmoi update                      # git pull + chezmoi apply\nchezmoi git status                  # Run git in chezmoi source dir\n```\n\n## Resources\n\n- [Repo Docs](docs/)\n- [chezmoi Install](https://www.chezmoi.io/install/)\n- [chezmoi Quick Start](https://www.chezmoi.io/quick-start/#using-chezmoi-across-multiple-machines)\n- [chezmoi User Guide](https://www.chezmoi.io/user-guide/setup/)\n- [chezmoi GitHub](https://github.com/twpayne/chezmoi)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmauvehed%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmauvehed%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmauvehed%2Fdotfiles/lists"}