#951199 brightnessctl: Enable logind support

Package:
brightnessctl
Source:
brightnessctl
Description:
Control backlight brightness
Submitter:
Nicolas Braud-Santoni
Date:
2026-10-14 20:09:02 UTC
Severity:
wishlist
#951199#5
Date:
2020-02-12 11:32:35 UTC
From:
To:
Enable logind support, and weaken the relationship to brightness-udev.

In particular, I should:
- - check elogind implements the correct interface;
- - check that `brightness-udev | libpam-systemd | libpam-elogind` is the correct
  relationship to use: the package should pull in brightness-udev *unless*
  logind or elogind are set up.

- -- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 5.4.0-3-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages brightnessctl depends on:
ii  libc6  2.29-10

Versions of packages brightnessctl recommends:
ii  brightness-udev  0.5.1-1

brightnessctl suggests no packages.

- -- no debconf information
-----BEGIN PGP SIGNATURE-----

iQJFBAEBCgAvFiEEU7EqA8ZVHYoLJhPE5vmO4pLV7MsFAl5D4lERHG5pY29vQGRl
Ymlhbi5vcmcACgkQ5vmO4pLV7MuyZQ//evAKYwzAyPk1TRQCvA669o5QaPfPwTy1
lgxIpp6MlB8ZiWF0vwkcsgV3gdZ7g7YnTtVdlGJEcMF1FZLc4sf+CkcOA5QVtiej
WMfMlwDehaUuN1BGXw3bfQR8LoHVCL0ycmLGg0F2wgmL43UMSYUDPqN8q3QogkiD
S+qRy3Zd2UrC/b2rK+aD0XQ7R2C6rSEsNmJiuziiGP6XHkrD7M1hUUceyu2Qrxfd
CFsPrWr91qpzbQjRagoCIohF8DDNyWmuxYQEBCy5PU/Kl3UkdgtcVE1ueKPK8h+0
67E9VignIoQ3O3YZtkpDygy6/B6AY8SNPKLWozKSxBmrEd4O7ps2QZUZoNHDw07e
YTt+390PoN/Oqk5a1azO4XPb/Iy6+5mfZskpGA4PRFO++kPRDWiKYxl9sD8so1D3
wvhd3MHosOkmU2/rkE0RROGay3o9/qUKYI5Adk19jGcueZ19aSWPFUmte7kTQuHn
XBzLyQpBbwh5oWVKasvxcyNujPz/cXyYRD8ubzYnbEtuaDQfXYGNNTYfP2ueMPpw
RLkwxqInipkLuC4ifxu4U6Ej9X6+k64W6Y9M73q7xTKl4T68qPFB6SVCaigCxqDw
2xAF1+Z6njq6SvhmYAsWe7gFu+E0FaqcYaWN4sFLfldGnkA/E4GyqT9mQOn9lp8K
oPlzwefBfls=
=sb8j
-----END PGP SIGNATURE-----

#951199#12
Date:
2026-10-14 20:07:17 UTC
From:
To:
Hi,

I'd like to add a use case and a security argument for this bug.

Setup: Debian 13.7 (trixie), brightnessctl 0.5.1-3.1, brightness-udev
0.5.1-3.1, systemd 257.13-1~deb13u1, the niri Wayland compositor on a
MacBook Air. niri has no power daemon, so the brightness keys are bound
to brightnessctl.

Changing the screen backlight works, because my user is in the video
group. Changing the keyboard backlight fails:

  $ brightnessctl -d smc::kbd_backlight set 255
  Can't modify brightness: Permission denied

The udev rule shipped in brightness-udev grants write access to LED
devices only to the input group:

  ACTION=="add", SUBSYSTEM=="leds", RUN+="bright-helper input g+w
/sys/class/leds/%k/brightness"

and the upstream README says this method "requires your user to be in
the video and input groups".

The input group also owns the raw input devices, including the keyboard:

  crw-rw---- 1 root input 13, 68 /dev/input/event4   (Apple Internal
Keyboard / Trackpad)

and per Documentation/input/input.rst, evdev "passes the events
generated in the kernel straight to the program, with timestamps". So
with the current package, controlling a keyboard backlight through
brightnessctl means joining a group that lets every process running as
that user read all keystrokes, which undercuts Wayland's input
isolation.

systemd-logind already allows the active session to set LED brightness
without any group membership. This works for my user, which is not in
the input group:

  busctl call org.freedesktop.login1 /org/freedesktop/login1/session/auto \
    org.freedesktop.login1.Session SetBrightness ssu leds
smc::kbd_backlight 128

Building brightnessctl with ENABLE_SYSTEMD=1 would let it use this API,
so neither the input group nor brightness-udev would be needed on
systemd systems.

Cheers
Xau