Jay McGavren's Journal

How a Head First author spends his days off

View on GitHub
2019-07-04

Coping with MacOS Mojave for Web Development

For pretty much every Mac I’ve ever owned, I’ve copied my configuration from machine to machine. But when one does so, a lot of unused cruft builds up over the years. So I’ve decided to wipe everything and start totally (well, okay, mostly) from scratch. This is a rare learning opportunity and so I’m documenting my setup here, for my reference and for yours.

This post is intended to be a living document. I’ll be updating it as I discover improved settings. Comments and suggestions are welcome!

Be warned: I am an Apple skeptic. I don’t like the direction recent MacOS versions have gone, and many of my settings represent an attempt to get back to “the good old days”. If you’re one of those fans who think Apple can do no wrong, and you want to make use of all the latest MacOS features, you may want to find another configuration guide. Now get off my lawn!

Install packages

First, we need to kick off a bootstrapping script to install common tools you’ll need. This is going to take a long time to run so it’s best to get it going now.

Fix Terminal.app

By default, MacOS Terminal.app doesn’t treat the Option/Alt key as a Meta key. This breaks many shortcuts in set -o emacs mode (the default) as well as Emacs itself. Personally, I use iTerm 2 for my terminal, but we should fix Terminal.app regardless.

Window Manager

I avoid using the mouse as much as possible in my daily work. Sure, it’s well-suited for drawing and such, but for common operations like switching between apps, it’s unacceptably slow. MacOS supports some shortcuts like Cmd-Tab, but those are pretty limited.

That’s why I use a “window manager” app. A window manager can remember the positions your windows are in, and restore those positions for you at the press of a hotkey.

You have a few good options that I know of:

Fix System Settings

Next, let’s visit “System Settings” to fix some terrible defaults:

Set Up Apps

Hopefully your boostrap script installed all the apps you need. If not, install them now.

Here are a few apps you’re going to want to open and log into, if you have/use them.

cd /Applications
open 'Dropbox.app' # Some other apps depend on DropBox, so do this first!
open '1Password 6.app' # Why the hell do they put the version in the .app name?!
open 'Google Chrome.app'
open Slack.app

Here are some other apps you’re going to want to change specific settings in:

Hope you found this post helpful (and not too surly)! I’m open to healthy debate about the merits of these settings. Who knows, you might even change my mind about something. Leave a comment below!

Copyright © Jay McGavren.