Re: Hooking up gnome-session with dbus/kdbus/systemd



On Tue, Jan 21, 2014 at 1:08 PM, Lennart Poettering <mztabzr 0pointer de> wrote:
Heya,

I am typing this from a GNOME session that actually uses a kdbus user
bus instead of a dbus-daemon session bus (and also a kdbus system
bus). With this mail I'd like to start discussion of the changes I'd
like to propose for GNOME to make this work a bit more smoothly.

As you might now, the kdbus userspace we have been working on involves
using systemd for setting it up. The system systemd instance will set up
the system bus, and the user systemd instance will set up the user
bus. Besides actually opening up kdbus for usage in the session bus, I'd
also like to see GNOME adopt systemd for its process (application)
management needs. This would have a number of benefits, like for example
exposing GNOME apps (and other components) as cgroups, so that we can do
all kinds of modern stuff like suspending apps that our outside of view,
or fiddling with the CPU scheduling prio for foreground apps, and things
like that. Also, we'd gain a trustable, kernel-level way how to
distuingish apps, for polkit stuff and more.

Now, systemd is not available on all systems GNOME supports, so we
should find a way that neatly hooks this all up with systemd, but
doesn't make systemd a hard-coded dependency of GNOME. Of course, the
internets will never honour our attempt at being nice here, but we
should try anyway... ;-)

With my release team hat on: Nice of you to think of this.
 
So, the way I'd like this all to work is by simply emphasizing .desktop
files and bus activation a lot more, without actually emphasizing
systemd as backend implementation of anything. As both technologies
(.desktop files and dbus) are universially supported wherever GNOME is
supported this should be a good approach:

[...]

Does this make sense? Suggestions? Ideas?

We've already been steadily moving towards bus activation for applications, so this general idea fits very naturally with the direction we've been going.

I'm sure we'll have long discussions about per-user vs per-session and similar details, but this should not be controversial. Moving gnome-session from exec'ing to dbus activation for most things should also be fine. You can already make that happen today, by putting

gapplication launch <your-app-id>

in the Exec line.

The only thing I've seen in this discussion that I disagree with is the idea to make the distinction between starting a service (in the background) and launching the application (opening a window) implicit, by looking at somewhat obscure environment variables. That should be rather be explicit, I think, and we want to limit the extent to which applications are allowed to do that (run in the background).


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