macOS Bootstrap
The Quiet Mind macOS Bootstrap sets up and configures a new macOS system — installing apps, applying settings, and getting you productive fast.
See Zsh Commands for a guide on to commands that are available in the Zsh configuration this bootstrap provides.Prerequisites
Before running the bootstrap script, complete the following steps.
Sign in to iCloud & App Store
Sign in to both iCloud and the App Store using your Apple ID.
- iCloud: System Settings → Apple ID
- App Store: Open the App Store app → Sign In
Install Xcode Command Line Tools
bashxcode-select --install
Previewing the Script
It's best practice to review the contents of a script before running it.
bashcurl -fsSL quietmind.sh | less
Running the Script
To run the script just pass it to bash.
Alternatively, you can also pass thebashcurl -fsSL quietmind.sh | bash
--slack flag to bash, to install Slack through Homebrew.
bashcurl -fsSL quietmind.sh | bash -s -- --slack
What's Included
Installs and configures dotfiles, Phoenix for window management, and Karabiner-Elements for custom keyboard shortcuts.Also included are scripts to periodically clean up your Downloads folder and wipe your Screenshots folder.
For a full picture of what gets installed, see the Brewfile, global npm packages, and App Store apps in the dotfiles repo.macOS System Configurations
Mouse
- Disable natural (reverse) scroll direction
Keyboard
- Key repeat rate:
2(fast) - Initial key repeat delay:
15(short)
Trackpad
- Tracking speed:
2.0 - Enable tap to click (built-in and Bluetooth trackpad)
- Enable three-finger drag (built-in and Bluetooth trackpad)
- Enable App Exposé swipe gesture
Dock
- Tile size:
72px - Enable magnification at
115px - Enable auto-hide
- Hide recent apps
Desktop Icons
- Hide internal hard drives
- Hide external hard drives
- Hide removable media
- Hide mounted servers
Widgets
- Always hide widgets on desktop
Mission Control
- Disable automatic Space reordering based on recent use
- Disable switching to a Space when activating an app
- Disable dragging windows into Spaces
Stage Manager
- Disable "click wallpaper to show desktop" outside of Stage Manager
Screenshots
- Save location:
~/Pictures/Screenshots - Disable window drop shadow in screenshots
Window Management
- Space-switching edge-drag delay:
3.0seconds
Recent Items
- Disable recent applications (max
0) - Disable recent documents (max
0) - Disable recent servers (max
0)
Network / File System
- Disable
.DS_Storecreation on network drives
TextEdit
- Open a new blank document on launch (instead of the Open dialog)
Finder
- Show all file extensions
- Default search scope to current folder
- Show path bar
- Show status bar
- New window opens to
~/Downloads/
Lock Screen
- Require password immediately after screensaver begins
iCloud
- Default save location: local disk (not iCloud Drive)
Text Substitution
- Disable smart quotes
- Disable smart dashes
Screensaver
- Idle time before activation:
300seconds (5 minutes) - Screensaver: Aerial (
/Library/Screen Savers/Aerial.saver) - Import Aerial preferences from
~/.config/aerial/prefs.plist(if present)
AirDrop
- Discoverability: Off
LaunchAgents (Scheduled Tasks)
com.ezra.cleanup-downloads— runs~/.bin/cleanup_downloads.shevery 4 hours, also at logincom.ezra.cleanup-screenshots— runs~/.bin/cleanup_screenshots.shevery 4 hours, also at login
Post-Install
After running this macOS bootstrap script, you should run the following commands.
Set your name in your Git config.
bashgit config --file ~/.config/gitconfig user.name "Your Name"
Set your email in your Git config.
bashgit config --file ~/.config/gitconfig user.email "you@email.com"
Set the hostname of your system.
bashsudo scutil --set HostName "your-hostname"
bashsudo scutil --set LocalHostName "your-hostname"
bashsudo scutil --set ComputerName "your-hostname"