Library

My Opinionated MacBook Setup

15 min read10 Aug 2026
15 min read
In one line

The Mac setup guide I wish I'd had when I switched from Windows.

Who it's for

Windows converts, new Mac owners, and developers who suspect the defaults could be better.

My Opinionated MacBook Setup

I started out developing on Windows, spent a while messing around with Linux, and eventually ended up on macOS. These days I do most of my development on a MacBook, although I still use Windows regularly for gaming.

This is how I like to set up a MacBook, including a few choices that make switching between the two a bit less annoying. It’s in four parts:

The basics

These are the settings I think everyone will find useful. It’s all a matter of opinion though, so take what suits you. 😄

Strip Spotlight back to apps only

Spotlight is macOS’s system-wide search and app launcher. Press Command key+Space and start typing. It’s the first shortcut worth learning.

By default, Spotlight searches a lot of different sources, which makes the results noisy. You can choose exactly what it includes:

  1. OpenSystem Settings
  2. Type“Spotlight” into settings search box
  3. ReviewResults from Apps & Results from System

What you leave on is up to you, but I’d start with as little as possible. I only leave these two on:

  • Results from Apps: Calculator
  • Results from System: Apps

You can switch a category back on if you find you miss it. I never have.

Hide the Dock

This is one of the things I always end up changing when I use someone else’s MacBook. 😆 It feels a bit strange for the first day, but you quickly get used to it and get a little more screen space back.

I rarely use the Dock to launch apps anyway, since Command key+Space is much quicker.

  1. OpenSystem Settings
  2. ClickDesktop & Dock
  3. TickAutomatically hide and show the Dock

While you’re there, turn off “Show suggested and recent apps in Dock”, otherwise it slowly fills up with things you opened once. I’d also remove anything else from the Dock that you don’t use regularly.

Turn the scrollbars back on

macOS hides scrollbars until you start scrolling, so you often can’t tell whether there’s more content below without flicking the trackpad to find out. I find it properly irritating, and it’s one of the first things I change on a new machine.

  1. OpenSystem Settings
  2. ClickAppearance
  3. SetShow scroll bars to Always

The default is “Automatically based on mouse or trackpad”, which is why they seem to behave inconsistently: plug a mouse in and they turn up, unplug it and they don’t. Set it to Always and you can see how far down a page you are at a glance, and drag them about like a normal person.

Improvements to Finder

Finder is perfectly usable out of the box, but a few of its defaults make little sense. You can fix most of them from Finder’s settings:

  1. OpenFinder
  2. Click“Finder” in the menu bar
  3. ClickSettings

Start in your Home folder

A new Finder window opens on Recents by default, which I’ve never got any use out of. Home is a better place to start:

  1. ClickGeneral
  2. Set“New Finder windows show” to your home folder

Show filename extensions

This one’s more personal preference, but I like seeing every file’s extension, and it makes renaming files easier.

  1. ClickAdvanced
  2. TickShow all filename extensions

Keep folders on top

This stops folders being scattered in amongst your files. The “On Desktop” option underneath only affects desktop icons, so take it or leave it.

  1. ClickAdvanced
  2. TickBoth options under “Keep folders on top”

Search the current folder

Finder’s search box defaults to searching the entire Mac, which is almost never what you meant. If you’ve gone into a folder and then typed in the search box, that folder is what you’re looking in.

  1. ClickAdvanced
  2. Set“When performing a search” to “Search the Current Folder”

Customise the sidebar

Get rid of anything you don’t use, including the iCloud entries. Mine is basically Documents, Downloads, Pictures and Applications, and a four-item sidebar you can hit without reading saves a surprising amount of time.

  1. ClickSidebar
  2. DisableAnything you never click

Show the path and status bars

These add a breadcrumb trail along the bottom showing where you are, and a count of what’s in the folder. They live in a different menu to the rest:

  1. OpenFinder
  2. Click“View” in the menu bar
  3. ClickShow Path Bar & Show Status Bar

Working with files in Finder

A few things behave differently enough to catch you out on day one:

  • Return key renames a file instead of opening it. This one gets everybody.
  • Command key+Down arrow key opens the thing you’ve selected.
  • Command key+Del sends it to the Bin. Delete on its own does nothing. 3
  • Command key+Shift key+. shows and hides hidden files. 4

Taking a screenshot

There’s no Print Screen key, so you can either remember these shortcuts or (like me) press Command key+Space, type “screenshot” and press Return key.

  • Command key+Shift key+4 gives you crosshairs to drag a box around whatever you want. The screenshot lands on your desktop.
  • Command key+Shift key+5 opens a small toolbar with all the options: whole screen, one window, a region, and screen recording if you need to capture a video.

If you only learn one, learn Command key+Shift key+4.

Apps worth installing

Thaw cleans up your menu bar. Once you’ve got a few apps running, the row of icons along the top turns into an unreadable mess. Thaw hides the ones you don’t need and brings them back on a hover or a keypress. It’s free and open source, which a lot of Mac utilities aren’t, and it’s the one to get.

The Unarchiver handles the archive formats macOS won’t. The built-in tool only really does zip properly, so when someone sends you a .rar or a .7z and nothing happens on double-click, this is the fix. It’s free, and once it’s installed you can forget it exists.

If you’re coming from Windows

The Cmd key, and how to get Ctrl back

On a Mac, Command key does what Control key does on Windows. Copy, paste, save and undo all use the same letters, just with a different modifier key. Ctrl still exists and does other things, so pressing it out of habit won’t break anything. Usually nothing happens at all.

Most people adapt within a week and never think about it again. But if you’ve got twenty years of Control key+C living in your left hand and you resent being made to relearn it, you don’t have to. Just swap the two keys over:

  1. OpenSystem Settings
  2. ClickKeyboard
  3. ClickKeyboard Shortcuts… > Modifier Keys
  4. SetControl key to Command key, and Command key to Control key

Now Control key+C copies exactly like it always did, and the whole machine feels a good deal more like a PC.

macOS stores the swap per keyboard, so if you later plug in a USB keyboard you’ll need to set it again for that one. It’s the same panel; pick the keyboard from the dropdown at the top first.

I only do this because I’m on a Windows machine regularly and I’d rather not learn the same shortcuts twice. If you’re only ever on a Mac, don’t bother: learn Command key and it’ll be second nature in a week.

Getting more out of macOS

This is what I’d learn next if you’re on the machine most of the day. Most of the useful bits are hidden until somebody tells you they exist.

Spaces: making one screen feel like three

Any app can go full screen with the green button top left, or Control key+Command key+F. When it does, it gets its own space, which behaves like a separate monitor. You slide between spaces by swiping left and right on the trackpad with three or four fingers depending on how yours is set (System Settings > Trackpad > More Gestures), or Control key+Left arrow key/Right arrow key from the keyboard.

On the laptop with nothing plugged in, I’ll typically have:

  • a terminal full screen off to the left
  • my main desktop in the middle, with Notion in an ordinary window
  • Slack and email full screen off to the right

I move between them with a flick of the trackpad instead of Alt+Tab key or hunting through the Dock, and nothing needs resizing to fit next to anything else.

On the laptop I mostly use full-screen apps and rarely create extra desktops by hand. It’s one of the things the MacBook does particularly well: my 14-inch screen effectively becomes three. Plugged into monitors I do the opposite, because one app swallowing a whole display is usually a waste. When I unplug them, I’m straight back to the laptop setup.

Apps, windows and Mission Control

Command key+Tab key cycles through open apps, much like Alt+Tab key on Windows. The important difference is that it switches between apps, not windows. If you’ve got three Word documents open, that’s one entry in the list, not three. To move between windows of the same app, use Command key+` (the backtick above Tab).

Shortcut What it does
Command key+Tab key Cycle through open apps
Command key+` Cycle windows within the current app
Command key+W Close the window
Command key+Q Quit the app
Command key+Shift key+T Reopen a closed tab or window in Chrome or Firefox
Control key+Up arrow key Mission Control (so does F3 on most MacBooks, or a three- or four-finger swipe up)

An app with no windows open is still running, which is why its Dock icon keeps a dot under it and why it’s still sat there in Command key+Tab key. Shutting a browser window by accident is almost never the disaster it feels like, because Command key+Shift key+T keeps stepping back if you press it again.

Mission Control shows every window across all your displays, laid out so you can see what each one is. It’s what I use instead of Alt+Tab key, and it’s the thing I miss most when I’m back on Windows. You see the windows themselves, so three windows of the same application are three separate things to pick from, where Command key+Tab key gives you one icon to cycle through and hope.

The catch is that it only stays useful if you’re a bit disciplined about what’s open. With thirty windows open, every one of them is a tiny unreadable rectangle. So I minimise anything I’m not working in and pull it back off the Dock when I want it again, which keeps Mission Control down to a handful of windows I can identify at a glance.

You can also trigger Mission Control with a hot corner. I don’t. Once you move between the laptop and external monitors, the corners stop being where your hands expect them. Control key+Up arrow key works from anywhere.

