5 ms·
Ask HN: Monitor with physical dials for brightness/contrast?
Back in the 90s, we used to have CRT monitors, and they almost always had physical/mechanical dials for brightness/contrast settings. I'm prone to headaches looking at bright screens, so I often need to have different brightness/contrast settings in the day time vs night time. They were really convenient.
Nowadays - laptops are OK in this case because there's usually buttons on the keyboard to quickly adjust brightness.
For desktop PCs, every LCD/LED monitor I've owned has brightness/contrast settings buried in software menus. It makes it very hard to adjust brightness/contrast on a regular basis. I rely on night light settings (bluelight filters) in software to help myself feel better without having to fiddle with the monitor's menu (which is always really cumbersome to use).
Are there LCE/LED monitors with physical dials, or at a minimum dedicated physical buttons for brightness/contrast (and not buried within menus with buttons labeled "1", "2", etc.)?
- solardev 4y agoI've seen monitors with physical brightness/contrast buttons, but it's a difficult feature to search for. You have to see them in person or maybe look at their manuals before buying. In the meantime, have you tried the DDC/CI protocol (https://en.wikipedia.org/wiki/Display_Data_Channel https://en.wikipedia.org/wiki/Display_Data_Channel)? It's a software protocol for controlling real monitor brightness/contrast (as in, it commands the hardware, not just drawing gray overlays). Windows: https://github.com/xanderfrangos/twinkle-tray https://github.com/xanderfrangos/twinkle-tray Mac: https://lunar.fyi/ https://lunar.fyi/ Linux: https://github.com/ddccontrol/ddccontrol https://github.com/ddccontrol/ddccontrol On my computer, I bound the command line stuff to keyboard shortcuts. But the GUIs these days are probably even easier. I just tried TwinkleTray and it's way faster than using my monitor's hardware buttons and obnoxious OSD interface. And I double-checked that it does indeed change the actual brightness. Dunno why operating systems don't just include this out of the box.
- alin23 4y agoLunar developer here. After working more than 5 years on this matter, I might have an idea why the OS doesn't include this by default. Support for DDC is very spotty, with some monitors even crashing and losing video signal [1] on simple DDC commands, while others blocking DDC/CI completely [2] in favor of their "smart" features. Other mainstream types of connections like DisplayLink don't support DDC in their UNIX drivers, and some converter chips like the MCDP29xx found inside the HDMI port of the Mac send wrong DDC signals. It's been extremely exhausting to deal with users having these problems and blaming it on Lunar, while all I can say is "don't panic, nothing is broken, quit Lunar and power cycle your monitor". I can't even imagine how it would be to deal with that on the multi-million users scale of an OS. [1] https://lunar.fyi/faq#bad-ddc https://lunar.fyi/faq#bad-ddc [2] https://lunar.fyi/faq#brightness-not-changing https://lunar.fyi/faq#brightness-not-changing
- solardev 4y agoThank you for that explanation! If I remember correctly, I think I tried Lunar a few months ago and it didn't seem to have any impact (didn't crash, but didn't do anything). The same monitor can be controlled on Windows. I don't think I noticed the FAQ pages on the topic last time, so thanks for sharing that! I'll have to try it again for my work Mac and monitors. The FAQ suggests that a lot of MacOS bugs and API limitations are preventing the commands from working properly. Do you think it might be possible to send those signals at a lower level over the wire, or does MacOS not let you do that? Sorry if that's a naive question... I don't know how that stuff works at all. (In fact, do I remember you discussing some of the challenges here on HN a while back...? Can't remember for sure)
- alin23 4y agoUnfortunately we don't have access to lower level communication on macOS. Kexts (Kernel Extensions) have been deprecated and now need System Integrity Protection (SIP) to be disabled. Even with that, you wouldn't have a way to send raw I2C signals to the monitor like ddcctl does on Linux. I do discuss these challenges regularly on HN, it's very possible you have read one of my comments. Lunar provides a Raspberry Pi solution for cases where DDC is really needed and doesn't work from the Mac: https://lunar.fyi/#displaylink-control https://lunar.fyi/#displaylink-control The guide leans toward DisplayLink but in fact it works on any monitor, and it was the only solution for DDC when the first M1 Macs appeared: https://alinpanaitiu.com/blog/journey-to-ddc-on-m1-macs/#the-raspberry-pi-idea https://alinpanaitiu.com/blog/journey-to-ddc-on-m1-macs/#the...
- solardev 4y agoAh... thank you for all your work digging into that! Sorry it's such a pain :( That Pi solution is really interesting. Does that mean monitors will generally accept DDC commands from inputs other than the active one? Like having the Pi connected to a second HDMI port lets you control brightness without switching inputs? That would be neat. I wonder if there's some programmable dial type thing...
- godot 4y agoThank you, this works great for my current monitor on Windows. This is a good replacement for what I need.
- solardev 4y agoGlad it helps! I wish monitor manufacturers and operating systems would pay more attention to this kind of stuff.
- alin23 4y agoI don't know of any new monitor that has physical dials, most of them are going towards less mechanical buttons and more touch controls or a single joystick. If you're using a Mac, Lunar (https://lunar.fyi https://lunar.fyi) can adapt the brightness of your monitor automatically so you don't even have to worry about this anymore. There's also the possibility of using an USB knob like this one (https://www.amazon.com/DROK-Lossless-Computer-Controller-Adjuster/dp/B01MV411BR https://www.amazon.com/DROK-Lossless-Computer-Controller-Adj...) which can be configured to send any key event, and then map those keys to _Brightness Up/Down_ through something like Lunar (on Mac) or TwinkleTray (on Windows) or ddcctl (on Linux).
- justsomehnguy 4y agoYou can control the color settings through the GPU drivers. nVidia, ATI/AMD, Intel provided the controls for that in their shitty, slow, cumbersome (but still easier accessed than a physical knobs on the monitor) control panels. I'm using "AMD Radeon Software" for this successfully enough. A couple of clicks to change the settings.
- solardev 4y agoA lot of that just adds color overlays, instead of controlling the actual RGB values on the monitor. And they don't control brightness & contrast.
- justsomehnguy 4y agoThe only thing they don't do is controlling actual LCD backlight intensity. I can't go over the max settings of the panel, but with reasonable preset I have enough control about both the brightness and contrast: https://imgur.com/a/oPYK2zS https://imgur.com/a/oPYK2zS