Last updated: 20/05/25
This note describes the steps I take when setting up a new Mac. This process could be mostly automated, but I can’t get myself to do it. It takes me around 90 minutes to go through all the steps. Let’s get started!
I. Prerequisite Files to Import
Before diving into installations, I make sure to have these configuration files ready:
.gitconfig
.zshrc
II. Software Installation
Apps marked with “🌕” emoji are optional (it depends if it’s a work or a private Mac).
A. Homebrew & Command-Line Tools
- Install HomeBrew (from Web)
- Install CLI tools via Brew:
// Set shell to zsh
chsh -s /bin/zsh
brew install zsh-autosuggestions
brew install zsh-syntax-highlighting
brew install pure
brew install jesseduffield/lazygit/lazygit
brew install xcodesorg/made/xcodes
// Optional
brew install rbenv
brew install swiftlint
brew install node
B. App Store Applications
C. GUI Applications (from Web)
- Alfred
- Rectangle
- Hammerspoon
- Karabiner-Elements
- Ghostty
- Obsidian
- Toggl
- Ice
- Xcode
- Visual Studio Code
- AppCleaner
- Logi Options+
- Monitor Control
- PDF Expert
- ProxyMan
- BoltAI
- 🌕 OmniDiskSweeper
- 🌕 Monodraw
III. Application Configuration
Now, let’s configure the installed applications.
- Alfred:
- Disable both shortcuts for Spotlight (Keyboard -> Keyboard Shortcuts … -> Spotlight -> disable both)
- Import preferences from
/Users/$USER/Library/Application Support/Alfred/Alfred.alfredpreferences
- Set global shortcut (⌘+Space)
- Enable Clipboard History
- Enable: Features -> Snippets “Automatically expand snippets by keyword”
- Enable: Features -> Web Bookmarks -> Safari Bookmarks
- Rectangle:
- Import config
- Hammerspoon:
- Import config
- Install AppLauncher
- Karabiner-Elements:
- Import config
- Ghostty:
- Import config
- Obsidian:
- In order to make
git
plugin work:git config --global credential.helper osxkeychain
git pull
- In order to make
- Visual Studio Code:
- Log in to sync plugins and preferences
- Fix holding motion keys not working with
vim
plugin:defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false
- Logi Options+:
- Restore from backup
- ProxyMan:
- Import mapped requests
IV. System Preferences Settings
Let’s tweak the system settings.
- Set desktop background
General
- Set accent color
Language & Region
- Set English (United States) as primary language
I simply can’t stand Trash being called Bin.
Displays
- Adjust display resolution
Desktop & Dock
- Desktop & Dock -> Desktop & Stage Manager -> Click wallpaper to reveal desktop ->
Only in Stage Manager
Keyboard
- Keyboard -> Keyboard Navigation ->
Enable
This setting enables option selection with the Tab key.
- Keyboard -> Keyboard Shortcuts -> Modifier Keys -> Map Caps Lock to Escape
Trackpad
- Trackpad -> Point & Click -> Tap to click
- Trackpad -> Point & Click -> Tracking Speed (increase)
Sharing
- Change machine’s name
Login Password
- Enable “Use Apple Watch to unlock your applications and your Mac”
Security & Privacy
- Disable “Password Autofill”
- Add fingers to Touch ID
General (System Settings Panel)
- Set Login Items
V. Core macOS Application & Utility Configuration
Archive Utility
- Preferences -> After expanding: move to trash
Messages
- Enable message forwarding on iPhone
- Enable iCloud sync
Dock
- Move to right
- Adjust zoom and size
- Rearrange apps
- Enable “Show Percentage” (Battery settings, if referring to menu bar)
- Take all accounts online
- Rename and rearrange
Finder
- Rearrange sidebar
- Set “Search the current folder”
- “Show path bar” (it’s in the menu bar)
- Enable “Snap to grid” (right click on empty Desktop, Show View Options -> Sort By -> Snap to Grid)
- Disable “Show warning before removing from iCloud Drive”
- Set Preferences -> General -> New Finder windows show … -> Desktop
Time Machine
- Create backup
Conclusion
That’s it. That’s the entire setup process. I know there are tools to automate ~90% of it. I plan to do it someday. In the meantime, my next project is to automate syncing things like Alfred preferences and system settings across all of my Macs. Fingers crossed, I’ll sit down and do it this summer!