Personal macOS development environment configuration managed with yadm
- Zsh with Oh-My-Zsh framework
- Smart plugins: autosuggestions, syntax highlighting, git shortcuts
- 100k history entries with timestamps and cross-session sharing
- Lazy-loaded NVM for fast shell startup
- Tools: fzf, rbenv, windmill, qlty
- Homebrew package manager with bundle support
- 1Password CLI for secure secrets management
- Git configuration with sensible defaults
- Starship prompt with compact two-line display
- Fast key repeat for vim users
- Finder tweaks (show hidden files, full path, all drives)
- Clean Dock (no default apps)
- Screenshots saved to
~/Pictures/Screenshots - Hot corners configured
Run this one command to set up everything:
curl -fsSL https://raw.githubusercontent.com/hejhugo/dotfiles/main/setup.sh | bashWhat happens:
- ✅ Installs Xcode Command Line Tools
- ✅ Installs Homebrew
- ✅ Installs yadm and clones dotfiles to
$HOME - ✅ Runs bootstrap (packages, macOS config, zsh plugins)
- ✅ Reloads shell with new configuration
If you prefer to review before running:
curl -o setup.sh https://raw.githubusercontent.com/hejhugo/dotfiles/main/setup.sh
chmod +x setup.sh
./setup.shThis repo uses 1Password CLI for managing secrets securely.
Use op:// references in your config:
export GITHUB_TOKEN="op://Personal/Github/token"Create ~/.zsh/secrets.zsh for machine-specific secrets not in 1Password:
# ~/.zsh/secrets.zsh
export MY_SECRET_KEY="value"
export ANOTHER_TOKEN="value"This file is already in .gitignore and will never be committed.
yadm statusyadm add .zshrc
yadm commit -m "Update shell config"
yadm pushyadm pullyadm bootstrap # Re-install packages and pluginsalias brewski # Updates Homebrew, mas, oh-my-zsh, and reloads shell.zshrc- Shell configuration.zshenv- Environment variables and PATH.gitconfig- Git settings.gitignore_global- Global gitignore patterns.Brewfile- Homebrew packages and applications
.zsh/aliases.zsh- Shell aliases.zsh/zsh_functions- Custom shell functions.config/yadm/bootstrap- Automated setup script.config/starship.toml- Starship prompt config
- Reproducible: One command to set up a new machine
- Secure: Secrets never committed, always use 1Password or local files
- Fast: Lazy-loading and optimizations for quick shell startup
- Organized: Clear structure, well-documented
- The
secrets.zshfile is ignored by git but sourced if it exists - First shell launch may be slow while plugins install
- Some macOS settings require logout/restart to take effect
- Starship prompt shows: directory → git branch → git status on a compact two-line layout
- Customize freely - this is your environment!