Saturday, February 12, 2005

et tu, system tray

i'm tired of square, lifeless panels that have to struggle to look and behave cohesively due to not really having any control over that which they present. the panel should be more than a passive canvas for other applications to (ab)use. the systray currently stands in the way of that.

a bunch of kde, gnome and other devs are meeting at a cross desktop development conference. this is quite cool and i was/am excited to see what would come out of it. well, at least until i read the notes from the first discussion regarding the system tray.

basically there are three issues that need addressing: fixing the system tray protocol, creating a clearer definition of what the system tray is for, and what to do with those items that don't "belong" in the system tray but are there nonetheless.

the latter issue has an easy answer in "just don't put those icons there". i think this completely ignores the reality that developers do it anyway. unless we remove the system tray, abuse of it will happen. telling ourselves otherwise is to drink the koolaid. a more complex answer is to encourage applets instead, which means supporting cross-desktop applets. my only concern with cross desktop applets is that i want to see kicker do cool and amazing(ly useful) things in KDE4 and don't want to be hamstrung by, or have kicker's experience degraded by, code that runs out of process and which it therefore can't coordinate with effectively. it goes beyond looks, which are likely mostly solvable with the newer X.org extensions, and really center on issues of functionality. we tried out-of-process embedding in kicker for a few years; it sucked.

but my biggest concern is that most of the conversation seemed to focus on how to remove items from the system tray and making cross platform applets possible. worthy topics and goals, but there's stil the fact that the system tray protocol itself is broken and needs to be improved. i'm not content with having a system tray in KDE4 that is as broken on the implementation level as the one we have endured up to now is. it really has nothing to do with the icons that people put in the system tray, and everything about how the icons that do belong in the system tray manage to get there. it's even about looking beyond icons and allowing the host application to provide a consistent and rich interaction experience for the user.

i'm all for encouraging cross platform cooperation and seamlessness. i'm also all for providing the user with an experience that is compelling. when the two are at odds with each other, what do we do?

i really don't want to be faced with a decision between making a compelling panel that tries out new ideas and presentational concepts or making a panel that's "compliant" to external specs but stuck in firmly the 1990s. the latter just isn't very interesting. not for me nor our users.

2 comments:

Tobu said...

I agree the system tray isn't used well, that it should probably be split between an applet registration facility and a notification protocol.
I didn't get what precisely is broken with the current implementation in KDE, I suppose it should be fixed too.
What I didn't really understand is where this clashes with interoperability.

Diego "Flameeyes" Pettenò said...

Unfortunately the system tray is used too many times for something is not going to be there.

Also KNetLoad has been one of the applications misusing the tray, fortunately I have rewrote it for 3.0 version so now it's better "suitable" for KDE, but this makes it incompatible with other WM.

One of the reasons I was unsure to move it as an applet was that the tray area is "standardized" at least partially.
But then the usability took the advantage above the interoperabiltiy and I was "forced" to rewrite everything to work as an applet. Now I'm very proud of that work, and I hope to do the same restyle to KCPULoad in the near future, also if I'm not sure if it's worth to work at it when we should find also a replacement for KSensors which could do both things (KSensors is another one app which is misusing the system tray).

Hope the things will go better in the future.