Alan.app – Add a Border to macOS Active Window

2 days ago (tyler.io)

There is also https://github.com/FelixKratz/JankyBorders

Bizarre that this has not been fixed by Apple, it has been an annoyance well before Tahoe. Relying on the three dots in the top left corner to see which window is on top gets frustrating.

  • Oh damn, this has been causing me trouble when working in half-and-half and quartered windows as recently as this week. I’ll be installing the one you linked, or the one the thread-link points to. Thanks, didn’t occur to me this would be a thing but of course it is.

if you do not wish to install another app, check "increase contrast" in the mac settings under accessibility>display. it will draw borders around windows and text entries. Much welcomed.

  • Thank you. Each time I see an app that does the smallest change possible (and it's a MacOS-only thing by the way) I think to myself: Does it have to be an APP?

    Not a script, not a configuration, but an actual app that occupies space and RAM and does just that? How had somebody come to this weird idea that everything is an APP?

    • Because that’s been the user convention for 30 years since the day Mac OS 10 was released.

      People do not want to manage scripts and configurations in esoteric locations. They want to drag and drop app bundles into the trash from the apps folder.

      This is trivially found out after 5 minutes with a user.

      2 replies →

  • Thank you so much! I did not know I needed it! Still it does not help much to see which window is active right now (Sequoia), but makes overall experience easier.

Took a look at this and it feels like it is implemented using public macOS frameworks so it shouldn't break between macOS updates

My guess is that kAXWindowMovedNotification, kAXWindowResizedNotification, kAXMainWindowChangedNotification etc. are being listened to on the currently focused window using the Accessibility framework, and there is a callback which gets the latest position of the tracked window whenever it is fired, and uses that position as a reference to update the border position

The border window itself is most likely an NSWindow, which is why the tracking of the border with the target window feels quite sluggish

  • Developer of the app here. You’re correct. Accessibility APIs + timer + transparent top-level NSWindow that ignores input and draws a border.

    • Fwiw I think this is the right approach. The trade-off between stability across OS updates vs tracking performance is a no-brainer for me - the absolute last thing that I would want is a deluge of bug reports with no other information than "it stopped working" when Apple pushes out an update

      1 reply →

    • Very nice idea, thank you for developing it. With an M1 iMac, though the window border lags the position of the window quite a lot if you drag it around, so probably not usable for me.

      3 replies →

A similar app I really like is HazeOver, which is a configurable dimmer for everything on the screen except the front window.

https://hazeover.com/

  • That is an A+ demo video - dimming the background of the page in sync with the effects in the video is very clever.

  • Seems nice but I'm afraid it would not be compatible with my main work setup: VS Code on my main monitor, my web browser on my external monitor, and my eyes going back and forth between these 2 windows every few seconds to either read code or check the effects on the hot-reloading app. If one of the windows is dimmed, it would be painful.

    • Then you don't need a focus app, I'd say. But HazeOver has some "rules" that could help you. I agree that it only makes sense for me, on a single big display. If I'm using the MBP 14" one, I'm always maximized...

  • I use this, and absolutely recommend it. I am scared if it gets too much attention it will be Sherlocked, but I would love it Apple was able to ethically acquire and include it in macOS.

Always glad to see more software in the window management space, especially for MacOS.

Any reason to use this over JankyBorders? I'm using it alongside Aerospace right now and forget sometimes it isn't built-in. Kind of weird to me that after all this time this is such a sparsely implemented feature. But the combo with Aerospace works well. Only thing missing is support in Aerospace for a toggle to have a window expand to the size of it's container. Really liked that feature in Yabai, made working with multiple tiled terminals really nice

  • One difference can be seen right away - when moving a window, border made by JankyBorders moves smoothly together with window, unlike with this app.

    The implementation is probably different.

PopOS's Cosmic DE has this baked in. I was unsure about the feature at first, but it has proved itself useful. I wonder if this will eventually be Shirlocked into macOS.

It might be the age thing, honestly. I'm past 30, and recently I changed my cursor coloring to bright orange/yellow because I was genuinely spending time trying to find my white cursor on all my white backgrounds (Github, some text editors, Notion, etc). I think I'll continue to adopt some of these tools since they just increase comfort and remove strain for tasks I do 100s of times a day.

  • I have to switch to the black / white outline cursor or I will guaranteed lose my cursor. I also bump up the size significantly. Any time I use a coworker's computer station I lose the cursor for a second.

The recent direction of MacOS has been a good excuse to try out a few new linux distros. As someone who was away from linux for a while, the degree of UI customization continues to be both amazing and a little overwhelming, but it feels more polished than before. Taking a look at Niri and hyperland, it's hard to feel satisfied with the UI of MacOS.

I run a tool that I like much better both in terms of not being distracting on-screen and reducing the light blasting my eyes:

https://hazeover.com

I'm not affiliated, but I love it and recommended it to friends.

I’m surprised this feature isn’t part of the built-in Accessibility Settings. Neat little app!

This has been a serious problem since macOS Tahoe. Whoever signed off on the UI for Tahoe needs a serious schooling in UI/UX design principles - it's incredibly hostile to users. Not only does it make it impossible to distinguish between overlapping windows as this tool seeks to mitigate, there's many confusing UI elements and lack of contrast not to mention why it has so much padding on everything - you're left with far less usable space.

  • > Whoever signed off on the UI for Tahoe needs a serious schooling in UI/UX design principles

    Their background is in marketing/packaging/retail design, and they were at Kate Spade before Apple.

    https://a-g-i.org/user/alaindye/

    It’s not too much of a stretch to imagine why someone from that world would prioritize things looking good in promotional photos/videos, and not care too much about human factors and fundamentals of interaction design.

    • Blaming any one person doesn't seem very useful without extraordinary insight into the development process. It could be this approach was dictated, and it's not like the rest of the product team didn't have say, and it allows scapegoating them even if both the above are true.

      12 replies →

    • Notably, their name is Alan (or sometimes Alain), which might be where this app gets its name?

  • Similarly, when you switch to another app via command+tab, the keyboard events are being sent to the previous app for a couple of hundred milliseconds.

    I cannot remember the number of times I quit the wrong app because of this or pasted something to the wrong window. I genuinely have to wait a second on every app switch.

    • It seems mindbending that this would pass any stage of testing. As a non macOS user, this feels like a complete dealbreaker for ever considering a switch. But macOS is demonstrably popular, and I haven't heard this complaint before. Is it less of an issue in reality than I imagine it would be?

      2 replies →

    • This also happens on switching virtual desktops, even with reduce animations there is a 100ms+ delay before any input on the new desktop will be sent to the correct app.

  • Apple has favoured looks over function for quite a while now.

    • Indeed. Here’s an article from Don Norman, author of The Design of Everyday Things and former Apple employee, that talks about Apple’s decline in usability back in 2015:

      https://www.linkedin.com/pulse/why-apples-products-so-confus...

      Apple had usability experts like Bill Atkinson (RIP), Larry Tesler (RIP), Bruce Tognazzini, and Don Norman. At one point, what differentiated Apple products from competitors was Apple’s focus on usability and consistency. However, it seems that sometime during Apple’s revival under Steve Jobs, there became a big focus on appealing design. Beige desktops and black laptops gave way to colorful desktops and metallic laptops, and the Platinum interface was replaced with Aqua. Nothing was wrong with this; in fact, this was peak Apple, IMO, with usability and visual appeal. But somewhere along the line, Apple lost the plot. Apple became less about usability and more about visual appeal, but with usability taking a hit.

      To be fair, Apple makes world-class hardware, and I still prefer macOS to its competitors. The problem is that I prefer 2000s Mac OS X and even the 1990s classic Mac OS (from a UI perspective, not necessarily a UX perspective due to stability issues) to modern macOS.

    • Seems everyone has. Which is weird, given how bad everything looks despite this focus.

      I'm not sure what's going on in the design world. I mean, of course there's the influence of the web design spheres. The web didn't have the GUI standards that e.g. Macs were known for. In the beginning, they couldn't emulate the desktops. Toolkits like ExtJS tried, but you stated with the basic problem that you didn't know what desktop you wanted to emulate. Windows? Mac?

      By the time the browser caught up, the damage already had been done, and the stop-gap solutions and styles more suitable for ads created a "web style". Flashy, flat, deserts of whitespace. The aesthetic stranglehold this had then not only persisted, but crossed over first into mobile (the somewhat standardized look & feel of early iOS quickly vanished), then the desktop.

      And now nobody knows where they're going, despite having more people solely focused on "UX" than ever before. But you need to do something to justify your position/salary, and that's how we get the Microsoft/Apple designs of the last decade or so. And not having any ideas beyond type systems or init replacements, the open source world just emulates that.

  • Software isn't written for users anymore, unfortunately. Users are merely an annoying side effect that attempts to impede the line going up.

  • I must be out of the loop - i’m using Tahoe since few months now and I haven’t noticed any difference in what you are saying.

Somehow it's so cute that the name of the app is, well, a name.

Insane that we need this because some people who don’t actually use macOS make decisions and implement things at Apple.

It’s probably the highest crime within Apple to state some things are not useable

It seems to work well generally, but it breaks with Ghostty. The border seems to cover around 60px (vertically) along the bottom of the window, though covers it properly horizontally. I don't see any other issues, though.

Love the name!

“We are all temporarily abled.”

Good reminder to make things accessible by default, for the vast majority that can benefit from it.

Tyler, I'd pay 5€ for this app btw.

I want the opposite, I want to remove that annoying drop shadow from the active window, something that does not exist in other OS UIs like Windows. It's simply distracting to me.

  • Does the Reduce Transparency option in Accessibility remove the drop shadow? If it does, I'd expect it to be all windows, but might satisfy your desire here.

    • It does not, unfortunately. It's baked into macOS and is extremely difficult to remove, requiring all sorts of hacks which break at each OS release.

Ugh, the delay between the window and border moving is crazy. About as crazy as not having this as an accessibility option.

Am I the only one who can't see what the problem is in that screencast? Click on the window you want to use or tab through until you find the right one.