diff --git a/Readme.md b/Readme.md index 32885a5..a2a0911 100644 --- a/Readme.md +++ b/Readme.md @@ -1,34 +1,22 @@ -## Note +## XEmbed TrayManager1 Proxy -This project is modified from KDE's xembed-sni-proxy project, extracted from plasma-workspace. +The goal of this project is to make xembed system trays available in DDE Treeland (wayland) session. -##XEmbed SNI Proxy +This is to allow legacy apps (xchat, pidgin, tuxguitar) etc. system trays[1] available in DDE Treeland which only supports StatusNotifierItem [2]. -The goal of this project is to make xembed system trays available in Plasma. +> [!NOTE] +> The initial commit was a minimal KF6 dependency version of KDE's `xembed-sni-proxy` project, extracted from `plasma-workspace`. +> Currently this project is a standalone project that provides Xembed tray information on TrayManager1 D-Bus, so `dde-tray-loader` could consume it and provide Xembed tray icons. +> This project will be integrated into `dde-tray-loader` project. -This is to allow legacy apps (xchat, pidgin, tuxguitar) etc. system trays[1] available in Plasma which only supports StatusNotifierItem [2]. +## Build instructions -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. +```shell +$ cmake -Bbuild . +$ cmake --build build +``` -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 embedded 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`. +After building, run `xembed-traymanager-proxy`. [1] http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html [2] http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/