Modular macOS bootstrap dotfiles for Homebrew, Oh My Zsh, Zsh config, and Git work/personal split.
- Homebrew installs core tools via
modules/brew/brewfile - Oh My Zsh + common plugins
- Git configs split by directory (work vs personal) with automatic includeIf
- Work git
user.nameanduser.emailare prompted on first install - Node.js environment via nvm (includes Node.js LTS, yarn, pnpm)
- Clone this repo (recommended path:
~/.dotfiles). - Put your Oh My Zsh template at
templates/.zshrcor setOMZ_TEMPLATE. - Run one of the following:
Run all modules in order:
./install.shEach module can be run independently:
./modules/prereq/run.sh # Install prerequisites (Xcode, Homebrew)
./modules/brew/run.sh # Install Homebrew packages
./modules/omz/run.sh # Install Oh My Zsh
./modules/zshrc/run.sh # Setup Zsh configuration
./modules/git/run.sh # Setup Git configuration
./modules/nodejs/run.sh # Setup Node.js environment (nvm, yarn, pnpm)
./modules/rime/run.sh # Setup Rime input methodUse the unified module runner:
./run-module.sh brew # Run a specific module
./run-module.sh --list # List all available modules
./run-module.sh --help # Show helpinstall.sh: entry script that runs each module in ordermodules/: setup steps with clear console separatorsutils/: shared shell helperstemplates/: templates for Zsh, Git, and Rimetemplates/git/: git config templates (base/work/personal)templates/rime-config/: Rime input method config templates
- Default template path:
templates/.zshrc - Override via environment variable:
OMZ_TEMPLATE=/path/to/your/.zshrc ./install.shThe base config is installed at ~/.config/git/config and includes:
~/.config/git/config-workfor work repos~/.config/git/config-personalfor personal/open-source repos
Defaults:
- Work dir:
~/Developer/work - Personal dir:
~/Developer/personal
First install will prompt for work user.name and user.email.
Update user.name and user.email in:
~/.config/git/config-work~/.config/git/config-personal
Rime config files are installed from templates/rime-config/ to ~/Library/Rime/.
After installation, deploy the configuration by:
- Clicking the Squirrel icon in the menu bar → Select "Deploy"
- Or run:
killall Squirrel && open -a Squirrel
- Xcode Command Line Tools
- Homebrew
- Oh My Zsh
- zsh-autosuggestions
- zsh-syntax-highlighting
- git
- gnupg
- wget
- curl
- jq
- yq
- fzf
- ripgrep
- fd
- bat
- eza
- tree
- Rime
- Rime Ice
- FiraCode
- LxgwWenKai
- nvm
- Node.js
- yarn
- pnpm
modules/prereq/run.sh(Xcode tools + Homebrew bootstrap)modules/brew/run.sh(Brewfile packages)modules/omz/run.sh(Oh My Zsh)modules/zshrc/run.sh(template applied to~/.zshrc)modules/git/run.sh(work/personal configs)modules/nodejs/run.sh(nvm + Node.js LTS + yarn + pnpm)modules/rime/run.sh(Rime/Squirrel input method config)
- Uses Homebrew wherever possible.
- Designed for macOS only.
- Each module prints a clear separator in the console.