All posts / Setting up a new Mac
Setting up a new Mac
Published July 28, 2025For several years now I’ve been working from two machines: a first generation M1 Mac Mini on the desktop, and a late 2019 Intel Macbook Pro on the go. I didn’t feel the shortfalls in performance of the laptop until I starting working AI into my workflow more and more, and all this talk about Omarchy had me thinking it’s time for an upgrade. The Framework 16 and Omarchy are extremely compelling, but I anticipate a steep learning curve switching to Arch that I can’t afford to take on with my primary machine. So I got the 15” M4 Macbook Air, and plan to revive the Intel MBP with Omarchy.
For my future self, and any interested parties, here’s everything I configured and installed on the new machine to get it up and running for Rails development in 2025:
Make Caps Lock Control
This is always the first thing I do with a new machine. Caps Lock should not exist.
Use scroll gesture with modifier key to zoom
I use Ctrl + Scroll to zoom on specific areas of the display. Helpful for analyzing design details, and looking at small stuff.
Install Ghostty
The best terminal app.
Install dev tools
These are the Mac devtools. Try to run git and it will give you the command… xcode-select install yadda yadda…
Install Zen browser
Still searching for the perfect browser. I’ve been enjoying Zen, since Arc was abandoned. The major features that I’ve come to look for in a browser are tabs on the side (with CMD+Tab to minimize/maximize), tab split view, true spaces, custom default search engine, and Being Fast.
Setup Kagi for search
Kagi is expensive, but really nice for search… I’m not smart enough to know why or how, but I just consistently find what I’m looking for right away. A thing of the past with Google. But, the maps in Kagi suck. I have :g set up as a leader for Google search in a new tab in Zen. So if I’m looking for a place it goes “Cmd+T :g %place%”.
Install 1Password and extension
Self explanatory. Need passwords.
Install Raycast
I’m new to Raycast after over a decade with Alfred. It rules.
Change CMD+space to not open spotlight, and open Raycast instead
I don’t remember what the default Raycast key is, but I need it to be Cmd+Space. No need for Spotlight anymore.
Window management hotkeys
I don’t use these as much anymore, as I try to use full screen apps to keep me focused, but I have some basic ones like Ctrl+Option+Cmd </^/> to move windows left, full, and right, respectively. I use Raycast to set these up.
Authenticate with GitHub
This is the Github CLI (installed with dev tools). Need to authenticate so we can push/pull private repos.
Install Amphetamine
I do not want the screen to go off ever, unless I shut the laptop. I use this on desktop as well. No sleep, no screensaver. Just monitor on or off. The Macbook Air battery life makes this even more tenable.
Install mise
I’m new to mise, coming from a decade of rbenv and nvm. It was sold to me as an all in one tool to manage different versions of “anything”. So far so good.
Install homebrew
Haters will say homebrew is for noobs. Never really understood why… it’s just easier.
brew install openssl@3 readline libyaml gmp rust autoconf
Need this junk for Ruby. See how easy that was?
Install bun with mise, make it globally available
I’m also new to bun, coming from over a decade with yarn. Made the switch becasue it’s way faster, and considered to be part of a more modern toolset. So far so good.
Install ruby, node, make them globally available
Also using mise to install these and make them globally available across projects. I also needed to install specific versions for specific repos, which mise handles really nicely.
Install Rails
Feels good.
Update RubyGems
Gotta have the latest gems.
Generate SSH key
Need to do this for many reasons, but mainly for pulling private Githib repos, and deploying with Kamal.
Install Postgresql via homebrew
Up until now I’ve always used Postgres.app. Trying this on for size. So far so good.
Install redis
Need this for most of the Rails apps I work on. Their website is weirdly good.
Install ngrok
Need this for the primary Rails app that I work on.
Add ngrok config
I use a global ngrok config so that it doesn’t have to live inside of a repo, and I only really use it for one project.
Install OCR-A
Is this the best programming font? No. But I like it. If you recognize it… GOOD.
Install Starship
Really nice - optionality and configuration is refreshing coming from OhMyZSH. Always hated the name of that one anyways.
Nerd Fonts for Starship
Some starship configurations (maybe the defaults) rely on Nerdfonts, so we need to install them.
Ghostty config
Mine’s very simple… kind of the point. Probably need to do some work on this.
brew install zsh-autosuggestions
So we get autocomplete in the command line.
Install neovim
For writing and editing code.
Install zellij
For tab/window/pane/session management in the terminal.
Install Claude Code
For the code I don’t feel like writing.
Install Kamal
For deploying apps and websites to web servers.
Install Docker and docker-buildx
For Kamal deploys, using homebrew to install.
Install Heroku command line interface
For deploying apps that I built before Kamal was released.
Bring in dotfiles
For configuring tooling like Ghostty, mise, Neovim, Zellij, and Starship, and more.
Install Dropbox
Self explanatory - syncing files across different machines.
Install Obsidian
I’ve been using Obsidian on and off for a few years now, and have finally decided to commit. It’s really nice… Everthing in Markdown. I wish the sync didn’t rely on iCloud.