How Dann sets up new computer

By Dann Berg

Published or Updated on

New Apple MacBook Laptop Photo from Usplash

Over the years, I’ve tweaked and customized my laptop to perfection. Everything is in the perfect place, and everything works exactly how I want it to work. Which means every time I get a new laptop (either through work, or otherwise), there is a ton of small adjustments that need to be made before it really feels like mine.

Several years ago, I decided to document every single action I took when setting up a new laptop, in order to have a set of instructions for the next time. Then, I got into the habit of tweaking and adjusting this document every time I made a change to my setup.

I was recently setting up my old FullStory laptop as a personal computer, and I was reminded about how absolutely wonderful it is to have a document like this.

I’m sure there’s a way to automate this more (through dotfiles or some other automation template) but I enjoy doing everything by hand. Setting up a new laptop is not something I do very frequently (or I would spend more time trying to automate it), and it just feels fun for everything to start coming together piece-by-piece.

In this post, I’m documenting how I set up a new MacOS computer in 2023. I’m sharing this because 1) I thought others might find it interesting or useful and 2) it’ll be fun for me to look back on this post and see what’s changed/evolved.

Notes:

  1. Tasks are grouped by category rather than written chronologically1. This means that you may need to jump around a bit, rather than just work your way through from top to bottom.
  2. Many applications are going to require you to explicitly grant permissions. Each of these apps will make it clear during the install process, so I’ve omitted those details here.
  3. Some minor details may be obfuscated for security or privacy reasons.
  4. Some application settings are simply imported from backups. This article details the import instructions, but not the settings themselves.

Home Network Setup

Illustration of home network setup

Before we begin, I wanted to touch on my home network setup. The important thing to note is that I have a server running headless Debian Linux and a Synology NAS for storage. Both these devices are backed up the the cloud.

All important files and documents are stored on the NAS (or in the cloud) and all important processes are running on the server. This means that there are no files that need to be transfered from one device to another — everything lives in central storage that can be accessed by any device on the network.

The only exception to this is a few application settings files, which are stored on the NAS and need to be imported to a new computer during setup. Those details are noted below.

Applications

There are two foundational apps that we’ll install first (browser and password manager), before jumping into apps categorized by licensing and destination.

Browser - Brave

Install Brave Browser and perform the following actions:

  1. Set up Sync to import existing extensions/bookmarks/settings/history
  2. Enable sync for Web apps (PWAs), Bookmarks, Extensions, Settings
  3. View extensions and Allow in Private, where applicable
  4. Install TamperMonkey Scripts
    1. Flickr Original Link 5.6
    2. HTML5 video player enhanced script 3.7.1
    3. Vimeo Embed Download 0.2.7
  5. Make ProtonMail and Google Hangouts their own applications
    1. Visit https://proton.me and then click the three dots in the top right, go to More Tools and Create Shortcut. Name it Proton and choose Open in New Window.
    2. Right click on the application and choose Get Info. Drag the desired icon over the small icon image in the top left of that window.
  6. Login to Kagi search engine, install plugin, set as the default search engine for Brave.

Password Manger - 1Password

Install 1Password 8 from website (not App Store)

  1. Authenticate with existing vault
  2. Install Browser Plugins (Brave, Safari)
    1. Enable In Cognito
  3. Set up Keyboard Shortcuts
    1. Show Quick Access: Command-Shift-.
    2. Autofill: Command-Shift-Space

Standalone Apps

Software Licenses in 1Password

  • Bartender
    • Hide Menu Bar apps as they’re installed
  • Hyperkey
    • Set capslock to Hyper Key (include Shift in hyper key)
  • Little Snitch
  • Mailplane (RIP 🙁)
  • Retrobatch
  • Downie 4
  • Sublime Text
    • Help -> Install Package Control
    • Settings > Browse Packages. Quit Sublime Text and copy over Packages from NAS backup.
    • Change defaults of all text files to open in Sublime Text
  • Alfred
    • Connect to settings backup in Dropbox
    • Enable clipboard manager
    • Disable MacOS default Spotlight shortcut
      • System Preferences > Keyboard > Keyboard Shortcuts > Spotlight (left menu) > Uncheck shortcuts
    • Set Alfred to Command-Space
  • Keyboard Maestro
    • Enable Sync in Preferences, file saved in iCloud Drive
    • Make sure Obsidian Sync to Github is working
  • iStat Menu
    • CPU, Battery, Clock (display seconds)
    • Disable MacOS default time and battery
    • Disable default battery in Battery System Preferences
  • Transmit 5
    • Import connection settings for Namecheap hosting & dedicated server
  • Photomosh
    • Current up-to-date link from Gumroad
  • Cleanshot X

No software license

  • iTerm2
    • Preferences -> General -> Preferences -> Load preferences from a custom folder or URL -> Dropbox folder
    • Preferences -> Profiles: select loaded profile
    • Install homebrew: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    • Install ZSH: brew install zsh
    • Install Oh-My-ZSH: sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • VLC
    • Preferences: Hotkeys Short jump left/right arrows and Medium jump to up/down arrows
  • Skyfonts
    • Connect fonts.com and MyFonts
    • Settings -> Google Fonts -> Browse Google Fonts -> Check Add Entire Family -> Install
      • Roboto
      • Fira Sans
      • Montserrat
      • Rokkitt
    • Other Fonts, from NAS
  • ProtonVPN
  • Dropbox
  • Zoom
  • Steam
  • Handbrake
  • Obsidian
    • Vault located in Documents filter, sync through Obsidian Sync

