Open rzfzr opened 2 months ago
I just restarted to make it work again, the monitor are showing up but brightness control is not working still, before restarting:
After:
Still investigating this issue, I was using a ahk wrapper for accessing the win32 API, got the same issue there, SetMonitorBrightness and GetMonitorBrightness works sometimes, but sometimes it freezes the computer all the same.
Funny enough the SetDeviceGammaRamp call does not freak out, it is not ideal, but maybe an alternative solution.
Still investigating this issue, I was using a ahk wrapper for accessing the win32 API, got the same issue there, SetMonitorBrightness and GetMonitorBrightness works sometimes, but sometimes it freezes the computer all the same.
Funny enough the SetDeviceGammaRamp call does not freak out, it is not ideal, but maybe an alternative solution.
Unfortunately, some monitors react poorly to communicating via DDC/CI. SetMonitorBrightness
and GetMonitorBrightness
use DDC/CI (as does Twinkle Tray), so the problem is the communication between Windows and the monitor. The line getFeaturesDDC Timed out.
makes me think that the display is taking an absurdly long time to respond.
It could potentially be the USB hub. Have you tried connecting a display directly to the laptop as a test?
I've seen some monitor settings mess up DDC/CI, so you may be able to work around it with that. Usually it's stuff related to "automatic brightness" or certain profile-specific settings. But if those don't help, then there may not be anything you can do.
Regarding your bullet points:
Not sure why the internal display did not show up the second time, the laptop is closed as always.
The process for detecting displays is failing due to DDC/CI taking too long, which is probably why the internal display sometimes doesn't show as well. v1.16.0+ may handle this a little more gracefully.
When it freezes, from what I can see in the open taskmanager, it is not an issue of consuming 100% of CPU or other res, the app consumes ~15% when hanging, which of course is high, but would not be freezing the PC by itself.
Yeah, I'm not quite sure how Windows handles DDC/CI communication, but this is expected. It tends to lock up the whole PC momentarily. It's not due to activity, but waiting for a response. Windows seems to do something at a low-level that blocks... well, everything. For most users it's so short they don't notice. But in your case it's taking way longer than it should.
Yeah, it really seems to be an issue with my specific DDC/CI communication, I didn't test without the dock as I would need to find a dp cable adapter, so it might be the dock. It doesn't look to me like a delay issue, as though it takes a long time, when it unblocks the command does not go through, if it is a timing issue then it must be failing because of it.
As I thought it might be a queue cleanup issue, I tried to reset the monitor settings via DDC/CI call, in between other calls, that changed nothing.
The gamma change is in the same win32 API but it doesn't actually use DDC/CI, it is entirely a GPU thing, cycling the gamma from 1 till 129 is actually working fine for me, leaving brightness at 100, not perfect but good enough, here is the script for reference.
Would you be interested in accepting a PR where I add a toggle besides the WMI or DDC, inside the monitor options?
I have not yet looked at any source code, but I'm very willing to try and solve it.
I have a thinkpad T14G2, connected to a USB dock 40AY0090BR, I'm trying to control both of my external monitors, Samsung UR55.
On first install, first glance, everything works perfectly, but sometimes, when I click the tray icon the whole system freezes, as in the mouse, video playing, task manager refreshing etc all hangs for >5 seconds, then moves a little bit, hangs again and repeat.
When it hangs, I can either painfully drag the mouse over the icon, right click and close the app, or disconnect/reconnect the dock, powercycle the monitors, sometimes just refresh the screens from the app, but either way then both monitors show up as having no DDC features at all, requiring rebooting to work again. Might be related to #175
I was trying to solve the issue on my end, I noticed both my monitors were using the default drivers from MS, I installed the Samsung ones, made no difference.
I just fleshly installed the gh version 1.15.4, tried running for the first time with the -console command, It froze instantly, here's the log till roughly the moment it stopped freezing, not sure if on its own or if when I hovered the tray icon, hard to tell:
Tried running a second time just after, it hanged again, plus gave me a type error: