Il team di sviluppatori dell'ambiente desktop Xfce ha annunciato l'inizio dello sviluppo di un nuovo server composito Xfwl4, che utilizza il protocollo Wayland. In Xfwl4 si è deciso di non utilizzare il codice sorgente dell'attuale gestore di finestre xfwm4 e di sviluppare il progetto da zero in Rust, utilizzando la libreria Smithay. Il progetto è attualmente nella fase iniziale di sviluppo e il primo rilascio di prova è previsto per metà del 2026. Il codice di Xfwl4 è distribuito sotto licenza GPLv3.
In Xfwl4 si prevede di implementare tutta la funzionalità presente in xfwm4, compresa la possibilità di utilizzare le esistenti impostazioni xfconf e l'interfaccia di configurazione, ma tenendo conto delle specifiche di utilizzo di Wayland invece di X11. Tra le funzionalità avanzate si segnala una significativa revisione della logica di avvio delle sessioni, l'implementazione del protocollo Wayland xdg-session-management e il supporto per l'avvio di applicazioni X11 tramite XWayland.
Come motivo per la creazione di un nuovo composito server viene citato un tentativo non riuscito di realizzare il supporto simultaneo per X11 e Wayland nell'attuale codice sorgente del gestore di finestre xfwm4, che è stato originariamente progettato tenendo conto di una stretta integrazione con il protocollo X11, il che ha reso difficile separare la logica di gestione delle finestre dall'integrazione specifica di X11.
L'aggiunta graduale del supporto per Wayland in xfwm4 è stata considerata impraticabile a causa della probabilità di ridurre la stabilità e l'emergere di nuovi bug durante il processo di refactoring. È risultata più semplice lasciare xfwm4 ancorato a X11 e sviluppare parallelamente un nuovo composito server per Wayland. Tra le ragioni si cita anche l'impossibilità di adattare alcuni concetti di gestione delle finestre di X11 a Wayland e la necessità di utilizzare il linguaggio C e la libreria wlroots nel caso si decidesse di continuare lo sviluppo di xfwm4, nonostante la disponibilità di migliori alternative.
Xfwl4 è stato deciso di svilupparlo sopra la libreria Smithay, che fornisce un'implementazione di quasi tutte le estensioni ufficiali del protocollo Wayland, oltre ai protocolli wlroots e KDE. Smithay è utilizzato in progetti come Cosmic e Niri. Analogamente a wlroots, la libreria Smithay offre astrazioni di alto livello ma consente anche di intervenire nel funzionamento dei sistemi a basso livello e di adattare le proprie esigenze nei metodi di output grafico, nella gestione dei dispositivi di input, nel comportamento dei protocolli Wayland e nella gestione dei compiti legati alla costruzione del desktop. Il linguaggio Rust è stato scelto per ridurre la possibilità di errori nella gestione della memoria e abbattere il rischio di problematiche che possono portare al crash del sistema.
Fonte: opennet.ru
