Bug 495223 - Monitor descriptions not updated if monitor switched while suspended
Summary: Monitor descriptions not updated if monitor switched while suspended
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Power management & brightness (other bugs)
Version First Reported In: 6.2.1
Platform: Fedora RPMs Linux
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-10-23 07:38 UTC by Karl-Johan Karlsson
Modified: 2026-02-09 23:21 UTC (History)
6 users (show)

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


Attachments
Screenshot of Brightness and Colour widget, reporting 2 actual HP monitors as 1 Dell and 1 HP (31.94 KB, image/png)
2024-10-23 07:38 UTC, Karl-Johan Karlsson
Details
Two connected; brightness widget sees one (129.74 KB, image/png)
2025-06-25 17:44 UTC, Phil Hord
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Karl-Johan Karlsson 2024-10-23 07:38:12 UTC
Created attachment 175129 [details]
Screenshot of Brightness and Colour widget, reporting 2 actual HP monitors as 1 Dell and 1 HP

SUMMARY

I often move a laptop between two USB-C docks, each with external monitors attached via DisplayPort. While troubleshooting all the brightness issues that appeared in Plasma 6.2, I noticed that after moving between docks, the monitor descriptions in KScreen still show the old monitors.

STEPS TO REPRODUCE

1. Connect to a USB-C dock with 1 external display from Dell.
2. Suspend to RAM.
3. Disconnect from the dock.
4. Connect to another dock, with 2 external displays from HP.
5. Wake up from suspend.
6a. Click the "Brightness and Colour" widget.
6b. Alternatively, click "Display Configuration" in the system tray and then "Configure Display Settings..."
6c. Alternatively, run the following commands:
   qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness.DisplaysDBusNames
take the display numbers for the external monitors from the output and use them as X and Y in the following:
   qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/displayX org.kde.ScreenBrightness.Display.Label
   qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/displayY org.kde.ScreenBrightness.Display.Label

OBSERVED RESULT

Of the two external monitors, one label shows the old Dell monitor, which is no longer connected. The other label shows the correct HP monitor.

EXPECTED RESULT

The labels should reflect the hardware actually plugged in to the system, even after the hardware changes.

SOFTWARE/OS VERSIONS

Operating System: Fedora Linux 40
KDE Plasma Version: 6.2.1
KDE Frameworks Version: 6.7.0
Qt Version: 6.7.2
Kernel Version: 6.10.12-200.fc40.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 12 × 12th Gen Intel® Core™ i7-1255U
Memory: 31.0 GiB of RAM
Graphics Processor: Mesa Intel® Graphics

ADDITIONAL INFORMATION

Laptop is a Lenovo ThinkPad T14 Gen 3, model 21AH00CSMX. Docks are both Lenovo ThinkPad Universal USB-C Docks, model 40AY.
Comment 1 Jakob Petsovits 2025-02-24 18:29:36 UTC
KScreen and the Display Configuration KCM get their data from KWin in a Wayland session. Moving components.
Comment 2 Zamundaaa 2025-05-30 14:00:14 UTC
When you can replicate the problem, does the edid of the display match the information reported by the rest of the system, or does it match the actually connected display?

