Skip to content

ben196888/mac-set-up

Repository files navigation

macOS Dev Environment Setup

Automate the installation and configuration of a full macOS development environment: CLI tools, programming languages, editors, and system preferences.


📁 Folder Structure

.
├── git/
│   ├── .gitconfig
│   ├── .gitignore_global
│   └── install.sh
├── languages/
│   ├── dotnet.sh
│   ├── go.sh
│   ├── java.sh
│   ├── javascript.sh
│   ├── latex.sh
│   ├── python.sh
│   └── rust.sh
├── zsh/
│   ├── .zshrc
│   └── install.sh
├── browsers.sh
├── cli_tools.sh
├── devtools.sh
├── essential.sh
├── ides.sh
├── install.sh
├── macos.sh
├── terminal.sh
├── tools.sh
└── README.md

🚀 Setup Instructions

1. Clone this repo

git clone https://github.com/ben196888/mac-set-up.git
cd mac-set-up

2. Run the full setup

chmod +x install.sh
./install.sh

Comment out any steps in install.sh if you only want part of the setup.


🔁 Alternative: Download ZIP and run

  1. Download this repo as a ZIP from GitHub Download ZIP

  2. Extract the ZIP file and navigate to the folder:

cd ~/Downloads/mac-set-up-master  # Or wherever you unzipped it
  1. Run the installer:
chmod +x install.sh
./install.sh

⚙️ What It Installs

  • Zsh config: with Starship, Oh My Zsh, and language-aware prompts
  • Git setup: with aliases, delta, and conditional editor logic
  • VS Code + Cursor: with settings sync and optional extension restore
  • Terminal: Warp + shell utilities
  • Languages: Go, Python, Node (via n), Rust, Java (via SDKMAN), .NET (via Homebrew), LaTeX
  • Browsers: Firefox, Chrome, Edge, DuckDuckGo
  • Dev Tools: OrbStack (Docker), kubectl, Postman, Google Cloud SDK, ChatGPT, Raycast
  • System Preferences: Dock, trackpad gestures, key remapping, fast repeat rate

🧠 Notes

  • All .zshrc additions are conditional to avoid errors if tools aren't installed
  • macos.sh applies safe defaults write and hidutil changes (some may require logout/reboot)
  • You can export/import GUI app settings (like Rectangle) separately if needed

🧩 Optional Improvements

  • Implement checkpoint/resume mechanism to allow interrupted installations to continue from the last successful step, with progress tracking and state persistence
  • Add login item setup via osascript (e.g., for Raycast or Rectangle)
  • Add versioned global.json for .NET SDK pinning
  • Add sync logic for VS Code extensions
  • Add robust brew cask installation handling with pre-installation checks and force flags to prevent interruptions from existing app installations
  • Add checks for npm global installations to prevent conflicts with Homebrew-installed packages (e.g., yarn, pnpm)

📄 License

MIT — use it, fork it, improve it.

About

Setup my new mac

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages