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!