Skip to main content

New Mac Setup

Automatic setup

  • Follow ooloth/dotfiles README steps
    • update software via system preferences, not command line (update repo instructions)

Manual setup

Automate as many of the following as possible. (Find a link to a reference for all settings commands…?)

Terminal

  • Run ssh -T git@github.com to confirm I can ssh to github
    • If I see “Permission denied (public key).”, the public key I entered in GitHub doesn’t match the private key on my Mac. Try adding it again, making sure to include everything in my ~/.ssh/id_rsa file.
  • Set up gh
    • run gh auth login
    • choose GitHub.com
    • choose SSH
    • choose existing public SSH key
  • copilot cli: how to automate setup steps? https://www.npmjs.com/package/@githubnext/github-copilot-cli
  • Install yarn
  • Clone active repos in recursionpharma and/or ooloth folders
    • e.g. gh repo clone ooloth/michaeluloth.com

System preferences

  • iCloud…
    • Sign in
    • Add “Desktop & Documents Folders” to apps that store data in iCloud
    • (It may take an hour or so for the remote iCloud folder to show up)
  • General > Software update > Advanced…
    • Enable “Check for updates”
    • Enable “Download new updates when available”
    • Enable “Install app updates from the App Store”
  • Appearance
    • Set “Appearance” to “Dark”
    • Set “Click in the scroll bar to” to “Jump to the spot that’s clicked”
  • Accessibility:
    • Display: Enable “Reduce motion”
    • Siri: disable if not wanted
  • Control Center > Menu Bar Only:
    • Spotlight: enable “Don’t Show in Menu Bar”
  • Siri & Spotlight:
    • enable/disable “Ask Siri” as preferred
  • Privacy & Security:
    • Microphone: enable Zoom, Slack
    • Camera: enable Zoom, Slack
    • Full Disk access: enable Alfred, Kitty, Terminal, VS Code
    • Accessibility: enable Alfred 5, HyperKey, Rectangle
    • Screen Recording: enable Zoom, Slack
    • Developer Tools: enable Terminal, Kitty and VS Code so macOS will let me open apps installed with Homebrew ==- if I do this early in the setup process, will I be able to open vs code and install its extensions + symlink my preference files?==
  • Desktop & Dock
    • Enable “Automatically hide and show the Dock”
    • Disable “Show recent applications in Dock”
    • Windows & Apps:
      • set “Prefer tabs when opening documents” to “Always”
      • disable “Close windows when quitting an application”
    • Mission Control: disable “Automatically rearrange Spaces based on most recent use”
  • Touch ID & Password: add right + left index fingers
  • Keyboard > Keyboard Shortcuts… > Spotlight:
    • Disable “Show Spotlight search”
    • Disable “Show Finder search window”

Apps

Dock:

  • Manually remove all apps (only Finder +K the open ones should appear)

Alfred:

  • Enter Alfred 5 PowerPack license code
    • Alfred Preferences > Powerpack > Copy License, or
    • search email for “Your Alfred 5 Powerpack Upgrade order”
  • System Settings > Keyboard > Spotlight
    • disable “Show Spotlight search”
    • disable “Show Finder search window”
  • Preferences:
    • General:
      • set Alfred Hotkey to command-space
      • set “Where are you” to “Canada”
      • disable “use .com for Google searches”
    • Features:
      • Default Results > Essentials: disable Contacts
      • Web Bookmarks: enable Safari Bookmarks
    • Workflows:
      • install & configure Shimmering Obsidian
        • Preferences (“Configure workflow”):
          • Set “Vault Path”
          • Set “Ignore Heading Levels” to “h1 h2 h3 h4 h5 h6” (i.e. ignore all headings)
          • Disable “Open Note After Appending”
          • Set “Appending Prefix” to ”- ”
          • Set “New Note Location” to “/writing”
          • Set “Scratchpad Note Path” to “/writing/_scratchpad”
          • Set “Scratchpad Append Prefix” to ”- ”
          • Press “Save”
        • Workflow diagram:
          • main search:
            • swap “fn” and “ctrl” branches of the search workflow (so ctrl-enter appends to a note)
    • Appearance > Options:
      • Enable “Hide hat on Alfred window”
      • Enable “Hide menu bar icon”
      • Set “Show result subtext” to “Only for Alternative Actions”
    • Advanced > Syncing: set preferences folder to iCloud Drive > Alfred

