Personal development environment configuration and setup automation for macOS 26.3+.
This repository contains my dotfiles and an automated setup script to quickly bootstrap a new macOS machine with my preferred development environment, tools, and configurations. It includes shell configurations, editor settings, terminal multiplexer setup, Git configuration, macOS system preferences, and curated development tooling.
git clone https://github.com/jasonfungsing/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./scripts/install.sh
exec zsh- macOS 26.3 or later
- Command line tools for Xcode (installed automatically by script)
- Git (installed automatically if needed)
- Administrator access (required for some macOS settings and Homebrew installation)
| File | Purpose |
|---|---|
.zshrc |
Zsh shell configuration with aliases, plugins, and integrations |
.alias_prompt.sh |
Custom aliases and prompt configuration |
.vimrc |
Vim editor configuration |
.tmux.conf |
Terminal multiplexer (tmux) configuration |
.gitconfig |
Git version control configuration |
.hushlogin |
Suppresses macOS login message |
com.googlecode.iterm2.plist |
iTerm2 terminal settings |
Organized by category:
- DevOps & Cloud: Docker, Kubernetes, Helm, AWS CLI, GCloud, Skaffold, Kops, Minikube, Kind
- Development: Go, Node.js, Python, Java, Ruby, Rust support
- Build Tools: Maven, Gradle, Make, CMake, Protobuf
- CLI Utilities: git, tmux, kubectl, lazygit, ripgrep, fzf, jq, curl, wget, htop
- Language Tools: golangci-lint, rustfmt, shellcheck, pylint
- Databases: RocksDB, Temporal
- Miscellaneous: GraphQL, Pandoc, Tesseract OCR, Figlet
- IDEs: Xcode, Visual Studio Code, IntelliJ IDEA
- Editors: Neovim
- Productivity: Raycast, Slack, Microsoft Office, WeChat, WhatsApp
- Development: Docker Desktop, iTerm2
- Security: Little Snitch, Grammarly
- Design: Final Cut Pro, PDF Expert, CARROTweather
- Media: AdBlock for Safari
Development extensions including Python, Go, Java, Docker, Kubernetes, GitHub integration, and AI coding assistants (Copilot, Claude).
The install.sh script automates the entire setup process:
./scripts/install.shWhat it does:
- Creates symlinks for all dotfiles to your home directory
- Installs Homebrew (if not already installed)
- Installs Oh-My-Zsh framework
- Sets Zsh as the default shell
- Applies macOS system preferences
- Installs all packages from Brewfile
- Configures VS Code extensions
For selective installation of components:
./scripts/install-interactive.shChoose which components to install:
- Shell configuration (zshrc, aliases, Oh-My-Zsh)
- Editor configuration (Vim, VS Code)
- Terminal configuration (tmux, iTerm2)
- Git configuration
- macOS system preferences
- Homebrew packages and applications
Install only specific components:
./scripts/install.sh --shell-only # Only shell config
./scripts/install.sh --editor-only # Only editor config
./scripts/install.sh --git-only # Only Git config
./scripts/install.sh --system-only # Only macOS settings
./scripts/install.sh --no-brew # Skip Homebrew packages
./scripts/install.sh --no-apps # Skip applications
./scripts/install.sh --dry-run # Show what would be doneIf you prefer to install manually:
-
Clone the repository:
git clone https://github.com/jasonfungsing/dotfiles.git ~/.dotfiles cd ~/.dotfiles
-
Create symlinks:
ln -s ~/.dotfiles/shell/zshrc ~/.zshrc ln -s ~/.dotfiles/editor/vimrc ~/.vimrc ln -s ~/.dotfiles/terminal/tmux.conf ~/.tmux.conf ln -s ~/.dotfiles/git/gitconfig ~/.gitconfig
-
Install Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Install packages:
brew bundle --file=./brew/Brewfile
-
Set Zsh as default shell:
chsh -s $(which zsh)
Edit alias_prompt.sh and zshrc to add or modify aliases. See Shell Aliases Documentation for the complete list and explanations.
Edit scripts/macos.sh to modify system preferences. See macOS Settings Documentation for detailed explanations of each setting.
To add new Homebrew packages:
- Edit
Brewfileand add your package - Run
brew bundleto install - Update lock file:
brew bundle lock --update
See Brewfile Documentation for the complete package list and rationale.
To update all Homebrew packages and lock file:
brew bundle update
brew bundle lock --updateTo update Brewfile.lock.json:
brew bundle lock --updateSee Brewfile Lock File Guide for detailed information.
dotfiles/
├── README.md # This file
├── CHANGELOG.md # Version history and changes
│
├── brew/ # Homebrew configuration
│ ├── Brewfile # Homebrew package definitions
│ ├── Brewfile.lock.json # Locked package versions
│ └── Brewfile.readme # Brewfile format documentation
│
├── shell/ # Shell configuration
│ ├── zshrc # Zsh shell configuration
│ ├── alias_prompt.sh # Custom aliases and prompt
│ └── cobalt2.zsh-theme # Zsh theme
│
├── editor/ # Editor configuration
│ └── vimrc # Vim editor configuration
│
├── terminal/ # Terminal configuration
│ └── tmux.conf # tmux configuration
│
├── git/ # Git configuration
│ └── gitconfig # Git version control configuration
│
├── system/ # System configuration
│ ├── com.googlecode.iterm2.plist # iTerm2 terminal settings
│ └── hushlogin # Suppress macOS login message
│
├── scripts/ # Installation and setup scripts
│ ├── install.sh # Main installation script
│ ├── validate-setup.sh # Setup validation script
│ ├── macos.sh # macOS system preferences
│ └── install-interactive.sh # Interactive installer (planned)
│
├── raycast-scripts/ # Raycast command scripts
│ ├── summarize-screen-ai.sh
│ └── summarize-screen.sh
│
└── docs/ # Documentation
├── INSTALLATION.md # Detailed installation guide
├── MACOS_SETTINGS.md # macOS settings explanations
├── BREWFILE_EXPLAINED.md # Package list with rationale
├── BREWFILE_LOCK.md # Lock file management
├── RAYCAST_SCRIPTS.md # Raycast scripts documentation
└── SHELL_ALIASES.md # Shell aliases reference
Run with appropriate permissions:
sudo ./scripts/install.shThe installer will skip existing symlinks by default. To overwrite:
rm ~/.zshrc && ./scripts/install.shVerify installation:
echo $SHELLIf not zsh, run:
chsh -s $(which zsh)Ensure you have Command Line Tools installed:
xcode-select --installSome packages may require additional dependencies. Check individual package documentation or run:
brew doctorSome settings require a logout/login. To apply immediately:
killall Finder Dock Mail SystemUIServerAfter installation, validate your setup:
./scripts/validate-setup.shThis checks:
- Dotfile symlinks are correctly created
- Required packages are installed
- Shell configuration is active
- macOS settings are applied
To keep your environment up to date:
alias u="brew update; brew upgrade; brew upgrade --cask --greedy; brew cleanup; omz update; vim +PlugUpdate +qa"
uOr use the automated update alias:
update # or just 'u'For detailed information, see:
- Installation Guide
- macOS Settings
- Brewfile Packages
- Brewfile Lock File
- Raycast Scripts
- Shell Aliases
This dotfiles configuration supports a modern development stack focused on:
- Cloud & DevOps: Docker, Kubernetes, AWS, Google Cloud
- Backend Development: Go, Python, Node.js, Java, Ruby
- Development Tools: Git, tmux, Vim, VS Code
- Infrastructure: Helm, Kops, Minikube, Skaffold
These are personal dotfiles, but feel free to fork and adapt to your needs.
Personal use only. Feel free to use as reference for your own dotfiles.
For issues or questions:
- Check Troubleshooting section
- Review relevant documentation files
- Check macOS and Homebrew documentation
Last Updated: March 8, 2026 macOS Version: 26.3+ Shell: Zsh Package Manager: Homebrew