Live data from Hacker News

Lunar – macOS utility to set brightness and volume on external monitors

lunar.fyi

121–130 of 143 posts

Re: Lunar – macOS utility to set brightness and volume on external monitors

#122
post #59
post #31

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.

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…

Same thing. I found MonitorControl as a result, and found it a lot... fit for purpose.

Re: Lunar – macOS utility to set brightness and volume on external monitors

#123
post #31

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.

Absolutely amazing application - I found it on HN sometime at the beginning of COVID lockdowns, and it has radically changed my WFH life. Thank you so much :D

I use it with 2 disparate non-thunderbolt monitors, one connected into its built-in dock, and the other to a dock dongle. Works perfectly fine!

Re: Lunar – macOS utility to set brightness and volume on external monitors

#124
post #115

Earlier quoted context omitted.

Not related to monitors, but this is how I bricked my old Lenovo Thinkpad W520 4 times. I switched between the Intel and Nvidia GPUs via the BIOS setting enough times to wear out the BIOS chip. I didn't figure out what was going on until my 3rd replacement.

Attempting to switch GPUs from userland, or?

They said "via the BIOS setting", which is definitely not userland switching.

Re: Lunar – macOS utility to set brightness and volume on external monitors

#125

Earlier quoted context omitted.

No, after 100.000th write your monitor is toast because the EEPROM died. Also note that most people change brightness in increments, with each step causing a write.

Hmmm. I hope the firmware authors weren't that dense. I would imagine they do a write when you exit the brightness change menu. 100,000 is a typical eeprom guaranteed write count. It will likely last much longer. The eeprom is probably much bigger than they need for such an application so they could actually handle the wear case by moving to alternate locations when write failures occur.

> Hmmm. I hope the firmware authors weren't that dense. I would imagine they do a write when you exit the brightness change menu.

This is not an option when using DDC/CI, where each brightness change is an isolated command. Plus, the OS is likely to emulate a smooth transition by sending even more commands than the end-user dictated.

Sure, the firmware could defer storing to EEPROM until a timeout from last command, but I would not credit the average display firmware as being that thoughtful.

> 100,000 is a typical eeprom guaranteed write count.

No, it's usually an estimated write endurance at a certain voltage and at 25°C, with the number based on calculated risk of failure being lower than a non-zero threshold. Higher temperature and voltage leads to higher failure rates.

I have dealt with several EEPROMs dying after just thousands of writes, including ones in products manufactured at a previous employer (where the EEPROMs were replaced with modern flash). Reserve EEPROMs for when writes are the exception.

Re: Lunar – macOS utility to set brightness and volume on external monitors

#126

Earlier quoted context omitted.

I suppose it's a type of problem that solves itself: If companies are dumb enough to store brightness settings in EEPROM, they're only doing it because no one uses DDC/CI. Use DDC/CI, and they'll stop. Even NAND is wrong if brightness is actually dynamically controlled, it should just be RAM.

Ahh, but this information needs to make it to consumers so they don't get stuck with dud monitors that have internal storage that rapidly wears. How, as a consumer, do I know which monitors store settings in such a manner and therefore avoid them when making purchasing decisions? Perhaps Lunar and Flux could make monitor recommendations with affiliate links, Wirecutter style. I don't want to have to research, just te…

You don't.

Such monitor recommendations could only be based on people tearing down things, which is outside the scope of Lunar and f.lux.

There is never a guarantee that you don't get stuck with a dud monitor, in any aspect. However, companies making products with bad reliability is going to face high support/warranty fulfillment costs and get a bad reputation. And if it fails within warranty/consumer protection periods, you lose nothing.

So, write away, and flood bad manufacturers in complaints. It's all you can do as a consumer - the alternative boing to get AMD, nVidia or Intel (or Displayport/HDMI interest forums) to be interested in making requirements against display manufacturers on the matter.

Re: Lunar – macOS utility to set brightness and volume on external monitors

#127
post #17

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?

How long would it take to test 100k writes to the monitor? If you changed it once a second, that'd be like, a day? Seems like the kind of thing you could easily test if so inclined and properly insured?

I am tempted to do so. My monitor is in warranty period. But it is not exactly cheap so there might be false negative.

Re: Lunar – macOS utility to set brightness and volume on external monitors

#128
post #17

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?

I tried to find a source for these concerns. Although I can find documentation on DDC (until 1998) and EDDC (since 1999), and indeed read that these often use EEPROM, I cannot find any reference of someone who broke his monitor by changing the brightness too often. This utility is very useful combined with the adaptive brightness of my iMac so I am tempted to use it. But I would appreciate any supporting evidence of this concern.

Re: Lunar – macOS utility to set brightness and volume on external monitors

#129
post #17

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?

[deleted]

Re: Lunar – macOS utility to set brightness and volume on external monitors

#130
post #23

Alongwith ddctrl ( 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="~/So…

I combine this with https://github.com/nriley/brightness to retrieve the brightness of the main screen, then I use ddcctl to apply it to the external screen.

I set it up in a cron job and that has been running for years now. (the external monitor brightness is not very linear though, so you need to fiddle a big to find the proper/acceptable matching)

Post reply on HN