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

Last updated:
Table of Contents
Last configured: M4 Mac — March 24, 2026
Quickstart
New machine? Minimums for getting up and running:
Package Managers
Installing stuff begins with installing a way to install stuff.
| Tool | Install method |
|---|---|
| Homebrew | brew.sh |
| yarn | todo: install steps here Then get pnpm using corepack enable && corepack prepare pnpm@latest --activate |
| nvm | Standard install → then get node via nvm install node |
Apps: Essential
| App | Purpose |
|---|---|
| 1Password | Password manager — connect everywhere |
| Arc | Browser |
| Spotify | Music |
Continued Setup
Time to spare? Continue the setup with these.
Apps: All
| App | Purpose | Notes |
|---|---|---|
| Alfred | Improved search | Alfred config: - Suppress banner - Shortcuts: access Apple Shortcuts via sc- Wordsmith (thesaurus): trigger with theKnown issue: Alfred not populating inline options (e.g. Power Thesaurus, Wordsmith) |
| Better Touch Tool | Custom trackpad/mouse commands | |
| boringNotch | Temporary file shelf in notch area | |
| AltTab | cmd+tab expands minimized windows | Set Select previous window to shift+tab in Settings → Shortcuts |
| MonitorControl | External monitor brightness | brew install --cask monitorcontrol |
| LibreOffice | Writing documents / spreadsheets | |
| VS Code | Web / React Native development | Extensions: _ Markdown Inline Preview → markdown-inline-preview_ cSpell → todo: add ID here |
| Obsidian | Relational markdown notes with strong data ownership | |
| Logseq | Outliner for notetaking; data ownership | |
| Xcode | iOS simulators, App Store certificates |
More like utilities
| App | Purpose |
|---|---|
| TRex | OCR via screenshot |
| ActivityWatch | Time tracking |
| noTunes | Prevent Apple Music from opening; installed with brew install --cask notunes |
Browser Extensions (chromium)
- 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
Mac
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
Random Code Modifications
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
Customizing Settings by App
LibreOffice
- Assign strikethrough to
Cmd+Shift+Xby going toTools → Customize → Keyboard
VS Code Config
cSpell settings.json config:
"cSpell.enabledFileTypes": {
"*": true,
"json": false,
"jsonc": false,
"log": false
}
Terminal Setup
- iTerm2 — terminal emulator
- Oh My Zsh — shell framework (setup guide)
- PowerLevel10K — prompt theme (include VS Code terminal font)
zsh-syntax-highlightingzsh-completions