Owner

Involved parties

Current status

There has been discussion about how to implement jumplists; see the References section below. For practical purposes, we can divide them into mostly orthogonal sections:

Files used with an application - retrieving this list is is Zeitgeist's job. See the note below.

Actions from non-running applications - Both Unity and KDE already have a scheme to publish actions in standard .desktop files. For example, there can be a "Create presentation" action within libreoffice.desktop that says something like this (this is not the correct syntax, but you get the idea):

This is described in Unity's documentation - I didn't have time to look up KDE's reference, but we should be able to standardize on something.

Update: this is currently under discussion at Freedesktop, and a proof-of-concept implementation exists for gio (664444).

Update 2: this was approved and is now included in the latest Desktop Entry Specification. The format is not that currently used by Unity, and instead was taken from a pre-1.0 version of the specification. gnome-shell code is now available in 669603.

Actions from running applications - For example, a music player may want a "Pause" command, which only makes sense when the music player is running. (A music player is a bad example because there already is a protocol to control music players, but you get the idea.). Ryan Lortie has been working on the "wip/menus" branch in glib, which essentially lets applications provide menu commands through D-Bus. This needs to be finished.

Update: This was finished for /ApplicationMenu. If a different menu needs to be shown in other places, it's just a matter of exporting a GMenu in the app and creating a RemoteMenu on the shell side - which means that if additional dbus object paths are standarized, it could be implemented as an extension for 3.4.

This can obviously be implemented in terms of GtkRecentManager, but since we are moving *that* to using Zeitgeist internally, we may as well do the same in gnome-shell directly.

How to help

There is an extension for gnome-shell that lets you have jumplists with recently-used files. While we can continue to ship that extension, it would be better to have it directly in gnome-shell's code. This extension's code needs to be reviewed and polished.

We need to see how Unity and KDE handle actions defined in .desktop files, and see how to standardize this as part of the .desktop file specification. Then, we need to implement this in gnome-shell.

Ask RyanLortie about his progress with glib's GMenu. This will let us implement jumplist actions provided by applications that are already running.