
Lunar – macOS utility to set brightness and volume on external monitors - car
https://lunar.fyi
======
alin23
Creator of Lunar here. Thank you all for the kind comments and generous
donations and many thanks to the OP for posting this! Let me know if you have
any questions or quick feedback about Lunar.

~~~
myowz
Quick feedback: I tried it for the first time, thinking to myself 'wow I
really want to turn down the brightness on this darn monitor...its been
bothering me for too long' and I didn't find the UX very easy to perform that
immediate task. In fact, I have to say, just from quickly downloading this and
trying to use it, I don't totally understand what it does...but I did figure
out how to manually drop the settings to a more comfortable level, and I don't
expect I'll be opening the software again except to manually turn it up and
down (and each time I'll probably have to figure out how to go to that side
page that is hard to get to)

Hope that made sense! Thanks for the software!!! :)

~~~
alin23
Hey thanks for the feedback! I know the UI is a bit too complex at the moment.
It's hard to strike a balance between simplicity and configurability. It's
still a work in progress.

So what does this do:

Lunar allows you to change the hardware brightness and contrast of the monitor
(the one that can be controlled with the hardware buttons on the monitor)

If you simply want to turn down the brightness from time to time, you can set
Lunar in Manual mode and use the brightness keys on your keyboard to adjust
the monitor brightness.

Where Lunar shines is with a MacBook or iMac where there is an ambient light
sensor integrated in the device that adapts the builtin display brightness. In
Sync mode Lunar can sync that already adapted brightness to your external
monitor so you don't have to worry about the brightness throughout the day.

There's also a Location mode if you want the brightness to adjust
automatically based on the sun position in your location.

All this can be controlled through hotkeys which are visible in both the menu
bar icon menu and the Hotkeys configuration page reachable by pressing the
left arrow key 2 times in the Lunar UI.

------
herf
There is a problem with "cheap" monitors and DDC/CI: some of them use EEPROMs
to store brightness settings, and this limits you to about 100,000 writes.

Worrying about this is the main reason we don't ship DDC/CI with f.lux. (I
know that some more modern monitors use NAND and don't have limitations like
this.) Anyone know if these fears are overblown?

~~~
kevin_thibedeau
You never know if a wear leveling algorithm has been implemented so flash type
isn't going to make lifetime determinable. Even without, 100 erases a day will
last for 3 years or longer.

~~~
byproxy
I've been using my current monitor for ~10 years.

~~~
dublin
My monitors rarely last that long (at least, before I find it's worth it to
upgrade), but like a lot of folks, I put most of my money into good monitors,
keyboards, and color laser printers rather than the computers themselves,
because I can generally get at least 5-10 years out of the peripherals.
Computers themselves rarely last me more than 3-4 years, although my wife
still uses one of my old Surface Pro 3s as her main computer - it's held up
better than the SP4s. If I could get a pair of Surface Studio touch monitors
to dock with a Surface Pro/Book, I'd buy them, but yeah, I'd be real careful
with them, too...

------
mmastrac
Also note that MonitorControl [1] might be a good complement to this program -
it allows manual setting of brightness and contrast, but also adds volume
control.

