Ő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...)