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.
- 1password
- Good password manager. Subscription Based.
- alfred
- Amazing tool for launching applications, hotkeys, snippets, and more (described in more depth in the post linked above). One time fee for the ‘powerpack’ (which is worth it)
- amethyst
- GUI friendly tiling window manager, yabai is better but more fiddly.
- audacity
- Sound capture and manipulation tool
- balenaetcher
- Solid software for putting Linux ISOs on USB sticks
- bibdesk
- A good, bibtex based reference manager
- brave-browser
- Chromium-based browser, some pro-privacy features, some… odd choices. Great for a stateless, self-wiping scratch browser.
- calibre
- eBook Manager.
- carbon-copy-cloner
- Whole disk backup. One-time cost.
- chromium
- Chrome.
- clamxav
- Virus scanner so you don’t infect Windows machines.
- cyberduck
- So-so but free FTP client.
- devonthink
- Expensive, amazing document manager, described in post above.
- discord
- Chat app, native app is solid. Free if you don’t count your data.
- eve-launcher
- Spreadsheet app, but lots of spaceships for some reason. Costs your whole life.
- fantastical
- Best calendar app with nice input methods, but subscription based because they like money more than their users.
- firefox
- For when you like privacy and freedom more than you like bug-free browsing
- gimp
- If you need to edit images for free more than you need sanity.
- github
- Nice gui for git.
- google-chrome
- For when you like bug-free browsing more than you like privacy
- handbrake
- For ripping DVDs or converting video formats
- home-assistant
- GUI App for home automation server
- istat-menus
- View CPU/RAM/battery in navbar. Not sure on cost now.
- kitty
- Better terminal, accepts text config files which is nice.
- libreoffice
- Office tools, without the cost, privacy invasion, and polish
- little-snitch
- Network monitoring. Described in the other post, but amazing software. Pricy but worth it.
- mactex
- TeX distribution for MacOS.
- macvim
- GUI for vim, makes it a bit nicer
- mailmate
- The best Mail app on MacOS
- musicbrainz-picard
- App for auto-downloading and tagging music files.
- obs
- OBS is great for streaming, screencasting, or lots of things. Indispensable for online teaching.
- obsidian
- Great note taking/Zettelkasten app. Free, but subscription stuff can be bought.
- openscad
- Free CAD software
- praat
- Not always up to date through homebrew, but always amazing for phonetic analysis
- prusaslicer
- Slicer for 3D Printers
- psychopy
- Good, free experiment running software
- retroarch
- Video game emulator, the best I’ve found
- rstudio
- If you have statistics problems, I feel bad for you son. You’ve got 99 problems, but the base R GUI ain’t one.
- soundflower
- This is a decent way to pipe sound from one application into another
- skim
- Solid PDF reader. Preview is about as good, though.
- syncthing
- File syncing, but excellent
- the-unarchiver
- Swiss-army knife of file decompression
- vimr
- GUI for neovim, if that’s your preference
- vscodium
- Demicrosofted VSCode
- xld
- Tool for processing lossless audio
- zoom
- In case of 2020, break glass
- zotero
- If you like reference autolookup more than you like stability.
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.
- karabiner-elements
- This is a great tool for remapping keys (e.g. capslock becomes Shift+Control+Option+Command when held, Esc when tapped) on your Mac
- steam
- Great for installing Factorio, if you’d like to abandon worldly pursuits
- espanso
- Great free text expander, but currently seeking maintainers, so I’m not sure I can recommend it for the long term.
- Microsoft Office
- Weirdly, the best way to get Office now is through the Mac App Store. But that’s sort of like the best way to get a cold.
- Deliveries
- The best package tracking App. I miss it on Linux/Android, just a bit. Subscription based. Mac App Store.
- Transmit
- The best SFTP app, period. Very very nice, and quite pretty, but also expensive.
- GrandPerspective
- A great way to visualize the data on your disk. Small cost now.
- calca
- A markdown text editor which allows you to set variables and do math directly within the text, which updates live. MacAppStore, some cost.
- ExperimentBuilder
- This is proprietary and expensive experiment design software, purpose-built for eyetracking by SRResearch, but quite nice for any experiment. Generally, Eyetrackers come with a permanent license, and I got used to it there, and I’d never pay $195 per year for it, but I keep hoping that someday, they’ll consider it a loss-leader for their eyetrackers and just give it away. At that point, I’d toss PsychoPy into the fire in a heartbeat.
Terminal Apps
All of these apps are available via brew
:
- neovim (or vim)
- The best CLI text editor. Fight me.
- restic
- The best backup tool
- ansible
- How to configure your computer once, and then reproduce everything in a moment. Incredible tool.
- fzf
- Fast finding of files on the command line
- ffmpeg
- Toolkit for working with videos and audio files
- cmus
- The best (CLI, but maybe period) audio player app
- pandoc
- Pandoc changes lives, even though it nominally changes document formats.
- yabai
- Tiling window manager for MacOS. Not perfect, but the best you get. Use alfred to control it via the command line
- lynx
- For when you want to browse the web poorly via text
- ImageMagick
- A great tool for manipulating images in bulk
- yt-dlp
- Need to download a YouTube video for offline reference? Of course you don’t. But if you did…
- rsync
- MacOS doesn’t include an up-to-date version, always, but a great tool for synchronizing one folder into another
- jdupes
- Deduplicate files and folders from the CLI, in a reliable and easy way
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.
- Arq Backup: This is a very nicely made app, but during a major version transition, pushed an update which retroactively broke old backup databases. I loved it, right up until it failed. No data was lost for me there, because I had other backups and no failures while it was in broken state, but it’s a nice reminder that only one kind of backup means a single point of failure. They also apparently made another breaking change in version 7 meaning v6 databases can’t be carried forward. Backup software losing ability to access backups is bad, and in ‘you had one job’ territory. Hopefully it’s better now, but you’re better off learning to use restic, which does everything Arq does, better, albeit with a worse interface.
- Google Drive: Google Drive occasionally experiences data loss, and in ~2015, before I found Resilio Sync (and later, Syncthing), when I was using it to share state between machines, would periodically clobber files or just remove folders it couldn’t sync. It’s a fine product for sharing a file, but data which exists only on drive, doesn’t exist.
- PDFExpert: This was formerly great PDF Editing Software, which has moved to a subscription model and doesn’t make clear how to use previously purchased lifetime licenses. It’s very much a shame, as I loved this software, and they’ve clearly moved to an extractive model and burned the project on the pyre of cash.