Moving around text

Learn these early. You use them constantly, and Home and End don’t do what you’d expect.

Shortcut What it does
Command key+Left arrow key/Right arrow key Start and end of the line
Command key+Up arrow key/Down arrow key Top and bottom of the document
Option key+Left arrow key/Right arrow key Jump a word at a time
Option key+Del Delete the previous whole word
Command key+Del Delete back to the start of the line
Fn+Del Forward delete, the key Mac keyboards don’t have

Hold Shift key with any of those and you select instead of moving: Option key+Shift key+Right arrow key selects the next word, and Command key+Shift key+Left arrow key selects back to the start of the line.

Apps worth installing

Rectangle snaps windows to halves, thirds and quarters with keyboard shortcuts. Recent macOS versions have some tiling built in, but Rectangle is faster and behaves more sensibly across multiple monitors. I use full screen for the apps I swipe between and Rectangle when I want an editor and terminal side by side.

Development

This is the part where the Mac stops being a nice laptop and starts being the reason people put up with the price.

It’s Unix underneath

macOS is a certified Unix, which means the gap between your laptop and the Linux box you deploy to is small. Most tools built for servers install and run natively. Docker is the exception: containers need Linux, so Docker on a Mac runs a small Linux VM in the background.

On Windows you pick between cmd, PowerShell, WSL, Git Bash and MSYS2, each with its own idea of what a path is and none of them quite agreeing with your editor. On a Mac there’s one shell, and what you install turns up in it. That’s a low bar that Windows still hasn’t cleared, and I don’t miss the hours I used to lose to working out which terminal I was in and why the path had backslashes in it.

It is Unix rather than Linux, so every so often you’ll hit a command that takes slightly different flags to the one on your server. sed -i is the classic: on Linux it’s sed -i 's/a/b/' file, but macOS expects a backup file extension after -i, so you need sed -i '' 's/a/b/' file, and each version fails on the other system. It’s a minor irritation and easily worked around, but worth knowing it’s a thing so you don’t lose an hour wondering why a script that works fine in CI doesn’t work here.

Homebrew

Homebrew is a package manager, like winget or Chocolatey on Windows, and it’s how I install pretty much everything on a Mac. I’d use it over the App Store. It’s one command, instead of finding a website, downloading a .dmg, dragging an icon and then dealing with the update prompt six weeks later.

There are two forms:

bash
brew install htop          # command line tools
brew install --cask slack  # actual GUI applications

Casks are the part people miss. You can install real desktop apps this way, including everything in this post:

bash
brew install --cask thaw
brew install --cask ghostty
brew install --cask rectangle
brew install --cask the-unarchiver

And the bit I keep meaning to use:

bash
brew bundle dump    # writes a Brewfile listing everything you have
brew bundle install # installs all of it on a new machine

Full disclosure, I don’t commit a Brewfile, and I only worked out fairly recently that I should. A new laptop, or one you’ve broken badly enough to wipe, becomes one command and a cup of tea instead of a lost afternoon. Do as I say and not as I do on that one.

The terminal itself

Terminal.app is fine. If you drop in a few times a day to run something and get out again, don’t bother changing it.

If you’re in there most of the day, this is the one part of the Mac where I’d switch without thinking about it. I used iTerm2 for years and it’s still a perfectly good choice. These days I use Ghostty and I prefer it. It’s quick, the defaults are sensible, and I get proper split panes without configuring anything.

The feature I wouldn’t give up now is desktop notifications. A long build finishes, or Claude Code gets to the end of a job and wants an answer, and I’m told about it while I’m reading something else, instead of tabbing back every couple of minutes to check whether it’s still going.

The main thing I want from the prompt (the text before your cursor) is my current Git branch and whether there are uncommitted changes, so I know the state of a repo as soon as I cd into it. I use Starship for that. It shows the branch, uncommitted and staged changes, and whether I’m ahead of or behind the remote, which saves typing git status all day.

bash
brew install starship
# then add this line to ~/.zshrc
eval "$(starship init zsh)"

Its icons need a Nerd Font, a font patched with extra symbols. Ghostty already ships with one, so there was nothing else to set up.

Aliases

If I type something several times a day, it gets an alias:

bash
alias gs='git status'
alias gp='git pull'
alias ll='eza -la --git'

ll uses eza, a modern ls that shows each file’s Git status (brew install eza). Put the aliases in ~/.zshrc and they’re there in every shell you open. I’ve got a few dozen now and I’d be slower without them. Keep .zshrc in your dotfiles and the aliases will follow you to the next machine.