È stato pubblicato il rilascio del server composito Niri 25.05, che implementa il metodo di composizione a mosaico (tiling) nello stile dell'estensione GNOME PaperWM, in cui le finestre si raggruppano in un nastro scorrevole all'infinito sullo schermo. L'apertura di una nuova finestra porta all'espansione del nastro, mentre le finestre aggiunte in precedenza non modificano le loro dimensioni. Il progetto si basa sull'uso del protocollo Wayland, ma consente di eseguire applicazioni X11 tramite il server DDX Xwayland. Il codice del progetto è scritto in Rust e distribuito con licenza GPLv3. I pacchetti vengono creati per Fedora, NixOS, Arch Linux e FreeBSD.
La principale differenza tra Niri e PaperWM è la gestione di un proprio stack di finestre per ogni monitor, che non si sovrappone a quello degli altri monitor (in PaperWM, la gestione separata dei monitor non è possibile a causa dell'associazione con le coordinate globali delle finestre in GNOME Shell). Niri supporta HiDPI e può funzionare su sistemi con più GPU (ad esempio, su sistemiibridi con scheda video dedicata e GPU integrata). È disponibile un'interfaccia integrata per catturare screenshot e registrare screencast, con la possibilità di escludere dalla registrazione finestre specifiche contenenti informazioni riservate.
I desktop virtuali in Niri vengono creati dinamicamente e, analogamente a GNOME, sono disposti verticalmente (lo stack delle finestre ruota orizzontalmente, mentre lo stack dei desktop è verticale). Su ciascun monitor può essere visualizzato un insieme indipendente. scrivanie virtuali. Per passare tra i desktop e le finestre, è possibile utilizzare le gesture sul touchpad. Quando il monitor è spento, la disposizione dei desktop virtuali viene memorizzata e trasferita sul monitor rimanente, e quando il monitor viene riacceso, torna allo stato originale. La configurazione avviene tramite un file di configurazione che consente di modificare parametri come la larghezza delle cornici, i margini, i modi di uscita e le dimensioni delle finestre. Le modifiche apportate al file di configurazione vengono applicate automaticamente senza riavviare il server composito.

Nella nuova versione:
- È stata aggiunta una modalità panoramica per la navigazione tra i desktop virtuali e le finestre aperte in essi. La modalità si attiva spostando il cursore nell'angolo in alto a sinistra o tramite uno swipe con quattro dita sul touchpad, dopodiché viene ridotto il zoom e viene mostrato un nastro dei desktop virtuali disponibili e delle finestre aperte in essi. Le finestre possono essere riarrangiate o spostate tra i desktop utilizzando il mouse o gesti sullo schermo.

- Ampliate le funzionalità per la creazione di screencast e la condivisione dello schermo. È stata aggiunta la possibilità di selezionare dinamicamente l'oggetto da registrare – inizialmente viene creato un flusso video vuoto, che può essere commutato per catturare la finestra attiva o l'intero schermo del monitor corrente. È supportata la registrazione dell'output delle applicazioni a schermo intero sotto forma di finestra virtuale.
- Nell'interfaccia per la creazione di screenshot è stata aggiunta la possibilità di selezionare l'area dello scatto tramite un tablet grafico o uno schermo touch. È stata aggiunta una nuova button nella barra inferiore per creare uno screenshot.
- È stata aggiunta la possibilità di evidenziare le finestre che richiedono particolare attenzione. Tali finestre sono evidenziate da un bordo colorato (il colore è impostabile tramite l'impostazione urgent-color) e sono dotate di un indicatore distinto nella barra.
- Ampliate le funzionalità dell'interfaccia IPC, utilizzata per l'interazione tra sistemi esterni e il compositore. server. Sono stati aggiunti comandi: «niri msg pick-window» (restituisce l'identificativo della finestra su cui ha cliccato l'utente) e «niri msg pick-color» (restituisce il colore del pixel selezionato).
- Aggiunte azioni per le finestre: focus-monitor, move-window-to-monitor, move-column-to-monitor, focus-column, move-column-to-index.
- Aggiunte impostazioni per i dispositivi di input: disabilitazione del tap-and-drag, disabilitazione degli schermi tattili, modifica del tasto modificatore, selezione dell'orientamento del touchpad, attivazione del Num Lock all'avvio.
- Migliorata l'efficienza del rendering delle finestre in texture intermedie (offscreening), soggette a ulteriore elaborazione (ad esempio, sovrapposizione di livelli) prima dell'uscita sul monitor.
Fonte: opennet.ru

