È stato rilasciato il compositore River 0.4.0, che a differenza di altri compositori basati sul protocollo Wayland utilizza un'architettura modulare separando il gestore delle finestre in un programma a parte. In River, i gestori delle finestre sono plug-in e l'utente può sceglierli a proprio piacimento. Il codice del progetto è scritto in Zig ed è distribuito con licenza GPLv3.
River può essere eseguito sia in sessioni nidificate, lanciate sopra altri server X11 e Wayland, che senza strati, utilizzando driver KMS/DRM per l'output. Per separare la funzionalità del compositore e del gestore delle finestre, il progetto sta sviluppando il protocollo Wayland river-window-management-v1. Funzioni come la decorazione delle finestre, la gestione del focus dell'input, del cursore, delle combinazioni di tasti, della posizione e della dimensione delle finestre sono trasferite al gestore delle finestre.
È possibile sostituire i gestori delle finestre al volo, senza interrompere la sessione. Sono disponibili 16 gestori delle finestre compatibili con River, tra cui gestori in stile DWM o xmonad, simili a Emacs in stile EXWM, stack classici e basati su rulli. Per l'esecuzione delle applicazioni X11 è supportato l'uso di Xwayland.
Tra le ragioni per la separazione dei compositori e dei gestori delle finestre si cita: ridurre la soglia per la creazione di gestori delle finestre; la possibilità di implementare gestori delle finestre in linguaggi di alto livello con raccolta dei rifiuti, che non influenzano le prestazioni del compositore; la possibilità di sostituire i gestori delle finestre senza riavviare il compositore e le applicazioni grafiche già in esecuzione; facilitare esperimenti relativi al design dei gestori delle finestre. server Tra le limitazioni del protocollo river-window-management-v1 si segnala l'assenza di funzionalità al di fuori delle operazioni 2D con il desktop; ad esempio, non viene supportata 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 implementare effetti più complessi tramite shader.
Dalle limitazioni del protocollo river-window-management-v1 si evidenzia l'assenza di funzionalità che vanno oltre le operazioni 2D con il desktop, ad esempio, non è supportata la creazione di effetti complessi e interfacce 3D per i sistemi di realtà virtuale. Gli effetti sono attualmente limitati a semplici animazioni, ma in futuro si prevede di implementare effetti più complessi attraverso l'uso di shader.

Fonte: opennet.ru
