A streamlined macOS setup and configuration automation tool. This script helps you quickly deploy a new Mac with your preferred applications and settings.
- 🚀 Full system deployment (apps + preferences)
- 📦 Application installation via Homebrew and Mac App Store
- ⚙️ System preferences configuration
- 🎯 Zero animation settings for performance
- 💾 Backup current configuration
- 🎵 Optional Spotify modification with SpotX
- macOS 10.15 (Catalina) or later
- Internet connection
- Administrator privileges
- Clone the repository:
git clone https://github.com/kxdrsrt/mac-deployer.git
cd mac-deployer
- Make the script executable:
chmod +x mac-deploy.sh
Run the script:
./mac-deploy.sh
The script will present a menu with the following options:
- Full Deployment (Apps + Preferences)
- Applications Only (Homebrew + App Store)
- System Preferences Only
- Zero Animation Settings Only
- Backup Current Configuration
.
├── mac-deploy.sh # Main script
├── config/ # Configuration files
│ ├── adjust.sh # Script constants and settings
│ ├── packages.sh # Homebrew packages list
│ ├── casks.sh # Homebrew casks list
│ ├── mas_apps.sh # Mac App Store apps list
│ └── dotfiles.sh # Dotfiles configuration
├── lib/ # Library functions
│ ├── utils.sh # Utility functions
│ ├── prefs.sh # Preferences management
│ ├── backup.sh # Backup functionality
│ ├── validate-config.sh # Configuration validation
│ └── spotx.sh # Spotify modification
└── preferences/ # System preferences
├── animation.sh # Animation settings
├── trackpad.sh # Trackpad configuration
└── utils.sh # Preferences utilities
Edit these files to customize installed applications:
config/packages.sh
: Homebrew packagesconfig/casks.sh
: Homebrew casksconfig/mas_apps.sh
: Mac App Store applications
Modify files in the preferences/
directory:
animation.sh
: System animation settingstrackpad.sh
: Trackpad behavior
Adjust SpotX flags in config/adjust.sh
:
B
: Block Spotify updatesc
: Clear Spotify cached
: Enable developer toolsh
: Hide non-music content
Logs are stored in ~/mac-deployer/deploy.log
and include:
- Timestamp of operations
- Success/failure status
- Error messages
- System information
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.