Read this if your package includes a status notifier / system tray icon

Kevin Kofler kevin.kofler at chello.at
Wed Mar 5 19:04:33 UTC 2014


Hi,

Please read this e-mail carefully and thouroughly, as interoperability of 
your package (including and especially non-KDE packages!) with upcoming KDE 
Plasma Workspaces releases depends on it!


The next major release of the KDE Plasma Workspaces (i.e. "KDE 5", more 
correctly referred to as "Plasma Next" or "Plasma 2") will *drop* support 
for the legacy XEmbed-based system tray protocol:
http://blog.martin-graesslin.com/blog/2014/03/system-tray-in-plasma-next/

The only supported protocol (other than the KDE-specific "plasmoid in the 
system tray" feature) will be the new D-Bus based status notifier protocol:
http://www.notmart.org/misc/statusnotifieritem/index.html

See the above linked blog post for the rationale. To sum it up:
* The new D-Bus-based status notifier protocol replacing it has been
  available for a while now.
* Supporting the legacy protocol requires significant effort that the
  developers believe to be better spent elsewhere.
* The legacy protocol relies on XEmbed and thus does not make any sense in a
  Wayland environment.


Therefore, for your package (including and especially non-KDE packages!) to 
work properly under Plasma Next (which will replace the current "KDE 4" 
Plasma workspace in Fedora somewhere around Fedora 22, though the exact 
Fedora release to introduce it has not been decided yet), it MUST support 
the new status notifier protocol in addition to or instead of the legacy 
XEmbed protocol.

If your package uses: | then:
----------------------+-----------------------------------------------------
KDE 4 libraries  OR   | You do not have to do anything special. Your package
KDE Frameworks 5      | is already using the new protocol.
----------------------+-----------------------------------------------------
Qt 5 QSystemTrayIcon  | You should not have to do anything special. Support
                      | for the new protocol will come in upstream Qt 4.5
                      | and will likely be backported in Fedora if needed.
                      | (This is a drop-in replacement of the Qt class
                      | requiring no application code changes.)
----------------------+-----------------------------------------------------
Qt 4 QSystemTrayIcon  | You should not have to do anything special. A patch
                      | for Qt 4 to support the new protocol has been
                      | developed by Ubuntu developers and will likely be
                      | applied in the Fedora Qt 4 package soon. (As for
                      | Qt 5, this is a drop-in replacement of the Qt class
                      | requiring no application code changes.)
----------------------+-----------------------------------------------------
GTK+ (2 or 3)         | You must use Canonical's libappindicator, which is
                      | interoperable with the KDE implementation. It is
                      | already packaged in Fedora. Several GTK+ packages
                      | already support it, for those, it is only a matter
                      | of adding the BuildRequires (libappindicator-devel
                      | for GTK+ 2, libappindicator-gtk3-devel for GTK+ 3).
                      | For some others, patches to add libappindicator
                      | support are available from Ubuntu.
----------------------+-----------------------------------------------------
any other toolkit     | Please refer to the documentation of the toolkit you
                      | are using, ask in this thread, and/or talk to the
                      | relevant upstream developers.


Any package stuck on the legacy XEmbed system tray protocol will NOT work 
properly under upcoming KDE Plasma releases.

Please do not shoot the messenger,
        Kevin Kofler



More information about the devel mailing list