Lunar.app - a way for M1 Macs to control 3rd Party Monitor's Brightness and Contrast

This is both hardware and software, but I put it in the hardware category because it strikes me that’s where the biggest pieces are.

Background (aka “The Problem”)

One of the current limitations of M1 Macs is that when they are connected to 3rd party monitors (other than a few exceptions like the UltraFine), you cannot use the control the brightness and contrast from within macOS. You have to make any adjustments in the monitor’s built-in controls… which we can all agree are terrible.

The problem, which I don’t understand fully, is something about M1 Macs not supporting “DDC” (Display Data Channel). I don’t know if they can’t or just don’t yet. But if you look at pretty much all of the various apps and utilities out there, none of them work with M1 Macs.

Bummer.

Enter “Lunar.app”

I came across Lunar.app several months ago when it was in beta, and it was just recently released.

It’s the first app that tried to work around these limitations on M1 Macs using software, and the result was pretty dang good, but because it’s a software solution, it’s not quite the same.

Of course it was far better than all of the other options…of which there were none.

Lunar + Raspberry Pi

Once the project hit version 1.0, there is a free version and a ‘pro’ version. Those who had supported the project while in beta (:wave:) were given a free year (I think, maybe more?) of the ‘Pro’ service.

With that came another intriguing idea.

The developer figured out a way to use DCC by connecting the monitor to a Raspberry Pi via HDMI.

Once you have a Pi set up and connected to the monitor, the app has a “one click install” (you basically just give it the login information for your Pi, and it does literally everything else) and installs/configures the Raspberry Pi with the necessary software so that Lunar, on your Mac, can send instructions to the Pi, which changes the brightness and contrast of the monitor.

Now that is a fun and clever “hack”!

Lunar also includes a command-line tool so you can control Lunar via scripts (which also means AppleScripts, Keyboard Maestro, Stream Deck)…


I went with the CanaKit Raspberry Pi 4 8GB Starter Kit which is probably overkill for this particular project (there are, no doubt, cheaper Pi setups out there) but I figured it might be fun to have a Pi on my desk for other things as well.


More info here:

4 Likes

Hey @tjluoma , I’ve been using the software route for a while and while its not DDC as previous version, it’s been working fine.

I’m now curious about how is the Pi experiment going for you.

1 Like

It works great! There is a tiny bit of lag while the commands travel from my keyboard to Lunar to the Pi to change the display brightness, but it’s very quick. I bet most people wouldn’t even notice it or wouldn’t think twice about it.

2 Likes

How do you feel the difference from the “out of the box” gamma table route?

Is it as much night and day as advertised?
1920_ddc-demo-low-brightness

I don’t feel like I’m really a good person to ask, as I’m not great at these types of comparisons, and I didn’t use the Lunar “Overlay” feature very much before I went the Raspberry Pi route, so I can’t really give an honest and useful opinion.

That being said, I have tried those in the past and never liked them, and the hardware controls seem great, so it was an easy “win” in my book.

Lunar developer here.

That comparison image is not comparing Gamma vs DDC (or the Raspberry Pi solution).

It is comparing apps that use dark overlays (like Quickshade) to what Lunar does (DDC in hardware, Gamma approximation in software).

Lunar never uses dark overlays. Even in Gamma mode, it approximates lowering brightness by adjusting the colours curve, not by putting a dark transparent full screen window in front of all your windows.

To answer your question, Gamma adjustments usually looks bad in very low brightness (lower than 30% let’s say) because the monitor backlight still stays at 100%, blacks look more like dark grays and colours look a bit washed.

If you experience this, the Raspberry Pi solution is for you. If you don’t notice it that much, then Gamma is much easier and smoother to use as you’re not adding latency and another failure point on the network.

5 Likes

Hi Alin! Thanks for clarifying!

Nice, thank you @alinp32 !

I always feel a great joy whenever I have the chance meet a developer from one of my favorite tools on MPU Forum!

I’ve been using for a while and happily spreading the word here:

From your explanation, It seems like there won’t be expressive gains for me in adopting the Raspberry Pi since most of my work is dealing with text with the ocasional diagraming and imaging features for keynotes.

2 Likes

@tjluoma @ldebritto just chiming in to let you know that Lunar 4.5.1 was just released with full support for DDC on M1 Macs (except for the HDMI port of the Mac Mini, that port has never worked)

No more Gamma or network controllers needed.

3 Likes

Oh cool! That’s great to hear! I have a Display Port (or mini-DP) connector.

2 Likes

BTW - this forum post led me to being asked to write my first article for TidBITS, which is now live:

(Credit for the title goes to Adam Engst, not me, unfortunately.)

TidBITS has been around basically forever in Internet years. It started in April of 1990, when I was a junior in high school – and I now have a 19-year-old son headed to college. It’s a pleasure to be counted among their company, and I hope to write more for them in the future.

(I’d also be remiss if I didn’t mention that the end of the article tells TidBITS members they can get a 30% discount on Lunar — although many people would be perfectly happy with the free version.)

6 Likes

Didn’t even know this exists. Thanks for the detailed article.