1Password:

  • download v8 from website
  • scan setup code by holding phone up to Mac camera
  • set to open in the background when I log in
  • Preferences:
    • General > Menu bar: Disable “Show 1Password in the menu bar”
    • Security > Auto-lock:
      • Disable “Lock after computer is idle for X minutes”
    • Watchtower:
      • Enable “Check for vulnerable passwords”

Hyperkey:

  • Download from Hyperkey
  • Preferences:
    • Enable “Remap caps lock to left control”
    • Enable “Quick press caps lock to execute “esc”
      • Then change from “esc” to anything else
      • Then change back to “esc”
      • Press “esc” to confim the caps lock light is not enabled (if so, continue toggling and adjusting dropdown until fixed)
    • Enable “Launch on login”
    • Enable “Check for updates automatically”
    • Enable “Hide menu bar icon”

Safari:

  • Preferences:
    • General:
      • Disable “Open ‘safe’ files after downloading”
    • AutoFill: disable…
      • “Using information from my contacts”
      • “User names and passwords”
      • “Credit cards”
    • Extensions:
      • enable Notion Web Clipper
      • enable 1Password
      • enable Subscribe with Reeder
      • enable Vimari
    • Advanced:
      • enable “Press Tab to highlight each item on a webpage”
      • enable “Show Develop menu in menu bar”
  • Toolbar: move icons to preferred spots (most on right side)
  • View menu:
    • Show Favorites Bar

Chrome/Brave:

Rectangle:

  • System Preferences > Privacy: enable accessibility permissions
  • Select “Recommended” shortcuts (rather than Spectacle)
  • Enable “Launch on login”
  • Enable “Hide menu bar icon”
  • Enable “Check for updates automatically”
  • Set “Repeated commands” to “cycle 1/2, 2/3 and 1/3 on half actions”

Finder:

  • Add these to setup script?
  • Preferences:
    • General:
      • New finder windows show “Recents”
    • Tags:
      • disable all
    • Sidebar:
      • Enable home folder
      • Disable “Recent Tags”
    • Advanced:
      • enable “show all filename extensions”
      • disable “show warning before changing an extension”
      • enable both “keep folders on top” settings
  • View menu:
    • Show path bar
    • Show status bar
    • Click on each sidebar item, set to column view, then “Show view options” (Cmd-j):
      • enable “always open in column view”
      • group by “Kind” (except sort Recents, Desktop + Downloads by “Date modified” + Apps by “Name”)
      • sort by “Name”

Notion:

  • Settings & Members > My notifications & settings > Appearance: Dark
  • Safari > Preferences > Extensions: enable Notion Web Clipper

VS Code:

  • ⚠️ Add missing .env or .env.local files to each repo now! ⚠️
    • (before deleting them on old computer)
  • Test that each repo’s important scripts work (e.g. build and dev)

Amphetamine:

  • Don’t show intro wizard again
  • Triggers: enable from 9am-5pm on work computer
  • Appearance:
    • Set “Menu Bar Image” to “Caffeine”
    • Enable “Use low opacity when inactive”

Reeder:

  • Add Feedbin Feeds
    • Sign into Feedbin account
    • Enable “Sync on wake up from sleep”
    • Set “Keep read items” to “Always”
    • Set “Sort subscriptions” to “Feeds first”
  • Preferences:
    • General
      • Enable “Open links in background”
      • Set “Sort unread items” to “Oldest first”
    • Appearance
      • Font size: “L”
      • Image previews: “Large”
    • Bionic reading: disable “Show in toolbar”
    • Gestures:
      • Set “Swipe right” to “Toggle read” (but use “m” instead!)
      • Set “Swipe left to “Starred” (but use “s” instead!)
    • Actions and Sharing:
      • Enable “Copy Link” + set shortcut to “l”
  • Feedbin > Settings > General > Sources:
    • Drag “Save to Feedbin” bookmarklet to bookmarks bar of all relevant browsers
    • System Preferences > Keyboard > Keyboard Shortcuts… > App Shortcuts > Google Chrome/Brave/Safare: set “Send to Feedbin” to ctrl-f

