Is there a way to control external monitor brightness by software? I mean the same level you change by pressing your monitor buttons.
I ask this because I see me an my colleagues monitor brightness drops down from time to time and it started to happen at the same time. I suspected the system is changing it maybe.
You can use ddcutil utilities like brightness-controller (PyQt5), luminance (Gtk) or vdu_controls (PyQt5). All all available in the AUR (Arch User Repository).
Now that we have established it is possible using DDC which is a very interesting fact, how to investigate why my brightness drops without having any special program for that matter installed.
Possibly “adaptive brightness” ?
This is a BIOS setting.
(though I have seen weird interactions from the in-windoze similar setting as well)
I am having the same issue on a different machine/monitor. I am getting confident that somehow Manjaro is decreasing display brightness but couldn’t find anything relevant in the logs.
After more investigation I found out that decrease amount is always 70% less than the initial value.
Could it be an energy saving setting? Desktops such as KDE have some energy saving abilities that kick at some amount of idle time (check under desktop settings).
Is the actual brightness reported by the monitor’s own menu changing? If it is, and the desktop is responsible, the the desktop must be using DDC.
Some monitors have the ability to disable DDC. If not, you could disable the
/dev/i2c-* devices used to do DDC.
The ddcutil command can identify which i2c devices are related to monitors:
% ddcutil detect
I2C bus: /dev/i2c-0
DRM connector: card0-DP-1
Mfg id: HWP - Hewlett Packard
Model: HP ZR24w
Product code: 10345 (0x2869)
Binary serial number:
Manufacture year: 2010, Week: 8
VCP version: 2.2
I2C bus: /dev/i2c-3
DRM connector: card0-DP-3
Mfg id: GSM - Goldstar Company Ltd (LG)
Model: LG HDR 4K
Product code: 30471 (0x7707)
Binary serial number:
Manufacture year: 2019, Week: 4
VCP version: 2.1
Normally no /dev/i2c-* devices are writable by a normal user. If DDC was in use, there would have to be a group-membership or a udev-rule enabling access for the desktop user. In either, case chmod removing all write permissions should shut off access to do DDC (
sudo chmod ugo-w /dev/i2c-0).