Bug 516867 - Secondary monitor no longer dimming
Summary: Secondary monitor no longer dimming
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Power management & brightness (other bugs)
Version First Reported In: 6.6.1
Platform: CachyOS Linux
: NOR minor
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: multiscreen, regression
Depends on:
Blocks:
 
Reported: 2026-02-28 18:33 UTC by sayonarasidestep
Modified: 2026-04-08 10:01 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.6.3
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description sayonarasidestep 2026-02-28 18:33:54 UTC
SUMMARY
The secondary monitor does not obey the "dim automatically" setting in Power Management; the main monitor does.

STEPS TO REPRODUCE
1. Go to Power Management and set "Dim automatically" to 5 minutes
2. Wait 5 minutes

OBSERVED RESULT
The main monitor dims; the secondary monitor does not.

EXPECTED RESULT
Both monitors should dim.

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: CachyOS
KDE Plasma Version: 6.6.1
KDE Frameworks Version: 6.23
Qt Version: 6.10.2

ADDITIONAL INFORMATION
Disabling and re-enabling the dim setting does not work.
Comment 1 Nate Graham 2026-03-02 22:37:14 UTC
Is the brightness of both monitors controllable in the System Tray "Brightness & Color" widget? Or do you only see one brightness slider, for the main monitor?
Comment 2 sayonarasidestep 2026-03-03 16:38:45 UTC
(In reply to Nate Graham from comment #1)
> Is the brightness of both monitors controllable in the System Tray
> "Brightness & Color" widget? Or do you only see one brightness slider, for
> the main monitor?

Both monitors are shown in the widget.
Comment 3 TraceyC 2026-03-03 22:05:55 UTC
I can reproduce this on Plasma 6.6.1
On Plasma git-master, neither display is dimmed. They are turned off according to the power settings
All displays show up in the brightness widgets on both systems
Comment 4 Sanfod Rockowitz 2026-03-04 03:36:03 UTC
At first glance this doesn't seem like a ddcutil issue to me, but if there is I'd like to know the ddcutil version (CachyOS users are bleeding edge) and also relevant lines from "journalctl -t org_kde_powerdevil".  The full segment would begin with "Starting libddcutil".
Comment 5 TraceyC 2026-03-04 03:56:09 UTC
ddcutil 2.2.3

 journalctl -t org_kde_powerdevil                                
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: Starting libddcutil. library built Not set at Not set. stdout_stderr_redirected=true
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: Initializing libddcutil.  ddcutil version: 2.2.3, shared library: /usr/lib64/libddcutil.so.5.4.0
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]:                           library built Not set at Not set. stdout_stderr_redirected=true
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Options passed from client:
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Applying combined libddcutil options:
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: Library initialization complete.
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: Watching for DPMS state changes unimplemented
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Watching for DPMS state changes unimplemented
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Watching for display connection changes, resolved watch mode = Watch_Mode_Udev, poll lo>
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651]                                          extra_stabilization_millisec: 0,  stabilizatio>
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] libddcutil recheck thread 0x5613d3c8e350 started
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] libddcutil watch thread 0x5613d3c8e2f0 started
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: [  2870] (dw_recheck_displays_func) Recheck interval: Sleeping for 200 milliseconds
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: Handle button events action could not check for screen configuration
Mar 03 14:32:25 tracey-solus-aura org_kde_powerdevil[2651]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 14:32:26 tracey-solus-aura org_kde_powerdevil[2651]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not>
Mar 03 14:32:26 tracey-solus-aura org_kde_powerdevil[2651]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not>
Mar 03 14:33:21 tracey-solus-aura org_kde_powerdevil[4760]: Starting libddcutil. library built Not set at Not set. stdout_stderr_redirected=true
Mar 03 14:33:21 tracey-solus-aura org_kde_powerdevil[4760]: Initializing libddcutil.  ddcutil version: 2.2.3, shared library: /usr/lib64/libddcutil.so.5.4.0
Mar 03 14:33:21 tracey-solus-aura org_kde_powerdevil[4760]:                           library built Not set at Not set. stdout_stderr_redirected=true
Mar 03 14:33:21 tracey-solus-aura org_kde_powerdevil[4760]: [  4760] Options passed from client:
Mar 03 14:33:21 tracey-solus-aura org_kde_powerdevil[4760]: [  4760] Applying combined libddcutil options:
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: Library initialization complete.
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: Watching for DPMS state changes unimplemented
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: [  4760] Watching for DPMS state changes unimplemented
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: [  4760] Watching for display connection changes, resolved watch mode = Watch_Mode_Udev, poll lo>
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: [  4760]                                          extra_stabilization_millisec: 0,  stabilizatio>
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: [  4760] libddcutil recheck thread 0x55bc05044160 started
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: [  4760] libddcutil watch thread 0x55bc0503d660 started
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: [  4926] (dw_recheck_displays_func) Recheck interval: Sleeping for 200 milliseconds
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: Handle button events action could not check for screen configuration
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not>
Mar 03 14:33:22 tracey-solus-aura org_kde_powerdevil[4760]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not>
Mar 03 14:43:44 tracey-solus-aura org_kde_powerdevil[2651]: [  2871] Udev event detected
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2871] Adding connected display with bus 15
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2871] Emitting DDCA_Display_Status_Event[680.362:  DDCA_EVENT_DISPLAY_CONNECTED, card0-DP-1, >
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2871] Starting 1 callback threads
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2871] libddcutil callback thread 0x7f3ee0001fe0 started
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2871] Started 1 event callback thread(s)
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  6767] Invoking callback function 0x7f3f11b51040 for event DDCA_Display_Status_Event[680.362: >
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  6767] Callback function 0x7f3f11b51040 for event DDCA_Display_Status_Event[680.362:  DDCA_EVE>
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Quiescing libddcutil API...
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Quiesce libddcutil API complete
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Display redetection starting.
Mar 03 14:43:45 tracey-solus-aura org_kde_powerdevil[2651]: [  2870] recheck thread terminating because watch thread terminated
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Watch thread terminated.
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: Error detecting VCP version using VCP feature xDF: Error_Info[DDCRC_RETRIES in ddc_write_read_wi>
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Error detecting VCP version using VCP feature xDF: Error_Info[DDCRC_RETRIES in ddc_writ>
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Watching for display connection changes, resolved watch mode = Watch_Mode_Udev, poll lo>
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651]                                          extra_stabilization_millisec: 0,  stabilizatio>
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] libddcutil recheck thread 0x5613d3d9c790 started
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  6768] (dw_recheck_displays_func) Recheck interval: Sleeping for 200 milliseconds
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] libddcutil watch thread 0x5613d3d9c280 started
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Display redetection finished.
Mar 03 14:43:46 tracey-solus-aura org_kde_powerdevil[2651]: [  2651] Unquiescing libddcutil API...
Mar 03 15:30:28 tracey-solus-aura org_kde_powerdevil[2651]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 15:48:00 tracey-solus-aura org_kde_powerdevil[2651]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 15:49:36 tracey-solus-aura org_kde_powerdevil[2651]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 15:49:49 tracey-solus-aura org_kde_powerdevil[2651]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supporte>
Mar 03 19:59:33 tracey-solus-aura org_kde_powerdevil[2651]: Lid action was suppressed because an external monitor is present
lines 1-63/63 (END)
Comment 6 sayonarasidestep 2026-03-04 16:26:22 UTC
(In reply to Sanfod Rockowitz from comment #4)
> At first glance this doesn't seem like a ddcutil issue to me, but if there
> is I'd like to know the ddcutil version (CachyOS users are bleeding edge)
> and also relevant lines from "journalctl -t org_kde_powerdevil".  The full
> segment would begin with "Starting libddcutil".

I am on ddcutil 2.2.5-2-1 from the CachyOS repo.

Output from journalctl:
mrt 04 17:17:44 phoenix org_kde_powerdevil[2169]: Starting libddcutil. library built Not set at Not set. stdout_stderr_redirected=true
mrt 04 17:17:44 phoenix org_kde_powerdevil[2169]: Initializing libddcutil.  ddcutil version: 2.2.5, shared library: /usr/lib/libddcutil.so.5.4.1
mrt 04 17:17:44 phoenix org_kde_powerdevil[2169]:                           library built Not set at Not set. stdout_stderr_redirected=true
mrt 04 17:17:44 phoenix org_kde_powerdevil[2169]: [  2169] Options passed from client:
mrt 04 17:17:44 phoenix org_kde_powerdevil[2169]: [  2169] Applying combined libddcutil options:
mrt 04 17:17:45 phoenix org_kde_powerdevil[2169]: [  2169] busno=7, Feature 0xdd should not exist but ddc_get_nontable_vcp_value() succeeds, returning mh=0x00 ml=0x01 sh=0x00 sl=0x01
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: Library initialization complete.
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: Watching for DPMS state changes unimplemented
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: [  2169] Watching for DPMS state changes unimplemented
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: [  2169] Watching for display connection changes, resolved watch mode = Watch_Mode_Udev, poll loop interval = 500 millisec
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: [  2169]                                          extra_stabilization_millisec: 0,  stabilization_poll_millisec: 100
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: [  2169] libddcutil recheck thread 0x55eb6e039910 started
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: [  2169] libddcutil watch thread 0x55eb6e016e00 started
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: [  2343] (dw_recheck_displays_func) Recheck interval: Sleeping for 200 milliseconds
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: org.kde.powerdevil.backlighthelper.brightness failed
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: Handle button events action could not check for screen configuration
mrt 04 17:17:46 phoenix org_kde_powerdevil[2169]: org.kde.powerdevil.chargethresholdhelper.getthreshold failed "Charge thresholds are not supported by the kernel for this hardware"
mrt 04 17:17:47 phoenix org_kde_powerdevil[2169]: 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'")
mrt 04 17:17:47 phoenix org_kde_powerdevil[2169]: Failed to register with host portal QDBusError("org.freedesktop.portal.Error.Failed", "Could not register app ID: Connection already associated with an application ID")
Comment 7 Sanfod Rockowitz 2026-03-05 09:37:27 UTC
The journalctl output of traceyc with ddcutil 2.2.3 and that of sayonarasidestep  with ddcutil 2.2.5 give no indication that libddcutil is the locus of this bug. 

I do, however, note the following: 

Observations re traceyc output with ddcutil 2.2.3: : 
- libddcutil is started at 14;32;25 and then immediately after at 14:33:21, with no indication that powerdevil restarted. Seems odd to me.
- The failure to read feature xDF VCP version is also odd. I'll spare everyone the complicated details.  To say more I'd have to work with traceyc  However, what's important here is that failure to obtain the VCP version is benign.  It only affects how ddcutil interprets feature values (e.g. feature x10 is called "Brightness" vs "Luminesence" )

Observations re sayonarasidestep output with ddcutil 2.2.5: 
- Unlike the traceyc output, here's no UDEV event logged.  The UDEV event detection code in 2.2.3 and that in 2.2.5 are identical. Do these logs really represent identical events? 


-
Comment 8 Bug Janitor Service 2026-03-06 14:45:49 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/kwin/-/merge_requests/8944
Comment 9 Zamundaaa 2026-03-06 15:58:38 UTC
Git commit a975425e2e1913d35a77164f4600c12fb55bf76c by Xaver Hugl.
Committed on 06/03/2026 at 13:57.
Pushed by zamundaaa into branch 'master'.

backends/drm: fix check for ddc/ci software dimming

We applied dimming on top of the brightness factor, but the brightness factor
wasn't actually always applied.

M  +5    -4    src/backends/drm/drm_output.cpp

https://invent.kde.org/plasma/kwin/-/commit/a975425e2e1913d35a77164f4600c12fb55bf76c
Comment 10 Vlad Zahorodnii 2026-03-06 21:18:43 UTC
Git commit 66352b4211d441484820d08f952809c25de75353 by Vlad Zahorodnii, on behalf of Xaver Hugl.
Committed on 06/03/2026 at 18:14.
Pushed by vladz into branch 'Plasma/6.6'.

backends/drm: fix check for ddc/ci software dimming

We applied dimming on top of the brightness factor, but the brightness factor
wasn't actually always applied.


(cherry picked from commit a975425e2e1913d35a77164f4600c12fb55bf76c)

Co-authored-by: Xaver Hugl <xaver.hugl@kde.org>

M  +5    -4    src/backends/drm/drm_output.cpp

https://invent.kde.org/plasma/kwin/-/commit/66352b4211d441484820d08f952809c25de75353