Skip to content

Instantly share code, notes, and snippets.

@maxfenton
Last active August 15, 2026 07:34
Show Gist options
  • Select an option

  • Save maxfenton/515f9f6fcfab0eadfd1a to your computer and use it in GitHub Desktop.

Select an option

Save maxfenton/515f9f6fcfab0eadfd1a to your computer and use it in GitHub Desktop.
System setup stuff for a new mac or a new OLD mac (a/o 2026)

Setting up a Mac

  • 2026-07-31 · MacOS 26 Tahoe · Apple Silicon
  • Intel machines and OpenCore Legacy are in the companion file below

PART ONE — Clean

Result: a machine with no Apple Intelligence, no Siri, no analytics reporting, none of the bundled iLife/iWork apps, and the undeletable ones silenced. Clean.

1. Erase

I do this on all new machines, out of the box. Do you know where that box has been?

  • Reset in place: System Settings → General → Transfer or Reset → Erase All Content and Settings
  • Clean slate: boot Recovery → Disk Utility → erase internal volume as APFS → Reinstall MacOS
  • Recovery on Apple Silicon: shut down, hold the power button until "Loading startup options". (Not Cmd-R)
  • One pass is enough. Apple Silicon SSDs are hardware-encrypted; Erase All Content and Settings destroys the key — a plain Disk Utility erase doesn't.

2. First settings

Before connecting anything, there are some things you can turn on or off.

After this pass: no assistant, no telemetry, no ad targeting, no notifications reaching you on a locked or sleeping screen.

Apple Intelligence & Siri
    Apple Intelligence: OFF // 27 betas remove the off switch
    Siri: OFF
    "Listen for" wake phrase: OFF
    Show Siri in menu bar: OFF
    Siri Suggestions: OFF everywhere // Spotlight, Look Up, Safari, Share, per-app list

Privacy & Security
    FileVault: ON // on 26, already on if you signed in with an Apple Account at setup
    Analytics & Improvements: all OFF
    Apple Advertising → Personalized Ads: OFF
    Location Services: OFF // also turns off Find My Mac and automatic time zone

General → AirDrop & Handoff
    iPhone Mirroring: OFF // caution: not a toggle here — requires Handoff, so Handoff OFF disables it
    Handoff: OFF

Notifications
    Allow when display is sleeping: OFF
    Allow when screen is locked: OFF
    Allow when mirroring or sharing: OFF
    Show previews: when unlocked
    Apple Intelligence summaries: OFF
    Per app: alert style None, then re-enable what you need

Network → DNS
    Cloudflare: 1.1.1.1 / 1.0.0.1
    or OpenDNS: 208.67.222.222 / 208.67.220.220 // but they're Cisco now so I wouldn't

MacOS 27 restructures Siri into a standalone app, so these toggles won't work above 26.

3. Delete the bundled apps

Reclaim tens of gigabytes, almost all of it GarageBand's sound libraries rather than the apps themselves.

These are sudo rm commands which are dangerous. You can drag the apps to the trash if you aren't a command line user or use AppZapper (see apps below)

sudo rm -rf /Applications/GarageBand.app
sudo rm -rf /Applications/iMovie.app
sudo rm -rf /Applications/Pages.app
sudo rm -rf /Applications/Numbers.app
sudo rm -rf /Applications/Keynote.app

# GarageBand's sound libraries survive deleting the app — tens of GB
sudo rm -rf "/Library/Application Support/GarageBand"
sudo rm -rf "/Library/Application Support/Logic"
sudo rm -rf "/Library/Audio/Apple Loops"
rm -rf ~/Library/Application\ Support/GarageBand

4. Silence what you can't delete

News, Stocks, and Tips are on the Signed System Volume. They cannot be removed — not with SIP disabled, not with a snapshot rewrite. Boo, Tim Apple!

You can't remove these, but you can make them more inert — no notifications, no widgets, no Dock icon.

  • System Settings → Notifications → each app → Allow Notifications OFF
  • Screen Time → App Limits → add each, minimal limit, Block at end of limit — or block them under Downtime
  • Remove their widgets from Notification Center and the desktop
  • Remove from Dock
  • Spotlight settings → hide iPhone apps (if iPhone Mirroring is on)

PART TWO — Visual defaults

Result: opaque windows instead of Liquid Glass, permanent scroll bars, higher contrast, no animation, a flat neutral desktop, and a Dock and Finder that behave like a computer rather than a tablet.

