Tizenhárom hónapnyi fejlesztés után megjelent a Wayland 1.24 stabil kiadása, amely a protokoll, az interprocessz kommunikációs mechanizmus és a Wayland könyvtárak új verzióját tartalmazza. A 1.24-es ág visszafelé kompatibilis az 1.x verziók API és ABI szintjén, és főként hibajavításokat és kisebb protokoll-frissítéseket tartalmaz. A projekt eredményei MIT licenc alatt érhetők el. A Weston referencia kompozit szerver, amely kódot és munkafolyamat példákat biztosít a Wayland asztali környezetekben és beágyazott megoldásokban való használatához, külön fejlesztési ciklus keretében fejlődik.
Főbb változások a protokollban:
- Megvalósult a wl_fixes interfész, amely lehetővé teszi, hogy más alap protokollok interfészeivel kapcsolatos problémákat oldjunk meg, amelyeket azok saját képességeivel nem lehet. Például a "wl_fixes::destroy_registry" kérés lehetővé teszi a wl_registry objektum eltávolítását, ami után a kliens már nem tudja használni, és a kompozit szerver leállítja az események továbbítását rajta keresztül.
- A wl_keyboard::key interfészen bevezetésre került a "repeated" álap, ami azt jelzi, hogy a billentyű lenyomás alatt van. A billentyű csak akkor léphet "repeated" állapotba, ha először "pressed" állapotba került, de még a "released" állapot előtt. Az új állapothoz tartozó események többször is generálhatók, amíg a billentyű lenyomva van. A változás lehetővé teszi a kompozit szerverek számára, hogy a billentyűzet lenyomását külön állapotként kezeljék, nem csupán egy ismétlődő "pressed" eseményfolyamként, ami hasznos lehet a távoli asztal kezeléséhez.
- Új wl_display_dispatch_queue_timeout() és wl_display_dispatch_timeout() funkciók lettek hozzáadva az események sorban történő, időkorlát figyelembevételével történő kezelésére (a wl_display_dispatch és wl_display_dispatch_queue funkciók csak események hiányában térnek vissza 0-ával, míg a *_timeout variációk időkorlát elérésekor is).
- Hozzáadták a wl_shm_buffer_ref() és wl_shm_buffer_unref() funkciókat a megosztott memória hozzáféréséhez, amely a wl_shm_buffer-hez van kapcsolva, miután az eltávolításra került (például amikor a kliens befejezi a munkát). Ezek a funkciók lehetővé teszik a wl_shm_buffer elválasztását a wl_buffer fő erőforrás életciklusától, amikor a kompozit szervernek késleltetett állapotváltásra van szüksége.
- Hozzáadták a wl_proxy_get_interface() és a wl_resource_get_interface() funkciókat, amelyek visszaadják a wl_interface-t a megadott erőforráshoz, ami szükséges a dinamikus típusú nyelvek kötéseiben.
- Bevezetésre került a wl_resource_post_error_vargs() funkció, amely alternatívája a wl_resource_post_error() funkciónak, lehetőséget adva argumentumok listájának átadására a szöveg formázásához (va_list).
A legfontosabb események a Wayland-del kapcsolatban, amelyek a legutóbbi kiadás óta történtek:
- A Wayland támogatásának javítása az NVIDIA zárt forrású meghajtókban.
- A KDE kizárólag a Wayland támogatását tervezi megőrizni. A kwin_x11 és kwin_wayland kódjának elválasztása.
- Az Ubuntu és a Kubuntu a GNOME és a KDE Wayland munkamenetek támogatását hagyja meg.
- A GDM-ben alapértelmezetten csak a Wayland támogatása maradt.
- A GTK a X11 backendet elavultnak minősítette.
- A Fedora 43-ban eltávolították az X szerver feletti GNOME használatához szükséges csomagokat a tárolóból. Minden X11-t használó GNOME felhasználót kényszerítenek a Wayland alapú munkamenetre való áttérésre.
- A Budgie asztali környezetben csak a Wayland támogatása marad.
- Az Xfce 4.20-ban részleges Wayland támogatás valósult meg.
- A MATE 1.28 kísérleti Wayland támogatással érkezik.
- Wayback — Wayland kompozit szerver X11 alapú munkaterületek futtatásához.
- A Valve elindította a Frog projektet az új Wayland protokollok elősegítésére.
- A Cosmoe grafikus interfész építőkönyvtár Waylandet és BeOS stílusú API-t használ.
- A Wayland meghajtó alapértelmezett aktiválása a Wine-ban.
- A Raspberry Pi OS áttérése a Wayland használatára.
- A FLTK 1.4.0 grafikus könyvtár kiadása Wayland támogatással.
- A Wayland-Protocols csomaghoz egy plusz fázist adtak hozzá a protokollok elősegítésére - „experimental”, amely a protokollok integrációjának csökkentésére, a fejlesztőkhöz való gyorsabb eljuttatására és korai megvalósításának ösztönzésére irányul a meglévő projektekben.
- Az AMD fejleszti az ACS nevű saját Wayland kompozit szerverét.
- Hét alfa kiadás a COSMIC asztali környezethez.
- A kompozit szerverek frissítése: Weston 14.0, Niri 25.05, Wayland Maker 0.5, miracle-wm 0.5, Hyprland 0.49, labwc 0.8.3, Cage 0.2, Wayfire 0.9, Sway 1.11.
Az elmúlt évben hozzáadott protokoll kiterjesztések, amelyek kiegészítik az alap Wayland protokollt és külön csomagban érkeznek a Wayland-Protocols részeként:
- color-management — lehetőségek a színkezeléshez és a széles dinamikus tartományú fényerő támogatásához (HDR, High Dynamic Range).
- color-representation-v1 — a színmegjelenítés feladat a Wayland felületén.
- xdg-toplevel-tag — lehetővé teszi a Wayland kliensek számára, hogy címkéket csatlakoztassanak a felső szintű felületekhez, amelyeket a kompozit szerver az ablakok azonosítására használhat alkalmazás újraindítása után.
- ext-background-effect — hatások alkalmazása a Wayland felületének átlátszó részein, például a háttér elmosásán.
- pointer-warp — lehetővé teszi az alkalmazás számára, hogy pillanatok alatt áthelyezze a kurzort a megadott pozícióba.
- xx-session-management — az ablakok állapotának helyreállítása megszakított ülésekhez (például a kompozit menedzser összeomlása után).
- xx-input-method — új protokoll fejlesztése a szövegbevitel módszerek használatára. ext-data-control — lehetővé teszi a privilégiumokkal rendelkező kliensek számára az adatok feldolgozásának kezelését, például a vágólap kezelők megvalósításához.
- ext-workspace — megvalósítja a koncepciót vagy azok képernyőre történő áthelyezésére az egérrel való húzással a drag&drop módban. Új funkcióként bevezetésre került a virtuális asztalok rögzítése, amely lehetővé teszi a szükséges számú asztal nyitva tartását, függetlenül attól, hogy üresek-e vagy sem. és eseményeket kínál az asztalok állapotinformációival, valamint lehetőségeket az asztalok aktiválására és deaktiválására.
- xdg-system-bell — lehetővé teszi a rendszerjelzés kiadását, amely például figyelmeztetésként használható terminálemulátorokban.
- xdg-toplevel-icon — ikonok hozzácsatolása a felső szintű ablakokhoz.
- ext-image-capture-source és ext-image-copy-capture — a képernyőn megjelenő tartalom rögzítése.
- fifo — FIFO mechanizmus (első be, első ki) megvalósítása a megjelenített felület frissítésének feldolgozásához.
- commit-timing — lehetővé teszi, hogy időkorlátot hozzárendeljünk a felület tartalmához (a kompozit szervernek lehetőség szerint az adott időn belül kell megjelenítenie a tartalomváltozást, de nem korábban).
Ne feledjük, hogy a Wayland a kompozit szerver és a vele működő alkalmazások közötti interakciós protokoll. Az ügyfelek saját maguk végzik az ablakok rajzolását egy külön bufferben, amelyen keresztül a kompozit szerverhez továbbítják a frissítések információit, amely összekombinálja a különböző alkalmazások bufferének tartalmát a végső megjelenítés érdekében, figyelembe véve a lehetséges részleteket, mint például az ablakok átfedése és átlátszósága. Más szóval, a kompozit szerver nem biztosít API-t külön elemek rajzolásához, csak már elkészült ablakokkal dolgozik, ami lehetővé teszi a dupla bufferelés eltávolítását olyan magas szintű könyvtárak használatakor, mint a GTK és a Qt, amelyek magukra vállalják az ablakok tartalmának összerendezését.
A Wayland sok biztonsági problémát megold az X11-hez képest, mivel elszigeteli a bemenetet és a kimenetet minden ablak számára, megakadályozza, hogy a kliens hozzáférjen más kliensek ablakainak tartalmához, és nem engedi meg más ablakokhoz kapcsolódó bemeneti események elfogását. A Wayland közvetlen támogatása megvalósult a Linuxban használt grafikus könyvtárak többségében, beleértve a GTK-t, a Qt-t, az SDL-t, a FLTK-t, a wxWidgets-t, a Clutter-t és az EFL-t (Enlightenment Foundation Library).
A Wayland/Weston hardverezérlőivel való interakció, például az inicializálás elvégzése, a videomódok váltása (drm modesetting) és a memória kezelése (GEM az i915-höz és TTM a radeon és nouveau számára) grafikuskártyákhoz közvetlenül a kernel szintjén működő modullal történhet, ami lehetővé teszi a szuperfelhasználói jogosultságok megkerülését. A hagyományos X11-alkalmazások futtatásának biztosítása érdekében a Wayland-alapú környezetben az XWayland (Device-Dependent X) DDX komponenst használják, amely működésében hasonlít az Xwin és Xquartz platformokra a Win32 és macOS rendszerekhez.


Forrás: opennet.ru
