Will Styler's Homepage
Will Styler

Associate Teaching Professor of Linguistics at UC San Diego

Director of UCSD's Computational Social Science Program

Selected Advice for setting up a new Mac

December 2023

It happens to be the case that two different people I give a damn about have just moved to MacOS from the Windows world. Although as a vegetarian Linux user (sorry, I never know which one I have to casually insert into conversations first), I’m about a year out of date, and this post will grow more dated as we move away from 2023, but here are the programs and processes I used when I was a Mac person.

Some apps may be discontinued, abandoned, or even worse, moved to a subscription model. Your mileage may vary!

Use homebrew to install everything (except python)

You should set up all your CLI and GUI apps using brew. This way, you have one text file which contains commands which install most of your stuff. It’s not quite ansible, but it’s a great way to make your system more deterministic.

So, step one is go to the homebrew website and then run that command in your terminal. If you’re paranoid about running shell scripts from the internet, as you should be, read through it first. But last I checked, it’s fine.

DO NOT USE HOMEBREW FOR PYTHON SOFTWARE. It’s better to use pip or Anaconda (my choice on Mac, see below), as you don’t want your python installers fighting.

Once that’s set up, you can use it for most of the rest of the items on the list

GUI Apps

There are lots of great GUI apps on MacOS. Here are my favorites, which I’m listing here as their brew cask names. So, to install 1password, you’d run brew install 1password.

Some of these are discussed in more depth as things I miss on Linux. Items are free (as in gratis, not necessarily libre) unless otherwise noted.

Non-brew-able GUI apps

You might consider installing security-sensitive apps (e.g. 1password, littlesnitch) from the authors’ site directly, or examine the brew files first. But some apps, as far as I recall, can’t be installed from brew, and either have their own installers, or are best through the Mac App Store.

Terminal Apps

All of these apps are available via brew:

Data Science and Python

For python and data science, I recommend anaconda (which actually bundles a number of the things above, specifically pandoc). It gives you a turn-key environment ready to do real work in Python and otherwise, and has some valuable tools for managing dependency hell.

Useful preference changes

Running these commands will change the following behaviors, which I find preferable. See the notes above each.

# Change your screenshots to land in Downloads (which I use as a temp folder)
defaults write com.apple.screencapture location ~/Downloads/

# Autohide the dock *very* quickly
defaults write com.apple.dock autohide-time-modifier -float 0.12;killall Dock

# Hide and unhide the dock instantly
defaults write com.apple.Dock autohide-delay -float 0; killall Dock

# Put the dock on the bottom
defaults write com.apple.dock orientation bottom && killall -HUP Dock

# Save screenshots as jpg files (rather than png)
defaults write com.apple.screencapture type jpg;killall SystemUIServer

# Disable Apple's 'holding a key doesn't repeat the key' behavior
defaults write -g ApplePressAndHoldEnabled -bool false

Specific Warnings

Finally, a few apps which I’ve had specifically poor experiences with.