Prerequisites: grant your terminal Full Disk Access (System Settings → Privacy & Security), quit and reopen it. Log out and back in when finished — killall Dock is not enough.

5. Appearance

Kills the transparency and the motion. This is most of the visible difference.

Accessibility → Display
    Reduce transparency: ON
    Increase contrast: ON
    Differentiate without color: ON

Accessibility → Motion
    Reduce motion: ON

Appearance
    Liquid Glass: Tinted // added in 26.1
    Icon & widget style: Default
    Tint window background with wallpaper color: OFF
    Show scroll bars: Always
    Sidebar icon size: Small

To get both Tinted and Reduce Transparency: turn Reduce Transparency OFF → set Tinted → turn Reduce Transparency back ON. The picker greys out but the setting holds.

defaults write com.apple.universalaccess reduceTransparency -bool true
defaults write com.apple.universalaccess reduceMotion -bool true
defaults write com.apple.universalaccess increaseContrast -bool true
defaults write com.apple.universalaccess differentiateWithoutColor -bool true

defaults write com.apple.Accessibility ReduceMotionEnabled -int 1
defaults write com.apple.Accessibility DifferentiateWithoutColor -int 1

defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

You can check they are set with: defaults read com.apple.universalaccess reduceTransparency

6. Wallpaper

Set a static color, not an image or dynamic wallpaper.

I've used an 18% grey background with a centered image (shuffled from a folder) on every computer for twenty years and that's what I like. That number came from the Kodak R-27 gray card being at 18% reflectance. https://en.wikipedia.org/wiki/Gray_card

