Comment by coldtea

2 years ago

>Each time she acquires a new Mac, she embarks on a week-long odyssey to set up her computing environment from scratch. It's not because she enjoys it; rather, it's a necessity because the built-in migration assistant just doesn't cut it for her specialised needs.

She could use a bash or zsh script, with instructions to get the apps she wants. Brew allows installing most open source apps + MAS apps you've bought + third party proprietary apps. E.g.:

  brew install --cask alfred
  brew install --cask google-chrome

(She could save those in a brew dump file from the earlier machine too and re-play it).

then she could hookup up some external disk (or use some cloud storage) and sync any settings files she has customized (.zshrc, and so on) and rsync any stuff, build some folder structure she has, etc, and copy over settings for third party apps.

With "defaults write" commands she can then set a lof of Mac preferences that she'd normally have to change on the Settings page or individual Apple apps, e.g.:

  defaults write com.apple.finder QuitMenuItem -bool true

A new system would just need some small time to run the script to get to taste. I've been using that for years and it works great.

When I was maintaining a setup script using brew a few years ago, it seemed to regularly break due to brew changing how to pin versions or something else. I just gave up and switched to Linux. Maybe brew is more stable these days.

  • Maybe. I never pin specific versions, because for my use case (local utilities and apps) I don't care. So this is for basic system setup.

    For reproducible stuff I use docker, vms, etc with pinned versions. And for sciency stuff she'll be having something similar, or at least conda and such.