Display Menu — An Interview with Thorsten Karrer

Thorsten Karrer explains why Display Menu was created, how Retina support was reverse engineered, and what keeps this focused Mac utility alive.

Display Menu let me quickly switch my Retina MacBook Pro between display modes, including its true native resolution. For My Mac Apps Story, I asked Thorsten Karrer how the app began, what it took to support Retina displays, and how he has kept it alive for so many years.

Interview by Ighor July for Reverse Everything.

Interview

Thorsten began by being honest about how much attention the app has received over the years.

Thorsten Karrer

I feel a bit flattered :)

Yes, the app has been around now for quite a while - but I am afraid that we did not always give it the amount of attention that it would have deserved (or needed to really stay relevant).

Ighor July

What originally inspired you to create Display Menu?

Thorsten Karrer

Our original intention (I wrote this together with a co-worker back in the days) was to bring back the fast switching feature that OS X used to have before Lion. At that time we were both pursuing an academic career and spoke regularly at conferences, where it was absolutely necessary to get the projector set up with the right resolution and refresh rates in a matter of seconds.

Like I said above: originally, OS X did have a feature like that, but at some point it was culled by Apple. I personally wanted it back and I had played around with menu bar extras for a while. So that came together and we decided to see if we could build something that could replace the missing feature. It turned out quite nicely, and we used it in our work for a while. When the Mac App Store came around, we just wanted to see how much work it would be to publish and app, and so we used the one that we had just written. At that point the app was free, but very basic (even more than it still is today).

At some point later, we wanted to try out IAPs to understand the economics behind it; at the same time Retina displays became available, so we put Retina support and a couple of other new features (Bookmarks and scripting support) on a low-priced IAP.

Ighor July

What have been the greatest technical challenges involved in maintaining it over the years, particularly as macOS, Retina displays, Apple Silicon, and external display support have changed?

Thorsten Karrer

The original Retina support was tricky - the APIs that Apple allows you to use for Mac AppStore apps, do (to this day) not support programmatically switching to Retina resolutions. We had to actually reverse engineer how Apple does it by reading bits directly from the CPU registers. I was quite familiar with the Obj-C function calling conventions, so that helped to eventually figure it out.

Down the road, we ported much of the app to Swift, adopted the new AppStore frameworks, and had to work around some low-level API deprecations. I have not adopted SwiftUI for the app (I am personally not a fan of its core programming model and concept) and likely never will if I can help it. Overall it feels like the quality of the APIs provided by Apple to build small useful tools like this has constantly deteriorated over the last 10 years… but maybe it is just me getting old and cranky. :-D

Ighor July

What motivates you to continue developing and supporting Display Menu after so many years?

Thorsten Karrer

I still use DisplayMenu myself, and I still observe people (in my current line of work) struggling to quickly set up external displays or presentation screens correctly. So for me it still looks like there is a need for this utility.

Ighor July

How has user feedback influenced its development? Were there any important features, changes, or decisions that came directly from users?

Thorsten Karrer

We have received a ton of feedback over the years, and we are still keeping a list of the best ideas that reach us. We don’t work on this app frequently (meaning, It gets my full attention for about 2-3 weekends each year), but when we do, we consult that list. The unfortunate truth, however, is that a good part of the feedback cannot be realized with what is available through Apple’s AppStore sanctioned APIs.

In the current app, some of the menu formatting, display mode deduplication, and handling of certain monitor configurations came from user suggestions. (And, of course, lots of bug reports, which we really appreciate!)

Ighor July

Was there ever a point when maintaining Display Menu became difficult enough that you considered stopping development?

Thorsten Karrer

Honestly, that is pretty much constantly the case. Both of us developing the app have moved on professionally and this has become very much a side gig. We still commit to keeping the app working, but we also know that it would need substantially more time investment to keep it really nice. The hardest part was to realize at some point, that actually answering every user email required way too much time. The IAP that we offer is pretty low-cost, so economically speaking, I am already losing money on just reading through the emails and AppStore comments. This also means that I don’t do this on a daily basis, but rather that I fast-skim the feedback once a month or so. There are also some features that have stopped working reliably for some users (Apple Script support passes our full test suite, but is flaky for some users on the last two major macOS versions), and which I would love to investigate and fix, but I cannot find enough time for it.

These points make me feel bad, because while they are economically the only viable way of handling my time commitments to Display Menu, it always feels like letting down the users of the app.

Ighor July

Display Menu has remained a true one-time purchase without being replaced by a separately sold new edition or moving to a subscription. What has enabled you to keep supporting existing customers under this model for so long?

Thorsten Karrer

Like I mentioned, I keep my time that I spend on the app fairly limited. It allows me to more or less break even at the current one-time price point, but I take no money home from it (it pays for my development program membership, the webspace, and approximately 50% of a low-specced development MBP every 5 years). I would love to spend more time on it and serve our users better, but then I would have to switch to a subscription model. I am not a fan of that concept, though, so I secretly hope that our users are ok with the deal: “The price is low and you only have to pay it once, in return please accept that there is not a lot of change and that I don’t answer most of your emails.”

Ighor July

What advice would you give to independent developers who hope to maintain and support their apps for ten years or longer?

Thorsten Karrer

At some point you need to have figured out for yourself, which role such a project should play in your life. This sounds maybe a bit full of it, but I mean it. We started out with tons of time on our hands and it was a really fun project (a hobby really), and at some point we needed to make a decision: Go all-in, write another ~10 tools of that (small) caliber, switch to subscription pricing, and make this our primary focus. Or step back from it completely and then be fair and pull it from the Store. Or keep it working and providing some value, but accept that you will run this as a side gig and probably even lose some money on it.

For us it turned out to be the third option, partially because we are privileged enough to have day jobs that pay the bills and that allows us to keep DisplayMenu alive.


This interview is part of the developer interview series connected to My Mac Apps Story, Part 4.

More Mac Developer Interviews