These are the files that make me better at using the computer.
# Clone the repo
git clone <repo-url> ~/.dotfiles
cd ~/.dotfiles
# Preview setup (dry run)
./dot setup --dry-run
# Run full setup
./dot setup
# Verify everything works
./dot doctorAll dotfiles operations are managed through the dot command:
dot setup # Initial setup for new machine
dot link # Link configs with GNU Stow
dot unlink # Remove symlinks
dot doctor # Run health diagnostics
dot update # Update all packages and tools
dot package # Manage Brewfile packagesMost commands support --dry-run to preview changes:
dot setup --dry-run
dot link --dry-run
dot update --dry-runAll Homebrew packages are declared in packages/Brewfile:
# Add a package
dot package add bat
# Remove a package
dot package remove nushell
# List all packages
dot package list
# Sync installed packages with Brewfile
dot package syncFor work-specific packages, use packages/Brewfile.work.
Uses GNU Stow to symlink configs from home/ to ~:
home/.zshrc โ ~/.zshrc
home/.tmux.conf โ ~/.tmux.conf
home/.aerospace.toml โ ~/.aerospace.toml
home/.config/nvim โ ~/.config/nvim
home/.config/wezterm โ ~/.config/wezterm
- Shell: zsh with custom configuration
- Terminal: WezTerm with custom config
- Editor: Neovim (LazyVim + Bamboo theme)
- Multiplexer: tmux with comprehensive keybinds
- Window Manager: AeroSpace (macOS tiling)
- Homebrew: System packages (via Brewfile)
- mise: Language runtimes and dev tools
- eget: Binary downloads (edge cases)
See BIN_TOOLS for details:
tmux-sessionizer- Quick tmux project switchingcolorcat- Syntax-highlighted file viewingmkbin/mkscript- Script generators- And more...
Run comprehensive diagnostics:
dot doctorThis checks:
- Shell configuration (zsh)
- Package managers (Homebrew, mise)
- Required tools (git, stow, tmux, nvim)
- Symlink integrity
- PATH configuration
- Broken links detection
- ARCHITECTURE.md - How everything fits together (โญ START HERE)
- SETUP_VALIDATION.md - Detailed setup guide
- LINUX.md - Linux (Ubuntu LTS) server setup
- BIN_TOOLS.md - Custom command-line utilities
- ASSET_ENCRYPTION.md - Encryption workflow
All commands can be run multiple times safely. No fear of breaking things.
Preview changes before applying:
dot setup --dry-run
dot link --dry-run
dot update --dry-rundot doctor provides comprehensive diagnostics:
- โ Everything working
- โ Warnings for issues
- โ Errors with fix instructions
Each command is a separate, easy-to-understand script in scripts/commands/.
- packages/Brewfile: All Homebrew packages
- mise config: All language runtimes
- home/: All config files
- Git: Version control for everything
- Private data goes in
~/.privaterc(sourced but not committed) - Secrets encrypted with
age(see ASSET_ENCRYPTION.md) - Fonts are encrypted (pay your designers!)
.gitignoreexcludes sensitive files
Hey... *lowers sunglasses* I use neovim, you know. It's a pretty basic LazyVim setup with a couple tweaks. The theme is called Bamboo, and it matches my default WezTerm config.
I've actually been using tmux for a while so this one is pretty comprehensive. Having experimented with Zellij (which is also very cool!) I still find that I prefer tmux.
I found that Oh My Zsh became pretty slow, which I'm sure is a skill issue. The way I solved it was to use zinit and handle a lot more configuration myself, so there's quite a bit going on here. I added some profiling behavior so I can keep a better eye on this.
Fast, GPU-accelerated terminal emulator with great config flexibility. My setup includes custom key bindings, tab bar styling, and integration with the Bamboo color scheme.
Tiling window manager for macOS. Configured for keyboard-driven window management with vim-style navigation.
# Update everything at once
dot update
# Check if dotfiles are healthy
dot doctor
# Preview package installation
dot package sync --dry-run
# Re-link configs after changes
dot link
# View all available commands
dot --helpThis is my personal dotfiles repo, but feel free to:
- Fork it for your own use
- Submit issues for bugs
- Suggest improvements via PRs
Do whatever you want with this. MIT licensed (see LICENSE file if I remember to add one).
Inspiration: This setup was inspired by dmmulroy's dotfiles and various other dotfile repos in the community.