~steef/snixembed

ref: 0.1.0 snixembed/README.md -rw-r--r-- 1.6 KiB
bd0e06f2Steef Hegeman updated readme, makefile 1 year, 3 months ago

snixembed - proxy StatusNotifierItems as XEmbedded systemtray-spec icons (WIP)

electron has recently dropped support for the old XEmbed-based system tray protocol, while many status bars for simple X window managers still do no not support newer protocols like StatusNotifierItem. This project is basically a dirty hack using deprecated GTK+ StatusIcons to proxy this new specification to the old one.

#Status

Currently supported:

  • pixmap icons (it will crash when no pixmaps are supplied)
  • activation on left mouse button
  • context menu on right mouse button

This is enough for electron apps like Riot and Signal.

#Usage

For autostarting, use snixembed --fork to avoid race conditions (it will wait for the forked service to be ready before exiting).

#Known issues

  • ayatana/libappindicator seem to think their standard is supported when they see the service, and then start talking appindicator to it. Therefore they do not fall back to XEmbed specification, and the tray icons are broken. As I have not been able to find a decent specification for this standard, there is no real work going on in fixing this. The relevant error: g_bus_watch_name: assertion 'g_dbus_is_name (name)' failed
  • some apps probe for StatusNotifierItem support not by checking for the D-Bus service but by checking environment variables. Exporting XDG_CURRENT_DESKTOP=KDE KDE_SESSION_CURRENT=5 does the trick in some cases.

#Issue tracker

Issues are tracked on sourcehut: ~steef/snixembed.