Personal macOS development environment configuration
A comprehensive dotfiles repository for setting up a fully-configured macOS development environment. Includes shell configurations, modern CLI tools, editor settings, and system customizations managed via Dotbot.
- Shell Environment - Fish shell with Fisher plugin manager, Zsh fallback, and Starship prompt
- Modern CLI Tools - Rust-based replacements for traditional Unix utilities
- Development Tools - Git workflow enhancements, Docker, VS Code configuration
- Package Management - Homebrew with custom location, fnm, pyenv, pnpm
- macOS Customizations - Dock, Finder, and system preference tweaks
| Category | Tools |
|---|---|
| Shell | Fish, Zsh |
| Prompt | Starship |
| Editor | VS Code |
| Terminal | iTerm2 |
| Package Manager | Homebrew |
| Bootstrap | Dotbot |
- Fish - Primary shell with extensive aliases and functions
- Fisher - Fish plugin manager with 10+ plugins
- Zsh - Secondary shell configuration
- Starship - Cross-shell customizable prompt
| Tool | Replaces | Description |
|---|---|---|
bat |
cat |
Syntax highlighting and git integration |
eza |
ls |
Icons, colors, and git status |
fd |
find |
Simpler syntax, faster search |
ripgrep |
grep |
Fast regex search |
dust |
du |
Intuitive disk usage |
btop |
top |
Resource monitor with graphs |
procs |
ps |
Modern process viewer |
duf |
df |
Disk usage with colors |
sd |
sed |
Intuitive find and replace |
tealdeer |
man |
Simplified command examples |
- Git - Delta pager (Dracula theme), extensive aliases, LFS support
- lazygit - Terminal UI for git
- Docker - Via Colima container runtime
- GitHub CLI - Repository and PR management
- VS Code - 25 extensions, custom settings and keybindings
- Homebrew - Installed at
~/Dev/homebrew(non-system location) - fnm - Fast Node.js version manager
- pyenv - Python version manager
- pnpm - Fast npm alternative
proj- Fuzzy project switcher for~/Workspacesand~/Codeghpr- Interactive GitHub PR checkout with fzfgpp- Change directory and git pullmkd/take- Create directory and cd into itj- Zoxide smart directory jumping
- iTerm2 - Terminal with MaterialOcean theme
- Alfred - Spotlight replacement
- Rectangle - Window management
- Tower - Git GUI client
- DBeaver - Database client
- macOS
- Xcode Command Line Tools (
xcode-select --install) - Git
git clone --recurse-submodules https://github.com/robmcguinness/dotfiles ~/.dotfiles
~/.dotfiles/installThe install script will:
- Create working directories (
~/Code,~/Workspaces,~/Dev) - Symlink configuration files
- Install Homebrew to
~/Dev/homebrew - Install packages via
brew bundle - Configure Fish plugins via Fisher
- Apply macOS system preferences
- Install VS Code extensions
dotfiles/
βββ install # Main installation script
βββ install.conf.yaml # Dotbot configuration
βββ Brewfile # Homebrew packages and casks
βββ extensions.txt # VS Code extensions list
βββ bat/ # Bat configuration
βββ editorconfig/ # EditorConfig settings
βββ fish/ # Fish shell config, aliases, functions
βββ git/ # Git config and ignore patterns
βββ iterm/ # iTerm2 profile
βββ scripts/ # Automation scripts (macOS setup)
βββ starship/ # Starship prompt configuration
βββ vscode/ # VS Code settings and keybindings
βββ zsh/ # Zsh configuration
Homebrew is installed to ~/Dev/homebrew instead of the default system location, providing:
- Portability across machines
- No sudo required for package management
- Isolation from system tools
Common aliases configured in git/gitconfig:
s- Short statusd- Diff with deltap- Pull with submodule updatepushup- Push current branch to originlg- Pretty log with graphstandup- Show yesterday's commits
Installed via Fisher:
fzf.fish- Fuzzy finder integrationforgit- Interactive git commandsfish-you-should-use- Alias reminderspuffer-fish- Text expansionsfish-ssh-agent- SSH agent management
- Fork this repository
- Update
git/gitconfigwith your name and email - Modify
Brewfileto add/remove packages - Edit
fish/aliases.fishfor custom aliases - Adjust
vscode/settings.jsonfor editor preferences - Run
./installto apply changes