thoughts on the systray
Aaron J. Seigo
aseigo at kde.org
Tue Feb 15 17:19:46 GMT 2005
On Tuesday 15 February 2005 07:05, Havoc Pennington wrote:
> OK, so my view on the system tray is that it's legacy. I don't think
> there should be such a thing except for back compat and windows compat.
>
> I think there should be a way to say "new mail" or "new IM" or whatever
> (notifications), but a priori have no reason to believe that involves
> tray icons. Maybe it does, but I don't have any reason to believe that.
of course not; to do so would be to ask the wrong question. the question is
how are these messages delivered. and if we look at the reality of the
situation and see what application developers actually try and accomplish
today with the various "types" of system tray usage, simple notification is
not enough.
> Maybe that's the unclear point?
i see. see the very end of this email for how we're not so far off. but at the
same time, i don't see the system tray going away or not being offered for
new development and concepts in the future.
personally, i see the need to continue to support, for the same legacy reasons
you note, simple embedded icons.
i also see the need for lightweight, IPC-driven interfaces that appear in the
panel. this should largely replace the current systray usage in new
applications.
and of course, applets.
> My view here is that if you support in-process applets, someone can
> always write an in-process applet that happens to embed or swallow an
> out-of-process thingy. And a cross-platform out-of-process spec is no
> more constraining than that.
we already have such a thing and it basically works: appletproxy. it's XEMBED
based, swallows applets whole, embeds into kicker, yadda yadda. been there,
done that, hated it. it creates inconsistencies and subtle bugs. it's easy to
do, and also a detriment to quality and flexibility. i'm speaking from
experience here, not theory.
> It's pretty much OK to say that in-process applets work better in some
> ways.
yes.
> > the GNOME XEMBED implementation allows me to take a popupmenu that lives
> > in the applet's process and manipulate it and then show it in the host
> > panel's process? this is the trivial example i keep using because: a)
> > it's trivial and i haven't seen it able to be done yet, and b) it's a
> > real world example used by kicker.
>
> We talked about this and agreed that it was simple for the panel to
> provide the standard panel menu items to the embedded applet. Of course,
> for GNOME these are just "Remove From Panel", "Lock", and "Move" - I
> don't know what specific menu changes you have in mind.
if you look at kicker, every applet has a little "handle". in that handle is a
menu. in that menu is a submenu that comes from the applet. this allows us to
put an arbitrary, applet created and owned, custom menu that is specific to
that particular applet in a standard location so users can find it. most
applets choose to place their context menu there to make it easier for users
to find.
so this isn't about passing a few static type items around and modifying
menus. we do that with the system tray items out-of-process right now. this
about manipulating menus in a cooperative fashion between the panel and the
applet as you would _any other gui element in an application_.
you see, an applet is not simply something the panel hosts, it is something
that extends, interacts with and modifies the panel itself. the more we can
move in that direction, the more useful the panel can become.
> Oh, another thing that can help replace the tray would be extensions to
> the taskbar so you can maybe spice up your app's taskbar button.
yes, and i think a properly written "systray++" spec would enable this. when
i've been describing my hopes for a new systray spec, i've clearly stated
that the division between publishing the information that the application
wishes to have represented in the interface and that actual representation be
made very clearly, with IPC (likely DBUS) being the medium for doing so. this
way we can continue to offer familiar and highly requested features to
application developers while allowing us to be innovative and creative in how
we service those features in the user interface.
in other words, when i say "system tray" i'm thinking not so much of that
applet that takes a few hundred square pixels as i am thinking about the
information it represents and the communication between that representation
and the applications represented by it.
--
Aaron J. Seigo
GPG Fingerprint: 8B8B 2209 0C6F 7C47 B1EA EE75 D6B7 2EB1 A7F1 DB43
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20050215/f2832619/attachment.sig>
More information about the kde-core-devel
mailing list