Currently we have a whole daisy-chain of startplasmawayland-> kwin ->
startplasmawaylandsession -> launching the session.
This was needed as we needed environment variables which previously we
only knew after kwin started.
After some kwin refactoring this is no longer the case, and
kwin_wayland_wrapper will sync it's environment variables to the
appropriate startup environments.
This allows us to move starting kwin_wayland to be systemd managed,
brining resource control, alongside it's classic counterpart
plasma-session.
Changes how plasma_session works. Instead of just starting the
processes, plays the startup sound and stays around. This process then
gets to be terminated as the session ends.
BUG: 359651
BUG: 433293
This will avoid name conflicts in the future and emphasizes that
we are in fact dealing with a plasma specific class.
Relates to https://phabricator.kde.org/T12176
The handling of the autostart is exclusively done in plasma.
Also the method of KAutostart do not work cross platform and most apps
simply use the X-KDE-autostart-condition, which is not affected by this MR.
In case we need to configure cross platform autostart logic the KService class
needs to be rewritten anyways. But there is currently no need or plans for it.
By importing this class in plasma-workspace we are more flexible in any case.
Task: https://phabricator.kde.org/T12176
Summary:
This brings numerous advantages such as:
- easier admin configuration with drop-ins, overrides and multiple
hooks throughout (and only having to learn one tool)
- session cleanup on exit, avoiding that occasional part where shutdown
hangs
- startup that actually knows when things are up
- race free autostart and DBus activation at once
- logs that rotate are split by service and usable
- resource management through slices and cgroups (the part I want)
Over the past 2 years I've been trying to tidy up and encapsulate the
relevant parts of startup into the binary plasma-session so that we can
just runtime swap out that one part and supporting both paths will be
easy.
Support is toggleable via cmake flag, as it seems like it should be a
distro decision, especially as we will require a specific systemd with
the xdg-generator.
KDED/kwin/other services are attached to the relevant repo.
Task T11914
Differential Revision: https://phabricator.kde.org/D28305
squash
Typically on modern systems this will be started for us earlier in the
startup series and we don't have to worry about it.
For X11 clients look for the bus address on the X11 root window as a way
of sharing.
For reasons at the time we start our own DBus session within our wayland
session. Nesting causes conflicts and problems so this patch only start
a dbus session if one has not been set up already.
BUG: 404335
Summary:
For systemd autostart generator will add a ExecCondition=kde-systemd-start-condition rcfile:section:entry:default
As described in T12627. Needs D28421
Test Plan:
Run kde-systemd-start-condition; should return 0 with a missing or incomplete argument, 255 with a false or non-existent and non-default con
fig value.
Reviewers: davidedmundson, broulik, dfaure, ngraham, meven
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D28424
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
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
Summary:
At the moment we had several scripts to start the different processes. With this we unify this code into an application that takes care of the whole process.
This allows us to:
- Save on process spawning, we don't need to run a separate process synchronously for every single thing.
- Don't have a redundant configuration file parser but reuse the one we've already optimised in KConfig.
- Issue dbus calls from the process itself instead of spawning qdbus.
- Removes a bunch of duplicated code.
Test Plan: Started different systems on different distros, on wayland and x11.
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D21725
Summary:
kcheckrunning is only used by startkde, it shouldn't be in the ksmserver
folder.
No code or behavioural changes, just tidying.
Reviewers: #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: broulik, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D15202
Summary:
Consistent usage of install variables avoids mismatches for people who
make use of custom settings of install paths.
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10400
Summary:
Consistent usage of install variables avoids mismatches for people who
make use of custom settings of install paths.
Reviewers: #plasma, apol
Reviewed By: apol
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D10400
Both are basically a fork of startkde split into
* everything needed before kwin_wayland starts
* everything which needs to happen after kwin_wayland
A few things are X11 specific and need to go after kwin_wayland
gets started.
REVIEW: 124293
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