Screen Brightness not in sync over multiple screens

Hi all,

I recently re-installed Garuda Dragonized with KDE Plasma X11. I have 3 screens from different brands.
When I change screen brightness with the shortcuts on my keyboard, in the old installation all screens went from value X to value Y in 5% increments. In the new installation, starting at 0% for all screens, only one screen goes up until 20%, then the second one starts going up and when the first one is at 60%, the 3rd one starts going up. That results in different brightness values on all screens which is not really nice to work with.

I did not find a way to fix this within the settings or on the internet, went through the garuda forums and some Brave searches.

What can I do to fix this? What data is useful to troubleshoot this issue further?

I use an AMD graphics card + CPU and my system is up to date.

Thanks in advance for any help, much appreciated!

garuda-inxi:

╰─λ garuda-inxi
System:
Kernel: 6.14.1-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=2ab3e927-2881-4dec-9c0d-28b69b828047 rw rootflags=subvol=@
quiet resume=UUID=152cd1b9-c2ee-410e-99d3-ba50a07d3a70 loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.3.4 tk: Qt v: N/A info: frameworks v: 6.12.0
wm: kwin_x11 with: krunner vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop System: Gigabyte product: B850 GAMING WIFI6 v: N/A
serial: <superuser required>
Mobo: Gigabyte model: B850 GAMING WIFI6 v: x.x
serial: <superuser required> uuid: <superuser required> UEFI: American
Megatrends LLC. v: F3 date: 03/12/2025
Battery:
ID-1: hidpp_battery_0 charge: 26% condition: N/A volts: 3.7 min: N/A
model: Logitech G502 LIGHTSPEED Wireless Gaming Mouse type: N/A
serial: <filter> status: discharging
CPU:
Info: model: AMD Ryzen 7 9800X3D bits: 64 type: MT MCP arch: N/A level: v4
note: check family: 0x1A (26) model-id: 0x44 (68) stepping: 0
microcode: 0xB404023
Topology: cpus: 1x dies: 1 clusters: 1 cores: 8 threads: 16 tpc: 2
smt: enabled cache: L1: 640 KiB desc: d-8x48 KiB; i-8x32 KiB L2: 8 MiB
desc: 8x1024 KiB L3: 96 MiB desc: 1x96 MiB
Speed (MHz): avg: 4985 min/max: 600/5608 boost: enabled scaling:
driver: amd-pstate-epp governor: performance cores: 1: 4985 2: 4985 3: 4985
4: 4985 5: 4985 6: 4985 7: 4985 8: 4985 9: 4985 10: 4985 11: 4985 12: 4985
13: 4985 14: 4985 15: 4985 16: 4985 bogomips: 159689
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
Vulnerabilities: <filter>
Graphics:
Device-1: Advanced Micro Devices [AMD/ATI] Navi 31 [Radeon RX 7900 XT/7900
XTX/7900 GRE/7900M] vendor: Tul / PowerColor driver: amdgpu v: kernel
arch: RDNA-3 code: Navi-3x process: TSMC n5 (5nm) built: 2022+ pcie:
gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-2,DP-3,HDMI-A-1
empty: DP-1,Writeback-1 bus-ID: 03:00.0 chip-ID: 1002:744c class-ID: 0300
Device-2: Advanced Micro Devices [AMD/ATI] Granite Ridge [Radeon Graphics]
vendor: Gigabyte driver: amdgpu v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 ports: active: none empty: DP-4, DP-5, DP-6, HDMI-A-2,
Writeback-2 bus-ID: 13:00.0 chip-ID: 1002:13c0 class-ID: 0300 temp: 47.0 C
Device-3: Logitech C922 Pro Stream Webcam driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-4.2.4:19
chip-ID: 046d:085c class-ID: 0102 serial: <filter>
Display: x11 server: X.Org v: 21.1.16 with: Xwayland v: 24.1.6
compositor: kwin_x11 driver: X: loaded: amdgpu unloaded: modesetting,radeon
alternate: fbdev,vesa dri: radeonsi gpu: amdgpu display-ID: :0 screens: 1
Screen-1: 0 s-res: 6440x1920 s-dpi: 96 s-size: 1703x508mm (67.05x20.00")
s-diag: 1777mm (69.97")
Monitor-1: DP-2 mapped: DisplayPort-1 pos: primary,middle-c
model: Gigabyte M34WQ serial: <filter> built: 2023 res: mode: 3440x1440
hz: 144 scale: 100% (1) dpi: 109 gamma: 1.2 size: 800x335mm (31.5x13.19")
diag: 867mm (34.1") modes: max: 3440x1440 min: 720x400
Monitor-2: DP-3 mapped: DisplayPort-2 pos: top-right
model: Samsung S24R65x serial: <filter> built: 2020 res: 3440x1440 dpi: 93
gamma: 1.2 size: 527x296mm (20.75x11.65") diag: 604mm (23.8") ratio: 16:9
modes: max: 1920x1080 min: 720x400
Monitor-3: HDMI-A-1 mapped: HDMI-A-0 pos: bottom-l model: MSI MP242
serial: <filter> built: 2021 res: 3440x1440 dpi: 93 gamma: 1.2
size: 527x296mm (20.75x11.65") diag: 604mm (23.8") ratio: 16:9 modes:
max: 1920x1080 min: 720x400
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: radeonsi device: 2 drv: swrast gbm: drv: kms_swrast
surfaceless: drv: radeonsi x11: drv: radeonsi inactive: wayland
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 25.0.3-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 7900 XT (radeonsi
navi31 LLVM 19.1.7 DRM 3.61 6.14.1-zen1-1-zen) device-ID: 1002:744c
memory: 19.53 GiB unified: no
API: Vulkan v: 1.4.309 layers: 9 device: 0 type: discrete-gpu name: AMD
Radeon RX 7900 XT (RADV NAVI31) driver: N/A device-ID: 1002:744c
surfaces: xcb,xlib device: 1 type: integrated-gpu name: AMD Radeon
Graphics (RADV RAPHAEL_MENDOCINO) driver: N/A device-ID: 1002:13c0
surfaces: xcb,xlib device: 2 type: cpu name: llvmpipe (LLVM 19.1.7 256
bits) driver: N/A device-ID: 10005:0000 surfaces: xcb,xlib
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor gpu: corectrl,radeontop wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Advanced Micro Devices [AMD/ATI] Navi 31 HDMI/DP Audio
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 03:00.1 chip-ID: 1002:ab30 class-ID: 0403
Device-2: Advanced Micro Devices [AMD/ATI] Rembrandt Radeon High
Definition Audio driver: snd_hda_intel v: kernel pcie: gen: 4
speed: 16 GT/s lanes: 16 bus-ID: 13:00.1 chip-ID: 1002:1640 class-ID: 0403
Device-3: Advanced Micro Devices [AMD] Family 17h/19h/1ah HD Audio
vendor: Gigabyte driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s
lanes: 16 bus-ID: 13:00.6 chip-ID: 1022:15e3 class-ID: 0403
Device-4: Texas Instruments PCM2902 Audio Codec
driver: hid-generic,snd-usb-audio,usbhid type: USB rev: 1.1 speed: 12 Mb/s
lanes: 1 mode: 1.1 bus-ID: 1-4.2.3:18 chip-ID: 08bb:2902 class-ID: 0300
Device-5: Logitech C922 Pro Stream Webcam driver: snd-usb-audio,uvcvideo
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-4.2.4:19
chip-ID: 046d:085c class-ID: 0102 serial: <filter>
Device-6: GN Netcom Jabra Link 370 driver: jabra,snd-usb-audio,usbhid
type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 5-2.3:3
chip-ID: 0b0e:245e class-ID: 0300 serial: <filter>
API: ALSA v: k6.14.1-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.4.1 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8111/8168/8211/8411 PCI Express Gigabit Ethernet
vendor: Gigabyte driver: r8169 v: kernel pcie: gen: 1 speed: 2.5 GT/s
lanes: 1 port: d000 bus-ID: 08:00.0 chip-ID: 10ec:8168 class-ID: 0200
IF: enp8s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Device-2: Realtek driver: rtw89_8851be v: kernel pcie: gen: 1
speed: 2.5 GT/s lanes: 1 port: c000 bus-ID: 09:00.0 chip-ID: 10ec:b851
class-ID: 0280
IF: wlp9s0 state: down mac: <filter>
Device-3: Microsoft Xbox Wireless Adapter for Windows driver: xone-dongle
type: USB rev: 2.0 speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-4.2.2:16
chip-ID: 045e:02e6 class-ID: 0000 serial: <filter>
Info: services: NetworkManager, smbd, systemd-timesyncd
Bluetooth:
Device-1: Realtek Bluetooth Radio driver: btusb v: 0.8 type: USB rev: 1.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-8:12 chip-ID: 0bda:b850
class-ID: e001 serial: <filter>
Report: btmgmt ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
rfk-block: hardware: no software: yes address: <filter> bt-v: 5.3 lmp-v: 12
status: discoverable: no pairing: no
Drives:
Local Storage: total: 14.55 TiB used: 11.71 TiB (80.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
model: WD BLACK SN770 2TB size: 1.82 TiB block-size: physical: 512 B
logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 731130WD temp: 39.9 C scheme: GPT
ID-2: /dev/sda maj-min: 8:0 vendor: Toshiba model: DT01ACA300
size: 2.73 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: ABB0 scheme: GPT
ID-3: /dev/sdb maj-min: 8:16 vendor: Seagate model: ST4000DM004-2CV104
size: 3.64 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
tech: HDD rpm: 5425 serial: <filter> fw-rev: 0001 scheme: GPT
ID-4: /dev/sdc maj-min: 8:32 vendor: Samsung model: SSD 860 EVO 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 6.0 Gb/s
tech: SSD serial: <filter> fw-rev: 2B6Q scheme: GPT
ID-5: /dev/sdd maj-min: 8:48 vendor: Seagate model: ST6000DM003-2CY186
size: 5.46 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
tech: HDD rpm: 5425 serial: <filter> fw-rev: 0001 scheme: GPT
Partition:
ID-1: / raw-size: 830.51 GiB size: 830.51 GiB (100.00%)
used: 38.07 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p4 maj-min: 259:4
ID-2: /boot/efi raw-size: 512 MiB size: 511 MiB (99.80%)
used: 608 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p2 maj-min: 259:2
ID-3: /home raw-size: 1000 GiB size: 1000 GiB (100.00%)
used: 530.13 GiB (53.0%) fs: btrfs dev: /dev/nvme0n1p3 maj-min: 259:3
ID-4: /var/log raw-size: 830.51 GiB size: 830.51 GiB (100.00%)
used: 38.07 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p4 maj-min: 259:4
ID-5: /var/tmp raw-size: 830.51 GiB size: 830.51 GiB (100.00%)
used: 38.07 GiB (4.6%) fs: btrfs dev: /dev/nvme0n1p4 maj-min: 259:4
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 30.46 GiB used: 6.29 GiB (20.7%)
priority: 100 comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842
max-streams: 16 dev: /dev/zram0
ID-2: swap-2 type: partition size: 32 GiB used: 142.6 MiB (0.4%)
priority: -2 dev: /dev/nvme0n1p1 maj-min: 259:1
Sensors:
System Temperatures: cpu: 53.9 C mobo: 32.0 C
Fan Speeds (rpm): N/A
GPU: device: amdgpu temp: 46.0 C device: amdgpu temp: 63.0 C mem: 64.0 C
fan: 1024 watts: 92.00
Info:
Memory: total: 32 GiB note: est. available: 30.46 GiB
used: 16.65 GiB (54.7%)
Processes: 580 Power: uptime: 9h 48m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 12.17 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 257 default: graphical
tool: systemctl
Packages: 1727 pm: pacman pkgs: 1716 libs: 495 tools: pamac,paru
pm: flatpak pkgs: 11 Compilers: clang: 19.1.7 gcc: 14.2.1 Shell: garuda-inxi
default: fish v: 4.0.1 running-in: konsole inxi: 3.3.37
Garuda (2.7.2-1):
System install date:     2025-02-26
Last full system update: 2025-04-13 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       No/Undetected
Failed units:

pls reboot → then …
If possible reset your monitors to factory settings → make your settings → and ?
You have a xorg.conf / 20-amdgpu.conf file in /etc/x11/xorg.conf.d/ ?
If, you can insert there the relevant entries on each screen section (example gamma 0.8 0.8 0.8)
But that is actually obsolete and not without risk. (my mind)
Remember: if you work with these files, you have these settings every time you start the os.
You use x11: xorg-xbacklight + handmade executable shortcuts + script ?
You have udev rule inside /etc/udev/rules.d about backlight ?
Is a service running over systemd ?

and KDE writes this about this stuff:

Full disclosure, this was already an issue in past releases of Plasma and is still an issue.

The problem is powerdevil + ddcutil 2.1xxxx (+higher) + plasma 6.0 +higher (..sorry ..lol)
and perhaps when kde implements something new we should have a switch to give us the “quick & easy OFF” for ALL cases like this. But perhaps i dream, only.

1 Like

Hi, sorry for the late answer!

Yeah forgot to reboot, sorry for that. Reboot didn’t solve the issue, neither did the updates that released in the last 9 days (including reboot).
Regarding /etc/X11/xorg.conf.d/, there are only two files, none of those you mentioned:

╭─leetsch2002@DESKTOP in ~ as 🧙 took 5s
╰─λ ls -al /etc/X11/xorg.conf.d/
drwxr-xr-x   - root 27 Feb 00:47  .
drwxr-xr-x   - root 28 Apr  2024  ..
.rw-r--r-- 263 root 27 Feb 00:47  00-keyboard.conf
.rw-r--r-- 240 root 28 Apr  2024  30-touchpad.conf

I just tried booting from a live boot, changing the settings there for all screens to be 0%. Then shut down, booted my garuda instance and boom! All screens at 0% brightness and leveling is equal for all of them. Unfortunately, this broke after rebooting. I assume this is due to my Samsung screen taking much longer to turn on while booting, maybe it was not recognized when the brightness settings were loaded (it sometimes turns on after typing in the password at SDDM screen).

I will now read into whether I can hardcode the screen brightness for every screen in my session variables (if you call it like that) and how to do that.
Will update this post if I find a solution.

Not a fix for the problem, but a workaround (placed this in autostart to set all displays to 50% brightness):

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.