My personal dotfiles managed with chezmoi
- Shell 39.2%
- Go Template 38.4%
- Lua 13.4%
- Python 9%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Load miser at startup with automatic installs, LSP setup, and formatting turned off. |
||
| .config | ||
| .github | ||
| bin | ||
| home | ||
| scripts | ||
| tests | ||
| .chezmoiroot | ||
| .editorconfig | ||
| LICENSE | ||
| README.md | ||
Aaron's Dotfiles
Installation
curl -fsSL https://setup.aaronmallen.dev | sh
Supported Operating Systems
- macOS
- Arch Linux
- Debian/Ubuntu
Structure
Each tool's configuration lives in its own topic directory under ~/.config/.
Topics are loaded by _load_zsh_topic in .zshrc, which handles dependency
resolution and environment/alias sourcing:
# Simple topic — just source env and aliases
_load_zsh_topic "bat" --source-env --source-aliases --deps xdg --deps mise
# Topic with shell activation
_load_zsh_topic "starship" --source-env --deps xdg --deps mise
eval "$(starship init zsh)"
Each topic directory may contain:
| File | Purpose |
|---|---|
init.zsh |
Calls _load_zsh_topic with options |
env.sh |
Environment variables |
aliases.sh |
Shell aliases |
Package Management
- macOS: Homebrew with
~/.config/homebrew/Brewfile - Arch: Paru/Yay with
~/.config/aur/aurfile(auto-prunes unlisted packages) - Debian/Ubuntu: APT with
~/.config/apt/aptfile(auto-prunes unlisted packages) - All: Mise for language runtimes and CLI tools
Tooling
Shell & Terminal
- Zsh - Shell
- Starship - Cross-shell prompt
- Atuin - Shell history sync
- Zoxide - Smarter cd command
- fzf - Fuzzy finder
Development Tools
- JJ - Version control
- GitHub CLI - GitHub command line tool
- Docker - Containerization
Editors
- JetBrains IDEs - Primary
- Zed - Lightweight editor
- Neovim - Terminal editor
- Vim - Fallback terminal editor
CLI Utilities
- bat - Better
cat - lsd - Modern
ls - ripgrep - Fast grep
- delta - Git pager
- glow - Markdown renderer
- tlrc - tldr pages client
Inspiration
Heavily inspired by holman dotfiles