You can check with
> edid-decode /sys/class/drm/card1-DP-1/edid
(connector name will need adjusting)
Comment 3 Karl-Johan Karlsson 2025-06-10 10:39:02 UTC
The EDID matches the actual physical display, not the information reported in the brightness and colour widget.
Comment 4 Karl-Johan Karlsson 2025-06-11 07:19:43 UTC
(In reply to Karl-Johan Karlsson from comment #3)
> The EDID matches the actual physical display, not the information reported
> in the brightness and colour widget.

The EDID also matches what's shown in System Settings -> Display & Monitor -> Display Configuration. It's mostly the Brightness and Colour widget that gets it wrong.
Comment 5 Phil Hord 2025-06-25 17:44:55 UTC
Created attachment 182661 [details]
Two connected; brightness widget sees one

I think I may be seeing the same thing.  I have one monitor at work and two at home.  The monitors at home are both the same make and model.  While both were connected, the brightness widget showed only one.  I assumed this was because they both had the same "name".  

When I checked at work, though, the external monitor did not appear at all in the brightness widget; only the built-in screen did.  

When I open the Settings > Monitor page, the monitors are always represented accurately.  

After opening the Monitor settings at the office, the external monitor did appear on the Brightness control widget.  So I'm starting to the think the brightness widget is simply out-of-sync with the devices somehow, which matches with this bug.

I'll do more testing when I get home later.

One critical point is that I noticed the issue at home after rebooting.  So it wasn't caused by switching while suspended in my case.

Added attachment showing my two monitor mystery at home.
Comment 6 Zamundaaa 2026-01-20 20:30:29 UTC
Do you still see this in Plasma 6.5?
Comment 7 Karl-Johan Karlsson 2026-01-21 08:35:40 UTC
(In reply to Zamundaaa from comment #6)
> Do you still see this in Plasma 6.5?

Yes. I am seeing it today, running:

Operating System: Fedora Linux 43
KDE Plasma Version: 6.5.5
KDE Frameworks Version: 6.22.0
Qt Version: 6.10.1
Kernel Version: 6.18.4-200.fc43.x86_64 (64-bit)
Graphics Platform: X11
Processors: 12 × 12th Gen Intel® Core™ i7-1255U
Memory: 32 GiB of RAM (31.0 GiB usable)
Graphics Processor: Intel® Iris® Xe Graphics
Comment 8 Zamundaaa 2026-01-22 16:55:12 UTC
Okay, then there's either an edge case where the applet doesn't update the labels, or powerdevil doesn't update the descriptions.
If you run
> systemctl --user restart plasma-plasmashell
while the issue is present, does that fix it?
Comment 9 Karl-Johan Karlsson 2026-01-23 16:25:44 UTC
(In reply to Zamundaaa from comment #8)
> If you run
> > systemctl --user restart plasma-plasmashell
> while the issue is present, does that fix it?

It does not.

Plasma thinks it has an HP:

> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness.DisplaysDBusNames
> display0
> display2
> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/display0 org.kde.ScreenBrightness.Display.Label
> Built-in Screen
> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/display2 org.kde.ScreenBrightness.Display.Label
> HP E243i

EDID (and my eyes) say Dell:

> $ for f in /sys/class/drm/card1-DP-*/edid; do edid-decode "$f" | grep Name; done
>     Display Product Name: 'DELL U2713HM'

I restart plasmashell:

> $ systemctl --user restart plasma-plasmashell

But Plasma still reports HP:

> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness.DisplaysDBusNames
> display0
> display2
> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/display2 org.kde.ScreenBrightness.Display.Label
> HP E243i
Comment 10 Bug Janitor Service 2026-02-07 03:50:45 UTC
🐛🧹 ⚠️ This bug has been in NEEDSINFO status with no change for at least 15 days. Please provide the requested information, then set the bug status to REPORTED. If there is no change for at least 30 days, it will be automatically closed as RESOLVED WORKSFORME.

For more information about our bug triaging procedures, please read https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging.

Thank you for helping us make KDE software even better for everyone!
Comment 11 Zamundaaa 2026-02-09 15:44:46 UTC
Alright, then it's almost certainly in powerdevil. I assume if you do
> systemctl --user restart plasma-powerdevil
that does help?
Comment 12 Karl-Johan Karlsson 2026-02-09 16:53:01 UTC
(In reply to Zamundaaa from comment #11)
> Alright, then it's almost certainly in powerdevil. I assume if you do
> > systemctl --user restart plasma-powerdevil
> that does help?

Yes, it does!

I started connected to a Dell, which Plasma thought was an HP:

> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness.DisplaysDBusNames
> display0
> display8
> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/display0 org.kde.ScreenBrightness.Display.Label
> Built-in Screen
> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/display8 org.kde.ScreenBrightness.Display.Label
> HP E243i
> $ for f in /sys/class/drm/card1-DP-*/edid; do edid-decode "$f" | grep Name; done
>     Display Product Name: 'DELL U2713HM'

I restarted plasma-powerdevil:

> $ systemctl --user restart plasma-powerdevil

After that, both DBus and the Brightness and Colour widget report the correct Dell:

> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness org.kde.ScreenBrightness.DisplaysDBusNames
> display0
> display1
> $ qdbus-qt6 org.kde.ScreenBrightness /org/kde/ScreenBrightness/display1 org.kde.ScreenBrightness.Display.Label
> DELL U2713HM
Comment 13 Bug Janitor Service 2026-02-09 21:08:44 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/powerdevil/-/merge_requests/609
Comment 14 Zamundaaa 2026-02-09 21:39:04 UTC
Git commit e6993bef14a493515cf374565639dab118929164 by Xaver Hugl.
Committed on 09/02/2026 at 21:26.
Pushed by zamundaaa into branch 'master'.

daemon/controllers: re-create KWinDisplayBrightness when the label changes

libkscreen re-uses output objects when their ID is the same, even if the
underlying data (like the EDID) is different. Usually that's not a problem,
but in some cases it resulted in the label not updating when the hardware
changed. To fix it, just re-create the KWinDisplayBrightness object when the
label would be different.

M  +23   -13   daemon/controllers/kwinbrightness.cpp
M  +2    -1    daemon/controllers/kwinbrightness.h

https://invent.kde.org/plasma/powerdevil/-/commit/e6993bef14a493515cf374565639dab118929164
Comment 15 Zamundaaa 2026-02-09 23:20:23 UTC
Git commit 37eeb4d55b27a642b3da73ecc057350615bfc049 by Xaver Hugl.
Committed on 09/02/2026 at 21:39.
Pushed by zamundaaa into branch 'Plasma/6.6'.

daemon/controllers: re-create KWinDisplayBrightness when the label changes

libkscreen re-uses output objects when their ID is the same, even if the
underlying data (like the EDID) is different. Usually that's not a problem,
but in some cases it resulted in the label not updating when the hardware
changed. To fix it, just re-create the KWinDisplayBrightness object when the
label would be different.


(cherry picked from commit e6993bef14a493515cf374565639dab118929164)

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

M  +23   -13   daemon/controllers/kwinbrightness.cpp
M  +2    -1    daemon/controllers/kwinbrightness.h

https://invent.kde.org/plasma/powerdevil/-/commit/37eeb4d55b27a642b3da73ecc057350615bfc049
Comment 16 Zamundaaa 2026-02-09 23:20:44 UTC
Git commit 8c6f00fa7c39bc4a594c4f16649f102542181b39 by Xaver Hugl.
Committed on 09/02/2026 at 21:39.
Pushed by zamundaaa into branch 'Plasma/6.5'.

daemon/controllers: re-create KWinDisplayBrightness when the label changes

libkscreen re-uses output objects when their ID is the same, even if the
underlying data (like the EDID) is different. Usually that's not a problem,
but in some cases it resulted in the label not updating when the hardware
changed. To fix it, just re-create the KWinDisplayBrightness object when the
label would be different.


(cherry picked from commit e6993bef14a493515cf374565639dab118929164)

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

M  +23   -13   daemon/controllers/kwinbrightness.cpp
M  +2    -1    daemon/controllers/kwinbrightness.h

https://invent.kde.org/plasma/powerdevil/-/commit/8c6f00fa7c39bc4a594c4f16649f102542181b39