I'm on the LG 5k2k monitor, and the "hide OSD" checkbox doesn't function as intended for the native volume OSD. Enabling it forces the window to close more quickly, which is better, but it still flashes up. Meanwhile, the volume slider in the taskbar activates the OSD as normal - that is, it comes up and persists for several seconds after the volume is adjusted. It would be better if that were hidden, too.
P.S. MonitorControl is amazing and I really appreciate all the work put into it.
I have the same issue on my monitor. It's not perfect yet hence why it's in Advanced Prefs. Figured it would still be better to put it in there since it does help. But thanks for opening the issue.
Might look into it in the future or if anyone else wants to open a PR and fix it, feel free ;)
@JoniVR: FWIW, the functionality to hide the display OSD with the volume slider is quite easy to implement, but I'm wary about the method by which the OSD is being hidden (that is, writing 0x01 twenty times consecutively to the 0xca DDC command). Since the slider continuously and rapidly writes DDC values to the monitor, also flooding the interface with OSD-hiding commands could have unknown consequences.
Additionally, on my monitor that doesn't automatically show the display OSD when writing DDC commands, setting this value once seems to be indefinite until you set it back to 0x02 (OSD enabled) - if this is the case on other monitors, it's possible that we could be preventing other software from working with the OSD capabilities of the monitor.
I do have access to a monitor that exhibits the auto-showing OSD behavior but it's not at my house, so I won't be able to get to this for testing until at least Friday.
The command set for 0xca can be found on page 64 of the VESA MCCS Standard (https://milek7.pl/ddcbacklight/mccs.pdf).
Edited for specificity
I tested the required change to make the display OSD hide upon changing slider values both independently and as part of my changes in #134, and they both seem to work fine.
Hitting the display 20 times with the hide OSD command causes the movement of the slider to become pretty rough. I removed the 20x repeat and it was a lot smoother, plus it still worked as intended.
If there wasn't a specific reason for repeating the command 20 times, I'd advocate for removing the repetition.
I've put up PR #147 to handle both changes.
Any updates to post here? I checked into #134 and #147 but nothing was ever built into a release.
Will this be fixed in the next release? I'm seeing the flickering behavior with an LG 32UL950-W.
I think both of the pull requests still contain some issues that need to be fixed but there hasn't been any activity on either one of them lately.
I think both of the pull requests still contain some issues that need to be fixed but there hasn't been any activity on either one of them lately.
PR #147 was supposed to be superseded by @reitermarkus's PR (#152), but there were still unresolved issues I was waiting on changes for so I could re-test it.
Chiming in on this one. I have an LG Ultrawide that I can do some testing on if it would help.
Do we know if there is any way to just suppress ALL native OSDs? The LG also has a 'HDR' popup whenever it turns on that is also annoying and unnecessary.
Do we know if there is any way to just suppress ALL native OSDs? The LG also has a 'HDR' popup whenever it turns on that is also annoying and unnecessary.
Any ideas on this? I'd be happy to work on this but I'm not sure where to start.
There is a way provided in DDC.swift, it only works properly by sending it multiple times in short succession though. It worked previously for the shortcuts but I don't think it's feasible to implement for the slider as it would just spam the monitor too much and cause lag.
The flickering of the OSD is still persistent in 2.1.0.
Most helpful comment
Chiming in on this one. I have an LG Ultrawide that I can do some testing on if it would help.