È stato rilasciato il compositing manager River 0.4.0, che a differenza di altri compositing manager basati sul protocollo Wayland utilizza un'architettura modulare con la separazione del window manager in un programma distinto. In River, i window manager sono modulari e l'utente può sceglierli secondo le proprie preferenze. Il codice del progetto è scritto in Zig e rilasciato sotto licenza GPLv3.
River può funzionare sia in sessioni nidificate, eseguite sopra altri server X11 e Wayland, sia senza stratificazioni, utilizzando come output i driver KMS/DRM. Per separare le funzionalità del compositing e del window manager, il progetto sviluppa il protocollo Wayland river-window-management-v1. Funzioni come la decorazione delle finestre, la gestione del focus d'input, il puntatore, le combinazioni di tasti, la posizione e le dimensioni delle finestre sono trasferite al window manager.
È possibile cambiare i window manager al volo, senza interrompere la sessione. Sono disponibili 16 window manager compatibili con River, tra cui window manager a mosaico nello stile di DWM o xmonad, stile Emacs simile a EXWM, classici a stack e basati su strisce scrollanti. Per eseguire applicazioni X11 è supportato l'uso di Xwayland.
Tra le ragioni per la separazione tra compositing e window manager si cita: abbassare la soglia per la scrittura di window manager; la possibilità di realizzare window manager in linguaggi ad alto livello con garbage collection, senza influire sulle performance del compositing manager; la possibilità di sostituire i window manager a caldo senza riavviare il compositing e i programmi grafici in esecuzione; semplificare la sperimentazione nel design dei window manager. server e dei programmi grafici in esecuzione; semplificare l'esecuzione di esperimenti legati al design dei window manager.
Tra i limiti del protocollo river-window-management-v1 si segnala l'assenza di funzionalità che vanno oltre le operazioni 2D sul desktop, ad esempio non supporta la creazione di effetti complessi e interfacce 3D per sistemi di realtà virtuale. Gli effetti sono attualmente limitati a semplici animazioni, ma in futuro si prevede di realizzare effetti più complessi tramite shader.

Fonte: opennet.ru
