Modern development environment with Zsh, Oh My Zsh, Starship, LazyVim, and iTerm2
- 🎨 Dracula Theme - Dark theme support for compatible tools
- ⚡ Fast Shell - Optimized plugins with async loading
- 🔧 Automated Setup - Single command installation
- 📦 Homebrew Bundle - Reproducible package management
- 🚀 Modern CLI Tools - eza, bat, ripgrep, fd, and more
- 🧠 Smart Navigation - Zoxide for intelligent directory jumping
- 💻 LazyVim IDE - Full Neovim IDE experience in terminal
- 🔍 Dynamic Paths - Works from any clone location
# Clone and install
git clone https://github.com/danielsalles/dotfile.git ~/dotfiles && cd ~/dotfiles && ./install.sh
# Or using Make
git clone https://github.com/danielsalles/dotfile.git ~/dotfiles && cd ~/dotfiles && make installAfter installation, configure iTerm2 to display icons correctly:
- Open iTerm2 → Preferences (
Cmd+,) - Go to Profiles → Text
- Font: Select
FiraCode Nerd Font(NOT Mono or Propo variants) - Non-ASCII Font: Select
FiraCode Nerd Font(same as Font) - Recommended size: 12-13pt
- Restart iTerm2
Without this, you'll see boxes/question marks instead of icons.
Oh My Zsh plugins configured:
git- Git aliases and functionsextract- Extract any archive formatnvm- Node Version Manager integrationthefuck- Command correctioneza- Integration with eza commandfzf-tab- Fuzzy completionzsh-autosuggestions- Fish-like suggestionsyou-should-use- Alias reminderszsh-syntax-highlighting- Command highlighting
- eza - Modern ls replacement with icons
- bat - Enhanced cat with syntax highlighting
- starship - Cross-shell prompt
- zoxide - Smarter cd command
- fzf - Fuzzy finder
- ripgrep - Ultra-fast grep
- fd - User-friendly find
- thefuck - Command correction
- Git - Version control with custom aliases
- Node.js - JavaScript runtime
- Python - For various CLI tools
- Neovim - Modern Vim fork
- Lazygit - Terminal UI for Git
- Full IDE experience with LSP support
- Language servers for JS/TS, Python, Lua, and more
- Telescope fuzzy finder
- Treesitter syntax highlighting
- Git integration with Gitsigns
- Pre-configured with custom settings and plugins
dotfiles/
├── Brewfile # Homebrew packages
├── Makefile # Automation commands
├── README.md # This file
├── install.sh # Main installation script
├── config/ # Application configurations
│ ├── starship.toml # Starship prompt config
│ ├── nvim/ # Neovim/LazyVim config
│ └── iterm2/ # iTerm2 configurations
│ └── key-mappings.json
├── git/ # Git configuration
│ ├── .gitconfig # Git config
│ └── .gitignore_global # Global gitignore
├── macos/ # macOS specific
│ └── set-defaults.sh # macOS preferences
├── scripts/ # Helper scripts
│ ├── install-plugins.sh # Oh My Zsh plugins
│ ├── install-lazyvim.sh # LazyVim setup
│ └── setup-iterm2.sh # iTerm2 config
└── zsh/ # Zsh configuration
├── .zshrc # Main Zsh config
├── aliases.zsh # Custom aliases
└── functions.zsh # Custom functions
The install script will:
- ✅ Install Homebrew (if not installed)
- ✅ Install all packages from Brewfile (including Neovim & FiraCode Nerd Font)
- ✅ Install Oh My Zsh framework
- ✅ Clone and install custom Zsh plugins
- ✅ Create symlinks for all configurations
- ✅ Configure dynamic DOTFILES_DIR for portability
- ✅ Install NVM for Node.js management
- ✅ Set up iTerm2 key mappings
- ✅ Configure LazyVim IDE with custom settings
- ✅ Apply macOS defaults (optional)
eza (ls replacement):
ls- List files vertically with iconsll- Long format with detailsla- Show all including hiddenlt- Tree view (2 levels)tree- Full tree with icons
bat (cat replacement):
b- Quick view with Dracula themebcat- Plain output (cat compatible)bathelp- List available themes
Navigation:
..- Go up one directory...- Go up two directories-- Go to previous directory
mkd- Create directory and enter itextract- Extract any archive formatff- Find files by namefd- Find directories by name
# Add aliases to zsh/aliases.zsh
alias myalias='my command'
# Add functions to zsh/functions.zsh
function myfunction() {
# your code
}
# Add packages to Brewfile
brew "package-name"The Dracula dark theme is available for:
- Bat syntax highlighting (configured)
- LazyVim editor theme
- iTerm2 (manual import required)
Note: Starship uses the nerd-font-symbols preset for optimal icon display
To import iTerm2 Dracula theme:
- Download from draculatheme.com/iterm
- iTerm2 → Preferences → Profiles → Colors → Import
Space- Leader keySpace e- File explorerSpace ff- Find filesSpace fg- Live grepSpace gg- Open LazygitK- Hover documentationgd- Go to definition
- Run
nvimafter installation - Wait for plugins to install automatically
- Restart Neovim
- Run
:checkhealthto verify
# Update everything
make update
# Backup current configs
make backup
# Check installation status
make doctor
# Clean broken symlinks
make cleanEnsure iTerm2 is using "FiraCode Nerd Font" (see Required Manual Configuration above)
./scripts/install-plugins.sh
source ~/.zshrcbrew bundle --file=Brewfile
source ~/.zshrcchmod +x install.sh scripts/*.sh macos/*.sh- Configure Git:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"-
Import iTerm2 theme (optional - see Themes section)
-
Customize as needed (see Configuration section)
Feel free to fork and customize for your own use!
MIT - See LICENSE file
Inspired by:
- mathiasbynens/dotfiles - macOS defaults script
- holman/dotfiles - Topic-centric organization
- Dracula Theme - Beautiful dark theme
⭐ If you find this useful, please consider giving it a star!