Skip to content

Files

Latest commit

beefcb1 · Mar 10, 2018

History

History
This branch is 1 commit ahead of, 11404 commits behind KDE/plasma-workspace:master.

xembed-sni-proxy

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
May 28, 2017
Nov 3, 2015
Mar 10, 2018
Jan 28, 2018
Feb 14, 2018
Nov 3, 2015
Nov 3, 2015
Nov 3, 2015
Nov 3, 2015
Mar 10, 2018
Mar 10, 2018
Feb 9, 2016
Apr 14, 2017
Mar 24, 2017
Mar 24, 2017

##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/