Na 6 maanden ontwikkeling is de eerste voorlopige versie van de Xfwl4 compositora gemaakt, die het Wayland-protocol gebruikt. Xfwl4 is geschreven in de programmeertaal Rust met behulp van de Smithay-bibliotheek. De reden voor de ontwikkeling van deze nieuwe compositora is een mislukte poging om gelijktijdige ondersteuning voor zowel X11 als Wayland te realiseren in de bestaande codebasis van de windowmanager xfwm4, die oorspronkelijk was ontworpen met een sterke integratie van het X11-protocol, wat het moeilijk maakte om de algemene logica van vensterbeheer los te koppelen van de specifieke X11-functionaliteit.
Xfwl4 wordt vanaf nul ontwikkeld en heeft geen overlap met de codebasis van de windowmanager xfwm4, maar richt zich op het implementeren van alle functionaliteiten die in xfwm4 beschikbaar zijn, inclusief de mogelijkheid om de bestaande xfconf-instellingen en configuratie-interface te gebruiken met inachtneming van de specifieke kenmerken van Wayland in plaats van X11. Het plan is om de functionaliteit van Xfwl4 naar een niveau te tillen waarbij de gebruiker kan schakelen tussen Xfwl4 en xfwm4 zonder verschillen te merken.
Van de uitgebreide functionaliteiten van Xfwl4 wordt de aanzienlijke herziening van de sessie-startlogica, de implementatie van het Wayland-protocol xdg-session-management, en de ondersteuning voor het starten van X11-applicaties via XWayland opgemerkt. De code van Xfwl4 wordt verspreid onder de GPLv3-licentie (ter vergelijking, de code van de windowmanager xfwm4 wordt verspreid onder de GPLv2).
Xfwl4 is gebouwd op de Smithay-bibliotheek, die implementaties biedt van bijna alle officiƫle uitbreidingen van het Wayland-protocol, evenals de protocollen wlroots en KDE. Smithay wordt gebruikt in projecten zoals Cosmic en Niri. Net als wlroots biedt de Smithay-bibliotheek hoog-niveau abstracties, maar stelt gebruikers ook in staat om in te grijpen in de werking van laag-niveau systemen en grafische uitvoermethoden, inputapparaatwerking, het gedrag van Wayland-protocollen en de afhandeling van desktopbouwgerelateerde taken aan te passen aan hun behoeften. De programmeertaal Rust is gekozen omdat deze het maken van geheugenfouten bemoeilijkt en de kans op problemen die leiden tot crash vermindert.
Het project om geleidelijk Wayland-ondersteuning toe te voegen aan xfwm4 is geconcludeerd vanwege zorgen over stabiliteitsvermindering en de mogelijkheid van nieuwe fouten tijdens het refactoren. Het bleek eenvoudiger om xfwm4 aan X11 te koppelen en tegelijkertijd een nieuwe compositor voor Wayland te ontwikkelen. server Als redenen voor de oprichting van een nieuwe de server er wordt ook vermeld dat sommige concepten van vensterbeheer in X11 niet kunnen worden aangepast aan Wayland en dat de programmeertaal C en de wlroots-bibliotheek moeten worden gebruikt als de ontwikkeling van xfwm4 wordt voortgezet, ondanks betere alternatieven.
De eerste uitgave van Xfwl4 heeft een alfa-kwaliteitsniveau en implementeert niet alle geplande functionaliteit. Van de mogelijkheden die momenteel niet beschikbaar zijn in deze eerste testversie:
- Dialoog voor het instellen van muis en touchpad.
- Instellingen dialoog virtuele desktops.
- Definitie van gebieden aan de randen van het scherm waar het plaatsen van vensters is uitgesloten.
- Het minimaliseren van een venster met een pictogram en een menu dat wordt weergegeven bij het klikken met de middelste muisknop.
- Weergave van miniaturen met de inhoud van virtuele bureaubladen in de panelen.
- Toetscombinaties voor het wisselen tussen applicaties en applicatievensters.
- Herstellen van de vorige vensterlocatie na het herstarten van applicaties.
Bron: opennet.ru
