https://bugs.kde.org/show_bug.cgi?id=520098
Michael Wheatland <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #9 from Michael Wheatland <[email protected]> --- The `replication source:1` reported here looks like libkscreen mis-resolving the "no replication" sentinel rather than KWin actually setting a replica. `backends/kwayland/waylandoutputdevice.cpp:212-219` resolves the replication source by comparing every output's UUID against `m_replicationSource`, which is an empty string when nothing is mirrored, with no guard for that: ```cpp int replicationSourceId = 0; for (auto it = outputMap.begin(); it != outputMap.end(); it++) { if (it.value()->uuid() == m_replicationSource) { replicationSourceId = it.key(); break; } } ``` An output KWin failed to configure has an empty UUID, so the empty sentinel matches it and every output is reported as a replica of it. That would explain why the value here is exactly the id of the display that got disabled by the lid close, rather than an arbitrary number. I hit the same signature from the other direction on 6.6.6: four connected outputs on a three-pipe Intel Lunar Lake iGPU, the undriveable output is #4, and every output reports `replication source:4` with `clones=[]` on all four. The knock-on is worse than the Spectacle symptom. kscreen's KCM filters on `isEnabled() && replicationSource() == 0` (`kcm/kcm.cpp:383`) and clears `m_configNeedsSave` when the filter matches nothing, so Display & Monitor reports that all displays are disabled and Apply stops working — the GUI can no longer be used to undo the state. Filed against libkscreen with a proposed guard: https://bugs.kde.org/show_bug.cgi?id=526366. The code is unchanged on `master` and `Plasma/6.7`, so this part is not fixed in 6.7 even though the Spectacle symptom is. -- You are receiving this mail because: You are watching all bug changes.
