Summary

We provide an easy way for users and developers to get a "mostly GNOME upstream" (vanilla) session with only very few Ubuntu modifications (some brown crumbs).

Release Note

Ubuntu 9.04 is the first release with Ubuntu specific desktop components (notification system and messaging indicator). Users and developers who want run software in a more traditional GNOME environment can install the gnome-stracciatella-session package, which adds a new session type "GNOME (without Ubuntu specific components)" in the GDM login manager.

Rationale

We want software developers to be able to test their software in a GNOME environment as well as in the Ubuntu Desktop, which has some different parts (notifications, messaging indicators, etc.).

We also want GNOME to be able to deliver their intended experience to users.

Use Cases

Scope

Design

  1. We create a new package gnome-stracciatella-session which provides a new session "GNOME (without Ubuntu specific components)" and pulls in some upstream GNOME components.

  2. notify-osd will run the standard notification-daemon if that session is selected.
  3. The messaging indicator applet will not appear if that session is selected.
  4. The upstream evolution notification applet will be enabled if the user previously enabled it.

Implementation

gnome-stracciatella package

Package gnome-stracciatella-session:

D-BUS activated services

For D-BUS activated services like notify-osd we modify their .service files to run the upstream service:

The Conflicts:/Replaces: notification-daemon needs to be dropped and replaced with a diversion of notification-daemon's D-BUS .service file.

These two steps will make the packages co-installable and start the wanted daemon based on the selected session type.

Messaging indicator

There is currently no clean way to use a different GNOME panel layout for different sessions, since it is all hardcoded in gconf. So we have to assume that the messaging indicator applet will always start, even in the GNOME session. It can't just exit(), since then the panel will pop up a dialog to say that the applet unexpectedly crashed and offer to restart it.

For Jaunty, we will use a nonintrusive approach: In the stracciatella session, the applet will just not do and display anything at all. Then evolution-indicator will send notifications into the void and thus appear "sufficiently" disabled as well.

Upstream evolution notifier

Evolution does not have a method of enabling/disabling plugins other than disabling them in gconf (by default they are enabled). evolution-notifier (upstream) and evolution-indicator (Ubuntu specific for now) thus can and will run side by side.

No action is required on those two for providing a stracciatella session.

Migration

No migration is involved, this should not ever become the default session.

Test/Demo Plan

Install packages gnome-stracciatella-session and libnotify-bin.

In a standard Ubuntu session:

Now log out, back in, and choose the session "GNOME (without Ubuntu specific components)" in gdm:


CategorySpec

DesktopTeam/Specs/Jaunty/StracciatellaSession (last edited 2009-02-25 09:39:48 by pitti)