Starting a new Macbook Pro setup from scratch was much less painful than I initially expected. I thought setting up environment variables and various system tools like Docker would be a massive pain, but turns out it took a lot less time than I thought.
On my old Intel Macbook I decided to copy everything over. Somehow it messed up the disk image partition, and almost ~100GB wasn’t usable for some odd reason. It kept thinking it had a duplicate volume or something, and I could never figure it out. This time I’m starting from scratch!
In total I spent about ~6 hours to set up 95% of everything I needed to do work on this machine.
A few things to keep in mind before starting a new setup:
- Have good wifi! I set my machine up at the Sydney Startup Hub which had a measly 30mb down and something like 5mb up. My 5G connection wasn’t doing much better (with the Optus outage). Without this issue, setup would’ve taken much less time.
- Transfer apps, files and folders with Airdrop! I keep forgetting how incredibly fast Airdrop is
- Your old Intel apps might not work, or might work poorly. Some apps complain they run on suboptimal silicon — those have been replaced through new app downloads. I’m still running many old Intel apps moved over from Airdrop; lots of apps are “universal” and don’t have a M-compatible chip, while others just hum along sub-optimally. I’ve decided I’m ok with that.
- The CouchDB daemon somehow didn’t run well on M3 on install; the icon in the top bar took ~1 min to open when clicked, and the admin page wouldn’t open. Somehow it fixed itself a week later though…
The following is a list of apps, configs, etc. that I had to do to get my machine to my liking and ready for work.
Mac Settings
I’m weird about my OSX settings
- Set up swipe shortcuts in settings
- Display
path + disk space
in Finder
- Show hidden files (Just hit
shift cmd .
)
- Uncheck Swipe between pages
Mini & Utility Apps
Here’s a bunch of “mini apps” I like to have around on the toolbar
- Setapp Apps
- Apparently I only have a single-machine license and need multi computer license. Sigh. The M3 is my main, so I moved this suite of apps over.
- Apps: CleanMyMac, Gemini 2, Tape, Superwhisper, Cleanshot
- ItsyCal: Nice to have a small calendar in the corner
- Spectacle: Move windows around with keyboard
- Flux: Turns screens orange at dark; better than the built-in Mac app
- Dropbox: Offload data to the Dropbox cloud, for backups
- Google Drive: Offload data to the Google cloud, for backups
- Calibre: For managing eBooks
- 1Password: Password handling
- Bitwarden: More Password handling
- Disk Inventory X: I have a TB of space. Will I ever use this (probably, yes)
- Omnidisk Sweeper: (refer to above)
- FileZilla: Is FTP still a thing?
- Folx: Are torrents still a thing?
- NordVPN: For pretending to be back home
- Cloudflare Warp: Supposedly makes things faster. Been off for the last week; has slowed connection speeds by 1/100.
- Handbrake: Video compression; great for video cutting/editing
- VLC: Plays any video including weird codecs. Great for video preview / editing
- Raycast — I never find myself using this thing
-
Beeper: A multi-platform messenger tool; I don’t really use this, but excited to try the API
-
MacGPT: I haven’t been using this since the new GPTs update
-
Obsidian: I never use this either
Didn’t make the cut:
- Oversight: Tells you when you’re being watched. Decided to give into surveillance.
- Loom: Only good for short videos; trying out Tape instead. Maybe should use screen.studio instead?
- Tunnelblick: Using NordVPN right now; no need for a home-VPN.
- MongoDB Community: Great tool for managing MongoDB Atlas. Been using Couchdb and D1 though.
Work & Dev Apps
- Docker Desktop: Necessary evil to run Docker
- CouchDB: Runs Couchdb locally in the background for testing. Useful!
- Postgres.app: Runs Postgres locally in the background for testing. Also useful!
- XCode: This is a massive install that Node requires. Copy this over from
/applications
with Airdrop
- Sublime Text: A nice text editor
- VS Code: A nice code editor
- Cursor.sh: A cheat code for programming
CLI Apps & Configurations
Command-line apps and configurations.
- Note: on M-series Macs, use
~/.zprofile
for configurations and system variables; this replaces .bash_profile
— so make sure you copy over any settings
- Start by setting up homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Once Sublime is installed, use it to open folders or edit text files, e.g.
subl .
or subl ~/.zprofile
- Python3 & pip:
- Install python 3 with brew
brew install python@3
- Add this to
subl ~/.zprofile
: export PATH="/opt/homebrew/bin:$PATH"
- Restart terminal
- Type in terminal:
source ~/.zprofile
- Pip should now work with pip3:
pip3 --version
to check version - Note that in Sonoma / home-brew everything python is in
opt/homebrew
instead of usr/local/
- 7zip:
- Download
7zz
- add to
subl ~/.zprofile
: export PATH="/Applications/7zz.app/Contents/SharedSupport/bin:$PATH"
- Github
- Install with
brew install gh
- If Sublime is installed and setup, change to
subl
on commit: git config --global core.editor "subl -n -w"
- Create a new public key for Github signing: None of their documentation worked, but I got GPT-4 to do this for me: https://chat.openai.com/share/6ca7e574-8531-477e-9b67-730b0dc50578
GPT-4 instructions (worked like a charm)
To set up a new Mac with your GitHub public key for SSH authentication, follow these steps:
- Generate an SSH Key Pair:
- Open your Terminal on the new Mac.
- Use the
ssh-keygen
command to generate a new SSH key pair. You can specify the filename if you want, but the default is usually fine.
mathematicaCopy code
ssh-keygen -t ed25519 -C "your_email@example.com"
- Replace
"your_email@example.com"
with the email associated with your GitHub account.
- Save the SSH Key:
- You'll be prompted to choose a location to save the SSH key pair. Press
Enter
to accept the default location, which is usually ~/.ssh/id_ed25519
for an Ed25519 key.
- Add the SSH Key to the SSH Agent:
- Start the SSH agent if it's not already running:
bashCopy code
eval "$(ssh-agent -s)"
- Add your SSH key to the agent:
javascriptCopy code
ssh-add ~/.ssh/id_ed25519
- Copy the Public Key:
- Use the following command to copy the contents of your public key to the clipboard:
javascriptCopy code
pbcopy < ~/.ssh/id_ed25519.pub
- Add the Public Key to Your GitHub Account:
- Go to your GitHub account settings.
- Click on "SSH and GPG keys."
- Click "New SSH key" or "Add SSH key," give it a title (e.g., "Mac SSH Key"), and paste the public key you copied in the previous step into the key field.
- Test the SSH Connection:
- To ensure everything is set up correctly, test the SSH connection to GitHub:
cssCopy code
ssh -T git@github.com
- You should see a message confirming your successful connection.
Now, your new Mac is set up with your GitHub public key for SSH authentication. You can use this key to securely access your GitHub repositories without needing to enter your GitHub password each time.
- Fly.io
- Install:
brew install flyctl
-
fly auth login
- Cloudflare Wranger CLI
- They removed the global install; it’s only project specific now. Just install like any other packages in the project.
- In a project:
yarn add --dev wrangler
- Sentry-CLI: decided I didn’t need this right now
- Node / nvm
- Don’t install Node (
brew install node
) outright; use nvm
instead as it gives you the ability to switch between node versions very easily. - Installing nvm:
brew install nvm
- Add this to
subl ~/.zprofile
: source $(brew --prefix nvm)/nvm.sh
so nvm is always available - Restart terminal
- Install a node version, e.g.
nvm use 18
then set it as default nvm alias default 18
- To list all versions:
nvm list
or to see current version: nvm current
- Notes: https://collabnix.com/how-to-install-and-configure-nvm-on-mac-os/
- Install yarn
- Other Stuff
- visidata: for dealing with CSVs:
brew install saulpw/vd/visidata
Consumer Apps
- Chrome: Do this one first; set up the account to sync
- Notion: I prefer Apple Notes but multiplayer is terrible on it
- Front: Multiplayer email client
- Google: Docs / Sheets / Slides
- Microsoft: Office / Word / Excel / Powerpoint
- Agenda: For journaling / short notes
- Sketch: For older projects (newer projects are on Figma)
-
Webex: this thing is so bloated, but the NIH and FDA calls required Webex…
Didn’t make the cut:
- Microsoft Edge: Good to use the new Bing AI features but that’s about it.
- PDF Expert: Don’t PDF editing very much, but this is the GOAT product for PDFs.
- Opera (and the other browsers): I used to test on multiple browsers, but now they’re all based on Chromium so…
Other notes
It’s been a week, and I’ve been adding a couple of things here and there to this list, but the system’s been humming! A few odd things have been popping up (every time I try to run an old Node project I get some node-gyp
about Node not having the right permissions or the wrong silicon. Every bank and other log in requires a new round of 2FA. That kind of thing. But mostly it’s been smooth sailing!
2024 Updates
More things to install:
- Cloudflare tunnel
cloudflared