Dopo 6 mesi di sviluppo è stata presentata la prima versione preliminare del server composito Xfwl4, che utilizza il protocollo Wayland. Xfwl4 è scritto in Rust utilizzando la libreria Smithay. Il motivo alla base della creazione di un nuovo server composito è la non riuscita implementazione del supporto simultaneo per X11 e Wayland nell'attuale base di codice del gestore di finestre xfwm4, progettato originariamente per integrare strettamente il protocollo X11, rendendo difficile la separazione della logica generale di gestione delle finestre dalla specificità di X11.
Xfwl4 si sviluppa da zero e non interseca la base di codice del gestore di finestre xfwm4, ma punta a implementare tutte le funzionalità presenti in xfwm4, inclusa la possibilità di utilizzare le impostazioni esistenti di xfconf e l'interfaccia di configurazione con attenzione all'uso di Wayland invece di X11. Si prevede di portare la funzionalità di Xfwl4 a un livello tale da consentire all'utente di passare tra Xfwl4 e xfwm4 senza notare differenze.
Tra le funzionalità avanzate di Xfwl4 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. Il codice di Xfwl4 è distribuito sotto licenza GPLv3 (per confronto, il codice del gestore di finestre xfwm4 è distribuito sotto GPLv2).
Xfwl4 è costruito sulla 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 astratti di alto livello, pur consentendo di intervenire su sistemi a basso livello e di adattare le proprie esigenze nei metodi di output grafico, gestione dei dispositivi di input, comportamento dei protocolli Wayland e gestione dei compiti legati alla costruzione del desktop. Il linguaggio Rust è stato scelto per ridurre la possibilità di errori nella gestione della memoria e per diminuire la probabilità di problemi che portano a un crash.
È stato deciso di abbandonare il progetto di aggiunta graduale del supporto a Wayland in xfwm4 a causa delle preoccupazioni riguardo alla stabilità e all'emergere di nuovi bug durante il refactoring. È stato più semplice mantenere xfwm4 legato a X11 e sviluppare parallelamente un nuovo compositore server per Wayland. Le ragioni alla base della creazione di un nuovo server si menziona anche l'impossibilità di adattare alcuni concetti di gestione delle finestre X11 per Wayland e la necessità di utilizzare il linguaggio C e la libreria wlroots nel caso di una continuazione dello sviluppo di xfwm4, nonostante la presenza di alternative migliori.
La prima versione di Xfwl4 ha un livello di qualità alpha e non implementa tutte le funzionalità previste. Tra le funzionalità attualmente non disponibili nella prima versione di test ci sono:
- La finestra di configurazione del mouse e del touchpad.
- Finestra di configurazione desktop virtuali.
- Definizione delle aree ai bordi dello schermo, in cui è escluso il posizionamento delle finestre.
- Riduzione della finestra con visualizzazione dell'icona e del menu che viene mostrato al clic con il pulsante centrale del mouse.
- Visualizzazione delle miniature con il contenuto dei desktop virtuali nella barra.
- Combinazioni di tasti per passare tra le applicazioni e le finestre delle applicazioni.
- Ripristino della posizione precedente delle finestre dopo il riavvio delle applicazioni.
Fonte: opennet.ru
