I love that I can now take advantage of the ambient light sensor on my Surface Pro 3, and use Automatic Brightness like I'm used to on my phone. It's now built-in (to GNOME at least) under the Automatic Brightness toggle, but alas, I quickly had to turn it off.
Granularity
The main problem is that it is not changing smoothly. The backlight jumps from one brightness level to the next, around every ~0.5sec, on it's way to the new target brightness. These jumps are super obvious compared to the smooth fading that I'm used to on Android, for instance.
I'm hoping there's a way I can change that to, say, adjusting the brightness by 1% or less each time, every 0.1 seconds or so. The smaller I can make one of them, the less small the other needs to be. Either way, I am certain that my backlight is capable of less noticeable increments than this - because I can achieve them manually using the brightness slider.
Variability
The other problem is that it's doing this all the time. I suspect this may have to do with the fact that I'm on a tablet, which isn't always stationed on a desk like a laptop, but often held in my hand. Perhaps it makes sense not to expect the lighting to change much with stationary setups, but when held, the slightest tilt can make the ambient light sensor come to very different conclusions (perhaps the ceiling light comes into view, or my hand casts a shadow, etcetera).
If I could solve the above issue by getting really small and slow adjustments, it should render this problem unnoticeable. But an alternative would simply be to alter the polling rate of the sensor, or to delay/average the values, so that short bursts of light/dark are ignored. My ambient light sensor may simply be too directional to solve it any other way.
What I've tried
I have iio-sensor-proxy
installed, and I've researched this question for quite a while now, but no one online seems to detail the mechanism of the new auto brightness feature. Various answers suggest simply keeping it off. Obviously this is no real solution.
I can use xbacklight --set
to change my brightness via script, and I'm sure I can make my own brightness script that polls the sensor data. This still seems like a step backwards, and I'm always weary of adding more constantly-running scripts that may not be doing things very efficiently. That said, I'd be open to expert script suggestions.
There also seems to be a lot online about third-party programs for Ubuntu that accomplish this task, but using the webcam as a makeshift ambient light sensor rather than a real one. I have a real one, so I want to use it.
However, the
debuild
fails for me:debuild: fatal error at line 1182: dpkg-buildpackage -us -uc -ui failed
Apparently 8 tests fail, due to
– Verax Jan 04 '20 at 00:44ValueError: Namespace UMockdev not available
.