You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Friedrich W. H. Kossebau beefcb1581 Use explicit 8 years ago
..
CMakeLists.txt Use ${X11_XTest_LIB} rather than Xtst. 9 years ago
Readme.md Proxy Xembed icons to SNI 11 years ago
fdoselectionmanager.cpp Use nullptr 8 years ago
fdoselectionmanager.h use override everywhere 8 years ago
main.cpp Remove module prefix from Qt includes 8 years ago
org.kde.StatusNotifierItem.xml Proxy Xembed icons to SNI 11 years ago
org.kde.StatusNotifierWatcher.xml Proxy Xembed icons to SNI 11 years ago
snidbus.cpp Proxy Xembed icons to SNI 11 years ago
snidbus.h Proxy Xembed icons to SNI 11 years ago
sniproxy.cpp Use nullptr 8 years ago
sniproxy.h Use explicit 8 years ago
xcbutils.h Add transparency support for tray icon 10 years ago
xembedsniproxy.desktop SVN_SILENT made messages (.desktop file) - always resolve ours 9 years ago
xtestsender.cpp Inject mouse clicks from SNI to xembedded icons with XTest 9 years ago
xtestsender.h Inject mouse clicks from SNI to xembedded icons with XTest 9 years ago

Readme.md

##XEmbed SNI Proxy

The goal of this project is to make xembed system trays available in Plasma.

This is to allow legacy apps (xchat, pidgin, tuxguitar) etc. system trays[1] available in Plasma which only supports StatusNotifierItem [2].

Ideally we also want this to work in an xwayland session, making X system tray icons available even when plasmashell only has a wayland connection.

This project should be portable onto all other DEs that speak SNI.

##How it works (in theory)

  • We register a window as a system tray container
  • We render embeded windows composited offscreen
  • We render contents into an image and send this over DBus via the SNI protocol
  • XDamage events trigger a repaint
  • Activate and context menu events are replyed via X send event into the embedded container as left and right clicks

There are a few extra hacks in the real code to deal with some toolkits being awkward.

##Build instructions

cmake .
make
sudo make install

After building, run xembedsniproxy.

[1] http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html [2] http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/