Migrating to the Apple MacBook Air M2

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

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.

    Rosetta error

    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.
    

    Stack Overflow

    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.

Conclusion

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?