Documenting My Mac Setup


Between loaners, replacements, and other surprises, over the past year or so I’ve set up new Mac laptops more than I ever have before. I tend to start fresh rather than migrate in order to get that nice clean digital slate. But what I don’t do, is document the process all that well. You’re in luck future self, because 4th time is the charm.

Prerequisites

  • Make a cup of coffee.
  • Make sure you have your 2FA apps handy
  • For anything that isn’t in version control or in the cloud (hopefully that list gets smaller every time you do this), copy over files using a USB drive.

System Preferences

  • If I’m using multiple monitors, configure monitor orientation under System Preferences -> Displays.

  • System Preferences -> Trackpad:

    • Uncheck ‘Look up & data detectors’.
    • Enable tap to click.
    • Secondary click - click in bottom right corner.
  • System Preferences -> Dock: Position on screen left.

  • Finder -> Preferences -> Show Hard Disks on the Desktop

  • Sign in and enable iCloud

  • System Preferences -> Mission Control

    • Disable ‘automatically rearrange spaces based on most recent use’
    • Disable ‘displays have separate spaces’

Software

Terminal and SSH

  • Install developer tools by typing git in the terminal.
  • Follow First Time Github Guide, but use a stronger key.
  • Change git editor to Nano: git config --global core.editor "nano"
  • Add key to ssh-agent
  • Add new key to Bitbucket, Github, Gitlab, Pantheon and Acquia accounts as needed (Acquia requires an RSA key. Hopefully they will support ed25519 in the future, but in the meantime using RSA will make your life easier.)
  • Install Oh My Zsh
  • Installed Powerline Fonts via git clone
  • Change zsh theme by editing ~/.zshrc and change to agnoster
  • Update ZSH permissions as outlined here.
  • Terminal Preferences - Changed default profile to Pro and font to ‘Source Code Pro for Powerline’ size 11.
  • VS Code User Preferences - Changed Terminal › Integrated: Font Family to ‘Source Code Pro for Powerline’
  • Install Homebrew

IDE(s)

Download and install Visual Studio Code and enable the following extensions:

Plus many more that will be triggered by project configuration.

I also add the following settings in the user version of settings.json

{
    "editor.tabSize": 2,
    "editor.detectIndentation": false,
    "editor.fontFamily": "'Source Code Pro for Powerline', Menlo, Monaco, 'Courier New', monospace",
    "explorer.confirmDelete": false,
    "window.zoomLevel": 1,
    "[javascript]": {
      "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "files.associations": {
      "*.theme": "php"
    },
}

Local Development Environment

NodeJS

  • Install NVM via Homebrew (following manual steps outlined at end of install process)
  • Install latest node LTS via homebrew nvm install --lts

PHP

  • Upgrade PHP Version brew install php@7.4. Follow manual installation steps to add this new php version to your path.
  • Download composer
  • Move composer into path mv composer.phar /usr/local/bin/composer
  • Increase composer memory limit by running echo 'export COMPOSER_MEMORY_LIMIT=-1' >> ~/.zshrc
  • Hoping to stick with composer 2, but if I need to downgrade to Composer 1 composer self-update --1

Docker-y Things

  • Install Docker Desktop

    • In Docker Desktop preferences, disable starting Docker upon login.
  • Install Lando (assuming that the version packaged with Lando is reasonable, you could install Docker Desktop as part of installing Lando)

  • Install Pantheon LocalDev

Dock

  • Rip a bunch of nonsense out of the dock.
  • Add: Outlook, Things, Chrome, VS Code, Slack, Terminal, Evernote, Sonos

Things to install as needed:

  • Audio Hijack
  • Dropbox (hoping to find my way out of Dropbox…)
  • EncryptMe
  • FileZilla
  • Kap
  • Mmhmm
  • XCode
  • Sonos
  • Descript
  • Sketch - because that is what you see most designs in these days.
  • Creative Cloud / Photoshop
  • PHP Storm because their visual merge conflict resolution tool is still way better than VS Code.
  • Atom for a lightweight editor when you need one.

Vagrant

Fingers crossed that my Vagrant days are over, but if needed:

  • Download and install VirtualBox

  • Download and install Vagrant

  • Install the following Vagrant plugins:

    • vagrant plugin install vagrant-auto_network
    • vagrant plugin install vagrant-hostsupdater
    • vagrant plugin install vagrant-vbguest
  • Install Ansible via Homebrew

You did it. Take a nap.