readme
This commit is contained in:
38
Readme.md
38
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.
|
After building, run `xembed-traymanager-proxy`.
|
||||||
|
|
||||||
##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`.
|
|
||||||
|
|
||||||
[1] http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html
|
[1] http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html
|
||||||
[2] http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/
|
[2] http://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/
|
||||||
|
|||||||
Reference in New Issue
Block a user