I’m on a “fresh” install of Fedora 44, GNOME 50, nvidia proprietary drivers (akmod-nvidia), secure boot enabled.
My monitor DOES have DDC support: it works on KDE, works with ddcutil (on Arch, Ubuntu, Debian, OpenSUSE, Fedora), works with gnome-shell Extensions.
It works on this install: when the Wellbeing feature notifies me about a break (looking away for 20 seconds), if I accept the break, the monitor dims for 20 seconds.
I know everything works (i2c, ddc), GNOME itself uses it out of the box, I just can’t have the native slider that’s bundled with it.
I’m using an extension to controll my monitor’s hardware, but still, I want to probe why GNOME can’t.
It’s never been implemented.
Ok, I didn’t know that. I just assumed ddc was the default way to do brightness control on Linux.
But how does this work then?
Also, on my hardware, GNOME dims my monitor, it just doesn’t expose this capability to me (user). Why is that?
TLDR: Works with ACPI, needs device to be exposed on sysfs. Could be done with a third-party kernel module
This works with ACPI, not DDCCI.
Testing on a laptop with an internal monitor that supports backlight control, systemd-backlight accesses the backlight via /sys/class/backlight/[your-monitor-thing].
You could try to make your system create this sysfs directory by testing acpi_backlight kernel params (video, vendor, native).
The screen dimming applied during the Wellbeing breaks is done with a video effect, it doesn’t change hardware brightness at all (I checked).
You could try to build and load/install ddcci-driver-linux to expose external monitors on sysfs /sys/class/backlight/, however it’s far out of my comfort zone atm, I don’t know how it plays (or doesn’t play) with Secure Boot, and I don’t want to format my pc for the seventh time in 5 days.