- Remove check for kded and confupdate stages in SplashApp, those setStage()
calls were removed a long time ago[1]
- Rename 'kinit' stage to 'startPlasma', since it's called from startplasma
- Remove startKDEInit(), it was declared but not defined anywhere, most
likely left-over from a previous refactor.
https://phabricator.kde.org/R297:185afa8a3af8002172d8f5d6aa08c57244422a12
Calls to a DBus activated service can fail if the sender quits whilst
the service is spawning
(https://gitlab.freedesktop.org/dbus/dbus/-/issues/72) and using
dbus-daemon.
This is a lazy interim fix that just makes these calls block as proper
fixes will require more work.
BUG: 432460
It gives issues with systemd to try and pass it env var names with eg.
'%' in them. That to such a degree that if invalid names are passed,
none are set [1]. This change ensures compatibility by skipping any
non-alphanumerical (and _) variable names.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1754395
We do this sometimes, but not consistenly.
The benefit is twofold.
First it improves the diff when adding new values since no existing line needs to be touched.
Second it prevents clang-format from collapsing the definition into a single line, which is undesired for large enums.
With newer systemd versions (since 246), getting the "CanMultiSession" property
doesn't work anymore.
It's hidden and always true, see 8f8cc84ba4
and c2b178d3ca
So let's just assume that it's supported if the property is invalid.
BUG: 427777
FIXED-IN: 5.20.3
The test for whether "/auto" is supported was bogus.
QDBusAbstractInterface::isValid effectively just confirms the service
exists and the path is a legally valid name, not that it has any
interfaces there.
This means the fallback path is not run appropriately.
BUG: 423526
This method calls doesn't seem to work anymore having been replaced by
the more intuitve virtual paths on the logind over a year ago.
Arguably that's still a bug upstream that GetSessionByPID no longer
works correctly, but we may as well port to the simpler path that avoids
so many layers of indirection.
Use of "/auto" does not exist on old distros so the legacy path is kept.
The paths used in this class were always wrong, which went unnoticed as
this is the first usage of them.
BUG: 423526
Commit 19c06e7293 removed setting dpy,
but it is still used in the NewKDM and OldKDM code branches.
So set it again, and add a check that it's not empty where relevant.
Systemd doesn't like values containing escape sequence \033 and a fix
won't be accepted upstream. Users of QT_MESSAGE_PATTERN might have this
set already. The big problem is then we can fail to update important
variables such as DISPLAY which all comes as one big update.
In a Plasma Wayland session, kscreenlocker_greet is started by kwin_wayland,
so it doesn't inherit $DISPLAY currently. Additionally, there might not even
be an Xwayland instance running.
Remove the only non-optional use of $DISPLAY and drop the requirement.
During Plasma 5.18, ksmserver was cleverly split so it hosted the new
new interface registering both services names org.kde.ksmserver and
org.kde.Shutdown.
This way we could do a gradual port, update the libs, and migrate the
final code without any breakages. It was a good plan in theory.
In 5.19 we did the final actual splitting, unfortunately in
libkworkspace on the path where we skip logout confirmation had the
wrong name.
BUG: 423391
the actual entry written by the KCM has a lower case 'c'.
this fixes the sessionrunner not correctly honoring the setting as that
readEntry would always return the default true value.
Summary:
Currently startplasma spawns plasma-session then sits around waiting for
that to finish
plasma-session spawns all the startup then also just sits around doing
nothing
This patch makes plasma-session spawn all the startup and then quit.
It also splits the owner of the org.kde.shutdown interface to be on
demand. plasma-shutdown asks ksmserver to quit and then if applicable
runs the shutdown scripts or not.
Startplasma then knows when to exit by monitoring the DBus service
status directly.
The benefits are that we save some resources by not needing
plasma-session lingering about.
It also means the shutdown interface is re-usable as-is when the pending
systemd startup method is used.
Test Plan:
Logged in and:
- ran killall ksmserver, session ended as before
- logged out and cancelled due to unsaved changes
- logged out and completed logout
- logged out and rebooted
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27629
Summary: Equivalent of dbus-update-activation-environment but in runtime
Test Plan:
Changed cursor theme (with some additional fixes there)
Checked the systemd env via the property on manager1.
It had changed
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D27054
This is supposed to replace manual DBus calls to KLauncher setLaunchEnv done in e.g. the KCMs,
so this can easily be extended in the future.
Differential Revision: https://phabricator.kde.org/D26993
Summary:
BUG: 414399
FIXED-IN: 5.18
Test Plan:
1. Lock screen
2. type something in the password field
3. Close lid/suspend system
4. Reopen Lid
Before:
Password text is kept as in step 2
After:
Password text is empty
Reviewers: #plasma, broulik, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D25487
This allows new startup procedures to use a session manager and also
allows us to slowly replace the session manager without breaking plasma.
Following on from the previous refactor, Startup and Shutdown are moved
from kmserver and the previous calls into KSMserver are replaced with
DBus calls.
Reviewers: #plasma, davidedmundson
Reviewed By: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21995
Previously, it would ask ksmserver to show the logout prompt and otherwise directly initate a logout through libSM.
The latter got removed, which is a good thing, but now we need to always know ksmserver which should know what to do.
Differential Revision: https://phabricator.kde.org/D22264