( XMI | 2024. 11. 06., sze – 00:14 )

Őszinte leszek, amikor utánaástam a válasznak, kissé meglepett, amit találtam. Azt hittem, hogy ennél több közös lesz a megoldásokban, de ez heterogénebb, mint gondoltam.

Mondjuk, hogy API-nak a wayland specfikált objektumait és műveleteit tekintjük.

Nézzük a screenshot készítést, mint sokat emlegetett problémát:

A wlroots alapú compositorokban van a vlr-screecopy-unstable-v1 protocol. Ami kb egy ... csúnyát fogok mondani ... extension a wayland protocolhoz. Van egy csomó belőle, ami nem a hivatalos "wayland protocol", de mégis compositor specifikus API-t képez: https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/tree/master/unstable?ref_type=heads De legalább ez a wayland-be koncepcionálisan illeszkedő megoldás.

A KWin-ben screenshotot egy org.kde.KWin.Screenshot2 nevű másik API-n keresztül tudsz csinálni. Ez egy "out-of-band" API, a wayland protokol teljes megkerülésével, d-bus-on megy.

A gnome-shell esetéről annyi derült ki, hogy Shift-PrintScrn, Ctrl-PrintScrn billentyűkre csinál screenshotot (tehát magán a compositoron belül dolgozza fel a keyboard event-et, és belül intézi el a screenshot készítést). API-ról nem találtam semmi használhatót (gyanítják, hogy d-bus-on keresztül ki van vezetve, de nem találtam meg pontosan milyen néven).

Hogy csinálja a Weston: van egy weston-output-capture nevezetű saját protocolja. Lényegében olyan, mint a wlroots megoldása, de azzal nem kompatibilis saját extension.

Most erre mit mondjak... :/ (nem, nem akarok hajbinak igazat adni...)