Setting up a new Mac from scratch can be a pain in the butt. There are a ton of apps to install and settings to change. This post will serve as a living document for how I like to set up my Mac. This is as much for the benefit of you, the reader, as it is for me. I like having stuff like this documented. So let’s get started:

  1. Disable most macOS keyboard shortcuts. They often conflict with some of the automations that I set up myself (for example ⌘ ⌥ Space triggers my window manager). The ones I leave on are:
    • Launchpad & Dock
      • Show Launchpad: ⌃ ↓
    • Mission Control
      • Mission Control: ⌃ ↑
      • Show Desktop: F11
      • Move left a space: ⌃ ←
      • Move right a space: ⌃ →
    • App Shortcuts
      • Show Help menu: ⌘ ⇧ /
  2. Install 1Password for Mac. Everyone should be using a password manager and 1Password is the password manager to be using. They’re consistently on top of their game when it comes to security best practices as well as macOS and iOS platform features. It’s a joy to use and I highly recommend it. Also, don’t forget to enable the Safari extension.
  3. Install Sync. Sync is what I’m using for file syncing across devices and has replaced Dropbox for me because Dropbox was getting a little creepy (more on that in a future blog post). I still have a Dropbox account for when people share files with me through that, but now I use it exclusively through something like Transmit. For my workflow, it’s important to install Sync before everything else because I use Sync to store preferences for several other apps.
  4. Install Alfred. There are a few great launchers out there, and of those Alfred is my preferred one. It’s powerful, intuitive to use, and has a lot of little features that take the place of other extra apps that I might otherwise have to install (like a clipboard manager). Unbind ⌘ Space from Spotlight search and bind that to Alfred. Set up Alfred preferences to sync via Sync (that’s .
  5. Install Setapp. From here, there are a number of apps that I use. Some of them are general utilities while others are tools that I use to get work done. They are, in no particular order:
    • Bartender
    • CleanMyMacX
    • Downie
    • Cleanshot X
      • I’d like to take a beat and talk about Cleanshot X. This app has literally changed the way I work. I remapped the regular screenshot keyboard shortcuts to trigger Cleanshot X instead. The user-friendliness of having the screenshot sit on your screen until you decided when/how to act on it instead of timing out and sitting on your Desktop is a life changer. My desktop has never been so clean. Their quick-editing tools are awesome too, with the automatic numbered dots being S tier.
    • iStat Menus
    • MindNode
    • Paw
    • Permute
    • PixelSnap
    • Screens
    • Yoink
  6. Install Divvy. This is my window manager of choice. It supports keyboard shortcuts and custom window positions. It also allows for me to force little gaps in between my windows which gives a wonderful sense of breathing room, even when the screen is fully tiled with windows. I like setting it so there’s 10 pixels between all my windows and the windows align to a 6x6 grid.
    • Keyboard shortcuts:
      • ⌘ ⌥ Space to trigger the window management mode.
      • ⌘ ⌥ ← to move a window to the left half of the screen.
      • ⌘ ⌥ → to move a window to the right half of the screen.
      • ⌘ ⌥ ↑ to make a window full screen.
      • ⌘ ⌥ 1 to move a window to the left third of the screen.
      • ⌘ ⌥ 2 to move a window to the middle third of the screen.
      • ⌘ ⌥ 3 to move a window to the right third of the screen.
      • ⌘ ⌥ [ to move a window to the left two-thirds of the screen.
      • ⌘ ⌥ ] to move a window to the right two-thirds of the screen.
  7. Install Keyboard Maestro. This app is a monumental powerhouse. I automate the crap out of my Mac with this, from simple clipboard filtering snippets to full fledged workflow automations. The possibilities with this app are borderline limitless. This is another app that I sync with a file from my Sync folder.
  8. Install TextExpander. Compared to many others, my use of TextExpander is pretty modest. I use it to enter things like the date and all the special symbols you see on this page. Nevertheless, when I type I feel crippled without it.
  9. Install Xcode. Xcode is necessary not just because I dabble in iOS development but also because it installs a bunch of command line utilities with it which programs like Homebrew expect to be installed.
  10. Install iTerm2. To be honest, when I was first starting out programming, someone told me Terminal.app was crap and to install this app. I didn’t question it and just did as I was told. Now I have a proper setup with iTerm2’s themes and I just stick with it. I also like the feature where the title bar blends in with your chosen background. It makes it look slick like one of those Electron apps. The iTerm2 theme is another thing that I keep synced in my Sync folder.
  11. Install Homebrew, the self-proclaimed “Missing Package Manager for macOS”.
  12. Install my dotfiles. I use a script inside that repo called install.sh to set everything up just how I like it. I’m going to put the same disclaimer here as on the repo page:

Warning: My install.sh script is extremely destructive and personal and will totally pollute your system with a bunch of crap you don’t want. I use it as a way to get a new machine up and running ASAP. If you’re going to use my dotfiles (and this applies to any time you’re googling around for rc/setup files), use it as inspiration and copy relevant snippets; don’t just blindly install all the stuff I install because you’re going to have a bad time.

  1. Install Go. For smaller scripts and things that are text-manipulation heavy, I’ll use Perl (which I install via my install.sh script above. For any script which will have subcommands or will be a little larger, I’ll use Go with the Cobra CLI library.
  2. Install the Jetbrains Toolbox. This allows me to manage my collection of Jetbrains IDEs and make sure they’re always updated to the latest versions.
  3. Install Day One. Day One is my preferred journaling app. I haven’t explored the competitors recently, but Day One stores all my info end-to-end encrypted, exports to PDF nicely, and has templates that makes regular entries (like a daily gratitude journal) easy to type in.
  4. Install Spark. Like many others, I’ve been flip-flopping on email apps since Mailbox shut down and lately I’ve settled on Spark. Apple Mail always felt a bit clunky to me while Spark feels more modern with more out of the box features. Lots of other apps fit this bill but Spark has a killer feature that I can’t do without anymore: sharing. Normally, if you want to share email with someone you have to forward the email to them or cc/bcc them on the email that you send. That’s so 2000’s. Spark lets you share emails that you receive as well as drafts you are creating with anyone on your team. In this case, my “team” is just me and my fiancée. So as we’re planning our wedding, we no longer have to be super careful to provide the right email address to the right vendors, and responding to emails together, regardless of our physical locations, is easy. Seriously, if you have a decent amount of email that you share with another person and find yourself constantly forwarding emails to them or composing emails with them, consider trying Spark. Their teams feature is free as they make all of their money on business and enterprise customers.
  5. Install Drafts. Drafts is where a ton of my text starts, and often where it stays. Emails, cover letters, text messages, blog post ideas, tasks – I often start all of these in a Drafts note. Drafts then lets me shoot them out via any one of several automations (called “actions) that I have set up.
  6. Install Omnifocus. Omnifocus is my task manager of choice. It’s not a unique choice, but it works for me. It’s super automation friendly which is critical. I have several automations through Shortcuts and Drafts that create projects and tasks in Omnifocus.
  7. Install Todoist. Okay, yes, it is weird that I use two to do apps. I personally prefer Omnifocus for all my own projects, but for anything that involves sharing with other people, Todoist is where its at. It’s got a lot of the power user features that Omnifocus provides including automation (it’s got a pretty robust and flexible API). It’s also a web-based tool which makes sharing a cinch. I’ve been using Todoist primarily for wedding planning so we’ll see if I renew the subscription once I’m not sharing tons of tasks with my fiancée. However, if someone told me today that I couldn’t use Omnifocus anymore, I’d switch to Todoist in a heartbeat.
  8. Install DEVONthink. I used to manage all my documents with a blend of Dropbox and Hazel but I decided to give DEVONthink a try. It’s still in early stages for me, but it looks like DEVONthink provides a more full featured and comprehensive way for me to automate my document filing, along with providing a way for me to build up a database of stuff that interests me. It’s a Swiss Army knife. The only thing that’s a little annoying is that syncing only happens when you launch the app, so sometimes you’ll launch the app and some file is missing because syncing is still underway.
  9. Install NetNewsWire. It’s my RSS reader of choice because of its clean traditional design on macOS and its rock-solid stability. It’s how I get a lot of my news and entertainment.
  10. Install Pastebot. Pastebot is my clipboard manager of choice. I used to just use Alfred for this purpose but the text filters that you can apply through Pastebot are particularly useful. I especially like the encode/decode URL filters which are useful to me as a developer.
  11. Install Rocket. It’s free to use and I don’t need any of the paid features, but I paid for it anyway because I think this app is genius. This is how emojis should work on macOS by default and I feel crippled when I have to return to the ^ ⌘ Space way of doing things on a Mac that doesn’t have Rocket.

And that gets me up and running, for the most part. Any other things I need installed I just take care of on a case-by-case basis as the need arises.

Changelog

  • 2020-08-23: Added Pastebot and Rocket to the list.
  • 2020-08-17: Fixed some typos, removed Ulysses from my Setapp installs, and removed the section on Perl which is automatically installed via my install.sh script. Also added section on which keyboard shortcuts I use for Divvy and added a section on TextExpander.
  • 2020-08-15: Published this post.