Skip to content

cknadler/setup

Repository files navigation

Workspace Setup

Bootstrap a fresh Mac dev environment. Pairs with dotfiles (chezmoi-managed).

macOS

Fresh machine

git clone https://github.com/cknadler/setup ~/src/setup
cd ~/src/setup && ./bootstrap

Plain ./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.

Day-to-day

./bootstrap --doctor          # read-only state report
./bootstrap --only brewfile   # re-run a subset
./bootstrap --only bindings   # apply Mission Control / Spotlight hotkeys
./bootstrap --help            # all flags

Logs 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).

Bindings / Settings

Scripted via ./bootstrap --only bindings:

  • Mission Control: Move Left/Right A Space → cmd+shift+h / cmd+shift+l
  • Spotlight: cmd+space unbound (Alfred replaces it)
  • Spotlight privacy: drops .metadata_never_index in ~/Obsidian and ~/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.

Development

make test     # bats tests/   (63 tests)
make lint     # shellcheck (bootstrap, lib.sh, .osx, fixtures) + Brewfile syntax
make doctor   # ./bootstrap --doctor
make all      # lint + test

See CLAUDE.md for repo layout and the test infrastructure.

Windows

Settings

  • System
    • Multitasking
      • "When I snap a window, show..." -> off
      • "When I resize a snapped window..." -> off
      • Timeline -> off

Software

  • SharpKeys
    • Left Cmd -> Left Ctrl
    • Left Ctrl -> Left Cmd
    • Caps Lock -> Escape

Music

General

  • 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
  • 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+\
    • Notation Options -> Accidentals
      • Notes at a different octave in the following bar: No cautionary
    • Setup
      • Layout Options: opt+shft+cmd+L
    • Library -> Edit playback techniques
      • Palm muting -> articulation type: Attribute

Hardware Drivers

Pre-installed by homebrew

  • iLok

Install manually

Plugins

Install via plugin managers, already installed by homebrew

  • iZotope
  • Waves
  • Splice
  • Native Instruments
    • Update downloads, app & content to /SSD/native_instruments
  • Spitfire Audio

Manual

Copyright

Copyright (c) 2020 Chris Knadler. See LICENSE for details.

About

My setup

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors