KDE Plasma Keyboard Backlight UPower Issue

Hello,

I recently installed Fedora KDE 44 on my Lenovo ThinkPad and right after the first system update I got the following issue (I reinstalled Fedora just to be sure of when I got the problem).

Whenever I use the “adjust keyboard backlight brightness” command (Fn + Space), it works. However, in KDE Plasma, I don’t get the usual brightness popup, and the Brightness & Color applet shows no changes.

It does show changes for my “change screen brightness keys,” until I restart upower.service. After restarting it, everything works as normal.

The issue is that whenever my laptop boots up, there is no error displayed for upower.service, and it reports that it started successfully.

I’m not familiar with keyboard backlights in systems administration, so all help is appreciated.

Send output

journalctl -b -u upower.service --no-pager

and

upower -d

Maybe i found somewhat same issue here, is it yours? the wording looks a bit similar
https://bbs.archlinux.org/viewtopic.php?pid=2309922

Try Fedora 44 Update: upower-1.91.4-1.fc44 maybe?

Hi @sketch-exe,

Thank you for your reply.

journalctl -b -u upower.service --no-pager returns:

Sep 26 18:10:42 toki-t1g systemd[1]: Starting upower.service - Daemon for power management…
Sep 26 18:10:42 toki-t1g systemd[1]: Started upower.service - Daemon for power management.

upower -d returns:

Device: /org/freedesktop/UPower/devices/battery_BAT0
native-path: BAT0
vendor: COSMX
model: 5B11M90164
serial: 473
power supply: yes
updated: Sat 26 Sep 2026 06:17:31 PM (15 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: pending-charge
warning-level: none
energy: 76.1 Wh
energy-empty: 0 Wh
energy-full: 90 Wh
energy-full-design: 90 Wh
voltage-min-design: 15.6 V
capacity-level: Normal
energy-rate: 0 W
voltage: 17.037 V
charge-cycles: 10
percentage: 85%
capacity: 100%
technology: lithium-ion
charge-start-threshold: 75%
charge-end-threshold: 80%
charge-threshold-supported: yes
icon-name: ‘battery-full-charging-symbolic’
History (voltage):
1790442991 17.037 pending-charge

Device: /org/freedesktop/UPower/devices/line_power_AC
native-path: AC
power supply: yes
updated: Sat 26 Sep 2026 06:11:50 PM (356 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: yes
icon-name: ‘ac-adapter-symbolic’

Device: /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001
native-path: ucsi-source-psy-USBC000:001
power supply: yes
updated: Sat 26 Sep 2026 06:11:54 PM (352 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: yes
icon-name: ‘ac-adapter-symbolic’

Device: /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o002
native-path: ucsi-source-psy-USBC000:002
power supply: yes
updated: Sat 26 Sep 2026 06:10:47 PM (419 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: no
icon-name: ‘ac-adapter-symbolic’

Device: /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o003
native-path: ucsi-source-psy-USBC000:003
power supply: yes
updated: Sat 26 Sep 2026 06:10:47 PM (419 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: no
icon-name: ‘ac-adapter-symbolic’

Device: /org/freedesktop/UPower/devices/DisplayDevice
power supply: yes
updated: Sat 26 Sep 2026 06:12:31 PM (315 seconds ago)
has history: no
has statistics: no
battery
present: yes
state: pending-charge
warning-level: none
energy: 76.1 Wh
energy-full: 90 Wh
energy-rate: 0 W
charge-cycles: N/A
percentage: 85%
icon-name: ‘battery-full-charging-symbolic’

Daemon:
daemon-version: 1.91.4
on-battery: no
lid-is-closed: no
lid-is-present: yes
critical-action: Sleep

I’ve seen that but no, it’s not mine.

That’s the version I currently have.

upower -d should have returned something for Keyboard device but it dosent look like it did. Maybe device initializing timing delay (but how did the brightness change if it didnt return?)
Check what the kernel exposes immediatly after boot
(dont restart upower.service before running these commands)

ls -l /sys/class/leds/
ls -l /sys/class/backlight/

Also can you watch over busctl tree org.freedesktop.UPower before and after restarting upower.service.

ls -l /sys/class/leds/

total 0
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 input3::capslock → ../../devices/platform/i8042/serio0/input/input3/input3::capslock
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 input3::numlock → ../../devices/platform/i8042/serio0/input/input3/input3::numlock
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 input3::scrolllock → ../../devices/platform/i8042/serio0/input/input3/input3::scrolllock
lrwxrwxrwx. 1 root root 0 Sep 27 08:20 phy0-led → ../../devices/pci0000:00/0000:00:14.3/leds/phy0-led
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 platform::micmute → ../../devices/platform/thinkpad_acpi/leds/platform::micmute
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 platform::mute → ../../devices/platform/thinkpad_acpi/leds/platform::mute
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 tpacpi::kbd_backlight → ../../devices/platform/thinkpad_acpi/leds/tpacpi::kbd_backlight
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 tpacpi::lid_logo_dot → ../../devices/platform/thinkpad_acpi/leds/tpacpi::lid_logo_dot
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 tpacpi::power → ../../devices/platform/thinkpad_acpi/leds/tpacpi::power
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 tpacpi::standby → ../../devices/platform/thinkpad_acpi/leds/tpacpi::standby
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 tpacpi::thinklight → ../../devices/platform/thinkpad_acpi/leds/tpacpi::thinklight
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 tpacpi::thinkvantage → ../../devices/platform/thinkpad_acpi/leds/tpacpi::thinkvantage

ls -l /sys/class/backlight/

total 0
lrwxrwxrwx. 1 root root 0 Sep 27 08:19 intel_backlight → ../../devices/pci0000:00/0000:00:02.0/drm/card1/card1-eDP-1/intel_backlight

busctl tree org.freedesktop.UPower

before restarting upower:

└─ /org
└─ /org/freedesktop
└─ /org/freedesktop/UPower
├─ /org/freedesktop/UPower/KbdBacklight
│ └─ /org/freedesktop/UPower/KbdBacklight/tpacpiookbd_backlight
└─ /org/freedesktop/UPower/devices
├─ /org/freedesktop/UPower/devices/DisplayDevice
├─ /org/freedesktop/UPower/devices/battery_BAT0
├─ /org/freedesktop/UPower/devices/line_power_AC
├─ /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001
├─ /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o002
└─ /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o003

after restarting upower:

└─ /org
└─ /org/freedesktop
└─ /org/freedesktop/UPower
├─ /org/freedesktop/UPower/KbdBacklight
│ └─ /org/freedesktop/UPower/KbdBacklight/tpacpiookbd_backlight
└─ /org/freedesktop/UPower/devices
├─ /org/freedesktop/UPower/devices/DisplayDevice
├─ /org/freedesktop/UPower/devices/battery_BAT0
├─ /org/freedesktop/UPower/devices/line_power_AC
├─ /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o001
├─ /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o002
└─ /org/freedesktop/UPower/devices/line_power_ucsi_source_psy_USBC000o003

Sorry for the late reply.

Seeing this what i can tell is.
After Kernel provides keyboard backlight interface but upower is unable to enumerate it and not display it in upower -d. Hence kde is not able to give the pop up and stuff.

I dont know how to proceed but maybe writing a automatic script that restarts upower.service few seconds after boot could be a temporary solution to this, atleast you wouldnt have to restart it manually all the time.

I ended up downgrading upower to the version available in the iso (v1.91.1), and it works fine.
Hopefully there will be an update in the future that fixes this issue.
Thank you for your help.