Making an M5 MacBook Pro Actually Feel Fast

TL;DR: An Apple M5 Max can compile code and run local models at ridiculous speeds, but macOS still insists on cinematic, half-second UI animations for everyday interactions. Here are some Terminal tweaks and settings I've used to strip out the artificial lag.

Time-lapse of street lights with electric red and amber light streaks
Photo by Marc Sendra Martorell on Unsplash

I recently picked up a new MacBook Pro—an M5 Max for work. By every measurable hardware metric, it is an absurdly fast machine.

And yet, right out of the box, it often felt sluggish.

Not because of compute or memory pressure, but because Apple’s interface designers are deeply in love with theater. It looks elegant in a keynote demo, but my brain feels it like a papercut. Artificial animation latency registers as system lag. If I’m on a machine with this much horsepower, I want the UI to snap when I ask for it.

All-in-One Snippet

So, here it is, for future-me and anyone else. Here is the whole batch in one shot:

# Remove Dock hover delay and accelerate slide
defaults write com.apple.dock autohide-delay -float 0
defaults write com.apple.dock autohide-time-modifier -float 0.2

# Accelerate Mission Control
defaults write com.apple.dock expose-animation-duration -float 0.1

# Restart Dock to apply
killall Dock

Then, a few quick switches in System Settings:

There's probably more I could do, but this is what I've got for now.

How to Revert

If you decide you miss the floaty macOS elegance, you can wipe out the custom keys and restore the stock timings just as easily:

defaults delete com.apple.dock autohide-delay
defaults delete com.apple.dock autohide-time-modifier
defaults delete com.apple.dock expose-animation-duration
killall Dock

And remember to revert the changes in System Settings.

If you're curious what this stuff does, that's what the rest of the post says.

Eliminate Dock Hesitation

If you auto-hide your Dock to maximize screen real estate, the default behavior includes two separate speed bumps:

  1. The hover delay: A half-second pause before the OS starts revealing the Dock.
  2. The slide animation: The time it takes for the Dock to glide onto the screen.

You can drop the hover delay to zero and cut the slide duration down to a fifth of a second:

# Make the Dock appear instantly when hovering
defaults write com.apple.dock autohide-delay -float 0

# Speed up the slide animation
defaults write com.apple.dock autohide-time-modifier -float 0.2

Once you kill the hover delay, the Dock pops up the instant your cursor hits the display edge. It immediately makes the entire machine feel snappier.

Speed Up Mission Control

Mission Control’s window-tiling animation is another place where macOS takes its time. And I might be an outlier, but I have Mission Control mapped to a trackball button and use it as my primary navigation in macOS. I'm constantly in and out of that view, so the fades and swoops annoyingly add up.

First, the switches in System Settings:

On top of the system settings, you can tighten the Mission Control transition duration in the terminal:

# Speed up Mission Control animations
defaults write com.apple.dock expose-animation-duration -float 0.1

Combined with "Reduce motion," the UI stops gliding across the room and just gets out of your way.

Stop the Fullscreen Menu Bar Slide

If you run apps in fullscreen mode, there's another pacing bottleneck: when your cursor bumps the top edge of the screen, the menu bar leisurely slides down, and then slides back up when you move away.

Unfortunately, unlike the Dock, there is no defaults write key to speed up that slide animation. It's handled directly by WindowServer, and Apple locked away the old hooks years ago.

The workaround isn't speeding up the animation—it's preventing the menu bar from hiding in the first place:

Fullscreen windows will sit right below the menu bar instead of overlapping the top edge, and you won't lose a beat waiting for menus to glide into view.

One thing I still haven't found a cure for, though, is the window controls. Grazing the top-left edge of the display still prompts the traffic light buttons to do their own stately, leisurely slide-in and slide-out. As far as I can tell, WindowServer has that particular bit of choreography locked down tight with no hidden defaults key in sight. If anyone knows how to banish that last lingering animation, I'm all ears.

That's it

I spent an hour hunting these settings down across scattered Google results, Stack Overflow answers, and decade-old forum threads. Mostly, I'm writing this down here so future-me has a single place to look the next time I migrate machines. I've been out of practice writing this kind of post, maybe I should get back into it?

Comments loading...
Recovering Signal Decay, Three Songs at a Time  Previous