Migrating to the Apple MacBook Air M2

My 13” MacBook Pro, Intel Core i7, 16GB RAM (2017) was lasting ~2 hours at the coffeeshop, so decided to ugprade to the MacBook Air M2.

Friction Log

  1. Migrating from Previous Mac

    Migration Assistant actually did an excellent job of bringing over apps & settings: Move content to a new Mac.

    What’s most impressive is that it has a Peer-to-Peer connection option that’s faster than Wi-Fi.

    However, anytime you get a warning about Rosetta to open an app, that’s a sign you should reinstall it.

  2. Git

    When running git, I would get this error:

    xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun. – StackOverflow

    Solving this was easy as running:

    xcode-select --install
  3. Homebrew

    Installing brew is the foundation of all other macOS software.

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  4. Clipboard Manager

    Jumpcut has been with me for years as my favorite, minimal clipboard manager:

    brew install --cask jumpcut

    Plus, it’s a stack for my memory when writing posts like this 😅

  5. pnpm

    curl -fsSL https://get.pnpm.io/install.sh | sh -
  6. Node

    By default, node didn’t exist on this machine.

    Traditionally, I would manage Node with nvm, fnm, or volta.

    But now that I exclusively use pnpm, pnpm can manage node versions for me instead!

    pnpm env use --global lts

    Then, you can tell pnpm to automatically install & respect this version when running pnpm commands in a project with use-node-version

    node --version > .npmrc
  7. pure prompt

    pnpm install --global pure-prompt

    Then, update zsh to use it:

    # .zshrc
    autoload -U promptinit; promptinit
    prompt pure
  8. VS Code

    Thanks to Settings Sync, all of my settings were already saved & synced between machines.


All-in-all, it took about an hour to get productive again (not including transferring files from Migration Assistant).

I used to think dotfiles were the solution to this!

But my dotfiles from 10 years ago were stale & irrelevant within a year. The ROI just didn’t exist.

Is It Worth the Time?