- Personal dotfiles managed by chezmoi with Nix (CLI packages) and Homebrew (macOS GUI apps).
- Targets: macOS, Ubuntu, Arch Linux, devcontainers, EC2.
- Defaults: fish shell + Starship prompt, Neovim editor, Ghostty terminal + Zellij multiplexer.
One command to bootstrap a new machine:
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --apply malleroid/dotfilesThis will:
- Install chezmoi to
./bin/andexecit directly (PATH not required) - Clone this repo and apply dotfiles
- Run setup scripts (Nix, Homebrew, packages, shell config, etc.)
For ephemeral environments (devcontainers, EC2):
sh -c "$(curl -fsLS get.chezmoi.io)" -- init --one-shot --promptString 'Environment type (full/ephemeral)=ephemeral' malleroid/dotfilesTo install chezmoi permanently to ~/.local/bin/:
sh -c "$(curl -fsLS get.chezmoi.io/lb)"| What | Manager | File |
|---|---|---|
| CLI tools (69 packages) | Nix | nix-packages.txt |
| macOS GUI apps (57 casks) | Homebrew | Brewfile.casks |
| Language runtimes & dev tools | mise | dot_config/mise/config.toml |
dotfiles/
├── .chezmoi.toml.tmpl # chezmoi config (env_type prompt)
├── .chezmoiignore # files excluded from deployment
├── nix-packages.txt # CLI packages for Nix
├── Brewfile.casks # macOS GUI apps for Homebrew
├── dot_gitconfig # → ~/.gitconfig
├── dot_gitignore # → ~/.gitignore
├── dot_commit_template # → ~/.commit_template
├── dot_config/ # → ~/.config/
│ ├── fish/ # fish shell (3 files templated for OS)
│ ├── nvim/ # Neovim
│ ├── mise/ # mise runtime manager
│ ├── ghostty/ # Ghostty terminal
│ ├── zellij/ # Zellij multiplexer
│ ├── starship.toml # Starship prompt
│ ├── nix/ # Nix config (experimental features)
│ ├── gitui/, serpl/ # TUI tools
│ └── rails-mcp/ # Rails MCP server
├── dot_claude/ # → ~/.claude/
│ ├── agents/ # sub-agent definitions
│ ├── hooks/ # git guard hooks (executable_)
│ └── symlink_skills.tmpl # → ~/.agents/skills
├── dot_agents/skills/ # → ~/.agents/skills/
├── dot_copilot/ # → ~/.copilot/
├── dot_codex/ # → ~/.codex/ (create_ prefix: no overwrite)
└── run_* # chezmoi setup scripts (9 total)
- Add a Nix package: Add to
nix-packages.txt, thenchezmoi apply(triggersrun_onchange). - Add a macOS cask: Add to
Brewfile.casks, thenchezmoi apply. - Update dotfiles: Edit
dot_*files, thenchezmoi applyto deploy. - Sync from home:
chezmoi re-add <file>to pull changes back from~/. - Quick checks:
exec fishto reload shell;chezmoi diffto preview changes.