Bootstrap a fresh Mac dev environment. Pairs with dotfiles (chezmoi-managed).
git clone https://github.com/cknadler/setup ~/src/setup
cd ~/src/setup && ./bootstrapPlain ./bootstrap is interactive: it asks whether the machine is work
or personal. Both run every core step (xcode, homebrew, brewfile,
claude, chezmoi, marta, vim_anywhere, bindings, osx) — no per-step
prompting. A personal machine additionally installs Brewfile.home and
asks (y/n) about music production apps, games (Dungeon Crawl), and media apps.
./bootstrap --all is the non-interactive equivalent for the core steps only.
Steps are idempotent and re-runnable.
./bootstrap --doctor # read-only state report
./bootstrap --only brewfile # re-run a subset
./bootstrap --only bindings # apply Mission Control / Spotlight hotkeys
./bootstrap --help # all flagsLogs land in ~/.local/state/setup/bootstrap-<timestamp>.log; a list of
completed steps is at ~/.local/state/setup/completed (delete entries to
force a re-run, or use --force).
Scripted via ./bootstrap --only bindings:
- Mission Control: Move Left/Right A Space →
cmd+shift+h/cmd+shift+l - Spotlight:
cmd+spaceunbound (Alfred replaces it) - Spotlight privacy: drops
.metadata_never_indexin~/Obsidianand~/Documents/Backup Projects
Still manual:
- Alfred — Alfred prefs → Advanced → Set
Sync Folder →
~/Dropbox/config/Alfred. One-time GUI step; Alfred handles preferences and workflows from there.
make test # bats tests/ (63 tests)
make lint # shellcheck (bootstrap, lib.sh, .osx, fixtures) + Brewfile syntax
make doctor # ./bootstrap --doctor
make all # lint + testSee CLAUDE.md for repo layout and the test infrastructure.
- System
- Multitasking
- "When I snap a window, show..." -> off
- "When I resize a snapped window..." -> off
- Timeline -> off
- Multitasking
- SharpKeys
- Left Cmd -> Left Ctrl
- Left Ctrl -> Left Cmd
- Caps Lock -> Escape
- Cubase
- Symlink these folders in from
~/Dropbox/config/Cubase(TODO: script) - Preferences -> Transport -> "Locate when Clicked in Empty Space": enabled
- Key Commands
- Key Commands:
cmd+shft+K - Record:
cmd+shft+R - Set Left Locator to Product Cursor Position:
ctrl+A - Set Right Locator to Product Cursor Position:
ctrl+D - Go to Left Locator:
shft+A - Go to Right Locator:
shft+D
- Key Commands:
- Symlink these folders in from
- Dorico (TODO: script key commands)
- Preferences -> Key Commands
- Raise Pitch by Chromatic Step:
opt+shft+K - Raise Pitch by Octave:
opt+cmd+K - Raise Pitch by Step:
opt+K - Lower Pitch by Chromatic Step:
opt+shft+J - Lower Pitch by Octave:
opt+cmd+J - Lower Pitch by Step:
opt+J - Filter -> Chord Symbols:
cmd+opt+shft+\
- Raise Pitch by Chromatic Step:
- Notation Options -> Accidentals
- Notes at a different octave in the following bar: No cautionary
- Setup
- Layout Options:
opt+shft+cmd+L
- Layout Options:
- Library -> Edit playback techniques
- Palm muting -> articulation type: Attribute
- Preferences -> Key Commands
Pre-installed by homebrew
- iLok
Install manually
Install via plugin managers, already installed by homebrew
- iZotope
- Waves
- Splice
- Native Instruments
- Update downloads, app & content to
/SSD/native_instruments
- Update downloads, app & content to
- Spitfire Audio
- UAD
- Neural DSP
- Fortin Nameless
- Parallax
- Nolly
- Fortin NTS
- Plini
- Plugin Alliance
- Steven Slate Drums - Trigger 2
- Valhalla DSP
- Auto Align
- Toontrack
- Component installation path
/SSD/superior_drummer - Symlink
~/Dropbox/confic/Superior\ Drummer/User\ MIDI->~/Music/EZdrummer/User\ MIDI(TODO: script)
- Component installation path
- Slate Digital
- TSE BOD
- boz Digital Labs
- Soundtoys
- Sonnox
- OTT
Copyright (c) 2020 Chris Knadler. See LICENSE for details.