Motivation: The follow spec details how I set up a brand new macOS computer, for writing, software development, and everyday productivity. I maintain it to streamline the process each time I do it.
Last updated: 12 Nov 2024
- Stored at ohong/new-machine-setup
- Filename:
~/dev/new-machine-setup/Brewfile - Current OS: macOS Sequoia 15.1
- Added a changelog
- Removed the screenshots, unnecessary
- No longer using (remove from Brewfile):
- Alfred, replaced by Raycast
- Atom, replaced by VS Code & Cursor
- Google Chrome, replaced by Arc browser
- iTerm, replaced by Warp
- Magnet, replaced by Raycast (Window Management)
- Dropbox, just use the web interface, or Google Drive or iCloud storage
- Fantastical, replaced by Notion Calendar
- Spark, replaced by Superhuman
- TunnelBear, replaced by NordVPN
- Added new apps I use now under “Applications” & to the Brewfile
- Removed step of adding
brewupalias to my bash profile - Removed steps for installing Node JS, npm, Ruby, composer, virtual hosts. I just don’t use them enough to justify doing on every fresh setup.
- Removed section on customising iTerm, I just use Warp now
- Removed section on changing OS defaults from command line
- Shortened section on SSH & combined it with GitHub set up
- Added all Finder & System Settings changes
All via the Brewfile cask and mas commands.
- Arc — web browser
- Bear — Markdown notes
- Notion — personal database / 2nd brain
- 1Password — password manager
- Raycast — launcher
- Things 3 — task manager
- Visual Studio Code
- Cursor — AI code editor
- Windsurf — another AI code editor
- Linear — project management
- Postman — API testing tool
- Warp — Terminal replacement
- AppCleaner
- Bartender 5 — menu bar organiser
- CheatSheet
- Clay
- Cubby
- DaisyDisk
- Descript
- Discord
- Limitless
- LINE
- Logi Options+
- Loom
- MacWhisper
- NordVPN
- Notion Calendar
- Numi
- One Thing
- Perplexity
- Poe
- Raindrop
- Rewind
- Rize — AI time tracking
- RODE Connect
- Screen Studio
- Shortcat
- Slack
- Spotify
- Streamlabs — Live streaming
- Superhuman
- Texts — Unified inbox for messages
- Wispr Flow — Voice dictation
- Zoom
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"The Mac App Store command line interface, or mas-cli, will allow you to install from the App Store.
brew install masIf you haven't already logged into the App Store, you can do so now.
mas signin [email protected]Brewfile lists all the programs I want on my machine and install them in a bundle. It is in this repository.
Simply run this command to install the bundle:
brew bundle installAlternatively, I can bundle install from a Brewfile hosted on my GitHub, without creating a local copy:
curl -fsSL https://raw.githubusercontent.com/ohong/new-machine-setup/blob/master/Brewfile | brew bundle --file=-touch ~/.gitconfigHere I'll input my name, email, GitHub username, some aliases to be able to type less and do more:
[user]
name = First Last
email = [email protected]
[github]
user = username
[alias]
a = add
ca = commit -a
cam = commit -am
s = status
pom = push origin master
pog = push origin gh-pages
puom = pull origin master
puog = pull origin gh-pages
cob = checkout -bWith the above aliases, I can run git s instead of git status, for example.
Hide all icons on desktop:
defaults write com.apple.finder CreateDesktop false;killall Finder
Remove Dock delays:
defaults write com.apple.dock autohide-delay -float 0; defaults write com.apple.dock autohide-time-modifier -int 0;killall Dock
Disable disk warnings:
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.DiskArbitration.diskarbitrationd.plist DADisableEjectNotification -bool YES && sudo pkill diskarbitrationd
Change screenshot default to JPG (smaller files vs. PNG):
defaults write com.apple.screencapture type jpg
Make hidden app icons transparent in Dock:
defaults write com.apple.Dock showhidden -bool TRUE && killall Dock
- Export the latest Raycast “Settings & Data”, then import into new machine.
- 1Password
- uBlock Origin (N.B. no long compatible with Chromium after June 2025)
- Archive Page
- Raindrop.io
- General -> Don’t show any items on the desktop, New Finder windows show: Documents, Sync Desktop & Documents folders
- Sidebar: Show ohong (Home), Recents, Applications, Downloads, dev
- Advanced -> When performing a search: Search the Current Folder
- Change to List view
- For each file, show: Name, Date Modified, Size, Kind
- View -> Show Path Bar, Show Status Bar
- Customise Toolbar: add Airdrop & Share
- Make my own “Recents” folder: New Smart Folder -> Opened within last 7 days, NOT Applications
- Set service order, prioritise Ethernet connection over WiFi
- Firewall: ON
- Switch to 24-hour time & show 24h time on Lock Screen
- Open at Login:
- Bartender 5
- CheatSheet
- Raycast
- Rewind
- Supercharge
- Things Helper
- Show scroll bars: When scrolling
- Click in the scroll bar to: Jump to the spot that’s clicked
- Clean up, remove Spotlight Search et al.
- Make dock smaller, small magnification
- Move to left of the screen
- Minimise windows using Scale Effect
- Minimise windows into application icon = ON
- Automatically hide and show the Dock = ON
- Show recent apps = OFF.
- Tiled windows have margins = OFF
- Default web browser = Arc
- Hot corners:
- Top-left (+ Cmd) = Lock Screen
- Bottom-left (+ Cmd) = Notification Centre
- Top-right = Desktop
- Bottom-right = Mission Control
- More Space
- Night Shift: Turn on from Sunset to Sunrise
- FileVault: ON (makes sure SSD is securely encrypted)
- Allow applications from: App Store and Known Developers
- Use Apple Watch to unlock
- Fastest key repeat rate, shortest delay until repeat
- Keyboard Shortcuts -> Spotlight -> Deselect shortcuts
- Remap Modifier Keys:
- Caps Lock = Escape
- For external keyboards: swap Option <> Command
- Text Input -> Edit: Turn OFF correct spelling, capitalise words, etc. Keep add full stop with double-space.
- Max pointer & scroll speeds
- Side buttons to move between desktop
- Wheel click = Cmd + W (close tab / window)
- Scroll direction = Standard
What else am I missing?
- Desktop wallpapers—How to make them sync across devices?
- Brew packages I’m testing:
- Apps testing: Supercharge, Windsurf (Cursor competitor)