I bought a new personal laptop recently and I’m starting a new job soon, which means that I’m going to have a few new Mac laptops to set up in the near future. So, I figured it would be prudent to write my new Mac setup steps before I get the new computers and publish these steps somewhere so that I can easily get up and running with my new machine. My configurations isn’t too crazy, but it is custom, and I think I have enough 3rd-party development and productivity tools installed that it’s worth a blog post to cover all of the bases. On a final note, I’m primarily a backend/distributed-systems/data engineer, so my needs mostly revolve around Scala, Java, Kotlin, Go, Node, Python, and Haskell. YMMV!
This blog will be broken into two sections: a “Before” section that covers what to do before setting up a new Mac (it’s a shorter section that covers exporting/porting existing system settings) and an “Setup” section that covers that actual steps required to get up and running. Finally, before we get started, I wanted to make available a todoist template for all of these tasks that you can easily import into Todoist if you’d just prefer to see the steps without all of the extra explanations. Alright, let’s get started!
There’s not too many steps here, but I definitely recommend making sure that these tasks are done before configuring a new machine since my .rc files and my editor keybindings are specific and integral parts to my efficient workflow. Here’s are the recommended tasks:
These are all the tasks I recommend doing after you’ve gotten your new Mac and want to configure it so that all of the settings match the old one.
mkdir ~/.ssh && touch ~/.ssh/config
ssh <command>it will alias to
ssh -i ~/.ssh/key.pem firstname.lastname@example.org
~/.ssh/config file should look like this
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa Host myssh HostName example.com User user IdentityFile ~/.ssh/key.pem
Now just run the alias (
ssh myssh) to connect.
.gitconfigfile from your dotfiles directory
zsh(the superior Unix shell)
.zshrcfrom your dotfiles repo for configuring your
git clone email@example.com:dmarticus/sixarm_mac_setup.git) and save them somewhere reasonable (e.g.
cdinto that reasonable location and run
sh defaults-write-our-favorites.shto automatically apply a bunch of sane defaults to your computer
brew bundle installto install all relevant brew and mas depedendencies. This will take a minute but should work great
Finally, we need to customize any additional settings that could not be configured with the
defaults-write-our-favorites.sh script (Mac OS loves to make it hard to change default settings).
At this point, all of the essentials should be installed and ready to go. As of writing this (6/6/2020), I’ve currently used this setup guide for one (1) of my new Macs and have updated it slightly from the original draft form to reflect the actually installation process, but now this post has officially been end-to-end tested!
Finally, I want to give credit to the following blog posts for paving the way for mine :)