macOS software #

A clean install of macOS needs the following software.

Applications #

The following software needs to be installed manually. Last time I got a new Mac and did a fresh install it took quite a bit of time, but I’m not sure how much it’s worth putting in the effort to automate something that happens maybe once every couple of years.

  • 1Password (paid, subscription)
  • Alfred 3 (paid, license)
  • Bartender 4 (paid, license)
  • Beamer (paid, license)
  • Docker (free)
  • Dropbox (paid, subscription)
  • emacs (free, open-source)
  • Express VPN (paid, subscription)
  • Folx (free)
  • f.lux (free)
  • iTerm 2 (free)
  • Magic Switch (paid)
  • mclock (paid, license)
  • Rectangle (free, open-source)
  • stats (free)
  • Sublime Text (free)
  • TeXShop (free)
  • VLC (free)
  • Xcode (free, required to do anything interesting with a Mac)

Safari extensions #

I’ve used Safari to browse for years now, much prefer it to Chrome and on the M1 MacBook Air it’s a no-brainer as Chrome wasn’t optimised for the M1 when I got it. I use a couple of extensions to make things a bit nicer.

  • Darker News (free)
  • vimari (free)

Packages #

First, install the following.

  • brew
  • zsh. This requires a config that I like and that I should commit to a dotfiles repository.

For Apple Silicon Macs, at least in 2021, there is a little more configuration to do here. Also, I’m not particularly happy with brew as a package manager and have been noticing Nix get a lot of hype lately; not sure it’s mature enough on the M1 but something to look into. Very interesting: I have read that you can also use it to configure the install of regular macOS Applications.

And then with brew, install the following:

  • hugo
  • jekyll
  • ninja
  • pyenv
  • python
  • ruby
  • fzf

Pyenv and Python are not currently playing nicely with emacs on the M1; need to revisit this in the future.

Things to try #

This is a list of things I’ve read or heard about but haven’t had the chance to try yet.

  • Hammerspoon, an automation framework which allows you to write custom automation scripts in Lua.