SUMMARY Due to OLED displays not having a backlight, the typical way of handling brightness (i.e. the brightness control) does not work, ergo changing the brightness slider doesn't actually have any effect. From doing some research it appears that the way this is handled is as an exception case i.e. detect if the display is an OLED and then instead change the gamma instead of the backlight brightness directly from the linux kernel. There is a general topic on reddit here https://www.reddit.com/r/linux/comments/cmf0vi/the_state_of_oled_brightness_on_linux/ with some useful information. System76 which sells linux laptops that have OLED's have also open sourced their solution for the displays (i.e. see https://github.com/pop-os/system76-oled, the solution uses xrandr to solve the problem, i.e. equivalent of xrandr --output eDP-1 --brightness <X> ). It would be great if this functionality was built into KDE's brightness control, from what I know there aren't actually that many laptop OLED displays, they all appear to be created from Samsung so detecting them shouldn't be too hard. SOFTWARE/OS VERSIONS Linux Kernel Version: 5.3.7 (available in About System) KDE Plasma Version: 5.16.5 Distribution: Nixos Unstable
The implementation side seems pretty quiet from what I can tell, but there's been some good discussion happening as part of a Season of KDE project: * SoK proposal: https://invent.kde.org/teams/mentor-programs/2024/-/issues/20 * Architecture discussion: https://invent.kde.org/plasma/kwin/-/issues/206 In a nutshell, the aim is to move brightness controls from PowerDevil to KWin which can implement OLED brightness through color transformations on both X11 and Wayland. More info in the links above.
*** Bug 398890 has been marked as a duplicate of this bug. ***
The KWin side is implemented for HDR displays, making it also work for SDR shouldn't be too complicated for 6.2
Git commit 3c87b7476ef14232e83ff734c926c3b7ff2788e3 by Xaver Hugl. Committed on 14/07/2024 at 00:03. Pushed by zamundaaa into branch 'master'. backends/drm: always expose brightness control This allows the user to change the brightness level of content even if there's no actual underlying "backlight" device. This is the case with many internal OLED screens for example. M +2 -7 src/backends/drm/drm_output.cpp https://invent.kde.org/plasma/kwin/-/commit/3c87b7476ef14232e83ff734c926c3b7ff2788e3