[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Autostart (Was: Third-party sessioning requests)



Hi Waldo,

We have a bunch of such keys in KDE already:

X-KDE-autostart-condition: a reference to a configuration entry which value
determines whether the application should be started or not. That way you
don't need to mess around with .desktop files if you want to enable/disable
certain the autostarting of an application from a program. This probably
needs some attention if we are going to standardize this.


Example:
X-KDE-autostart-condition=klipperrc:General:AutoStart:true

This looks at $KDEDIR/share/config/klipperrc, looks up the key AutoStart= in
the [General] group and assumes "true" if no such key is present.

This one sounds like it probably should remain kde specific. AFAIK, the configuration file format isn't standardized, so this key doesn't make much sense standardized either. Unless I'm wrong?

X-KDE-autostart-after: References another autostarted application by the name
of its .desktop file (without the .desktop extension)

This probably would be good, but it's not entirely clear to me how this would
interact with the _DSME_Priority (or whatever this becomes from discussion with
Lubos in the other thread) which clients are going to set when they are started.


Also, clients may need to be started after a program with a specific role,
versus after a program with a specific .desktop file. We should probably
add something to cover that too, but then we'll need a new key for specifying
what the role is (like autostart-role=panel or whatever)


Actually I have a broader question for you. Once a program is started from
autostart it registers with the session manager and becomes part of the user
session right? Then if the user saves session the program is going to be
recorded in ksmserver's user session file I assume. So next time the user logs
in, the program is going to be in two places, the session file and autostart.
Is this correct? How do you prevent it from being started twice?


X-KDE-autostart-phase: We recognize two different phases during startup:
1: After the WM has started but before the rest of the (saved) session has
been restored
2: After the (saved) session has been restored

As Lubos pointed out, certain clients (those with the setup role) should be started before the window manager. Maybe instead of having two phases, it would be better to just specify the startup orders for the standard roles,

1) setup
2) window manager
3) desktop handler
4) panel
5) desktop component
6) normal

Then .desktop files have a number of choices: * They can do nothing at all, which would imply role normal and they would be
started last (or among the last few started).
* They can specify "autostart-role=desktop component", which would get them
started from the order in the list above.
* They can specify "autostart-after-role=window manager" (or whatever) and
then they would be started after all the clients of a specific role are
started. I guess X-KDE-autostart-phase=2 would be
"autostart-after-role=normal"
* They can specify "autostart-after: kdesktop" (or whatever) and then they
would be started after a specific other .desktop file is started.


Thanks for working through this with me,
--Ray


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]