After all discussion raised on bug 622451 (the experimental power manager applet). I was thinking if it was appropriate for the shell to implement KDE's and Ubuntu's (Ayatana) protocols for system tray / system status. The KDE part is concerned with getting icons, tooltips and managing attention, while the Ubuntu part is about transmitting a set of GtkActions over DBus.
I was thinking of this because: - it would allow us to deprecate existing XEmbed system, not just putting everything down into the message tray - would get compatibility with KDE apps inside GNOME - would get those components out of process, without bloating core GNOME Shell - would require no modification to existing gnome-power-manager / gnome-bluetooth (or actually, would require getting back upstream the Ubuntu patches) - would get compatibility for a new nm-applet (to be written) inside the old GNOME Panel + IndicatorApplet KDE's and Ubuntu's effort were mentioned in discussion of power manager applet, but rejected saying that KDE's part (not Ayatana protocol) is too tied to Plasma. Having read the protocol, I see some KDE specificity (the separation between the watcher, kded, and the host, plasma, to get statistics and allow the user to hide the icons he doesn't like), but it is secondary (and maybe also useful in the context of GNOME). The main point of KDE protocol is exposing an icon, composed of a title (tooltip), 3 Icons (active, attention, normal) and an associated window (another KDE specificity, as they plan to merge the system tray with the task bar). I don't think it is too bad. I could not find official documentation for Ayatana dbusmenu interface, unfortunately. But from rapid reverse engineering I saw that provided indicators (say, sound) have the org.kde.StatusNotifierItem stuff, some /org/ayatana/indicator/* stuff for saying that this indicator exposes a menu, /org/ayatana/indicator/*/menu is the menu itself and /org/ayatana/indicator/*/service is an object that provides functionality specific to that indicator (like a common DBus interface for lowering volume - without messing with PulseAudio or ALSA) As I see that rewriting some basic UI in JS on top of data providers (NetworkManager, UPower...) is not the way forward for GNOME Shell, I could start implementing the system tray part of the protocol using Shell API and St, so that menus and buttons get all functionality and integration of their JS equivalence, while remaining out of process and git tree. But since this may require a lot of work, maybe across the whole summer, I am going to start it only if it really worth it, that is, only if it could make it way inside GNOME 3. Regards, Giovanni Campagna _______________________________________________ gnome-shell-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gnome-shell-list
