Dopo tre mesi di sviluppo, è stato rilasciato il server composito Niri 26.04, che implementa il metodo di layout a mosaico (tiling) in stile GNOME-extension PaperWM, in cui le finestre vengono raggruppate in un nastro continuamente scorrevole sullo schermo. L'apertura di una nuova finestra porta all'espansione del nastro, mentre le finestre aggiunte in precedenza non cambiano dimensione. Il progetto si basa sull'uso del protocollo Wayland, ma consente l'esecuzione di applicazioni X11 tramite il server DDX Xwayland. Il codice del progetto è scritto in Rust e distribuito con licenza GPLv3. I pacchetti vengono forniti 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 i gesti di controllo sul touchpad. Quando il monitor è disattivato, la disposizione dei desktop virtuali viene memorizzata e trasferita sul monitor rimanente, e al riaccensione del monitor viene ripristinata alla condizione iniziale. La configurazione avviene tramite un file di configurazione, che consente di modificare parametri come la larghezza dei bordi, i margini, le modalità di output e le dimensioni delle finestre. Le modifiche apportate al file di configurazione vengono applicate automaticamente senza riavviare il compositore. server.
Nella nuova versione:
- È stata aggiunta la possibilità di sfocare lo sfondo delle finestre traslucide. Le applicazioni e i componenti dell'ambiente utente possono gestire la trasparenza utilizzando il protocollo Wayland ext-background-effect, mentre per i programmi che non supportano tale protocollo, la trasparenza può essere configurata tramite un collegamento nel file di configurazione. Il supporto integrato per la sfocatura dello sfondo è implementato nelle shell Dank Material Shell e Noctalia, nel launcher Vicinae, negli emulatori di terminale foot, kitty e Ghostty, nei toolkit Quickshell e winit. Sono disponibili due modalità di sfocatura dello sfondo: «xray» (la sfocatura viene calcolata una volta e quindi viene inserita un'immagine statica pronta) e «normal» (la sfocatura viene effettuata al volo).

- Nella direttiva del file di configurazione «include», utilizzata per includere il contenuto di altri file, è stata aggiunta l'opzione «optional=true», che consente di definire componenti di configurazione opzionali. Se il file collegato è assente, con l'opzione «optional=true» verrà visualizzato un avviso invece di un errore. All'interno della configurazione è stata aggiunta la possibilità di utilizzare il percorso «~/», associato alla home directory.
- Per semplificare la navigazione tra più finestre, ispirata a Blender, è stata implementata la funzione di salto automatico del cursore da un lato all'altro dello schermo durante lo scorrimento orizzontale della zona di lavoro.
- Nella registrazione di screencast, è stata realizzata la trasmissione a PipeWire dei metadati sul cursore separatamente dal flusso video, il che consente, ad esempio, di disegnare autonomamente il cursore in OBS. Sono stati aggiunti comandi IPC per monitorare la registrazione dello screencast, fermare la registrazione e ricevere eventi di inizio/fine registrazione (per mostrare un indicatore nella barra).
- Migliorata l'animazione di scorrimento e di apertura/chiusura delle finestre.
- Aggiunta la possibilità di annullare l'operazione di drag & drop premendo il tasto Escape.
- Migliorato il supporto per tablet e trackball.
- Ampliate le capacità di profiling GPU con l'aiuto del pacchetto Tracy. Aggiunta la possibilità di monitorare le performance di rendering e delle operazioni di sfocatura. Implementato il supporto per sistemi con grafica ibrida (GPU integrata + scheda grafica dedicata).
- Ottimizzata la resa grafica. La costruzione della lista degli oggetti renderizzati sullo schermo è stata accelerata da 2 a 3 volte sui sistemi moderni e fino a 8 volte sui sistemi più datati.
Fonte: opennet.ru

