Add To Panel

Colin: I guess I said “launchers” in that entry and that was a mistake. Part of what’s missing in the notifications design is how applets and “desktop service” applications work together. In other words how do we handle programatically added applets and applications like Rhythmbox and Gaim, so we’re not congesting the notification area up like what is happening currently.

What I had talked with Davyd and Mark about during GUADEC this past year was the design we had been working on for how to add applets to the panel. This design also takes into account how applications can add an applet to the panel programatically.

Panel Cursors

The first change to the panel applets system is the idea of “panel cursors”, which are places on the panel where an applet or launcher could programatically add itself to the panel. These cursor locations are described in a file that corresponds to the panel layout design, thus different panel layouts can have different cursor locations.

There might be ways of categorizing panel cursor locations for different things. So we might have an area where “Hardware Events” would normally show, and an area where “Music Players” would normally show. This can be done either through programming or just general policy. I think the policy way would probably be easiest, we could add a section to the HIG describing where applications types should appear in certain panel layouts.



Desktop with Add To Panel dialog and cursor positions

The Add To Panel Experience

Immediate reactions to this design are “You can’t lock my applets down to one location, $insert_reason”. In this cursor layout the Add To Panel dialog, seen below. Has checkboxes for applets, which add them to the panel in predetermined locations. You check off an applet to add it to the panel, it appears and you are allowed to move it around to any location you would like to have it in. Thus no evil-applet-lock-in!



The amazing future of the Add To Panel dialog

How applications add themselves to the panel

For an application to add itself to the panel it would have registered the cursor location that it believes it belongs in. This registration is something the source code provides when the application is installed. When the application needs to add itself to the panel, it just requests the addition and appears in the place it is supposed to appear. Again, -people could then move the applet around if they don’t like the location it appears in initially. And applets should remember where they’ve been moved to even though they aren’t on the panel anymore.

So back to Colin’s point. Launchers aren’t what we want to use for these notifications we want to use applets, however we need a better applets system.


About this entry