[1]
[https://github.com/MonitorControl/MonitorControl](https://github.com/MonitorControl/MonitorControl)

~~~
car
Lunar also has volume control, could not fit that into the title. It's
absolutely great, totally what I needed for years. Other tools I tried crashed
my Macbook. Lunar has been absolutely smooth, and great design to boot. I
immediately bought the author a coffee.

Edit: updated the title

~~~
kapilvt
Any hint on where to find volume ctrl?

~~~
car
The volume keys on my Apple Magic keyboard just started working with my LG. It
seems the monitor needs to have a speaker and be the audio-out device for this
to be active.

------
jasim
Alongwith ddctrl
([https://github.com/kfix/ddcctl](https://github.com/kfix/ddcctl)), these
aliases serve all my external monitor brightness needs:

    
    
        alias verydull="~/Software/ddcctl/ddcctl -d 1 -b 3 -c 15"
        alias dull="~/Software/ddcctl/ddcctl -d 1 -b 6 -c 35"
        alias decent="~/Software/ddcctl/ddcctl -d 1 -b 10 -c 40"
        alias medium="~/Software/ddcctl/ddcctl -d 1 -b 25 -c 50"
        alias bright="~/Software/ddcctl/ddcctl -d 1 -b 30 -c 50"
        alias morebright="~/Software/ddcctl/ddcctl -d 1 -b 35 -c 60"
        alias superbright="~/Software/ddcctl/ddcctl -d 1 -b 100 -c 80"

~~~
powersnail
For Linux, use ddcutil.

I wrote a GUI slider that wraps around the command line, so I don't have to
type the numbers each time.

~~~
MayeulC
Well, there's also ddccontrol:
[https://github.com/ddccontrol/ddccontrol](https://github.com/ddccontrol/ddccontrol)
that has an optional GUI. I think that's the one I've used in the past.

Pretty much all monitor settings are exposed.

------
wanghq
Got a MacBook Pro (16-inch, 2019) weeks ago and bought a LG monitor
([https://www.amazon.com/gp/product/B07YGZ7C1K](https://www.amazon.com/gp/product/B07YGZ7C1K)).
The brightness setting bothered me for 2 weeks as neither the Mac OSX nor LG's
onscreen control software can set the brightness for the external monitor. The
external monitor brightness changes every time I open/close the macbook lid.
Thanks to both ddcctl and MonitorControl, I can finally set a fixed
brightness. Wondering why big corps fail to provide the basic features while
some open source software can do?

~~~
JamesBrooks
How have you found MacOS' font rendering on the 1440p display? I've been
having all sorts of trouble in some applications having terrible font
rendering while others are perfectly fine running at the monitor's native
resolution.

~~~
hashmap
This may be of help [https://forums.macrumors.com/threads/guide-fixing-
external-m...](https://forums.macrumors.com/threads/guide-fixing-external-
monitor-scaling-and-fuzziness-issues-with-mbp-and-osx.2179968/)

------
snowwrestler
This is a great example of why I like the Touch Bar on my Macbook Pro. When it
is connected to an external monitor, I tap the brightness icon in the Touch
Bar and get two sliders: one to control brightness on my laptop, and one to
control brightness on my external monitor. This seems to be a native feature;
I did not install anything to do it.

~~~
bllguo
But why can't they expose these controls independent of the Touch Bar? I
actually find it ridiculous as a 2015 MBP owner that there is no easy native
way to do this basic thing unless, apparently, you have a Macbook with a Touch
Bar

~~~
jlnthws
F1-F2 to change MBP brightness, CTRL+F1-F2 to change external monitor
brightness. Works with my thunderbolt LG 5K. (I dislike the Touch Bar so I
always use an external keyboard when at my desk)

------
gardaani
I have been using this command line tool to control my external monitor from
my Mac. I created few Automator scripts calling it to make the monitor either
dimmed or bright.

[https://github.com/kfix/ddcctl](https://github.com/kfix/ddcctl)

~~~
blacksmith_tb
Second that, I have it bound to a couple of fn keys via Karabiner to turn my
old Dell monitor to its dimmest and brightest settings.

------
Syzygies
I've been using ExternalDisplayBrightness for this:

[https://www.nesveda.com/projects/ExternalDisplayBrightness/](https://www.nesveda.com/projects/ExternalDisplayBrightness/)

With my LG 32UL950-W, I've found that whether it responds depends on the cable
choice. I had to give up on Thunderbolt because the monitor itself kept
resetting; HDMI delivers a picture but doesn't look as good, and doesn't
respond to ExternalDisplayBrightness. I'm now using a 10' USB-C to DisplayPort
cable (too long for Thunderbolt) and everything works, including
ExternalDisplayBrightness.

I'm curious to see if switching to Lunar would gain me anything.

------
cloudmaster
The Windows equivalent would be Monitorian
([https://github.com/emoacht/Monitorian](https://github.com/emoacht/Monitorian)).
It doesn't have the adaptive curve algorithm, but I've been using it for over
a year and it's indispensable.

~~~
rrrrrrrrrrrryan
Twinkle Tray has a few more features (like a scheduler), and is also FOSS.

[https://github.com/xanderfrangos/twinkle-
tray](https://github.com/xanderfrangos/twinkle-tray)

------
matchbok
Cool idea, but I'm a software developer and I cannot figure out how to use
this app. Something as simple as monitor brightness doesn't need so many
controls, toggles, and things popping up and telling me things. It doesn't
follow a single MacOS design convention.

~~~
darren
I'm not sure why you're being downvoted but I really struggled with this
application as well. Sync mode? location mode? There's help text, which I read
it several times and I still have no idea what's going on.

The preferences screen is very difficult to use - it's a mix of labels and
buttons with no indication that things are adjustable. You can adjust the
brightness by hovering over the brightness amount and scrolling vertically.
There are multiple preference panes, but they're only findable with horizontal
scrolling. None of this is easily discoverable.

I use the software... but pretty much only the shortcut keys (^F2, ^F1). The
other features which seem like they could be useful, would probably see a lot
higher adoption if the application followed some UX best practices.

------
atombender
Off topic but tangentially related: Is there a brightness tool for the iPhone
that has a better colour profile that harmonizes "dark mode" and "light mode"?

On my iPhone 11 late at night, turning the brightness down to 20% makes black
text on white readable, but if I switch to a dark mode app, it's not
comfortable, so I have to turn the brightness up again. To me, that implies
the brightness just linearly applies to the whole colour spectrum, when it'd
be better to weight the brightness logarithmically: Colours close to the dark
should stay the same at both 20% and 100% brightness.

I'm not sure if this is even possible on an iPhone. I don't have the same
problem on my external Dell screen with my Mac, not sure why.

------
ProfessorLayton
I can't believe this works on my 11yo Dell monitor connected via Thunderbolt>
Dock> Displayport. Thank you!

I haven't messed with the brightness in years because the OSD is so bad.

I would honestly base my next monitor purchase based on compatibility with
this utility!

------
t3rabytes
I didn't expect my 5 year old Dell P2415Q to Just Work with Lunar, but it
does, awesome! Now to stop messing with that awful OSD.

------
pi-rat
Frickin' brilliant, thank you! Worked with my LG display out of the box. Enjoy
your coffee :D

------
nsxwolf
Why is this needed in the first place? I was shocked when I could no longer
control brightness after upgrading from my old 23" Apple Cinema Display.

------
dublin
I'd settle for the Mac being smart enough to let me resize each external
display to its actual physical size, so dragging between them works.
Apparently, Apple thinks it's perfectly OK to assume that _all_ your displays
have the same pixel density as your laptop screen - FAIL!

~~~
andy_ppp
I seem to be able to set scaling on both of my monitors separately... so not
sure what you mean. Actually I think on the external display there might be a
keyboard shortcut to set common resolution equivalents for the scaling even on
lower dpi screens.

------
flurdy
How does this compare to a blue light adjuster like the built in macOS one or
f.lux [1]?

I think they would complement each other. Anyone tried both? (Lunar and f.lux)

* [1] [https://justgetflux.com/](https://justgetflux.com/)

~~~
alin23
Lunar should work just fine with f.lux as it only changes the monitor hardware
brightness. Color processing from f.lux can still be applied on top of that
without any issues.

I've been using Lunar with Night Shift ever since it was released in macOS and
they complement each other very well at night.

------
kposehn
Thanks for making this. Light years better than the original app I was using
as it lets me change the volume stepper control, though the scroll/swipe
motions in settings are bit jarring to use.

~~~
alin23
I'm glad you find it useful!

Up/down arrow keys can also be used to adjust values in the UI while the
cursor is on a value.

I mostly use scrolling for rough adjustments and arrow keys for fine tuning.
It feels faster than simply editing a text field. Although I'm planning to
make the fields editable in the future as a lot of users have requested that.

------
applecrazy
Thank you for making this! I used to have to unplug my external monitors and
use only my laptop screen at night because they used to be so bright. Always
wanted something like this.

------
neal_jones
Been using MonitorControl for a while now, and it was great but this is far
nicer in my opinion. Great work. The only downside is before I saw this
discussion I was happily using MonitorControl and now I'm using Lunar scared
to death that one day both of my expensive 4k monitors will just be bricked
due to the whole DDC/CI/EEPROM 100,000 writes deal discussed by @herf

~~~
alin23
I have an LG Ultra HD monitor and I have been using Lunar with smooth
transition for 2 years now. I have far exceeded the 100k writes mark, probably
even more than 500k and I see no problem with my monitor. I think new monitors
should be immune to this since RAM and flash storage is so much cheaper
nowadays.

------
car
I've been using this every day for a couple of months. My monitors are a Dell
P2715Q and LG 32UD59-B.

The only issue was with the "Read external monitor brightness periodically"
preference, which froze the system. But there is a fair warning.

If you feel like supporting the author, here is his Patreon:

[https://www.patreon.com/alinpanaitiu](https://www.patreon.com/alinpanaitiu)

~~~
car
I should add that both monitors are connected via DisplayPort. Also, I found
that cheap DP cables can really mess things up. Eventually I found via the
VESA website which manufacturers have their cables certified. My go to is
called Accell, very solid ever since using their cables.

[https://vesa.org/displayport-developer/certified-
components/](https://vesa.org/displayport-developer/certified-components/)

~~~
alin23
Hey thank you so much for posting this! I didn't expect this to get so much
attention.

Also that VESA page is golden, now I know where to point people when they ask
me for advice on what peripherals to buy.

~~~
car
Hey, glad it took off and got you and Lunar some exposure. I’m grateful for it
being available free and solving a rather large annoyance. You are obviously
very talented, keep up the good work!

------
wlesieutre
Neat! I just got a new screen with DDC/CI and was excited to get that control
with Dell Display Manager on my desktop rather than digging through OSD menus.
I wish it would just go in the action center like a laptop's built-in screen,
but it's still more convenient than using the buttons.

Will have to try this out when I get it hooked up to my Macbook!

------
vkoskiv
What a nice little tool! I have two random no-name adapters at work for my two
monitors. One is DisplayPort, and the other HDMI. I wasn't expecting this to
work, but sure enough, it does! Both monitors show up and promptly respond to
my brightness settings.

------
toasterrepair
Love the utility! Been using it for a few months now. I’m curious, but is it
possible to have the tool change inputs as well? For example, to change from
DisplayPort to hdmi, and back from a keystroke.

~~~
alin23
Only part of that is possible, changing from the current input to another. But
as soon as the monitor is on another input it doesn't accept DDC messages on
the first input anymore so Lunar wouldn't also be able to change back.

I plan to implement just the first switch along with a brightness/contrast
reset to some default values so you can easily switch the monitor to another
input.

~~~
car
This rather clever cheap hardware and software KVM project is solving the
issue in an interesting way, maybe a cross-polination opportunity?

[https://haim.dev/posts/2020-07-28-dual-monitor-
kvm/](https://haim.dev/posts/2020-07-28-dual-monitor-kvm/)

------
grishka
I've tried some of these a while ago. It locked up my entire system requiring
a hard reset every time it tried to send a command to the monitor.

~~~
alin23
This is usually a hardware problem. I haven't found an easy way to detect if a
GPU+monitor combination will have a very slow response time for DDC messages
so all I can do in Lunar is send the messages to the monitor and if a number
of messages fail then Lunar stops sending them to keep the system usable.

But there are cases like yours where the response time is so slow that the
kernel panics in the first DDC message and freezes the whole system. There's
no way to detect or recover from that in software.

------
ollysb
Don't know if it's specific to LG monitors but the brightness controls on my
keyboard modify the screen of whichever window has focus.

~~~
car
For me when pressing the Mac brightness keys Lunar changes the monitor where
the mouse is located.

------
rosstex
I just tried Lunar out, it definitely makes the brightness on the external
monitor higher than the Laptop monitor. How bright is too bright?

~~~
car
I think you can bracket the brightness in Lunar for each monitor, i.e. max
70%.

------
cr3ative
Neat. I have two external monitors which behave very differently though -
please make the clipping setting per-monitor rather than global!

~~~
alin23
I guess it makes sense to have that setting per monitor. I just have to
rethink the monitor settings UI because it seems I can't fit anything else in
there.

I already have a lot of users telling me that the UI is too complex.

------
markestefanos
This is the only solution I've tried that works with the two identical
monitors I use. Thanks for making it!

------
allengeorge
I was unable to figure out how to get this to work with an iMac as a secondary
display :(

Looked wonderful though!

------
pwinnski
`brew cask install lunar` works, so into my MacOS init script (laptop.local)
it goes!

------
mjcohen
Doesn't work on 2014 Mac Mini running High sierra. Does nothing and goes away.

~~~
alin23
I think High Sierra doesn't have the Swift 5 libraries. You might need to
install them from the Apple website first:
[https://support.apple.com/kb/DL1998?locale=en_US](https://support.apple.com/kb/DL1998?locale=en_US)

I have that information in the troubleshooting section on Github but I'll have
to update the official website to also include that.

------
ereinertsen
Has anyone been able to map volume control to their volume control knob?

------
benguild
All I want is that 50% idle timer that the laptops do.

------
matthewhartmans
Super cool OP! Well done! :)

------
barkingcat
This is pretty useful!

------
kylemh
yes! the volume control is huge for me

------
jordache
volume control doesn't work

~~~
alin23
Unfortunately not all monitors support volume control through DDC.

------
rakibtg
Thanks <3

