/dev/posts/

I can has systray?

Published:

Updated:

In Plasma 5, support for the XEmbed-based “legacy” systray protocol was removed: only the new SNI protocol is handled. However, a lot of applications still do not handle the new protocol: Qt4 and Qt5 applications can be fixed by installing the sni-qt (currently in experimental) and libdbusmenu-qt5 respectively but other applications (such as GTK ones) must be patched/recompiled with SNI support. Without this, windows disappear into oblivion 😿. You can have a seamless systray-enabled Plasma panel with a single (OK, two) line of shell 😼.

Update 2023-03-16

This problem is now fixed thanks to XEmbed SNI Proxy.

Implementation

First, resize your panel and remove some space on the right (this is where we are going to add a new panel):

Then install trayer and run:

trayer --align right --widthtype pixel --width 150 --transparent false \
  --heighttype pixel --height 30 --alpha 230 --padding 10

Now, you have systrays in your panel: 😺

You might need to adjust the parameters of trayer and resize the panel in order to have a seamless panel.

Installation

You can then add a script to do this (mine is in ~/.bin/icanhazsystray):

#!/bin/sh
exec trayer --align right --widthtype pixel --width 150 --transparent false \
  --heighttype pixel --height 30 --alpha 230 --padding 10

Now, you can ask Plasma to run this script when starting the session.

The new Plasma 5 is quite nice by the way (but the lack of classic systray is not so nice).

References