A script to automate the setup of a new Mac with my preferred configuration, applications, and dotfiles. This repository contains everything needed to go from a fresh macOS installation to a fully configured development environment.
- 🔐 Security First
- Configures TouchID for sudo authentication
- Enables FileVault disk encryption
- Sets secure defaults
- 🛠 Development Setup
- Installs Xcode Command Line Tools
- Sets up Homebrew and essential packages
- Configures development tools and languages
- ⚙️ System Configuration
- Sets up macOS system preferences
- Configures dock, finder, and UI preferences
- Installs preferred applications via Homebrew
- 📁 Dotfiles Management
- Automatically sets up dotfiles using chezmoi
- Maintains configuration in a separate repository
- A Mac running macOS
- Admin user account
- Internet connection
- Your encryption passphrase (for encrypted dotfiles)
- Install Xcode Command Line Tools first:
xcode-select --install
- Clone this repository:
git clone https://github.com/neowim/mac-bootstrap.git
cd mac-bootstrap
-
Review and customize the
Brewfile
:- Comment out any packages you don't want
- Add any additional packages you need
- Update Mac App Store application IDs if needed
-
Make the script executable and run it:
chmod +x mac-bootstrap.sh
./mac-bootstrap.sh
- Follow any prompts for:
- System password
- Mac App Store authentication
- Encryption passphrase (for encrypted dotfiles)
The Brewfile
contains all packages, applications, and fonts that will be installed. It's organized into sections:
- System dependencies
- Development tools
- GUI Applications
- Fonts
- Mac App Store applications
- VS Code extensions
The defaults.sh
script contains macOS system preferences. Edit this file to customize:
- UI preferences
- Finder settings
- Dock configuration
- System behavior
mac-bootstrap.sh
: Main installation scriptBrewfile
: Package and application definitionsdefaults.sh
: macOS system preferences.gitignore
: Git ignore ruleslogs/
: Log files
This project is licensed under the MIT License - see the LICENSE file for details.
Feel free to fork this repository and customize it for your own use. If you have improvements that might benefit others, pull requests are welcome!