DEV Community

Cover image for My 2021 New Mac Setup
swyx
swyx

Posted on β€’ Edited on β€’ Originally published at swyx.io

41 11

My 2021 New Mac Setup

I set up a new Mac for work today. Here's everything I use on a Mac for fullstack web development.

Unlike Mina Markham, I choose not to automate my setup because I only do it about once a year and I want the ability to make conscious changes each time.

I previously tracked my new mac setup in an old version of this page from 2018-2020.

1hr Video Walkthrough


OS/Browser Settings

Setup Terminal

  • Copy my dotfiles (vimrc, zshrc, .gitignore_global): https://gist.github.com/sw-yx/7fa1009e460ecb818d5e6d9ca4616a05
  • Install ZSH (first usage of git will prompt you to install git - takes 15 minutes)

    • git config --global init.defaultBranch main
    • git config --global user.name "swyx"
    • git config --global user.email shawnthe1@gmail.com

  • Hyper Terminal

    • settings: shell: '/bin/zsh'
    • settings: fontFamily: '"Inconsolata for Powerline", Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
    • Fig - context-aware autocomplete for terminal. Waitlisted now, but you can skip the waitlist here (i get nothing from this)
      • More CLI tools recommended by Brendan Faik (founder of Fig) - bat, exa, ripgrep, and other Rust CLI alternatives. Also zsh abbreviations
      • More CLI tools from Earthly - HN here
        • broot - a better tree
        • funky - simple shell functions
        • fzf - fuzzy finder
        • mcfly - guesses commands based on your history
        • zoxide - a better cd
        • gitupdate - use file names to create a more meaningful commit message

Set up apps/environments

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

    i have a bunch more stuff in brew list but i'm not sure what i use actively. You can mass install these: brew install $(cat packages.txt)

    bat             gdbm            libuv           python@3.9
    brotli          gh              libyaml         readline
    c-ares          go              mpdecimal       ruby
    deno            gradle          nghttp2         sqlite
    diff-so-fancy   icu4c           node            xz
    fnm             jemalloc        openjdk         yarn
    fzf             libev           openssl@1.1     z
    
  • brew update on m1's have turned out to be super annoying. this helped me: arch -x86_64 brew install YOUR_PACKAGE

  • brew install bat

  • Github CLI: brew install github/gh/gh

    • you need to login to git - if you have 2fa enabled, you cant use your normal github password. try pushing to a repo and enter in a Personal Access Token for password.
    • then run gh auth login
    • add GitHub SSH key (not optional)
  • brew install fzf - fuzzy finder - usage example is here

  • brew install node

    • Node.js/NPM
    • npm login
    • npm config set loglevel
    • sudo npm install netlify-cli -g
    • npm i -g sign-bunny fortune-node parrotsay
    • npm install -g undollar for removing $
    • sudo npm install -g trash-cli
  • brew install yarn --ignore-dependencies - yarn note

  • you may need to work around Mac OS Sierra

  • brew install z - REALLY GOOD TRY IT

  • Misc

Setup Apps


Other good "new laptop setup" lists:

Top comments (12)

Collapse
 
fhiegel profile image
Fabien Hiegel β€’

Thank you for the share !

I have some other tools I prefers :

I use SdkMan (sdkman.io) for install java, and managing my different java versions

I use "Rectangle" instead of "Spectacle" for managing windows, installed from brew

brew install --cask rectangle
Enter fullscreen mode Exit fullscreen mode

I use "CopyQ" instead of "clippy-app" for clipboard manager

brew install --cask copyq
Enter fullscreen mode Exit fullscreen mode

Note : the link to your dotfiles gists, is pointing to a Notions workspace
Note2 : thank you for all your "Learn In Public" resources

Collapse
 
dailydevtips1 profile image
Chris Bongers β€’

Nice Shawn!

Very complete list, took some inspiration from this as I'm currently building a new brew formula to do most of this for me when I'm reinstalling my Mac again.

Also going to give Z a shot πŸ‘

Collapse
 
horacioh profile image
Horacio Herrera β€’

I use a dotfile to setup almost everything!
github.com/horacioh/dotfiles/blob/...

there are a lot of people with this mode, you can search for repos named β€œdotfiles”

Collapse
 
preslavrachev profile image
Preslav Rachev β€’

That's a nice one. I have recently started my own long-term project in the same direction. I am collecting about a decade of knowledge and insider tips into a (won't call it a book yet) scrapbook of sorts. I have released a very early version of on Gumroad: p5v.gumroad.com/l/setting-up-your-mac Anyone generous enough to back my little project at this stage will enjoy its full value over time. Thanks!

Collapse
 
trimud profile image
Yuriy Boev β€’

Why do you need another app for clipboard history when you have this built in in Alfred already?

alfredapp.com/help/features/clipboard

Collapse
 
trimud profile image
Yuriy Boev β€’

Why do you need another app for clipboard history when you have this built in in Alfred already?

alfredapp.com/help/features/clipbo...

Collapse
 
bramus profile image
Bramus! β€’

To automate (most of) these steps I created github.com/bramus/freshinstall that does the job for me. Might need a few tweaks to continue working with the latest macOS/etc versions.

Collapse
 
swyx profile image
swyx β€’

looks very handy! thx for sharing!

Collapse
 
brucebentley profile image
Bruce Bentley β€’

Do you have all of this configured in a dotfiles repo somewhere?

Collapse
 
trimud profile image
Yuriy Boev β€’

Why do you need another app for clipboard history when you have this built in in Alfred already?

Collapse
 
trimud profile image
Yuriy Boev β€’

Why do you need another app for clipboard history when you have this built in in Alfred already?