My thoughts on Slackware, life and everything

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.

wmsystemtray

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.

Eric

22 Comments

  1. Amit Ugol

    In my case I work the other way around having a few applications from KDE on XFCE.
    Its strange that Dropbox icons will not show in tray since Dropbox are using QT5 for the UI engine (including the tray part).
    Anyway, in Dropbox’s case I think that there will be support for the ‘new’ way of doing things sooner or later.

  2. Michelino

    May I ask a question?

    I’ve built mirall-1.7.1 against qt5 (and qt5keychain), everything works well except for the icon in the systemtray; in fact the icon showed is not the one shipped with the app (the little cloud) but a “generic” (the first one, in this image: http://postimg.org/image/m3rb0v4zd/).
    I don’t know how to fix it, any tip?

  3. alienbob

    Hi Michelino

    I need to build a new version of mirall that works in Plasma 5 so I can do some tests, I have not tried this yet. It is strange that a generic icon is being used.
    I remember seeing a different VLC icon than the default too, when I was running that. Can you check what icon is shown in the Plasma menu for mirall?

  4. Helio

    Hi Eric
    The digital clock is not showing my localtime, probably Western European time. But the analog clock is showing correctly.

  5. alienbob

    Hi Helio

    What does that have to do with the XEmbed system tray?
    Perhaps you wanted to post on the Plasma 5 page http://alien.slackbook.org/blog/kde-5-plasma-5-2-0-available-for-slackware-current/#comment-24505 ?

  6. Michelino

    Hi Eric, thanks for the replay.

    In the Plasma menu “regular” owncloud icon is shown (and the same invoking it by krunner).

  7. Owen Greaves

    I can’t find wmsystemtray.kwinrules anywhere, even when it’s running….I do a search and I find no trace of the file anywhere. There is a .kwinrulesrc file but I’m pretty sure that’s not the file you’re referring to.

  8. alienbob

    Owen, it is not there until you create it.
    I was quite specifiv in the article:

    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:

    • Owen Greaves

      Ya, I figured, so I made it…but I’m still having empty menu issues -only one works so far.

  9. Eduardo

    This is a great workaround.

    My problem is that I instructed plasma to start with an empty session. So, I placed wmsystemtray in the autostart part of the systemsettings, but it does not start; so, I have to invoke it every time.

  10. alienbob

    What is the relationship between empty menu issues and an Xembed system tray application?

  11. Owen Greaves

    I’m not sure it has anything todo with it, I swapped out Video cards thinking there may be an issue there….but no….I’m not sure why almost ALL Menu’s are blank white space — no items. So I’m sure it’s related to something else : ) Thanks for responding.

  12. Owen Greaves

    Also a blank Taskbar : (

  13. amigaforever

    This whole plasma 5 system tray issue sucks big time.
    I understand the developers decision from a design perspective but from a user’s perspective I have to say I dont’t care. you failed!
    As a user I don’t care if system notifier api is around for > 5 years and app devs had time to switch. I just want to use my f*ing applications the way I’m used to.
    The system notifier should bring a “greater user experience”, well currently it’s not. For that apps the only experience is that I can’t use them the way I’m used to.
    I dont’ care if an implementation works with wayland or not. until the devs ported these apps to work with system notifier I will stick with X and kde 4.
    Really guys, this way we will certainly not convince users to switch to kde. Reminds me of the too early released kde4. The switch from kde 3 to 4 was already painful enough and now this? Didn’t we learn anything?

    Don’t get me wrong I’m a kde user since the 1.x days and I love kde. I appreciate all the work you kde devs (and all oss devs – I’m one myself) do, but you really fucked this one up. 😉

  14. RoberRObert Marmorsteinicon t Marmorstein

    This seems like a fairly significant regression. Is there any way to get the system tray to display some sort of default icon that indicates that an XEmbed icon could not be displayed? That would at least make it easier for users to know what is happening.

  15. gaara

    Hi, it works fine with a home-python-script (I use the egg.trayicon library, deprecated) and Plasma 5. The only thing is that I can’t move the wmsystemtray window.

  16. Jean Horten

    wmsystemtray is a foul compromise, I wish someone would create soem kind of plasmoid or extention to bring back true syst tray icons instead of having some weird additional non moveable window on the desktop to display tray icons. Using an application made for some outdates window manager on the most advanced Linux DE is no good idea

  17. alienbob

    Hi Jean Horten

    I know. I am just adding a package for trayer-srg to my main repository, which does the same as wmsystemtray but looks nicer:

    Trayer-srg screenshot

  18. Frank

    Hi Alien, I tryed trayer-srg but it doesn’t work, and the KDE system tray icons is becoming a problem for a lot of people. Really a bad strategic choice, to remove the support and don’t implement a compatibility layer.

    Ciao Frank

  19. waco

    Excellent good, but as I do so that you can move from place without title bar, you can place it anywhere on your desktop

  20. regnarg

    xembed-sni-proxy implements a compatibility layer that allows xembed tray icons to be shown directly in the plasma notification area. It is not perfect (e.g. tooltips do not work) but usable and much more convenient that a window in the corner.

  21. alienbob

    Yes, we discussed xembed-sni-proxy in the comments section of another article a few days ago: http://alien.slackbook.org/blog/second-plasma-5-update-for-september/
    I will add a package for this in my next update.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 Alien Pastures

Theme by Anders NorenUp ↑