Which Linux distro are you using?
Fedora KDE Plasma
Which release version?
43
Which kernel are you using?
6.19.10-200.fc43.x86_64
Which BIOS version are you using?
03.05
Which Framework Laptop 13 model are you using?
AMD Ryzen™ AI 300 Series
I cannot adjust the brightness with the keyboard shortcuts (F7, F8, with or without fn lock). After going through many threads here is the current state:
-
Automatic brightness adjustment works (if enabled – I currently have it disabled).
-
I can adjust both with the brightness slider and with brightnessctl
-
I have tried blacklisting the hid_sensor_hub module lsmod | rg ^hid_sensor shows nothing and cat /proc/cmdline contains the module blacklist
-
Brightness keys register with libnput:
sudo libinput debug-events
(...)
-event5 KEYBOARD_KEY +0.000s KEY_BRIGHTNESSUP (225) pressed
event5 KEYBOARD_KEY +0.135s KEY_BRIGHTNESSUP (225) released
event5 KEYBOARD_KEY +0.576s KEY_BRIGHTNESSDOWN (224) pressed
event5 KEYBOARD_KEY +0.685s KEY_BRIGHTNESSDOWN (224) released
-
Brightness keys register with evtest for FRMW0004:00 32AC:0006 Consumer Control
-
I read [SOLVED-GUIDE] 12th gen not sending XF86MonBrightnessUp / Down - #67 by devkev post but I don’t think it’s applicable in my case. I have the same three i2c-FRMW0004:00 i2c-FRMW0005:00 i2c-PIXA3854:00 under both /sys/bus/i2c/devicesand /sys/bus/i2c/drivers/i2c_hid_acpi.
-
All other control keys (fn+Fxx) work.
-
Brightness keys used to work, however I have been using the laptop docked with external display, so I don’t know exactly when it stopped working.
I feel like I have exhausted my options so I would appreciate any help here.
It’s a KDE Plasma 6 thing. I’ve not looked into it beyond using the sliders in the ‘Brightness and Colour’ notification tray app or the ‘Display Configuration’ item in System Settings.
I’ve seen this recently with a x11 desktop environment.
Couple days ago I reset the bios to defaults and it’s been fine ever since. I’ve wondered if maybe the bios update I ran a couple weeks ago caused it?
Thank you @Kenny_Lewis . I only had a little time too look into it today. But checking with
systemctl --user status plasma-powerdevil
# and looking at
journalctl --user -eu plasma-powerdevil
Revealed that ddcutil could access i2c (permission issues). I did what ddcutil environment suggested and added my user to i2c group and set udev rules for i2c devices:
echo 'SUBSYSTEM=="i2c-dev", GROUP="i2c", MODE="0660"' > /etc/udev/rules.d/99-i2c.rules
The permission problem is resolved, but I still cannot control brightness with the key shortcuts. I wonder if there are further clues in the two excerpts below.
~ ❯ ddcutil detect
Invalid display
I2C bus: /dev/i2c-3
DRM_connector: card1-eDP-1
EDID synopsis:
Mfg id: BOE - BOE
Model: NE135A1M-NY1
Product code: 3252 (0x0cb4)
Serial number:
Binary serial number: 0 (0x00000000)
Manufacture year: 2023, Week: 52
This monitor does not support DDC/CI. (I2C slave address x37 is unresponsive.)
Invalid display
I2C bus: /dev/i2c-12
DRM_connector: card1-eDP-1
EDID synopsis:
Mfg id: BOE - BOE
Model: NE135A1M-NY1
Product code: 3252 (0x0cb4)
Serial number:
Binary serial number: 0 (0x00000000)
Manufacture year: 2023, Week: 52
This monitor does not support DDC/CI. (I2C slave address x37 is unresponsive.)
~ ❯ journalctl --user --no-pager --no-hostname -o short -u plasma-powerdevil.service | cut -d' ' -f4-
systemd[1992]: Starting plasma-powerdevil.service - Powerdevil...
org_kde_powerdevil[7373]: Starting libddcutil. library built Sep 5 2025 at 00:00:00. stdout_stderr_redirected=true
org_kde_powerdevil[7373]: Initializing libddcutil. ddcutil version: 2.2.1, shared library: /usr/lib64/libddcutil.so.5.3.0
org_kde_powerdevil[7373]: [ 7373] Options passed from client:
org_kde_powerdevil[7373]: [ 7373] Applying combined libddcutil options:
org_kde_powerdevil[7373]: [ 7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [ 7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [ 7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [ 7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [ 7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: [ 7373] (i2c_detect_x37) Extra x37 sleep: Sleeping for 400 milliseconds
org_kde_powerdevil[7373]: Library initialization complete.
org_kde_powerdevil[7373]: Watching for DPMS state changes unimplemented
org_kde_powerdevil[7373]: [ 7373] Watching for DPMS state changes unimplemented
org_kde_powerdevil[7373]: [ 7373] Watching for display connection changes, resolved watch mode = Watch_Mode_Xevent, poll loop interval = 100 millisec
org_kde_powerdevil[7373]: [ 7373] extra_stabilization_millisec: 0, stabilization_poll_millisec: 100
org_kde_powerdevil[7373]: [ 7373] libddcutil recheck thread 0x562c441619a0 started
org_kde_powerdevil[7373]: [ 7373] libddcutil watch thread 0x562c44152f70 started
org_kde_powerdevil[7373]: [ 7578] (dw_recheck_displays_func) Recheck interval: Sleeping for 200 milliseconds
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
systemd[1992]: Started plasma-powerdevil.service - Powerdevil.
org_kde_powerdevil[7373]: Handle button events action could not check for screen configuration
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
org_kde_powerdevil[7373]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.kde.org_kde_powerdevil'")
org_kde_powerdevil[7373]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: App info not found for 'org.kde.org_kde_powerdevil'")
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getconservationmode failed "Battery conservation mode is not supported"
org_kde_powerdevil[7373]: org.kde.powerdevil.chargethresholdhelper.getconservationmode failed "Battery conservation mode is not supported"
@cmemory I also wonder if that’s the case but I’m currently not willing to revert to the previous version.
Not revert back to a previous version. Merely restore defaults of the existing installed version.