Skip to content

Instantly share code, notes, and snippets.

@paco3346
Created April 17, 2026 17:24
Show Gist options
  • Select an option

  • Save paco3346/ead0dd6a219e17336dc66645bd8759a8 to your computer and use it in GitHub Desktop.

Select an option

Save paco3346/ead0dd6a219e17336dc66645bd8759a8 to your computer and use it in GitHub Desktop.

Why "Automatically adapt to environment" (ambient light sensor auto-brightness) doesn't appear on X11 in KDE Plasma 6.6+

Background

Plasma 6.6 shipped automatic screen brightness adjustment driven by an ambient light sensor (ALS). The feature requires iio-sensor-proxy to be installed (it's an optional dependency of qt6-sensors and not pulled in automatically on Arch). Once installed and the Plasma session restarted, a checkbox labelled "Automatically adapt to environment" is supposed to appear in the display brightness controls.

If you're on X11, it won't appear — even if iio-sensor-proxy is installed, the service is running, and monitor-sensor confirms the sensor is working correctly. This is not a configuration problem. The feature was never implemented for X11.

Why: it's a Wayland protocol feature

The feature was implemented entirely within KDE's custom Wayland output management protocol stack. The implementing KWin commit (0570b33, tracked in Bug 502122) touches the following files:

src/backends/drm/drm_output.cpp       ← DRM backend (Wayland only)
src/wayland/outputdevice_v2.cpp       ← Wayland protocol server
src/wayland/outputmanagement_v2.cpp   ← Wayland protocol server
src/utils/lightsensor.cpp             ← new: sensor abstraction
src/utils/lightsensor.h
src/core/backendoutput.cpp            ← brightness curve logic

There are no corresponding src/backends/x11/ changes. The feature was wired into the DRM backend (which runs under Wayland) and exposed via two KDE-specific Wayland protocol extensions:

  • kde-output-device-v2 — advertises what capabilities a display has. auto_brightness was added as a capability entry (protocol spec). kscreen reads this to decide whether to show the checkbox.
  • kde-output-management-v2 — allows a client (kscreen) to toggle that capability on a given output (protocol spec).

X11 has no equivalent output management protocol. On X11, kscreen has no way to query whether auto-brightness is available, and KWin has no path to apply the curve to the backlight.

What would be needed for X11 support

The feature is not inherently impossible on X11. The brightness curve solver (AutoBrightnessCurve) and sensor abstraction (lightsensor.cpp) already exist in src/utils/ and are backend-agnostic. What's missing is the wiring:

  1. A call site in KWin's X11 backend — connecting lightsensor.cppAutoBrightnessCurve → backlight write via sysfs or XRandR/PowerDevil.
  2. A capability discovery mechanism for kscreen — on Wayland this is the auto_brightness flag in kde-output-device-v2. On X11 a D-Bus interface on KWin would be the natural equivalent, since that's already how kscreen and KWin communicate for other things on X11.
  3. Coordination with PowerDevil — on X11, backlight writes typically go through PowerDevil. The two would need to not fight each other.

The absence of this feature on X11 is an implementation gap, not an architectural limitation. A bug report or MR to KDE would be the right path.

Quick diagnostic

To confirm this is your situation:

echo $XDG_SESSION_TYPE   # prints "x11" → feature unavailable
kscreen-doctor -o        # will not report auto_brightness as a supported capability
monitor-sensor           # if this shows illuminance readings, your sensor is fine
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment