Skip to content

danielsalles/dotfile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

16 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ macOS Dotfiles

Modern development environment with Zsh, Oh My Zsh, Starship, LazyVim, and iTerm2

macOS Shell Terminal

✨ Features

  • 🎨 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

πŸš€ Quick Install

# 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 install

⚠️ Required Manual Configuration

iTerm2 Font Setup

After installation, configure iTerm2 to display icons correctly:

  1. Open iTerm2 β†’ Preferences (Cmd+,)
  2. Go to Profiles β†’ Text
  3. Font: Select FiraCode Nerd Font (NOT Mono or Propo variants)
  4. Non-ASCII Font: Select FiraCode Nerd Font (same as Font)
  5. Recommended size: 12-13pt
  6. Restart iTerm2

Without this, you'll see boxes/question marks instead of icons.

πŸ“‹ What's Included

Shell & Plugins

Oh My Zsh plugins configured:

  • git - Git aliases and functions
  • extract - Extract any archive format
  • nvm - Node Version Manager integration
  • thefuck - Command correction
  • eza - Integration with eza command
  • fzf-tab - Fuzzy completion
  • zsh-autosuggestions - Fish-like suggestions
  • you-should-use - Alias reminders
  • zsh-syntax-highlighting - Command highlighting

Terminal Tools

  • 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

Development Tools

  • Git - Version control with custom aliases
  • Node.js - JavaScript runtime
  • Python - For various CLI tools
  • Neovim - Modern Vim fork
  • Lazygit - Terminal UI for Git

LazyVim IDE (Neovim)

  • 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

πŸ“ Repository Structure

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

πŸ› οΈ Installation Details

The install script will:

  1. βœ… Install Homebrew (if not installed)
  2. βœ… Install all packages from Brewfile (including Neovim & FiraCode Nerd Font)
  3. βœ… Install Oh My Zsh framework
  4. βœ… Clone and install custom Zsh plugins
  5. βœ… Create symlinks for all configurations
  6. βœ… Configure dynamic DOTFILES_DIR for portability
  7. βœ… Install NVM for Node.js management
  8. βœ… Set up iTerm2 key mappings
  9. βœ… Configure LazyVim IDE with custom settings
  10. βœ… Apply macOS defaults (optional)

βš™οΈ Configuration

Key Aliases

eza (ls replacement):

  • ls - List files vertically with icons
  • ll - Long format with details
  • la - Show all including hidden
  • lt - Tree view (2 levels)
  • tree - Full tree with icons

bat (cat replacement):

  • b - Quick view with Dracula theme
  • bcat - Plain output (cat compatible)
  • bathelp - List available themes

Navigation:

  • .. - Go up one directory
  • ... - Go up two directories
  • - - Go to previous directory

Custom Functions

  • mkd - Create directory and enter it
  • extract - Extract any archive format
  • ff - Find files by name
  • fd - Find directories by name

Adding Your Own

# 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"

🎨 Themes

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:

  1. Download from draculatheme.com/iterm
  2. iTerm2 β†’ Preferences β†’ Profiles β†’ Colors β†’ Import

πŸ’» LazyVim Usage

Key Bindings

  • Space - Leader key
  • Space e - File explorer
  • Space ff - Find files
  • Space fg - Live grep
  • Space gg - Open Lazygit
  • K - Hover documentation
  • gd - Go to definition

First Time Setup

  1. Run nvim after installation
  2. Wait for plugins to install automatically
  3. Restart Neovim
  4. Run :checkhealth to verify

πŸ”§ Useful Commands

# Update everything
make update

# Backup current configs
make backup

# Check installation status
make doctor

# Clean broken symlinks
make clean

πŸ› Troubleshooting

Icons not showing?

Ensure iTerm2 is using "FiraCode Nerd Font" (see Required Manual Configuration above)

Plugins not loading?

./scripts/install-plugins.sh
source ~/.zshrc

Command not found?

brew bundle --file=Brewfile
source ~/.zshrc

Permission denied?

chmod +x install.sh scripts/*.sh macos/*.sh

πŸ“ Post-Installation

  1. Configure Git:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
  1. Import iTerm2 theme (optional - see Themes section)

  2. Customize as needed (see Configuration section)

🀝 Contributing

Feel free to fork and customize for your own use!

πŸ“„ License

MIT - See LICENSE file

πŸ™ Acknowledgments

Inspired by:


⭐ If you find this useful, please consider giving it a star!

About

for MacOS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published