https://bugs.kde.org/show_bug.cgi?id=526259
Bug ID: 526259
Summary: Panel never appears when plasmashell inherits
QT_QPA_PLATFORM=xcb from the systemd user environment
(left by an earlier X11 session in the same boot)
Classification: Plasma
Product: plasmashell
Version First 6.6.6
Reported In:
Platform: Kubuntu
OS: Linux
Status: REPORTED
Severity: normal
Priority: NOR
Component: Startup process
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
Target Milestone: 1.0
SUMMARY
If an X11 desktop session (here: Xfce 4.20, started via SDDM) ran earlier in
the same boot, QT_QPA_PLATFORM=xcb ends up in the systemd user manager
environment (`systemctl --user show-environment`). A subsequent Plasma Wayland
login imports that environment: plasmashell, ksmserver etc. run with
QT_QPA_PLATFORM=xcb, i.e. as XWayland clients. plasmashell then builds the
panel normally (config written, [PlasmaViews][Panel N] written, all applets
loaded, panels() in the scripting API reports it) but never creates a
layer-shell surface. KWin's workspace.windowList() shows only the desktop views
and no dock window. The panel is simply invisible, with no error message
anywhere; the desktop views still appear, which makes this very hard to
diagnose.
None of the usual recovery steps help, because none of them touches the manager
environment: logging out and in again, resetting
plasma-org.kde.plasma.desktop-appletsrc and plasmashellrc, switching
Look-and-Feel to Breeze, clearing ~/.cache/plasma* and ksycoca6, reinstalling
plasma-workspace/plasma-desktop/kwin-wayland. Only a reboot without the
intermediate X11 login, or
systemctl --user set-environment QT_QPA_PLATFORM=wayland
systemctl --user restart plasma-plasmashell
brings the panel back immediately (KWin then lists: plasmashell | 5120x62 |
layer=3 dock=true).
STEPS TO REPRODUCE
1. Same boot: log into an X11 session (Xfce via SDDM), log out.
2. Log into Plasma (Wayland).
3. tr '\0' '\n' </proc/$(pgrep -x plasmashell)/environ | grep QT_QPA_PLATFORM
-> xcb
OBSERVED RESULT
No panel. qdbus6 org.kde.plasmashell /PlasmaShell evaluateScript
'print(panels().length)' -> 1, with all widgets. KWin scripting: 4 windows (2
desktop views, 2 apps), no dock=true window. A freshly created panel (new
Panel("org.kde.panel")) does not appear either.
EXPECTED RESULT
startplasma-wayland sets QT_QPA_PLATFORM explicitly for the Wayland session (or
at least unsets/overrides a foreign xcb value and logs a warning), the same way
it controls other session variables. Alternatively plasmashell should refuse to
start with a non-Wayland QPA inside a Wayland session and log a clear error
instead of silently producing an invisible panel.
SOFTWARE/OS VERSIONS
Kubuntu 26.04 LTS, Plasma 6.6.6 (plasma-workspace 4:6.6.6-0ubuntu0.1), Qt
6.10.2, SDDM 0.21, Wayland session, Xfce 4.20 as the X11 session.
ADDITIONAL INFORMATION
- logind: session 4 (type x11, Xfce) at 23:55, session 8 (type wayland, Plasma)
at 00:16, same systemd user manager PID since 23:54.
- Environment of the startplasma-wayland process: QT_QPA_PLATFORM not set. Its
children ksmserver and plasmashell: QT_QPA_PLATFORM=xcb. So the value is
imported from the systemd/D-Bus activation environment during startup.
- Where Xfce sets the variable was not pinned down; the leak through
dbus-update-activation-environment is generic and would happen with any X11
session that exports it.
- User-side workaround: ~/.config/plasma-workspace/env/00-qt-wayland.sh
exporting QT_QPA_PLATFORM="wayland;xcb", plus a plasma-plasmashell.service
drop-in with Environment=QT_QPA_PLATFORM=wayland.
- Context: the X11 fallback session was only used because of a concurrent
fontconfig crash caused by Chromium 154 cache symlinks, reported separately as
https://bugs.launchpad.net/ubuntu/+source/fontconfig/+bug/2168605
--
You are receiving this mail because:
You are watching all bug changes.