Mailinglist Archive: opensuse (1483 mails)

< Previous Next >
Re: [opensuse] openSUSE 12.1 KDE and sessions
On Friday 10 Feb 2012 15:18:02 Patrick Shanahan wrote:
* Patrick Shanahan <paka@xxxxxxxxxxxx> [02-10-12
14:53]:
* Roger Oberholtzer <roger@xxxxxx> [02-10-12 02:51]:
On Thu, 2012-02-09 at 19:19 +0100, Istvan Gabor
wrote:
I think Patrick's right. There are programs that
start
automatically if have not been closed before
logging out, eg
Skype.

I thought these apps had to resister that they
wanted to be
restarted.
They do this by communicating with the running
session manager, not
by
placing files around the place. So, I guess Skype
is doing this.

What happens if you remove this application from
autostart, logs
out without closing the program, and logis in?
Does it start or
not?

As many instances as were running when I logged
out are started.
When it is in the Autostart, I also get a new one
each time. When
it is not in the Autostart, I only get the
existing ones. The
problem is that if the program was not running on
logout, I then
get nothing. Which is not what I want. I will try
the suggestion of
saving/restarting a specific session.

One advantage of the Autostart method is that I
can easily set that
up
in an installation script. Defining a session
will, I fear, now
require
manual setup where it was once automatic.
Progress?

Looks to me that *the* solution would be to save a
session with the
required apps still running. Then subsequent
sessions would begin with
*only* the required apps and nothing extra that was
running on the last
session close/exit. The would also mean that you
would *not* use
"AutoStart".

I see that you have arrived at a solution and I agree
that the occam's
razor would tell you to "always start with an empty
session" and use
"AutoStart" for needed apps.

The obvious disadvantage of this technique is that other
apps that you may want to be restarted by session
management cannot be.

The way to get both session management generally and
'exactly once' startup semantics for your essential app
(without resorting to autostart+uniqueapplication code
in it that detects existing instances and hands off to
those, as some KDE apps do) is

*) Leave session management enabled
*) Autostart your application with a .desktop file in
~/.kde4/Autostart
*) Exclude it from session management by adding the
binary name to the "Applications to be excluded from
sessions" list in the session management config dialog.

Although Roger doesn't say so, I assume that this worked
out of the box for him until 12.1. Without looking at
the navit code, I am pretty sure the KDE session
management code did not change, so maybe navit stopped
skipping session management (the KDE equivalent is
KApplication::disableSessionManagement()) in the 12.1
version. 'Session' in an English locale should return
the 'Session management' config dialog in either Kickoff
or KRunner.

A quirk that I cannot explain yet is that if you add the
app's .desktop file (must be a desktop file, no symlink
to the binary) in the legacy (pre-XDG) autostart folder
~/.kde4/share/autostart, it is automatically excluded
from session management. I'll inquire why this is, but I
wouldn't rely on this behaviour, it's probably an
appendix from when KDE 2 walked the earth.


--
Will Stephenson, openSUSE Board, Booster, KDE Developer
SUSE LINUX GmbH, GF: Jeff Hawn, Jennifer Guild, Felix
Imendörffer, HRB 21284 (AG Nürnberg)
Maxfeldstraße 5
90409 Nürnberg
Germany
--
To unsubscribe, e-mail: opensuse+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups