By John Gruber
npx workos: An AI agent that writes auth directly into your codebase.
Back in December I linked to a sort-of stunt project from Tyler Hall called Alan.app — a simple Mac utility that draws a bold rectangle around the current active window. Alan.app lets you set the thickness and color of the frame. I used it for an hour or so before calling it quits. It really does solve the severe (and worsening) problem of being about to instantly identify the active window in recent versions of MacOS, but the crudeness of Alan.app’s implementation makes it one of those cases where the cure is worse than the disease. Ultimately I’d rather suffer from barely distinguishable active window state than look at Alan.app’s crude active-window frame all day every day. What makes Alan.app interesting to me is its effectiveness as a protest app. The absurdity of Alan.app’s crude solution highlights the absurdity of the underlying problem — that anyone would even consider running Alan.app (or the fact that Hall was motivated to create and release it) shows just how bad windowing UI is in recent MacOS versions.
Turns out there exists an app that attempts to solve this problem in an elegant way that you might want to actually live with. It’s called HazeOver, and developer Maxim Ananov first released it a decade ago. It’s in the Mac App Store for $5, is included in the SetApp subscription service, and has a free trial available from the website.
What HazeOver does is highlight the active window by dimming all background windows. That’s it. But it does this simple task with aplomb, and it makes a significant difference in the day-to-day usability of MacOS. Not just MacOS 26 Tahoe — all recent versions of MacOS suffer from a design that makes it difficult to distinguish, instantly, the frontmost (a.k.a. key) window from background windows.1 Making all background windows a little dimmer makes a notable difference.
Longtime DF reader Faisal Jawdat sent me a note suggesting I try HazeOver back in early December, after I linked to Alan.app. I didn’t get around to trying HazeOver until December 30, and I’ve been using it ever since. One thing I did, at first, was not set HazeOver to launch automatically at login. That way, each time I restarted or logged out, I’d go back to the default MacOS 15 Sequoia interface, where background windows aren’t dimmed. I wanted to see if I’d miss HazeOver when it wasn’t running. Each time, I did notice, and I missed it. I now have it set to launch automatically when I log in.
HazeOver’s default settings are a bit strong for my taste. By default, it dims background windows by 35 percent. I’ve dialed that back to just 10 percent, and that’s more than noticeable enough for me. I understand why HazeOver’s default dimming is so strong — it emphasizes just what HazeOver is doing. But after you get used to it, you might find, as I did, that a little bit goes a long way. (Jawdat told me he’s dropped down to 12 percent on his machine.) I’ve also diddled with HazeOver’s animation settings, changing from the default (Ease Out, 0.3 seconds) to Ease In & Out, 0.1 seconds — I want switching windows to feel fast fast fast.
Highly recommended, and a veritable bargain at just $5.
The HazeOver website also has a link to a beta version with updates specific to MacOS 26 Tahoe. To be clear, the current release version, available in the App Store, works just fine on Tahoe. But the beta version has a Liquid Glass-style Settings window, and addresses an edge case where, on Tahoe, the menu bar sometimes appears too dim. ↩︎