Brainstorming a Jumplist-like Spec, maybe for fd.o?



Hey Folks,

I'd like to start a discussion about bringing something like Windows 7
Jumplists to GNOME and other free desktops.  I briefly spoke to Jon
McCann and others in IRC about this, so I know that people on this
list probably have a lot of great ideas that could help contribute to
an eventual spec.  I'm starting the discussion here to keep the
initial noise level down.  If we come up with something good, it would
be great to propose it on desktop-devel-list and the appropriate
freedesktop.org list.

The basic idea (heavily influenced by the existing Tomboy note menu
and what I've seen of Windows 7 Jumplists) is that we give
applications a way to specify:

* User actions
* Arbitrary named sets of items

This information is communicated by the application to a daemon.  The
actions and item sets can then be exposed in the UI of gnome-shell,
Docky, or a more traditional gnome2 taskbar, which get them from the
daemon.

With GNOME 3, applets are going away.  In Ubuntu-land, there is work
to get rid of the notification area to end the way it has been abused.
 And here I am, maintaining Tomboy, not wanting the lovely note menu
to go away.  But after seeing Windows 7 Jumplists, it now seems
obvious that there's no reason other applications couldn't have their
own equivalents of the Tomboy note menu.

When exploring applications in gnome-shell, I should be able to do
more than just launch.  I should be able to perform common actions.
In the case of Tomboy, I should be able to search my notes or create
new ones.  With a media player, I should be able to control playback.
If I already have OO.o Writer open, as a user I'd rather click "New
Document" instead of "New Instance".

I know gnome-shell is already integrating recent docs and Zeitgeist,
but in some cases it surely makes sense for an application to put a
little more control over what document-type items appear.  Being able
to provide named categories of such items adds a few nice
possibilities, too.

Lastly, pinning notes is a popular feature of the Tomboy note menu,
and I see that the Windows 7 guys have added that feature as well.
Pinning is a really great way for a user to make document lists a
little more deterministic.  So we should support that, too.

By keeping all of this info in a central daemon (with a nice dbus API,
of course), we allow users to have access to it in gnome-shell, and in
Docky, or whatever other application-management tools they might
prefer.  Also, there is the potential to cache the actions/items for
each application, so that they can be available even when the app is
not running.  A user acclimated to clicking "play" could then do so
regardless of whether or not their media player was running.
Similarly, they could have access to the Tomboy note menu without even
starting Tomboy.

Jason Smith has added a dbus API to Docky, allowing items to be added.
 This annotated screenshot gives a good idea of what could be achieved
for all applications if we had a common spec and API:

http://armstrong-clan.net/dump/tomboy-docky.png

Here's a screenshot of some work-in-progress from Stefan Cosma, a
Tomboy contributor, adding Jumplist support for our users on Windows:

http://bugzilla-attachments.gnome.org/attachment.cgi?id=146605

A bit of technical info about the feature on Windows 7 is available here:

http://blogs.msdn.com/yochay/archive/2009/01/06/windows-7-taskbar-part-1-the-basics.aspx

So, that's all I really have to say.  Thanks for reading this.  If
people like it and think it's a good idea, there shouldn't be too much
work to get something ready to propose.  All we really need is:

* A set of dbus interfaces for apps to specify their actions and items
* A set of dbus interfaces for gnome-shell, Docky, etc, to use to get
those actions and items
* A daemon implementing those interfaces
* Patches for gnome-shell, Docky, etc
* Patches for a couple of obvious apps, like maybe Tomboy and Banshee

So, what do you think?

Sandy


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