System Settings → Wallpaper → Solid Colors → Custom Color → Color Picker → Grayscale slider → 18% (#2E2E2E)

If this is too dark for you, try #767676

7. Desktop, Dock, Finder

Removes widgets, Stage Manager, Dock magnification and animation; gives Finder list view, visible extensions, a path bar, and folders sorted first.

Desktop & Dock
    Show widgets on Desktop: OFF
    Click wallpaper to reveal desktop: Only in Stage Manager
    Stage Manager: OFF
    Magnification: OFF
    Minimize using: Scale effect
    Show suggested and recent apps in Dock: OFF
    Tiled windows have margins: OFF
    Hot corners: all off

Keyboard
    Use F1, F2 as standard function keys: ON
    Keyboard navigation: ON

Spotlight
    Search Results: enable only what you want it to find — a launcher and
    Finder do the rest, and other tools use the index, so leave indexing on
    Siri Suggestions: OFF          // no web results, no queries to Apple
    Help Apple improve Search: OFF
    Show Related Content: OFF
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0
defaults write com.apple.dock launchanim -bool false
defaults write com.apple.dock expose-animation-duration -float 0.1
defaults write com.apple.dock magnification -bool false
defaults write com.apple.dock mineffect -string "scale"
defaults write com.apple.dock show-recents -bool false
defaults write com.apple.dock mru-spaces -bool false
killall Dock

chflags nohidden ~/Library
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
defaults write com.apple.finder AppleShowAllFiles -bool true
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
defaults write com.apple.finder ShowPathbar -bool true
defaults write com.apple.finder ShowStatusBar -bool true
defaults write com.apple.finder _FXSortFoldersFirst -bool true
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"   # current folder
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"   # list view
defaults write com.apple.finder DisableAllAnimations -bool true
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
killall Finder

CLI equivalents of the Stage Manager / widgets / click-to-reveal toggles:

defaults write com.apple.WindowManager GloballyEnabled -bool false
defaults write com.apple.WindowManager StandardHideWidgets -bool true
defaults write com.apple.WindowManager EnableStandardClickToShowDesktop -bool false

run killall WindowManager after

Launchpad was removed in 26. Replacement is Spotlight → Apps (⌘Space, ⌘1). Use a launcher instead — Quicksilver, Alfred, or Raycast.


PART THREE — pref er ence

This part is taste, not restoration. Result: a keyboard that might repeat faster than the settings pane allows, no autocorrect to mangle code, screenshots in a folder instead of on the desktop, and my personal toolbox for making websites.

8. Typing

Fast key repeat, no accent-character popup blocking held keys, tab reaching every control, and no smart quotes or em-dashes silently corrupting code and commit messages.

# unit is 15ms. Write 1 first, then 0 — 0 alone doesn't take.
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain KeyRepeat -int 0
defaults write NSGlobalDomain InitialKeyRepeat -int 15

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false   # kills accent popup
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3             # tab reaches everything
defaults write NSGlobalDomain com.apple.keyboard.fnState -bool true

# text substitution — these corrupt code and commit messages
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticTextCompletionEnabled -bool false

# per-app, if the global gets overridden
defaults write com.vscodium ApplePressAndHoldEnabled -bool false

KeyRepeat 0 is below the System Settings minimum. Real fast.

9. Screenshots and misc

I make a lot of screenshots and I sync my iCloud desktop. This can cause a lot of churn across devices, but can also be handy. Pros and cons for this: move screenshot default folder to ~/Screenshots as PNGs with no drop shadow and no floating thumbnail.

mkdir -p ~/Screenshots
defaults write com.apple.screencapture location -string "${HOME}/Screenshots"

Regardless of where you save them:

defaults write com.apple.screencapture type -string "png"
defaults write com.apple.screencapture disable-shadow -bool true
defaults write com.apple.screencapture show-thumbnail -bool false
killall SystemUIServer

These are small annoyances and weird tweaks I've made over time that might not make sense anymore:

defaults -currentHost write -globalDomain AppleFontSmoothing -int 0   # 0 is correct on Retina
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true

Add Develop menu and full URLs in Safari. Note: Safari's plist is TCC-protected and these often don't stick. You can use Safari → Settings → Advanced instead.

defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true

10. Command line

xcode-select --install

# Homebrew — /opt/homebrew on Apple Silicon, not /usr/local
# https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.zprofile

# oh-my-zsh — repo moved to ohmyzsh/ohmyzsh
# https://ohmyz.sh/
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# then: plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

# ssh
ssh-keygen -t ed25519 -C "you@example.com"

~/.ssh/config:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

Note: casks that ship a .pkg ignore --appdir and go where their installer decides, which is right.

11. Menu bar

Remove cruft from the built-in System Settings → Menu Bar first. If you use a launcher — Quicksilver, Alfred, Raycast — remove the Spotlight icon there (uncheck Spotlight), along with any other icons you don't use.

Replacement menu managers: Ice (free, last stable Feb 2026), Hidden Bar (unmaintained, works), or Bartender (sold in 2024, requires screen recording).

12. Runtimes

nvm manages node versions from a .nvmrc. PHP comes straight from Homebrew.

# nvm — Homebrew installs it but won't wire it into your shell
brew install nvm
mkdir -p ~/.nvm
cat >> ~/.zshrc <<'EOF'
export NVM_DIR="$HOME/.nvm"
[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && . "/opt/homebrew/opt/nvm/nvm.sh"
EOF
. "/opt/homebrew/opt/nvm/nvm.sh"   # load it now; .zshrc handles future shells
nvm install --lts

brew install php@8.3

13. Apps

I don't actually use a Brewfile but this reads better on a gist than just a codeblock and should work. You might want to brew info <cask> before a batch install — cask names change.

brew bundle --file=~/Brewfile

~/Brewfile

tap "ddev/ddev"

brew "git"
brew "gh"
brew "wget"
brew "coreutils"

brew "composer"
brew "mkcert"             # local TLS certs, DDEV needs this
brew "zoxide"             # previously: z
brew "htop"
brew "mas"

# Applications
cask "iterm2"
cask "google-chrome"
cask "firefox"
cask "vscodium"

# Development
cask "orbstack"           # Docker runtime, lighter than Docker Desktop
brew "ddev/ddev/ddev"     # local PHP/Craft environment
cask "kaleidoscope"
cask "xscope"
cask "sequel-ace"         # previously: Sequel Pro
cask "transmit"

# Utilities
cask "appzapper"
cask "macs-fan-control"
cask "grandperspective"   # previously: Disk Inventory X

# Utilities: finder
cask "quicksilver"
cask "alfred"
cask "moom"          # previously: Divvy
mas "Amphetamine", id: 937984704   # previously: Caffeine

# Utilities: media
brew "imagemagick"
brew "ffmpeg"
cask "vlc"
cask "imageoptim"
cask "licecap"

# Utilities: password
cask "1password"
cask "1password-cli"

# Applications: text
cask "macdown-3000"       # maintained MacDown; plain "macdown" cask retired
cask "obsidian"           # previously: nvAlt

# Utilities: backups
cask "arq"
cask "superduper"

# Fonts
cask "font-fira-code"
cask "font-ia-writer-mono"
cask "font-jetbrains-mono-nerd-font"

Intel Macs — wipe, clean, encrypt

2026-07-31 · Intel Macs kept on the last supported MacOS

There's still use for older Mac computers with Intel chips. That said, those chips have deep security problems and each patch over the years has made them noticably slower. Maybe use them for emulation or Bazzite or something. I use mine as a Plex server and I need it to work on my home network with modern iCloud synchronization without diminishing the security of my other devices.


Result: a machine wiped to bare metal, running the oldest MacOS that still gets both security patches and iCloud encryption, cleaned and set up the way I like, and signed into an ADP-protected account.


1. Wipe

Removes everything the previous owner left — files, accounts, configuration profiles, login items, launch agents, and management payloads.

  • Cmd-R. for Local Recovery, but that boots off the disk you don't necessarily trust

or better (but slower)

  • Option-Cmd-R for Internet Recovery, or a USB installer built on a Mac you trust. OCLP requires the USB route.
  • Disk Utility → View → Show All Devices → select the top-level physical disk, not the volume → erase as APFS, GUID Partition Map
  • Install the target MacOS, then run all updates. Firmware and bridgeOS ship inside MacOS updates.
  • T2 only: Recovery → Utilities → Startup Security Utility → Full Security, Disallow booting from external media
  • FileVault ON. Non-T2 Intel has no hardware encryption; FileVault is doing the real work.

A full erase clears the disk.

2. OpenCore Legacy Patcher

One crucial requirement if you're going to share any iCloud files between the Intel machine and other devices is Advanced Data Protection

Advanced Data Protection requires MacOS 13.1+. A machine that can't reach 13.1 should never connect to iCloud. One under-version device blocks ADP for every other device on the account.

Other security patches need Sonoma (14) or Sequoia (15) — Ventura's last update was 13.7.8, August 2025. Intel tops out at Sequoia; there is no Tahoe for it.

If the machine can't officially reach 13.1, and you want it to be connected to iCloud and/or the internet, use OpenCore Legacy Patcher

Warning: OCLP needs SIP partially disabled and uses a bootloader that bypasses some native security checks.

OCLP won't get you to 26, but you don't want it anyway. There's no stable Tahoe build, and MacOS 27 removes the Intel code entirely.

3. Clean setup

  • Skip Migration Assistant. Never restore from the previous owner's backup.
  • Fresh local admin account, new password.
  • Don't sign into their Apple Account for any reason.

4. First settings

Before connecting anything, there are some things you can turn on or off. Intel has no Apple Intelligence, so this is shorter than on Apple Silicon — Siri is still here, so turn it off.

After this pass: no assistant, no telemetry, no ad targeting, no notifications reaching you on a locked or sleeping screen.

Siri
    Siri: OFF
    "Listen for" wake phrase: OFF
    Show Siri in menu bar: OFF
    Siri Suggestions: OFF everywhere // Spotlight, Look Up, Safari, Share, per-app list

Privacy & Security
    FileVault: ON // does the real work on non-T2 Intel — no hardware encryption
    Analytics & Improvements: all OFF
    Apple Advertising → Personalized Ads: OFF
    Location Services: OFF // also turns off Find My Mac and automatic time zone

General → AirDrop & Handoff
    Handoff: OFF
    iPhone Mirroring: T2 Macs only — not present on pre-T2 Intel

Notifications
    Allow when display is sleeping: OFF
    Allow when screen is locked: OFF
    Allow when mirroring or sharing: OFF
    Show previews: when unlocked
    Per app: alert style None, then re-enable what you need

Network → DNS
    Cloudflare: 1.1.1.1 / 1.0.0.1
    or OpenDNS: 208.67.222.222 / 208.67.220.220 // but they're Cisco now so I wouldn't

5. Delete the bundled apps

Reclaims tens of gigabytes, almost all of it GarageBand's sound libraries rather than the apps themselves. These are sudo rm commands which are dangerous. You can drag these to the trash if you aren't a command line user.

sudo rm -rf /Applications/GarageBand.app
sudo rm -rf /Applications/iMovie.app
sudo rm -rf /Applications/Pages.app
sudo rm -rf /Applications/Numbers.app
sudo rm -rf /Applications/Keynote.app

# GarageBand's sound libraries survive deleting the app — tens of GB
sudo rm -rf "/Library/Application Support/GarageBand"
sudo rm -rf "/Library/Application Support/Logic"
sudo rm -rf "/Library/Audio/Apple Loops"
rm -rf ~/Library/Application\ Support/GarageBand

6. Silence junk apps

News, Stocks, and Tips are on the Signed System Volume. They cannot be removed — not with SIP disabled, not with a snapshot rewrite. Boo, Tim Apple!

You can make them more inert — no notifications, no widgets, no Dock icon.

  • System Settings → Notifications → each app → Allow Notifications OFF
  • Screen Time → App Limits → add each, minimal limit, Block at end of limit — or block them under Downtime
  • Remove their widgets from Notification Center and the desktop
  • Remove from Dock

7. Appearance

Kill transparency and motion. This is most of the visible difference.

Accessibility → Display
    Reduce transparency: ON
    Reduce motion: ON
    Increase contrast: ON
    Differentiate without color: ON

Appearance
    Show scroll bars: Always
    Sidebar icon size: Small

Full Disk Access required (System Settings → Privacy & Security), then quit and reopen your terminal. Log out and back in when finished — killall Dock is not enough.

defaults write com.apple.universalaccess reduceTransparency -bool true
defaults write com.apple.universalaccess reduceMotion -bool true
defaults write com.apple.universalaccess increaseContrast -bool true
defaults write com.apple.universalaccess differentiateWithoutColor -bool true

defaults write NSGlobalDomain AppleShowScrollBars -string "Always"
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool false
defaults write NSGlobalDomain NSWindowResizeTime -float 0.001

Check one landed: defaults read com.apple.universalaccess reduceTransparency

8. Wallpaper

Set a static color, not an image or dynamic wallpaper.

18% grey. That number came from the Kodak R-27 gray card being at 18% reflectance. https://en.wikipedia.org/wiki/Gray_card

System Settings → Wallpaper → Solid Colors → Custom Color → Color Picker → Grayscale slider → 18% (#2E2E2E)

If this is too dark for you, try #767676.

9. Desktop, Dock, Finder

Remove widgets, Stage Manager, Dock magnification and animation; give Finder list view, visible extensions, a path bar, and folders sorted first. Launchpad is installed on Sonoma/Sequoia — disable its shortcuts and use a launcher.

Desktop & Dock
    Show widgets on Desktop: OFF
    Stage Manager: OFF
    Magnification: OFF
    Minimize using: Scale effect
    Show recent applications in Dock: OFF
    Tiled windows have margins: OFF // Sequoia only; Sonoma has no tiling
    Hot corners: all off

Keyboard
    Use F1, F2 as standard function keys: ON
    Keyboard navigation: ON

Spotlight
    Search Results: disable most, except files, folders, and applications
    Siri Suggestions: OFF          // no web results, no queries to Apple
    Help Apple improve Search: OFF
defaults write com.apple.dock autohide -bool true
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0
defaults write com.apple.dock launchanim -bool false
defaults write com.apple.dock expose-animation-duration -float 0.1
defaults write com.apple.dock magnification -bool false
defaults write com.apple.dock mineffect -string "scale"
defaults write com.apple.dock show-recents -bool false
defaults write com.apple.dock mru-spaces -bool false
killall Dock

chflags nohidden ~/Library
defaults write NSGlobalDomain AppleShowAllExtensions -bool true
defaults write com.apple.finder AppleShowAllFiles -bool true
defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false
defaults write com.apple.finder ShowPathbar -bool true
defaults write com.apple.finder ShowStatusBar -bool true
defaults write com.apple.finder _FXSortFoldersFirst -bool true
defaults write com.apple.finder FXDefaultSearchScope -string "SCcf"   # current folder
defaults write com.apple.finder FXPreferredViewStyle -string "Nlsv"   # list view
defaults write com.apple.finder DisableAllAnimations -bool true
defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true
killall Finder

Desktop widgets and Stage Manager arrived in Sonoma 14:

defaults write com.apple.WindowManager GloballyEnabled -bool false               # Stage Manager
defaults write com.apple.WindowManager StandardHideWidgets -bool true
defaults write com.apple.WindowManager EnableStandardClickToShowDesktop -bool false

then killall WindowManager

10. Typing

Fast key repeat, no accent-character popup blocking held keys, tab reaching every control, and no smart quotes or em-dashes silently corrupting code and commit messages.

# unit is 15ms. Write 1 first, then 0 — 0 alone doesn't take.
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain KeyRepeat -int 0
defaults write NSGlobalDomain InitialKeyRepeat -int 15

defaults write NSGlobalDomain ApplePressAndHoldEnabled -bool false   # kills accent popup
defaults write NSGlobalDomain AppleKeyboardUIMode -int 3             # tab reaches everything
defaults write NSGlobalDomain com.apple.keyboard.fnState -bool true

# text substitution — these corrupt code and commit messages
defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticPeriodSubstitutionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
defaults write NSGlobalDomain NSAutomaticTextCompletionEnabled -bool false

# per-app, if the global gets overridden
defaults write com.vscodium ApplePressAndHoldEnabled -bool false

KeyRepeat 0 is below the System Settings minimum. Really fast.

11. Screenshots

Optional: save screenshots to a folder instead of the Desktop

mkdir -p ~/Screenshots
defaults write com.apple.screencapture location -string "${HOME}/Screenshots"

Save screenshots as PNGs with no drop shadow and no floating thumbnail.

defaults write com.apple.screencapture type -string "png"
defaults write com.apple.screencapture disable-shadow -bool true
defaults write com.apple.screencapture show-thumbnail -bool false
killall SystemUIServer

defaults -currentHost write -globalDomain AppleFontSmoothing -int 0   # 0 is correct on Retina
defaults write com.apple.print.PrintingPrefs "Quit When Finished" -bool true

12. Misc

Add Develop menu and full URLs in Safari. Note: Safari's plist is TCC-protected and these often don't stick. You can use Safari → Settings → Advanced instead.

defaults write com.apple.Safari IncludeDevelopMenu -bool true
defaults write com.apple.Safari ShowFullURLInSmartSearchField -bool true

13. Command line

Homebrew lives in /usr/local on Intel — the old default, before Apple Silicon moved it to /opt/homebrew.

xcode-select --install

# Homebrew — /usr/local on Intel
# https://brew.sh/
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/usr/local/bin/brew shellenv)"
echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.zprofile

# oh-my-zsh — https://ohmyz.sh/
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
git clone https://github.com/zsh-users/zsh-autosuggestions \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
  ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# then: plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Add your SSH key or make one (if you need to)

# ssh
ssh-keygen -t ed25519 -C "you@example.com"

~/.ssh/config:

Host *
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

14. Menu bar

Sonoma and Sequoia have no dedicated Menu Bar settings pane (that came in 26), so hide system icons from System Settings → Control Center — set the ones you don't want to "Don't Show in Menu Bar." If you use a launcher (Quicksilver, Alfred, Raycast), hide the Spotlight icon there too. Cmd-drag reorders icons.

If you need a manager: Ice (free, last stable Feb 2026), Hidden Bar (unmaintained, works), or Bartender (sold in 2024, requires screen recording).

15. Apps

brew bundle --file=~/Brewfile

Caution: brew info <cask> before a batch install — cask names change. Some casks are Apple Silicon only and will refuse to install here.

~/Brewfile

brew "git"
brew "gh"
brew "wget"
brew "coreutils"
brew "zoxide"             # previously: z
brew "htop"
brew "mas"

# Applications
cask "iterm2"
cask "google-chrome"
cask "firefox"
cask "vscodium"

# Utilities
cask "kaleidoscope"
cask "xscope"
cask "sequel-ace"         # previously: Sequel Pro
cask "transmit"
cask "appzapper"
cask "macs-fan-control"
cask "grandperspective"   # previously: Disk Inventory X

# Utilities: finder
cask "quicksilver"
cask "alfred"
cask "moom"          # previously: Divvy
mas "Amphetamine", id: 937984704   # previously: Caffeine

# Utilities: media
brew "imagemagick"
brew "ffmpeg"
cask "vlc"
cask "imageoptim"
cask "licecap"

# Utilities: password
cask "1password"
cask "1password-cli"

# Applications: text
cask "macdown-3000"       # maintained MacDown
cask "obsidian"           # previously: nvAlt

# Utilities: backups
cask "arq"
cask "superduper"

# Fonts
cask "font-fira-code"
cask "font-ia-writer-mono"
cask "font-jetbrains-mono-nerd-font"

16. Enable iCloud

Last step.

  • Set up a recovery contact or recovery key first — ADP won't turn on without one. Store the key off this machine.
  • Every other device on the account must meet its own minimum version, or be signed out.
  • System Settings → your name → iCloud → Advanced Data Protection
  • iCloud.com web access is disabled by default afterward.
  • Confirm FileVault is still on.
@maxfenton

This comment was marked as outdated.

@maxfenton

This comment was marked as resolved.

@maxfenton

Copy link
Copy Markdown
Author

Updated with separate docs for Intel and Silicon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment