Bug 498771 - Screen brightness increases dramatically after setting suspend session time in System Settings -> Power Management
Summary: Screen brightness increases dramatically after setting suspend session time i...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Power management & brightness (show other bugs)
Version: 6.2.5
Platform: Other Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-01-17 00:57 UTC by Peter Huatan
Modified: 2025-03-01 14:50 UTC (History)
5 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.3.2
Sentry Crash Report:


Attachments
Power Management Suspend Session dialog (170.73 KB, image/png)
2025-01-17 22:39 UTC, Peter Huatan
Details
~/.config/powerdevilrc (133 bytes, text/plain)
2025-01-17 22:42 UTC, Peter Huatan
Details
Output of ddcutil capabilities (1.31 KB, text/plain)
2025-01-18 01:33 UTC, Peter Huatan
Details
Output of ddcutil detect (370 bytes, text/plain)
2025-01-18 01:34 UTC, Peter Huatan
Details
Output of ddcutil display 1 getvcp 10 (89 bytes, text/plain)
2025-01-18 01:34 UTC, Peter Huatan
Details
Output of ddcutil vcpinfo (34.94 KB, text/plain)
2025-01-18 01:34 UTC, Peter Huatan
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Huatan 2025-01-17 00:57:36 UTC
***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports

SUMMARY

Reproducible 100% of the time, after setting the suspend Session time out interval, the display brightness increases dramatically. 

STEPS TO REPRODUCE
1.  Open System Settings from dock
2.  Go to Power Management
3.  On the first line "When inactive" there are 2 drop down boxes.  Drop down the right most one to set the time out interval. 
4.  Select a time or enter a custom time. 
5.  Click "OK" in the dialog box.
6.  Click "Apply" on the Power Management window. 
7.  The screen brightness increases dramatically.

OBSERVED RESULT

The screen brightness increases dramatically. 

EXPECTED RESULT

No change to the screen brightness. 

SOFTWARE/OS VERSIONS
(available in the Info Center app, or by running `kinfo` in a terminal window)
Operating System: Fedora Linux 41
KDE Plasma Version: 6.2.5
KDE Frameworks Version: 6.10.0
Qt Version: 6.8.1
Kernel Version: 6.12.8-200.fc41.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 7840HS w/ Radeon 780M Graphics
Memory: 27.1 GiB of RAM
Graphics Processor: AMD Radeon 780M

ADDITIONAL INFORMATION
Comment 1 Nate Graham 2025-01-17 16:07:22 UTC
Cannot reproduce in git master. Is this one of the things expected to be fixed in Plasma 6.3, Jakob?
Comment 2 Jakob Petsovits 2025-01-17 22:04:25 UTC
(In reply to Nate Graham from comment #1)
> Cannot reproduce in git master. Is this one of the things expected to be
> fixed in Plasma 6.3, Jakob?

Not something that I'm aware of, no.

Suspend Session idle timeout has no impact on screen brightness, so any change to brightness would need to come from the fact that power state profiles get reloaded after a change.

Peter, please provide further information to help with analyzing what's really happening:
* Which power state are you changing settings for: AC Power, Battery or Low Battery?
* Attach your ~/.config/powerdevilrc (in particular, I'm interested in any settings for "Change screen brightness")
* If possible, enable verbose logging for the plasma-powerdevil background service and attach journalctl logs for when you make the change in System Settings. Instructions for verbose logging can be found here: https://invent.kde.org/jpetso/powerdevil/-/blob/work/jpetso/readme/README.md#troubleshooting-reporting-bugs

Thanks!
Comment 3 Jakob Petsovits 2025-01-17 22:05:52 UTC
Also, please confirm that we're talking about the internal laptop display here. If you have any external monitors plugged in, please describe your setup.
Comment 4 Peter Huatan 2025-01-17 22:39:30 UTC
Created attachment 177471 [details]
Power Management Suspend Session dialog

I change the value in the drop down combo box on the top line, right side, with the text "After 30 minutes" in the attached screen grab.
Comment 5 Peter Huatan 2025-01-17 22:42:27 UTC
Created attachment 177472 [details]
~/.config/powerdevilrc

The ~/.config/powerdevilrc file from  my system.
Comment 6 Peter Huatan 2025-01-17 22:43:55 UTC
Hi,

I am not on a laptop.  I'm on a desktop with a separate external monitor.  Could you tell me what details you need for my system (the computer) and the monitor?  I'll be happy to provide what I can.
Comment 7 Jakob Petsovits 2025-01-17 23:39:51 UTC
(In reply to Peter Huatan from comment #6)
> I am not on a laptop.  I'm on a desktop with a separate external monitor. 
> Could you tell me what details you need for my system (the computer) and the
> monitor?  I'll be happy to provide what I can.

Ah sorry, I incorrectly assumed based on the 7840HS. Thanks for the quick responses. Here are two terminal commands that will show more information about your monitor, please paste the output into this bug report:

$ ddcutil detect
(look at the list and use your monitor's display number in the command below, likely 1)
$ ddcutil --display 1 getvcp 10

So what's generally happening on your system is that the plasma-powerdevil background service reloads the power management settings after you press "Apply", and tries to set brightness to 48% as you've configured in the "Change screen brightness" setting on the same settings page. You can prevent the brightness change on "Apply" if you disable the "Change screen brightness" setting with its checkbox.

Now, I'm not sure why 48% would count as "dramatically increased brightness", but I also don't know what your original brightness value was.

Perhaps let me know what your the ddcutil getvcp command that I mentioned above prints before and after screen brightness increases for you. Most importantly, do these values this match up with the level that your monitor's OSD menu shows?

Note that I'm currently preparing a merge request which would disable and hide the "Change screen brightness" setting for systems without battery, and for systems without an internal display. It's likely more confusing for desktop PC users than it helps, especially because there is already a similar but slightly different setting for each screen separately, which can be configured in the Brightness and Color applet and also in the Display Configuration page in System Settings. So, if you don't disable the checkbox, I may do it for you automatically in a future release :)
Comment 8 Peter Huatan 2025-01-18 01:33:45 UTC
Created attachment 177478 [details]
Output of ddcutil capabilities
Comment 9 Peter Huatan 2025-01-18 01:34:12 UTC
Created attachment 177479 [details]
Output of ddcutil detect
Comment 10 Peter Huatan 2025-01-18 01:34:35 UTC
Created attachment 177480 [details]
Output of ddcutil display 1 getvcp 10
Comment 11 Peter Huatan 2025-01-18 01:34:59 UTC
Created attachment 177481 [details]
Output of ddcutil vcpinfo
Comment 12 Peter Huatan 2025-01-18 01:36:18 UTC
OK, Jakob,

I uploaded the files you requested.  Please let me know if I omitted anything and I'll address it promptly.
Comment 13 Jakob Petsovits 2025-01-18 03:07:36 UTC
Thanks for the uploads. So your regular monitor brightness is 14 out of 100, whereas Power Management settings specify 48 which is indeed much brighter.

I'll stick to my conclusion that the best course of action for you would be to turn off the "Change screen brightness" option in Power Management settings, and instead use the brightness applet or Display Configuration settings to set monitor brightness. Let me know if that's a sufficient fix for you.

I'll also go ahead with submitting my changes to remove this option for desktop PC users, where there's no point in changing screen brightness between battery and plugged in modes.
Comment 14 Peter Huatan 2025-01-19 02:29:28 UTC
Hello Jakob,

I think that's perfectly acceptable, to unset "Change screen brightness" on the Power Management dialog.  

Could you tell me what is the purpose of this setting?  Is seems to me that the setting should set the brightness to what the user specifies in the slider... ONLY when the user makes a change using the slider.  

Now I'm guessing that the power management software is changing the screen brightness to the value set in the slider even when the screen timeout interval value is changed.  This makes no sense to me, not for a laptop, and not for a desktop.  Thus my opinion is that this is still a bug.

But please let me know if I'm misunderstanding the design or intended function of these controls.
Comment 15 Jakob Petsovits 2025-02-21 06:36:45 UTC
Git commit 5460428e2dd1d7bac01ccbad23f501161635bd35 by Jakob Petsovits.
Committed on 20/02/2025 at 01:57.
Pushed by jpetso into branch 'master'.

actions/screenbrightnesscontrol: More robust against display changes

To avoid weird racy behavior in the case where an external monitor
may have been added prior to the internal display, we now always
limit the set of displays affected by profile state configuration
to internal displays.

This will make the "Change screen brightness" option disappear
from the Power Management KCM for systems without internal display.
No big loss for users of desktop PCs with only external monitors
and no batteries, their KCM is now tidier and Wayland users still
have brightness sliders available in the Display Configuration KCM
in addition to the Brightness and Color applet.

Also simplify conditions: the check for higher-than-min isn't needed,
so we don't have to duplicate it in the `displayAdded` handler.
`ScreenBrightnessController::setBrightness()` will already clamp
brightness to a value between min and max brightness.

Lastly, profile brightness is now also applied on `displayAdded`.
This will avoid future bugs in case we ever have more than one
internal display, one that might turn off and back on. (The case of
the first internal display appearing and disappearing is already
handled by `PowerDevil::Core` deleting the action if unsupported.)
Related: bug 494956

M  +28   -27   daemon/actions/bundled/screenbrightnesscontrol.cpp
M  +6    -3    daemon/actions/bundled/screenbrightnesscontrol.h
M  +12   -0    daemon/controllers/screenbrightnesscontroller.cpp
M  +7    -0    daemon/controllers/screenbrightnesscontroller.h

https://invent.kde.org/plasma/powerdevil/-/commit/5460428e2dd1d7bac01ccbad23f501161635bd35
Comment 16 Jakob Petsovits 2025-02-21 06:36:53 UTC
Git commit 6c875c360caadcc828c56e7a8831727d77ce75b0 by Jakob Petsovits.
Committed on 20/02/2025 at 01:57.
Pushed by jpetso into branch 'master'.

actions/screenbrightnesscontrol: Only enable for systems with battery

Users with only the AC Power profile aren't getting anything useful
from this setting in the Power Management KCM, it's rather more
confusing than it helps. This change complements the previous commit
that limited profile-based screen brightness changes to internal
displays only.

Recommended alternatives for setting screen brightness are the
Brightness and Color applet and the Display Configuration KCM,
both of which allow setting brightness separately for each display.
Related: bug 494956

M  +12   -1    daemon/actions/bundled/screenbrightnesscontrol.cpp
M  +1    -0    daemon/actions/bundled/screenbrightnesscontrol.h

https://invent.kde.org/plasma/powerdevil/-/commit/6c875c360caadcc828c56e7a8831727d77ce75b0
Comment 17 Jakob Petsovits 2025-02-21 07:12:03 UTC
Git commit 06260f7785738fe45fdcd60e1c2bbd6bd3ee2bde by Jakob Petsovits.
Committed on 21/02/2025 at 07:06.
Pushed by jpetso into branch 'Plasma/6.3'.

actions/screenbrightnesscontrol: More robust against display changes

To avoid weird racy behavior in the case where an external monitor
may have been added prior to the internal display, we now always
limit the set of displays affected by profile state configuration
to internal displays.

This will make the "Change screen brightness" option disappear
from the Power Management KCM for systems without internal display.
No big loss for users of desktop PCs with only external monitors
and no batteries, their KCM is now tidier and Wayland users still
have brightness sliders available in the Display Configuration KCM
in addition to the Brightness and Color applet.

Also simplify conditions: the check for higher-than-min isn't needed,
so we don't have to duplicate it in the `displayAdded` handler.
`ScreenBrightnessController::setBrightness()` will already clamp
brightness to a value between min and max brightness.

Lastly, profile brightness is now also applied on `displayAdded`.
This will avoid future bugs in case we ever have more than one
internal display, one that might turn off and back on. (The case of
the first internal display appearing and disappearing is already
handled by `PowerDevil::Core` deleting the action if unsupported.)
Related: bug 494956

(cherry picked from commit 5460428e2dd1d7bac01ccbad23f501161635bd35)

M  +28   -27   daemon/actions/bundled/screenbrightnesscontrol.cpp
M  +7    -3    daemon/actions/bundled/screenbrightnesscontrol.h
M  +12   -0    daemon/controllers/screenbrightnesscontroller.cpp
M  +7    -0    daemon/controllers/screenbrightnesscontroller.h

https://invent.kde.org/plasma/powerdevil/-/commit/06260f7785738fe45fdcd60e1c2bbd6bd3ee2bde
Comment 18 Jakob Petsovits 2025-02-21 07:12:27 UTC
Git commit 984548ffb494d353365c024d843126872b323dba by Jakob Petsovits.
Committed on 21/02/2025 at 07:06.
Pushed by jpetso into branch 'Plasma/6.3'.

actions/screenbrightnesscontrol: Only enable for systems with battery

Users with only the AC Power profile aren't getting anything useful
from this setting in the Power Management KCM, it's rather more
confusing than it helps. This change complements the previous commit
that limited profile-based screen brightness changes to internal
displays only.

Recommended alternatives for setting screen brightness are the
Brightness and Color applet and the Display Configuration KCM,
both of which allow setting brightness separately for each display.
Related: bug 494956
(cherry picked from commit 6c875c360caadcc828c56e7a8831727d77ce75b0)

M  +12   -1    daemon/actions/bundled/screenbrightnesscontrol.cpp
M  +1    -0    daemon/actions/bundled/screenbrightnesscontrol.h

https://invent.kde.org/plasma/powerdevil/-/commit/984548ffb494d353365c024d843126872b323dba
Comment 19 reports_go_brrr 2025-03-01 09:34:55 UTC
> This will make the "Change screen brightness" option disappear
> from the Power Management KCM for systems without internal display.
> No big loss for users of desktop PCs with only external monitors
> and no batteries

I consider this "fix" as new problem. Functionality fragmentation per platform in cases where they are completely avoidable, do create useless inconsistency.
Automatic change of screen brightness is a benefit for OLED screen owners, for people who want to save electricity.
I demand re-look of this bug.
Comment 20 reports_go_brrr 2025-03-01 09:48:00 UTC
For me with Nvidia GPU and 2010s display monitor it worked fine.
After Plasma 6.3.2 this setting disappeared.

Operating System: Arch Linux 
KDE Plasma Version: 6.3.1
KDE Frameworks Version: 6.11.0
Qt Version: 6.8.2
Kernel Version: 6.13.4-arch1-1 (64-bit)
Graphics Platform: Wayland
Comment 21 reports_go_brrr 2025-03-01 14:50:07 UTC
Apologies for reopening. Misunderstood change brightness setting and dimming.