Mac Configuration

If I ever need to start over, the first apps I'd install and settings I'd configure.

Looking into the old quarry from just in front of Quarry Works Theatre in Vermont.
Last updated:

Last configured: M4 Mac — March 24, 2026


Package Managers

ToolInstall method
Homebrewbrew.sh
pnpmcorepack enable && corepack prepare pnpm@latest --activate
nvmstandard install; then get node via nvm install node
yarn

CLI Tools

ToolPurpose
gitVersion control
ghGitHub CLI
pythonCheck with python3 --version

Terminal Setup

  • iTerm2 — terminal emulator
  • Oh My Zsh — shell framework (setup guide)
    • PowerLevel10K — prompt theme (include VS Code terminal font)
    • zsh-syntax-highlighting
    • zsh-completions

Essential Apps

AppPurpose
1PasswordPassword manager — connect everywhere
ArcBrowser
SpotifyMusic
VS CodeWeb / React Native development
XcodeiOS simulators, App Store certificates
NotionNotes
ObsidianRelational markdown notes with strong data sovereignty

Mac Behavior

AppPurposeNotes
AlfredImproved searchSee config below
Better Touch ToolCustom trackpad/mouse commands
boringNotchTemporary file shelf in notch area
AltTabcmd+tab expands minimized windowsSet Select previous window to shift+tab in Settings → Shortcuts
MonitorControlExternal monitor brightnessbrew install --cask monitorcontrol

Alfred config:

  • Suppress banner
  • Shortcuts: access Apple Shortcuts via sc
  • Wordsmith (thesaurus): trigger with the

Known issue: Alfred not populating inline options (e.g. Power Thesaurus, Wordsmith)


Chrome Extensions

  • 1Password
  • Adblock Plus
  • Star History / GitHub Star History
  • YouTube Default Playback Speed (default 2×)
  • Youtube Playback Speed Control
  • Auto High Quality for YouTube
  • ReaderView
  • Antigram — Instagram modifier
  • Better History

System Preferences

  • Trackpad: Disable swipe between pages (two fingers) — prevents accidental back navigation
  • Calendar: Add to Spotlight privacy list — to prefer Fantastical instead
  • Mission Control: Disable Automatically rearrange Spaces based on most recent use Settings → Desktop & Dock → uncheck the option

Utilities

AppPurpose
TRexOCR via screenshot
ActivityWatchTime tracking
noTunesPrevent Apple Music from opening; installed with brew install --cask notunes

WebP Image Conversion

Saved as a Quick Action in ~/Library/Services. Source

for f in "$@"; do
  ext="${f##*.}"
  ext_lower=$(echo "$ext" | tr '[:upper:]' '[:lower:]')

  case "$ext_lower" in
    heic|heif)
      tmp="/tmp/$(basename "${f%.*}").png"
      /usr/bin/sips -s format png "$f" --out "$tmp" >/dev/null
      /opt/homebrew/bin/cwebp -q 80 -quiet "$tmp" -o "${f%.*}.webp"
      rm -f "$tmp"
      ;;
    jpg|jpeg|png|tiff)
      /opt/homebrew/bin/cwebp -q 80 -quiet "$f" -o "${f%.*}.webp"
      ;;
    *)
      # skip unsupported formats
      ;;
  esac
done

VS Code Extensions

ExtensionID
Markdown Inline Previewmarkdown-inline-preview
cSpell

cSpell settings.json config:

"cSpell.enabledFileTypes": {
  "*": true,
  "json": false,
  "jsonc": false,
  "log": false
}

Coded & written by James Mitofsky