Install from App Store

  • Xcode
    • Apple’s Developer Tools: xcode-select --install
  • Fantastical
    • Use Apple ID to log in
    • Generate Apple app-specific password
    • Disable notifications from Apple Calendar in System Preferences > Notifications
    • Settings > General > Remove keyboard shortcut for Mini window keyboard shortcut
    • Settings > Advanced > Open Maps in Google Maps
  • The Unarchiver
    • Set as default for Zip
  • Magnet
    • Change Left Half to Hyper Key + <-
    • Change Right Half to Hyper Key + ->
  • Things 3
    • Make sure the Fantastical keyboard shortcut has been removed (see above)
    • New To Do: Control-Space
    • New To Do from Website (requires helper install): Control-Option-Space
  • Filebot
    • Right-click on Match, navigate to Format
      • TV: /Volumes/Media/{plex}
      • Movies: /Volumes/Media/{plex}-{vf}
  • Tot
  • CarrotWeather
  • Garageband
  • Reeder 5
    • Connect to self-hosted FreshRSS feed aggregator
  • Meeter
    • Calendars will show after you log into Google in the MacOS System Preferences
    • Settings > General > UI Style: Minimalist UI
    • Settings > Advanced
      • Make sure you check Show countdown to next meeting and Show countdown only for current day
      • Notification with link one minute before event
      • Set Zoom to open with native app

MacOS

System Preferences

  • Sign into Google account in Apple’s System Preferences
    • Sync calendar, nothing else
  • Set up touchpad
    • Enable Tap to Click2
    • Enable Three-finger drag
      • Accessibility -> Pointer Control -> Trackpad Options -> Enable Dragging: Three Finger Drag
    • Enable Mission Control gesture
      • Trackpad -> More Gestures - Enable Mission Control with Swipe up with four fingers
    • Disable Chrome Back/Forward with two-finger swipe by opening Terminal and entering: defaults write com.brave.Browser AppleEnableSwipeNavigateWithScrolls -bool FALSE
  • Set up mouse
    • Connect Bluetooth Mouse
    • Set speed to max
  • Set up keyboard
    • Connect Bluetooth Keyboard
    • Laptop Touchbar (if applicable)
      • Shows: Expanded control strip
      • Edit Touchbar, drag off Siri button
  • Set up Apple Watch to unlock laptop
    • Touch ID & Password > Enable Apple Watch
  • Enable Text message forwarding (phone to laptop Messages app)
    • On iPhone (must be signed into same iCloud account): Settings > Messages > Text Message Forwarding > Enable new computer
  • Disable Siri
  • Desktop & Dock
    • Scroll to Mission Control section, uncheck Automatically rearrange Spaces based on most recent use
    • Click Hot Corners, set bottom right to Lock Screen
  • Customize the Keyboard shortcut for “Paste and Match Style” to be Command-Shift-V
    • In System Preferences, click Keyboard then the Keyboard Shortcuts... button.
    • Go to App Shortcuts on the left menu and click the plus to add.
    • In the “Menu Title” field, enter “Paste and Match Style” (including capitalization and spaces). In the “Keyboard Shortcut” field, type Command-Shift-V.

Finder Settings

  • View > Show Path Bar
  • View > Show Status Bar
  • Finder Menu -> Settings ->
    • Advanced -> Show all filename extensions
    • Advanced -> When performing a search: Search the current folder
    • Sidebar
      • Uncheck Recents, Airdrop, Shared, Recent Tags
  • Right-click on tool bar to customize toolbar3
  • Show all hidden files in Finder
    • In terminal type: defaults write com.apple.Finder AppleShowAllFiles true
    • Restart Finder: killall Finder
  • Connect to Synology NAS
    • afp://192.168.1.[XXX]
    • Login/Pass are in 1Password
    • Go to Folder /Volumes and drag it over into sidebar
  • Connect Airpods Pro and Airpods Max.
    • Go to Settings > Bluetooth and change Connect Automatically to Connect when this device last used

Developer Settings

  • GitHub Personal Access Token
    • Github.com > Settings > Developer Settings
    • Create a Personal Access Token
      • Select desired scopes
    • Generate token and copy to clipboard
    • Enable connecting to Github from terminal
      • brew install gh
      • gh auth login
      • Login in browser
  • Create Code folder in /Users/dannberg/
    • In terminal ls into Code and git clone https://github.com/dannberg/dannb-org.git to pull down that directory from GitHub.
    • Pull down other desired repos
  • Install Homebrew
    • /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
  • SSH Key
  • Install Hugo
    • brew install hugo

  1. For example, the password manager 1Password is one of the first items you need to download, as it stores relevant information (login info, software licenses) for the rest of the process. In this document, however, 1Password is in the section Install from App Store rather than at the top of the post. It’s organized this way to make it easier to pick-and-choose piece you want to take for your own process, rather than optimizing for lifting the entire process for yourself. ↩︎

  2. Tap-to-click is vastly superior to click-to-click. Fight me. ↩︎

  3. Here’s how I like my Finder Toolbar: Custom Finder Toolbar ↩︎

The Mixed Reality Hypothesis
Apple's Vision Pro future, as told in three parts
All the world’s an ad, and we are merely watchers