Because of the reasons @jpetso already explained, unless we can notice the user intentionally changing the setting with the display controls, it’s not really feasible to do that without causing tons of bugs.
It would certainly be a better UX to react to the user doing things on the monitor OSD though; maybe we can figure out some heuristics for when the user’s intentionally doing it, like for example poll the setting often and when it changes, check that
- the display has been on for x seconds
- we’ve already restored the setting
- we don’t have any dimming applied at the moment
- (if we can detect it) that the display’s OSD is currently open
- (ideally also) the source is set to our PC
and only if all conditions apply, change our setting to match the display.
Of course there’s a pretty high chance it could still cause new bugs and regressions, so this kind of thing needs to be approached with care. For example I recall that interacting with DDC can cause performance issues on some NVidia cards, so even just polling the display setting regularly might cause problems.
It’s the same with my TV. I would expect a screen with an ALS to either
- not support external brightness control
- multiply the manual setting with the automatic thing
- just provide the sensor to the OS and have it figure things out instead
Can’t say I’ve seen any do 2 or 3 yet either.