Na acht maanden ontwikkeling is de stabiele versie van het Wayland 1.25-protocol, het interprocescommunicatiemechanisme en de bijbehorende bibliotheken uitgebracht. De 1.25-versie is achterwaarts compatibel met de 1.x-versies op API- en ABI-niveau en bevat voornamelijk bugfixes en kleine protocolupdates. Het project is gelicentieerd onder de MIT-licentie. De Weston-referentiecomposietserver, die code en werkende voorbeelden biedt voor het gebruik van Wayland in desktopomgevingen en embedded oplossingen, wordt in een aparte ontwikkelingscyclus ontwikkeld.
De belangrijkste wijzigingen in het protocol:
- De documentatie is geconverteerd van DocBook naar mdBook (Markdown)-formaat.
- Het Wayland XML-dialect, het contentupdate-model en de mogelijkheden voor kleurbeheer zijn volledig gedocumenteerd.
- Nieuw attribuut "bevroren" toegevoegd voor interfaces met meerdere bovenliggende interfaces.
- Er is een nieuwe wl_surface.get_release-aanvraag toegevoegd voor het ontvangen van een melding wanneer een buffer die door de client via wl_surface.attach is gekoppeld, wordt vrijgegeven. In tegenstelling tot wl_buffer.release is de melding van wl_surface.get_release gekoppeld aan een specifiek renderingmoment.
- De functie wl_display_dispatch_pending_single() is toegevoegd. Deze functie maakt het mogelijk om slechts één gebeurtenis uit de gebeurteniswachtrij op te halen en te verwerken, in plaats van alle verzamelde gebeurtenissen zoals wl_display_dispatch_pending() doet.
- De uitvoer van de WAYLAND_DEBUG-debugopdracht wordt nu met kleur gemarkeerd.
Protocoluitbreidingen die zijn toegevoegd sinds de release van Wayland 1.25, die het kernprotocol van Wayland aanvullen en worden geleverd in een aparte set Wayland-Protocols:
- xx-input-method — Hiermee kunnen applicaties tekstinvoermethoden implementeren voor samengestelde typen. servers en de ingevoerde tekst genereren, die bijvoorbeeld gebruikt kan worden om virtuele toetsenborden en IME-lagen (Input Method Editor) te creëren voor het verwerken van invoer.
- xx-text-input — stelt samengestelde servers in staat om invoermethoden te implementeren en tekst naar applicaties te verzenden. Het protocol standaardiseert de interactie tussen samengestelde servers. server en toepassingen, en stelt u in staat om functies te beheren zoals het verzenden van invoertekst, het afhandelen van gebeurtenissen met betrekking tot focuswijzigingen in invoervelden en het rekening houden met de specifieke kenmerken van invoervelden (taal, tekstselectie, inhoudstype).
- De protocollen color-management-v1 en color-representation-v1 zijn verbeterd en bieden nu mogelijkheden voor kleurbeheer, HDR-ondersteuning en het definiëren van de kleurrepresentatie van een Wayland-oppervlak.
De meest opvallende gebeurtenissen met betrekking tot Wayland die hebben plaatsgevonden sinds de publicatie van het vorige nummer:
- GNOME 50 heeft de ondersteuning voor X11 verwijderd. KDE Plasma 6.8 zal de ondersteuning voor X11 ook laten vallen.
- JetBrains stapt over op Wayland als standaardtoepassing voor de IntelliJ IDE.
- Xfce heeft de Xfwl4 compositing-server aangekondigd, die gebruikmaakt van Wayland.
- De Budgie 10.10 desktopomgeving is gemigreerd naar Wayland.
- QNX Developer Desktop gebaseerd op Wayland.
- Marathon OS is een op Wayland gebaseerd mobiel besturingssysteem.
- De release van Wayback, een laag voor het uitvoeren van X11-desktops met behulp van Wayland-componenten.
- Cinnamon biedt nu de mogelijkheid om sessiebestanden voor Wayland te installeren en implementeert de functionaliteit om toetsenbordindelingen te wijzigen bij gebruik van Wayland.
- De Wine-driver biedt ondersteuning voor het klembord, invoermethoden, niet-rechthoekige vensters en transparantie bij gebruik in Wayland-omgevingen.
- Wayland-ondersteuning is toegevoegd aan Cairo-Dock.
- Samengestelde servers bijgewerkt: Weston 15.0, River 0.4.0, Hyprland 0.54, labwc 0.9.4, Niri 25.11, miracle-wm 0.8, Wayfire 0.10, wlmaker 0.6, labwc 0.9.0.
Laten we niet vergeten dat Wayland een samengesteld communicatieprotocol is. server en applicaties die ermee werken. Clients renderen hun vensters onafhankelijk in een aparte buffer en geven informatie over updates door aan de samengestelde buffer. serverDit combineert de inhoud van individuele applicatiebuffers om de uiteindelijke uitvoer te genereren, rekening houdend met mogelijke nuances zoals vensteroverlapping en transparantie. Met andere woorden, de samengestelde server biedt geen API voor het renderen van individuele elementen, maar werkt alleen met vooraf gerenderde vensters. Hierdoor wordt dubbele buffering voorkomen bij gebruik van hoogwaardige bibliotheken zoals GTK en Qt, die het samenstellen van vensterinhoud afhandelen.
Wayland lost veel van de beveiligingsproblemen van X11 op, omdat het, in tegenstelling tot laatstgenoemde, de invoer en uitvoer voor elk venster isoleert, een client geen toegang geeft tot de inhoud van de vensters van andere clients en invoergebeurtenissen die aan andere vensters zijn gekoppeld, niet kan onderscheppen. Ondersteuning voor directe samenwerking met Wayland is geïmplementeerd voor de meeste grafische bibliotheken die in Linux worden gebruikt, waaronder GTK, Qt, SDL, FLTK, wxWidgets, Clutter en EFL (Enlightenment Foundation Library).
Interactie met hardware in Wayland/Weston, zoals initialisatie, het wisselen van videomodi (drm modesetting) en geheugenbeheer (GEM voor i915 en TTM voor Radeon en Nouveau) van grafische kaarten, kan rechtstreeks worden uitgevoerd via een module die op kernelniveau draait, waardoor u geen superuser-rechten nodig hebt. Om de uitvoering van reguliere X11-applicaties in een Wayland-omgeving te garanderen, wordt de XWayland (Device-Dependent X) DDX-component gebruikt, die qua organisatie vergelijkbaar is met Xwin en Xquartz voor Win32- en macOS-platforms.


Bron: opennet.ru
