99% vibe coded, as all things should be ✨
macOS-first dotfiles for developers who value speed and simplicity. Fast Zsh setup with modular configs, Starship prompt, FZF, and smart navigation.
Blazing Fast: No plugin manager overhead, single-file .zshrc with brew-based tools
Smart Completion: Brew completions for all tools, context-aware suggestions
Beautiful Prompt: Starship prompt with git integration and instant feedback
Fuzzy Everything: FZF for files, history, and directory navigation
Smart Navigation: Zoxide learns your patterns, auto-cd to frequently visited directories
Developer Ready: Python (UV), Docker, Kubernetes, AWS CLI pre-configured
Auto Python venv: Automatically activates .venv or venv when entering project directories
Massive History: 50,000 commands with deduplication
- macOS (tested on Ventura+)
- Terminal emulator (iTerm2, Terminal.app, or any modern terminal)
- Homebrew installed
# Clone and navigate
git clone https://github.com/RafaelMoreira1180778/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
# Run setup (installs dependencies and generates completions)
./setup.sh
# Reload shell
source ~/.zshrcThat's it! 🎉
~/.dotfiles/
├── setup.sh # Automated setup script
├── .zshenv # Environment setup (runs first, always loaded)
├── .zprofile # Login shell PATH fixes (after macOS path_helper)
├── .zshrc # All-in-one interactive shell configuration
├── local.zshenv # Machine-specific environment (gitignored)
├── zsh/
│ └── local.zsh # Machine-specific interactive config (gitignored)
├── starship/
│ └── starship.toml # Starship prompt configuration
└── ~/.zsh_history # Shell history (50,000 commands)
What's in .zshrc (consolidated single file):
- Environment variables (EDITOR, AWS, Python, etc.)
- History configuration (50K commands, deduplication)
- Shell options (auto-cd, globbing, completion)
- Completion system (Homebrew, case-insensitive)
- Aliases (eza, bat, safety aliases)
- Tool initialization (Starship, Zoxide, Direnv, FZF, mise)
- Python venv auto-activation
- Sources
zsh/local.zshfor machine-specific overrides
Startup order (login shell):
/etc/zshenv(system)~/.zshenv→ Sets minimal PATH, sourceslocal.zshenv/etc/zprofile→ macOSpath_helperreorders PATH~/.zprofile→ Fixes PATH order~/.zshrc→ All interactive config, sourceszsh/local.zsh
| Binding | Action |
|---|---|
| Ctrl+R | FZF history search |
| Ctrl+T | FZF file finder with preview |
| Alt+C | FZF directory navigation |
Create ~/.dotfiles/local.zshenv for machine-specific environment variables and PATH:
# Example: LaTeX/Perl configuration
export PATH="/opt/homebrew/opt/perl/bin:/Library/TeX/texbin:$PATH"
unset PERL5LIB
# Example: Custom AWS region
export AWS_DEFAULT_REGION="us-east-1"
# Example: RVM
export PATH="$PATH:$HOME/.rvm/bin"Important: local.zshenv runs for ALL shells (including VSCode extensions, LaTeX Workshop). Only use environment variables and PATH here.
Create ~/.dotfiles/zsh/local.zsh for aliases, functions, and interactive features:
# Example: Custom aliases
alias kubectl="kubecolor"
alias k="kubecolor"
# Example: Override editor
export EDITOR="vim"Important: local.zsh only runs for interactive shells (iTerm2, Terminal.app). Not loaded by VSCode extensions.
Python Virtual Environments
- Auto-activates
.venvorvenvwhen entering project directories - Auto-deactivates when leaving project directories
- No manual activation needed
Modern Command Replacements
ls → eza # Modern ls with git integration
cat → bat # Cat with syntax highlighting
cd → zoxide # Smart directory navigationFZF Integration
Ctrl+R- Search command historyCtrl+T- Find filesAlt+C- Navigate directories
- Starship - Cross-shell prompt with git integration
- FZF - Command-line fuzzy finder
- Zoxide - Smarter cd command
- Eza - Modern ls replacement
- Bat - Cat with syntax highlighting
- Direnv - Environment switcher for the shell
- UV - Fast Python package manager
- Mise - Universal version manager
MIT License - See LICENSE for details.
Made with ☕ and ✨ for developers who care about their terminal