Personal macOS bootstrap: one command to set up a fresh Mac with my tools, apps, and system preferences. Declarative (Brewfile) and idempotent (safe to re-run).
| File | Purpose |
|---|---|
install.sh |
Orchestrator: Xcode CLT → Rosetta → Homebrew → brew bundle → defaults |
Brewfile |
Declarative list of formulae, casks, taps, fonts and Mac App Store apps |
defaults.sh |
Opinionated macOS system preferences (keyboard, Finder, Dock, screenshots) |
git clone git@github.com:kadirermantr/macos-setup.git
cd macos-setup
chmod +x install.sh
./install.shRe-running is safe. Already-installed items are skipped.
Sign in to the Mac App Store first so the
masapps install.
Everything is declared in Brewfile — open it to see (and comment out) anything you don't want. Highlights:
- Dev CLIs: git, gh, git-lfs, svn, bfg, jq, ripgrep, mas
- Languages/runtimes: node@20, php@8.1, php@8.2, composer
- Databases: mysql, mongosh, mongodb-community
- Media/content: hugo, pandoc, ffmpeg, poppler, librsvg, pngquant, oxipng
- AI: ollama
- Shell: powerlevel10k, sleepwatcher, MesloLGS Nerd Font
- GUI (dev): Raycast, iTerm2, VS Code, JetBrains Toolbox, Docker, Postman, TablePlus, MongoDB Compass, Obsidian, Shottr, XAMPP, .NET SDK, Claude
- GUI (personal): Chrome, Slack, Spotify, WhatsApp, AnyDesk, OpenVPN
- App Store: Keynote, Numbers, Pages, iMovie, GarageBand, Excel, Outlook, MorningPages, Windows App, Hidden Bar
A set of recommended-but-not-yet-installed modern CLIs (eza, bat, fd, fzf, zoxide, lazygit, btop, tldr) is included as commented lines — uncomment to adopt.
defaults.sh applies sensible, user-level (no sudo) preferences: fast key repeat, press-and-hold disabled, Finder showing hidden files / extensions / path bar, no .DS_Store on network/USB, Dock autohide, and screenshots saved to ~/Screenshots as PNG. Dock/Finder restart automatically.
Run it standalone any time:
./defaults.shAfter installing or removing things by hand, re-capture the current system:
brew bundle dump --file=Brewfile --force --describeThen review the diff and keep what you want (the file is organized into sections; a raw dump is flat).
- Add Powerlevel10k to
~/.zshrc:source "$(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme"then runp10k configure. - Select the MesloLGS NF font in iTerm2 / your terminal.
- Sign in to JetBrains Toolbox and install the IDEs you use (PhpStorm, PyCharm, Rider, Fleet).
- Configure Raycast hotkeys and extensions.