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
Summary:
The old code path is old and even sometimes uses the ICE protocol to
start a logout from ksmserver. It's quite archaic and unreadable,
KDisplayManager is even worse.
The new code consists of two parts.
A QML friendly front end QObject that we can register in a plugin that
can trigger actions such as prompting a logout or suspending the system
and a singleton that talks to the relevant backend.
Backends are:
* Any logind interface
* Consolekit2
* Consolekit0.4 + UPower
New API loading is also entirely asyncronous.
There are some behavioural changes:
* Creating a logout prompt is called directly instead of going via
ksmserver. The prompt then calls into ksmserver when accepted
* Suspend is called directly instead of going via powerdevil through
some kdelibs4support solid code.
All DBus calls use generated XML files, instead of big QDBusMessage
commands. It's a bit overkill in terms of what we generate, but that's
ready for moving SessionModel in here and killing KDisplayManager.
Patch looks huge because of all the XML files, but is otherwise very
simple.
It is not currently an API break.
Test Plan:
Ran sessionstest on my logind machine
A BSD user tested CK1
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: pino, broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D19389
I got "#define HAVE_X11 TRUE" and errors because of that where #if was
used.
This also obeys the logic that HAVE_X11 is set (in the toplevel
CMakeLists.txt) not only when X11_FOUND but also when XCB is found.
Summary:
This is a preparation step to unset QT_QPA_PLATFORM from the wayland
startup session script. Setting QT_QPA_PLATFORM breaks 3rd-party Qt
software which does not bundle QtWayland. Most prominent example is
the Qt installer itself (see
https://bugreports.qt.io/browse/QTBUG-60222).
On the other hand our Plasma workspace applications need to be forced to
Wayland on a Wayland system. So we have a conflict between we want to
set QT_QPA_PLATFORM and we don't want to set QT_QPA_PLATFORM.
This change adds new API to KWorkspace to address this problem. The new
method adjusts the QT_QPA_PLATFORM based on the XDG_SESSION_TYPE
enviornment variable. It is completely opt-in. Meaning applications need
to explicitly add the call prior to creating the QGuiApplication and if
the user specifies either QT_QPA_PLATFORM env variable or any of the
-platform command line argument variants, the platform detection is
skipped.
The change also adjusts all plasma-workspace applications which should
use Wayland on Wayland to use the new API. The startup script on the
other hand still sets QT_QPA_PLATFORM. We also have applications outside
of plasma-workspace which needs this detection. Examples are:
* powerdevil
* systemsettings
* kinfocenter
Once this change is merged those applications can be adjusted by linking
against PW::KWorkspace and afterwards QT_QPA_PLATFORM can be unset from
startplasmacompositor.
Test Plan: See added autotest
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10816
setLock was used to tell kdm not to re-auto-login if session is in
crash-restart loop. However given there is no kdm not it serves no use.
Only use was in ksld and was removed in dcdb990e38
Reviewed-By: d_ed
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
techbase wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:
http://community.kde.org/Frameworks/GitOldHistory
If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.
Branched from the monolithic repo kde-workspace, frameworks branch, at commit
049113e719dd2fc4446d054fa1a3aada330094f0