Reshuffling startup to start activity manager after ksmserver
Simon Persson
simonpersson1 at gmail.com
Sat May 25 10:38:49 UTC 2013
Hello,
After seeing Kevin Ottens suggestion for a "Welcome" activity (1) I decided to
try setting up such an activity.
I want this to be the only activity that is started at boot/login to give a fast boot since many times I'm not gonna do same activity as what I did when I last shut down my laptop.
I also agree that this first activity should not be made special other than by configuration. It could perhaps be an idea to make a special "welcome" applet or desktop containment and by default have that one configured to be shown only in this default activity. That welcome applet can then show a list of other available activities for easy starting. It could also have a button for the discussed function of "move all windows from this activity to a newly created one".
For my experiment I decided to show the desktop component of homerun in the "Welcome" activity which gets me pretty close to what I want.
So much for the background, now the problem:
I wanted to use the "restore manually saved session" option of ksmserver in order to always start the "Welcome" activity and nothing else.
But kactivitymanagerd does not communicate with the session manager, it always keeps its rc-file updated with which activities are running and which is the current one. It then resumes to that state upon startup.
I started looking into making the activity manager speak to the session manager, but ten years of writing kde applications and using kde full time has taught me very little about how the session startup works.
Currently it seems kactivitymanagerd is started via klauncher by some kded module, and that happens before the start of ksmserver. If I add "--no-kded" option to kdeinit4 in the startkde script then the activity manager gets started after ksmserver and can work the way I want it to.
1: Ivan, do you agree that it would be desirable to make kactivitymanagerd only save state in the QApplication::saveState() function? At least when the "resume last session" option is not active?
2: If so, how should things be reshuffled to make it start after the session manager? Is it even possible? Looks possible to me, first thing that seems to need it is kwin, which is started after ksmserver.
I'm not currently involved in any of these projects but I have been thinking of the need for a session manager in a wayland-world and that it could be interesting for me to get involved with that. This issue then serves as a good reason to learn more about these things. I've already spent two days on this and learned a lot.
If you read all the way here, thank you.
Simon
(1) http://mail.kde.org/pipermail/plasma-devel/2013-May/025153.html
More information about the Plasma-devel
mailing list