MacBook Setup

journal

I’m in the process of setting up a new-ish MacBook. Unusually, this isn’t currently my primary machine, which gives me some leeway to really start from scratch instead of just transferring all the cruft accumulated over the years.

Stepping through macOS’s Setup Assistant was enraging in various ways, in no small part because dodging privacy invasions and similar nuisances is getting increasingly tricky1: Suppressing Siri, Apple Intelligence, location services and telemetry wasn’t always straightforward, especially because some of those features require additional tweaks in System Settings later on (e.g. imposing various Spotlight constraints and disabling Apple Intelligence Report via Privacy & Security).2

macOS appears to auto-generate the machine’s identifiers; we might want to double-check and perhaps correct those early on (System Settings → General → name and … → Sharing → hostname):

$ hostname
$ scutil --get HostName
$ scutil --get LocalHostName
$ scutil --get ComputerName

An important detail for me to remember here is the keyboard layout: Avoiding dead keys means choosing US rather than US International. While we’re there, we might as well activate Keyboard Navigation (System Settings → Keyboard), remap Caps Lock to Escape (… → Keyboard Shortcuts → Modifier Keys) and disable all autocorrections (… → Input Sources).

Speaking of accessibility, a while ago I resorted to increasing the default font size (System Settings → Displays → reduce resolution). In order to avoid the menu bar being influenced by the wallpaper, I opt for reduced transparency (System Settings → Accessibility → Display). I also prefer to hide the Dock by default for more screen estate (System Settings → Desktop & Dock), given that I typically launch applications via Spotlight or the command line3 anyway.

Another detail I can never remember is to make screenshots open in Preview instead of immediately saving to file: ⌘⇧5 pops up the toolbar where we can edit options.

After completing those basics, we can move on to install Homebrew as package manager and perhaps disable analytics there. We should not ignore Homebrew’s post-install instructions for extending our shell profile (i.e. ~/.profile).

Next we revert to Bash as our default shell (chsh -s /bin/bash) as that ensures we don’t rely on non-standard shell features. However, it might be a good idea to install the latest version of Bash via Homebrew4 – otherwise adding export BASH_SILENCE_DEPRECATION_WARNING=1 to our shell profile suppresses constant macOS nagging.

Now might be a good time to install essential applications like iTerm2 and Firefox. (Not sure I wanna share my full Brewfile here, though it’s fairly slim.)

At this point, I’m typically ready to transfer my dotfiles – except I started from scratch, or at least reviewed every single line, this time around. That’s a post for another day.