https://bugs.kde.org/show_bug.cgi?id=519799
Bug ID: 519799
Summary: Panel destroyed in runtime when all DRM outputs become
disconnected (regression vs 6.5) breaks remote-only /
VNC workflows
Classification: Plasma
Product: plasmashell
Version First 6.6.4
Reported In:
Platform: Other
OS: Linux
Status: REPORTED
Severity: major
Priority: NOR
Component: Panel
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: 1.0
SUMMARY
Plasma 6.6 destroys all panels in runtime when 0 DRM outputs are
`connected`. Plasma 6.5 and earlier kept panels rendered (orphaned
but functional), which was relied upon for remote-access workflows.
STEPS TO REPRODUCE
1. Run a Plasma X11 session on a machine accessed via x0vncserver
(mirror of :0).
2. Power off the physical monitor (most LCDs drop HDMI HPD when
powered off, even with cable plugged) — or unplug HDMI cable.
3. Connect via VNC.
OBSERVED
- All DRM connectors report `disconnected` in /sys/class/drm.
- plasmashell logs: `Did not find a valid screen to place a new panel`.
- Panel disappears entirely; system tray, kickoff and clock are gone.
- Reconnecting monitor / re-enabling HPD restores panel.
EXPECTED
Panel persists across transient `0 connected outputs` states, as in
Plasma 6.5. Remote-only workflows (VNC mirroring a powered-off-display
session) should not require workarounds.
REGRESSION RANGE
Worked: Plasma 6.5.x
Broken: 6.6.3 (and confirmed in 6.6.4)
Suspect commits in plasma-workspace (master, 6.5 → 6.6 window):
- 8bc6be2f "Better screen removal handling" (Marco Martin)
https://invent.kde.org/plasma/plasma-workspace/-/commit/8bc6be2f
- 728f0a7d "ShellCorona: ensure screenUiReadyChanged happens for
screens without panels" (2025-11-06)
- 03ed42834c "shell: fix availableScreenRectChanged connecting
to wrong signal" (2025-11-23)
- 0cc554a3 "shell: restore early destroyed guard for panel
containments" (2026-03-03)
- 99f84ed7 "shellcorona: do not crash on panels after their
destruction" (2026-03-10)
These progressively hardened ScreenPool::noRealOutputsConnected()
and ShellCorona::screenInvariants() — the path that destroys panels
when all outputs are disconnected.
WORKAROUND
Forcing the connector via debugfs (`edid_override` + `force=on`) keeps
the panel visible but is fragile and bypasses kernel HPD logic.
REQUEST
Either:
(a) revert the strict invariant so panels persist as "orphaned" when
no outputs are connected, OR
(b) expose a knob (env var or plasmashellrc setting) to opt out of
panel destruction on output loss.
SCOPE / AFFECTED WORKFLOWS
- Session type: X11 (not Wayland; not tested there)
- Remote-only desktop access (VNC via x0vncserver mirror) is the
primary affected workflow — users without a physical monitor on
the box rely on the panel persisting when the LCD is off.
- Also affects users who simply power-cycle their monitor: many
LCDs drop HDMI HPD when powered off even with cable connected.
SYSTEM
Fedora 43, kernel 6.19.10, X11 session, AMD Radeon (amdgpu),
TigerVNC x0vncserver mirroring :0.
(Debug and Written by Claude Code @ Opus 4.7)
--
You are receiving this mail because:
You are watching all bug changes.