Monitorian is no longer able to control brightness on internal laptop display - Windows 10
OS: Win 10 22H2 19045.5854 Monitorian 4.10.0
Per title, the internal laptop display does not respond to brightness changes in the monitorian app. The display supports HDR but HDR is turned OFF. Using the regular windows brightness control works. Noticed that it stopped working about 1 month ago. Have reinstalled, cleared settings etc with no luck. Built from source in Visual Studio and ran with debug but no errors thrown that I could see.
From probe log:
"Monitor Configuration - PhysicalItems": [
{
"Key": {
"DisplayIndex": 1,
"MonitorRect": "Location:-2560,-156, Size:2560,1600"
},
"Value": [
{
"Description": "Lenovo DisplayHDR",
"MonitorIndex": 0,
"Capability": {
"IsHighLevelBrightnessSupported": false,
"IsLowLevelBrightnessSupported": false,
"IsContrastSupported": false,
"IsPrecleared": false,
"CapabilitiesString": null,
"CapabilitiesReport": null,
"CapabilitiesData": null
},
"GetBrightness": "Success: False",
"SetBrightness": "Success: False",
"GetContrast": "Success: False",
"SetContrast": "Success: False"
}
]
}
Thank you for a part of log but this section is useful only for external monitors. The section for internal monitors is "MSMonitorClass - DesktopItems".
Here it is
"MSMonitorClass - DesktopItems": [
{
"DeviceInstanceId": "DISPLAY\\CSO1600\\5&39724F5D&0&UID256",
"Description": "Lenovo DisplayHDR",
"BrightnessLevels": "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100"
}
],
"ElapsedTime": [
"DeviceItems -> 0.003",
"DisplayMonitorItems -> 0.004",
"DisplayConfigItems -> 0.001",
"InstalledItems -> 0.011",
"PhysicalItems -> 4.516",
"DesktopItems -> 0.021"
]
}
Thank you. This section looks normal. Please let me know if you find any error in operation.log.
No errors I can see. On the last rescan the log is reporting a brightness of 100. However the display is actually set to 0 brightness. The popup is also reporting 100.
Popup
Windows Brightness Control
operation.log
[Date: 11/06/25 15:04:18 Ver: 4.10.0.0]
Enabled
[Date: 11/06/25 15:04:25 Ver: 4.10.0.0]
ScanAsync [11/06/25 15:04:22]
{
"Items": [
{
"Type": "DdcMonitorItem",
"DeviceInstanceId": "DISPLAY\AOC2702\5&14475071&0&UID4356",
"Description": "Q27G2G3R4B",
"DisplayIndex": 3,
"MonitorIndex": 0,
"MonitorRect": 0,0,2560,1440,
"IsInternal": false,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": true,
"IsPrecleared": false,
"Brightness": -1,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
},
{
"Type": "WmiMonitorItem",
"DeviceInstanceId": "DISPLAY\CSO1600\5&39724f5d&0&UID256",
"Description": "Lenovo DisplayHDR",
"DisplayIndex": 1,
"MonitorIndex": 0,
"MonitorRect": -2560,-156,2560,1600,
"IsInternal": true,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": false,
"IsPrecleared": false,
"Brightness": -1,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
}
],
"Monitors": [
{
"Item": {
"Type": "DdcMonitorItem",
"DeviceInstanceId": "DISPLAY\AOC2702\5&14475071&0&UID4356",
"Description": "Q27G2G3R4B",
"DisplayIndex": 3,
"MonitorIndex": 0,
"MonitorRect": 0,0,2560,1440,
"IsInternal": false,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": true,
"IsPrecleared": false,
"Brightness": 83,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
},
"Name": "Q27G2G3R4B",
"IsUnison": false,
"IsControllable": true,
"IsConfirmed": true,
"ControllableCount": 5,
"IsByKey": false,
"IsSelected": false,
"IsTarget": true
},
{
"Item": {
"Type": "WmiMonitorItem",
"DeviceInstanceId": "DISPLAY\CSO1600\5&39724f5d&0&UID256",
"Description": "Lenovo DisplayHDR",
"DisplayIndex": 1,
"MonitorIndex": 0,
"MonitorRect": -2560,-156,2560,1600,
"IsInternal": true,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": false,
"IsPrecleared": false,
"Brightness": 91,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
},
"Name": "Lenovo DisplayHDR",
"IsUnison": false,
"IsControllable": true,
"IsConfirmed": true,
"ControllableCount": 5,
"IsByKey": false,
"IsSelected": true,
"IsTarget": true
}
]
}
[Date: 11/06/25 15:15:06 Ver: 4.10.0.0]
ScanAsync [11/06/25 15:15:02]
{
"Items": [
{
"Type": "DdcMonitorItem",
"DeviceInstanceId": "DISPLAY\AOC2702\5&14475071&0&UID4356",
"Description": "Q27G2G3R4B",
"DisplayIndex": 3,
"MonitorIndex": 0,
"MonitorRect": 0,0,2560,1440,
"IsInternal": false,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": true,
"IsPrecleared": false,
"Brightness": -1,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
},
{
"Type": "WmiMonitorItem",
"DeviceInstanceId": "DISPLAY\CSO1600\5&39724f5d&0&UID256",
"Description": "Lenovo DisplayHDR",
"DisplayIndex": 1,
"MonitorIndex": 0,
"MonitorRect": -2560,-156,2560,1600,
"IsInternal": true,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": false,
"IsPrecleared": false,
"Brightness": -1,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
}
],
"Monitors": [
{
"Item": {
"Type": "DdcMonitorItem",
"DeviceInstanceId": "DISPLAY\AOC2702\5&14475071&0&UID4356",
"Description": "Q27G2G3R4B",
"DisplayIndex": 3,
"MonitorIndex": 0,
"MonitorRect": 0,0,2560,1440,
"IsInternal": false,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": true,
"IsPrecleared": false,
"Brightness": 89,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
},
"Name": "Q27G2G3R4B",
"IsUnison": false,
"IsControllable": true,
"IsConfirmed": true,
"ControllableCount": 5,
"IsByKey": false,
"IsSelected": false,
"IsTarget": true
},
{
"Item": {
"Type": "WmiMonitorItem",
"DeviceInstanceId": "DISPLAY\CSO1600\5&39724f5d&0&UID256",
"Description": "Lenovo DisplayHDR",
"DisplayIndex": 1,
"MonitorIndex": 0,
"MonitorRect": -2560,-156,2560,1600,
"IsInternal": true,
"IsReachable": true,
"IsBrightnessSupported": true,
"IsContrastSupported": false,
"IsPrecleared": false,
"Brightness": 100,
"BrightnessSystemAdjusted": -1,
"Contrast": -1
},
"Name": "Lenovo DisplayHDR",
"IsUnison": false,
"IsControllable": true,
"IsConfirmed": true,
"ControllableCount": 5,
"IsByKey": false,
"IsSelected": true,
"IsTarget": true
}
]
}
I see. That means the OS returns false value to this app. It is difficult for this app to handle such case because there is no means to double check whether the value is correct.
OK.... This issue is caused by the new "Windows power modes" which are used in the slider in the battery flyout. I deleted these from the available power plans and the issue is fixed. This forces windows to use the power plan settings. I think this is due to the powermanagement module reading info and setting values for the active power plan, when the brightness is being overriden by the "Best Performance" or "Better Performance" power modes. Changing brightness still works when battery saver mode is selected.
Double checking that the value is correct for internal displays can also be done using WMI
eg Get-WmiObject -Namespace root/WMI -Class WmiMonitorBrightness in powershell
Windows has deprecated setting brightness via powerplan since Win 10 1809 I think, which is when the brought in the power slider thing for laptops.
If I disable the IsInternal check in the WmiMonitorItems module it fixes the issue even when a power mode is used, which is most regular laptops these days. However it might break adaptive brightness. See here 9313feb158ff400d481aa0b6966e5291a28a21de
This works
This doesn't
May have implications for https://github.com/emoacht/Monitorian/issues/426
Thank you for the information on the power management stuff. It is a critically important. the power management is too onerous and I wished to avoid though.
I cannot reproduce it. This app works when Best Performance setting.
Yes. Likewise. I completely reset windows power config with powercfg –restoredefaultschemes and now it is working. The manufacturer supplied power plans must have some compatibility issue, or my Windows install is corrupt (though throughout all this the bloated competitor app worked)
I see. Perhaps the competitor app doesn't look at the power management information so that it isn't affected by the power management issue.
Added /powerignore option to ignore power managenent 816d1c62e5db7a8bb55099b6890718953d97eda7