Date:
New Mac
I bought a new MacBook Air (M5) and figured it was a good time to document what I do to get a new Mac up and running. When I was going back to school, I would reformat my Mac about every six months. School has you install a lot of one-off software you’ll probably never need again—and if you do, you can just reinstall it.
Developer Tools
On most operating systems, you have to install developer tools before you can do any software development. I hardly use Xcode, but I’ve found installing it is the easiest way to get the right binaries downloaded. Later, when I install Homebrew, it sometimes asks me to reinstall the command line tools—so not exactly foolproof, but oh well.
Open the App Store and search for Xcode.
Terminal
This isn’t required, but the default terminal is kinda meh and missing some subtle details, especially if you use any terminal-based user interfaces like Neovim.
I use Ghostty as my terminal emulator.
Shell
MacOS uses zsh as the default shell, and I have grown accustomed to the little helpers that Oh My Zsh provides, so this is next on my list.
Homebrew
Next up is Homebrew. It has become the default package manager on macOS because there are like three or four different ways to install programs on a Mac, each with various requirements around developer trust and user permissions.
Extras
Now that we have Homebrew set up, we can use it to install a few other programs:
brew install nvim stats
Make sure ~/.local/bin is on your PATH. I add this to ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"
Neovim
I recommend LazyVim if you’re getting started with Neovim. It’s a single-command install and really easy to customize with an LLM.
Stats
Because this computer doesn’t have a fan I like being able to peak at what the CPU and GPU are doing so stats makes that a little easier after some tweaks.
Swift
Installing Xcode or the command line tools gives you Swift, but I do a lot of server-side Swift development and prefer to use Swiftly, the swift.org recommended install.
The main thing is it lets you try out different versions of Swift. If you want to use the Linux cross-compile options, you have to use the open-source version of Swift that Swiftly installs.
Configuration
Now that we have a bunch of software downloaded and installed, there are a few config things I like to do.
Git
Create an SSH key and add it to the macOS keychain:
ssh-keygen -t ed25519 -C "whatever-your-email-is@domain-name.com"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
Copy the public key and add it to GitHub to make cloning projects easier.
pbcopy < ~/.ssh/id_ed25519.pub
I put this in ~/.gitconfig:
[user]
email = whatever-your-email-is@domain-name.com
name = name
[init]
defaultBranch = main
System Settings
A few things I like to do in system settings.
Remap Caps lock to control key. If you do anything in the terminal control-c becomes your friend and this helps with crimping your pinky.
Turn off auto brightness features. There are a few settings around unplugging and plugging in the mac around brightness and some ambient light stuff that I turn off.
Turn off “Automatically rearrange Spaces based on most recent use”, I’m very spatially oriented and don’t like when stuff moves without me putting it there.
I setup a hot corner on the bottom left to enable the screen saver, as well as enable password “immediately” after the screen saver turns on. Mostly to give an easy way to lock the screen. You can also just click the power button to lock.
Repositories
After that, I create a ~/Developer/ directory clone down scribe it’s my agent harness that I have been working on and dogfooding. It works with Ollama if you wanna give your new Mac’s GPU a spin.
Thanks for reading.
Zane