Re: gnome-Session




On 27/01/13 14:38, Vincent Untz wrote:
Le dimanche 27 janvier 2013, à 14:10 +0100, Lanoxx a écrit :
On 27/01/13 09:02, Vincent Untz wrote:
Le dimanche 27 janvier 2013, à 00:30 +0100, Lanoxx a écrit :
DesktopName
This is not used, not sure where you saw that.
On Ubuntu all the session files have such a line.
Then it's an Ubuntu-specific thing.

Additionally the man page mentions TASK in the context of required
and default providers, but does not explain that in more detail.

Where do get more information about what these tasks and providers
are and what they reference? For example in one of my session files
I find these lines:

RequiredProviders=windowmanager;
DefaultProvider-windowmanager=gnome-wm
DefaultProvider-notifications=notify-osd

Who do I know what the TASKs windowmanager and notification are?
Under which circumstances could I add another line with some other
TASK and why would I want to do that?
You can define anything as a task.
So what is a task used for and why whom? Does gnome-session just
simply run any of the specified TASKs?
The idea behind this is to allow alternative software to be used instead
of some default part of GNOME. To be honest, it doesn't make much sense
in GNOME 3 anymore, and it's more of a GNOME 2 thing.
Well I still use it to run gnome-panel. And I find it rather convinient to be able to swap metacity, mutter or compitz that way.
For instance, you could replace notification-daemon with notify-osd this way. Or metacity
with compiz. The example you gave with anjuta doesn't make much sense,
though, as it's more about some parts needed for the desktop shell, not
about applications.

And the only use of this is the RequiredProviders line of the .session
files. gnome-session will start the components providing those
providers.
So I understand that the first two lines are related to each other. First its defined that there should be a required provider TASK named 'windowmanager' and then we specify that the default provider for this task is gnome-wm. I also found the .desktop file in /usr/share/applications. So far so good.

RequiredProviders=windowmanager;
DefaultProvider-windowmanager=gnome-wm

But this line here is where I get confused:

DefaultProvider-notifications=notify-osd

There seems to be no other line that references a TASK named notifications and there is also no corresponding .desktop file in /usr/share/applications. What I do not understand is, how do I know what is a valid provider? Does gnome-session hard code the valid provider names somewhere in its soure, or is this some kind of interface that is known by the TASKS?

What would happen if I just remove that line, would the notification system stop working?

I admit the anjuta example was not very good, but would that make more sense:

DefaultProvider-network=nm-applet
or:
DefaultProvider-sound=indicator-sound-service

Maybe I am just lacking some important background knowledge to understand whats going on here? If so, where should I start reading?

The providers for a task are found in
the .desktop files, thanks to the X-GNOME-Provides key. These .desktop
files must either be in the autostart paths, or explicitly mentioned in
DefaultProvider-TASK.
So there should exist a gnome-wm.desktop and notify-osd.desktop file
somewhere, yes? Could you give me the exact path where I can find
it?
Most likely /usr/share/applications/.

Could I put a new line there and point it to any application's
desktop file and it would get started, say for example anjuta?
Yes, but as I said, it doesn't make much sense because this is not a
part of the shell, but an app that you want to automatically start. It
makes more sense to use the autostart spec for this:
http://specifications.freedesktop.org/autostart-spec/autostart-spec-latest.html
(ie: simply drop a .desktop file in /etc/xdg/autostart/)

Vincent

Lanoxx


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