Slack:

  • choose dark theme (other settings should be synced)

Things:

  • Preferences:
    • Quick Entry
      • Enable “Enable shortcut for Quick Entry: Control-Space”
      • Enable “Enable shortcut for Quick Entry with Autofill: Control-Option-Space”
        • Click link to download page
        • Download zip file
        • Double-click .zip file
        • Move “Things Helper” to Applications
        • Double-click “Things Helper”
    • Reminders:
      • Enable “Show to-dos from “Inbox” in Inbox
    • Calendar:
      • Enable: “Show Calendar Events in Today and Upcoming lists”
      • Enable all iCloud calendars

Prepros:

  • Download v6 from Frequently Asked Questions • Homebrew cask automatically installs v7+ which I don’t have a license for • Prepros 🛠️
  • License is in email history

Zoom:

  • System Settings: give permission to share screen (how?)
  • Preferences:
    • General:
      • Enable “Use dual monitors”
      • Disable “Enter full screen when starting or joining a meeting”
      • Enable “Always show meeting controls”
      • Disable “Ask me to confirm when I leave a meeting”
      • Enable “Show meeting timers”
      • Disable “Add Zoom to macOS menu bar”
      • Enable “Stop my video and audio when my display is off or screen saver begins”
      • Set skin tone
      • Enable “Play audio chime when someone has raised their hand”
    • (add more)

AppCleaner:

  • Preferences:
    • SmartDelete: set to “On”
    • Updates: enable “Check updates automatically”

Docker:

  • Preferences
    • General: enable “Start Docker Desktop when you log in”
    • Software updates: enable “Always download updates”

Notes:

FIXME: Issues from last run

SSH: 

**Info:** Adding keys to ssh-agent and Keychain

WARNING: The -K and -A flags are deprecated and have been replaced
         by the --apple-use-keychain and --apple-load-keychain
         flags, respectively.  To suppress this warning, set the
         environment variable APPLE_SSH_ADD_BEHAVIOR as described in
         the ssh-add(1) manual page.

Identity added: /Users/michael.uloth/.ssh/id_rsa (michael.uloth@MULO-JQ97NW-MBP)”

Dotfiles:

  • recursively duplicates config subfolder subfolders (e.g. “mu”, “colorscheme”, “skins”, “colours” directories) when symlinking (fix that)

Homebrew:

Warning: 'arl/arl/gitmux' formula is unreadable: No available formula with the name "arl/arl/gitmux".
Please tap it and then try again: brew tap arl/arl

Warning: 'yqrashawn/goku/goku' formula is unreadable: No available formula with the name "yqrashawn/goku/goku".

Warning: 'jesseduffield/lazygit/lazygit' formula is unreadable: No available formula with the name "jesseduffield/lazygit/lazygit".
Please tap it and then try again: brew tap jesseduffield/lazygit

Zsh:

**Info:** Changing your shell to zsh...
set_up_zsh:11: command not found: laptop_echo

Installing node and general global dependencies…

Installing Node v19.9.0 (arm64)
Running command elevated

**error:** Can't download the requested binary: Can't extract the file: failed to unpack `/Users/michael.uloth/Library/Application Support/fnm/node-versions/.downloads/.tmpQDKIlq/node-v19.9.0-darwin-arm64/lib/node_modules/npm/node_modules/node-gyp/node_modules/@npmcli/fs/lib/rm/polyfill.js`

set_up_node:5: command not found: npm
**Info:** Enabling corepack to activate yarn
set_up_node:9: command not found: corepack

Setting up tmux

**Info:** Installing tpm...
fatal: destination path '/Users/michael.uloth/.config/tmux/plugins/tpm' already exists and is not an empty directory.
**Warning:** TODO: open tmux and run Prefix

Setting up neovim

**Info:** Installing global npm dependencies for neovim...
set_up_neovim:4: command not found: npm
**Warning:** TODO: open vim + save plugins-setup.lua to install plugins

VS Code: 

  • “Library/Application Support/Code” doesn’t get created until VS Code is opened for the first time (so symlinking doesn’t work)
  • How to automatically open given the “are you sure?” Dialog that pops up?
  • None of the extensions get installed either because I need to add “code” command to path before I can try using it

Info: Symlinking VS Code settings, keybindings and snippets…

ln: /Users/michael.uloth/Library/Application Support/Code/User/settings.json: No such file or directory
ln: /Users/michael.uloth/Library/Application Support/Code/User/keybindings.json: No such file or directory
ln: /Users/michael.uloth/Library/Application Support/Code/User/snippets: No such file or directory

Inbox

  • copilot cli: how to automate setup steps? https://www.npmjs.com/package/@githubnext/github-copilot-cli
  • create script for quickly symlinking new files and folders I add while using computer?
  • move each script function into a separate file so they can be called separately (e.g. I want to call the symlink function easily later if I create a new file that hasn’t been symlinked yet) - make an alias that calls that one script
  • Customize Your Mac from the Command Line!
  • split setup script into individual files
    • google/zx: A tool for writing better scripts
    • one written in ZSH for the minimum amount I need to before using zx
    • the rest using zx
    • possible to call each individually later
    • Dotfiles: add a “scripts” folder with each script in a separate file that can be run separately (e.g. rerun just the symlinking script, just the git script, etc)
  • add tpm clone for tmux
    • $ git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm
  • Mac settings: hide dock
  • mac settings: dark appearance
  • mac settings: prefer tabs always
  • mac settings: disable “close windows when quitting an app”
  • mac settings: hot corners: top right shows desktop
  • mac settings: keyboard shortcuts: disable “Show Spotlight search”
  • mac settings: all finder windows organized by columns + sorted by kind
  • mac settings: Finder: new Finder windows show Downloads
  • Mac settings: Keyboard: Modifier keys: give the Caps Lock key the Escape action
  • Safari preferences > Advanced - check option to make tabbing work
  • include chrome extensions (e.g. Vimium, 1Password)?
  • Safari/Chrome/FF - disable default password filling + add 1password extension and settings (e.g. so I can immediately visit github and be prompted by 1password, not Keychain)
  • rectangle - settings - disable “Cycle across displays on repeated left or right commands” (so that repeated left/right commands will cycle through 1/2, 2/3 and 1/3 size)
  • rectangle - add my preferred shortcuts
  • alfred - add preferences?
    • search engine hints
    • bookmarks
    • etc?
  • vs code: symlink vs code config files (after installing vs code):
    • sl $HOME/Repos/ooloth/dotfiles/vs-code/keybindings.json $HOME/Library/Application\ Support/Code/User/keybindings.json
    • sl $HOME/Repos/ooloth/dotfiles/vs-code/settings.json $HOME/Library/Application\ Support/Code/User/settings.json
    • if it exists, delete $HOME/Library/Application\ Support/Code/User
    • sl $HOME/Repos/ooloth/dotfiles/vs-code/snippets $HOME/Library/Application\ Support/Code/User
  • Bartender 5 - Take control of your Menu bar • use to hide/view my menu bar items?
  • macos Preferences > General > AirDrop & Handoff: disable “Allow Handoff” (at least on work devices)
  • pip - How can I install GRPCIO on an Apple M1 Silicon laptop? - Stack Overflow
  • sballin/alfred-search-notes-app: Use Alfred to quickly open notes in iCloud/Apple Notes. - alfred workflow to search Apple Notes
  • tmux: need to manually install plugins and activate my conf after this installation completes? can I automate that here? add to “u” update alias?
  • Things: System Settings -> app shortcuts -> Things: cmd-shift-p to “Convert to Project…”
  • Stow has forever changed the way I manage my dotfiles • Dreams of Autonomy 📺
    • Switch to using stow to make it easier to update my symlink as I add new files to my dotfiles after the initial setup?
    • Or just make a reusable helper script for resymlinking?