Support for old-school XEmbed system tray icons in Plasma 5
Plasma 5 has abandoned the old xembed-based system tray support. I mentioned that in my announcement post for the Plasma 5 packages for Slackware-current, and also mentioned that there are solutions for that in Plasma 5. This means that a lot of applications (meaning: all non-Plasma 5 applications) will fail to display an icon in the system tray of your new Plasma 5 Workspace. No more Skype, no more Dropbox, no more Steamclient, etcetera. The applications will be running of course, but you can not interact with them through their system tray icon.
For some applications (Qt 4 and GTK+ 2 and 3 based in particular), I already added support to my set of Plasma 5 packages, but some applications still stubbornly refuse or are still unable to display a systray icon in your Plasma 5 Workspace.
For these applications, the best solution is to run an application like wmsystemtray which implements the XEmbed protocol and thereby allows applications to dock their systray icon in the wmsystemtray application’s window.
It is a bit of a clumsy solution because wmsystemtray itself is unable to dock into the Plasma 5 system tray, and therefore you will have a permanently visible window somewhere on your desktop which displays the systray icons for applications like dropbox, blueman, scim etc. But it is better than nothing at all.
Instructions about how to work with wmsystemtray so that it looks best and impacts your workspace the least, are contained in the “README.kwin” file inside the build directory in my repository, but that file is a bit hidden. Therefore, here are the instructions:
First of course, install the wmsystemtray package from my repository.
Start the application as follows. Type it in KRunner (Alt-F2) or in an X terminal:
wmsystemtray --non-wmaker --bgcolor white
The window will appear in the upper left corner of your workspace, obscuring the Plasma 5 workspace control icon. Grab the window and drag it to the upper right corner – I think it has a better placing there. The window will probably already show some applications that had been waiting all that time to show their systray icon.
Add the following content to a new file called “wmsystemtray.kwinrule” somewhere in your fiilesystem. The filename is not important, but the “.kwinrule” extension will make it easier to find later:
[Application settings for wmsystemtray] Description=Application settings for wmsystemtray desktop=-1 desktoprule=2 noborder=true noborderrule=2 skippager=true skippagerrule=2 skipswitcher=true skipswitcherrule=2 skiptaskbar=true skiptaskbarrule=2 type=2 typerule=2 wmclass=wmsystemtray0 wmsystemtray wmclasscomplete=true wmclassmatch=1
Then, open System Settings and go to”Window Management > Window Rules“. Click on the “Import” buton and point to the “wmsystemtray.kwinrule” you just created. Click “Apply” and immediately you will see the wmsystemtray window change: the border disappears and the window placeholder in the taskbar is gone too. Its place on the desktop is immutable now.
Next time you login to Plasma 5, its session manager will run the wmsystemtray again, so there is nothing more to do than the above.