It is important that we end plasma-core.target plasma-workspace.target and graphical-session.target when we log out. graphical-session in turn closes all other apps and daemons and prevents restarts. Handling it in systemd gives the least racey option. graphical-session used to be hanlded in the plasma-ksmserver service file, but this was removed in 5.24 in a refactor where it caused issues for Xwayland restarting. This patch reintroduces the sentinel programs to close down our target, which in turn take down the other targets. It also removes a complicated use of templates that in hindsight didn't really solve anything. BUG: 448492 Testing done: - logout of wayland shows all targets as inactive, logging in repeatedly works smoothly - logout of X11 behaves the same. - calling systemctl --user stop plasma-kwin_wayland.service closes the session - killing ksmserver on wayland does not close the session - killing ksmserver on X doeswilder-5.25
parent
7e04bf8f6f
commit
39ecc45e5b
7 changed files with 22 additions and 9 deletions
@ -0,0 +1,4 @@ |
||||
[Unit] |
||||
Requires=plasma-workspace.target |
||||
Requires=plasma-kwin_wayland.service |
||||
BindsTo=plasma-kwin_wayland.service |
||||
@ -0,0 +1,4 @@ |
||||
[Unit] |
||||
Wants=plasma-kwin_x11.service |
||||
Requires=plasma-workspace.target |
||||
BindsTo=plasma-ksmserver.service |
||||
@ -0,0 +1,8 @@ |
||||
[Unit] |
||||
Description=KDE Plasma Workspace |
||||
Requires=plasma-core.target graphical-session.target |
||||
Wants=plasma-restoresession.service plasma-xembedsniproxy.service plasma-gmenudbusmenuproxy.service plasma-powerdevil.service plasma-ksplash-ready.service plasma-polkit-agent.service kde-baloo.service plasma-foreground-booster.service plasma-kwallet-pam.service xdg-desktop-autostart.target |
||||
BindsTo=graphical-session.target |
||||
Before=graphical-session.target xdg-desktop-autostart.target plasma-ksplash-ready.service plasma-restoresession.service |
||||
RefuseManualStart=yes |
||||
StopWhenUnneeded=true |
||||
@ -1,6 +0,0 @@ |
||||
[Unit] |
||||
Description=KDE Plasma Workspace |
||||
Requires=plasma-core.target graphical-session.target |
||||
Wants=plasma-kwin_%i.service plasma-restoresession.service plasma-xembedsniproxy.service plasma-gmenudbusmenuproxy.service plasma-powerdevil.service plasma-ksplash-ready.service plasma-polkit-agent.service kde-baloo.service plasma-foreground-booster.service plasma-kwallet-pam.service xdg-desktop-autostart.target |
||||
BindsTo=graphical-session.target |
||||
Before=graphical-session.target xdg-desktop-autostart.target plasma-ksplash-ready.service plasma-restoresession.service |
||||
Loading…
Reference in new issue