Niri è un “compositore di finestre a tiling scrollabile” progettato per il protocollo Wayland, che rappresenta un’alternativa moderna al tradizionale sistema X Window. Un compositore è un componente software fondamentale in un sistema grafico, responsabile della visualizzazione delle finestre sullo schermo. In particolare, in un ambiente come Wayland, il compositore gestisce il rendering (disegno) delle immagini e funge da intermediario tra le applicazioni e l’hardware grafico, migliorando le prestazioni e riducendo la latenza.
Il termine “tiling” (affiancamento) si riferisce a un metodo di gestione delle finestre in cui le applicazioni vengono disposte in modo da occupare l’intero schermo senza sovrapposizioni. In questo modo, ogni finestra viene automaticamente ridimensionata per adattarsi allo spazio disponibile. La caratteristica di “scrolling” (scorrimento) implica che le finestre possono essere organizzate su una superficie virtuale che si estende oltre i limiti fisici dello schermo, consentendo agli utenti di scorrere attraverso diverse aree della loro disposizione di finestre. Niri combina queste funzionalità per offrire un’esperienza utente efficiente e intuitiva nella gestione delle applicazioni.
Recentemente, Niri ha lanciato la sua nuova versione Niri 25.01, segnando un cambiamento significativo nella sua numerazione. Questo aggiornamento avviene a soli 2 mesi dalla versione precedente e segna il passaggio da un sistema di numerazione chiamato ZeroVer a uno basato su anno e mese. ZeroVer è un metodo di versioning (numerazione di versioni) che utilizza numeri interi semplici per identificare le versioni, senza una struttura definita per indicare modifiche significative o correzioni. Con il nuovo sistema, 25.01 indica che questa versione è stata etichettata nel gennaio 2025. In caso di correzioni rapide, verrà aggiunto un 3° componente al numero di versione, come ad esempio 25.01.1.
Novità Principali in Niri 25.01
Una delle novità più rilevanti è l’introduzione delle finestre flottanti. Le finestre flottanti sono un tipo di finestra che può essere posizionata liberamente sullo schermo, senza essere vincolata a un layout fisso come avviene normalmente nei gestori di finestre a tiling. A differenza delle finestre tradizionali, che occupano uno spazio definito e si sovrappongono ad altre finestre, le finestre flottanti possono muoversi liberamente e mantenere la loro posizione anche quando si scorre attraverso altre aree dello schermo.
Implementare correttamente le finestre flottanti in un gestore di finestre a tiling non è affatto semplice. Il creatore di Niri ha dedicato un mese intero alla ristrutturazione del codice per realizzare questa funzionalità, offrendo agli utenti un’esperienza ben definita che ricorda i gestori di finestre a tiling più affermati, come i3, Awesome e Xmonad. Questi gestori sono noti per la loro capacità di organizzare le finestre in modo efficiente, senza sovrapposizioni, e per le loro opzioni di personalizzazione avanzate.
Ad esempio, i3 è un gestore di finestre a tiling molto popolare tra gli utenti GNU/Linux, che consente una gestione delle finestre tramite tastiera, rendendo l’interazione molto rapida. Awesome, d’altra parte, è altamente configurabile e utilizza il linguaggio Lua per la personalizzazione, mentre Xmonad è scritto in Haskell e offre un’architettura modulare che permette agli utenti di estendere facilmente le sue funzionalità.
Funzionalità delle Finestre Flottanti:
- Auto-flottante e dialoghi: Le finestre di dialogo e quelle a dimensione fissa ora si comportano automaticamente come finestre flottanti, eliminando il problema delle finestre di dialogo scorrevoli.
- Scorrimento e flottante: Sebbene Niri utilizzi un layout a scorrimento (dove le colonne si muovono su una striscia infinita), le finestre flottanti occupano un proprio “livello” che non scorre. Ogni spazio di lavoro o monitor ha il proprio layout flottante.
- Memoria della posizione e gestione delle finestre non visibili: Niri tiene traccia della posizione delle finestre flottanti rispetto alle dimensioni del monitor. Se uno spazio di lavoro viene visualizzato su un monitor più piccolo, le finestre vengono automaticamente spostate all’interno per rimanere accessibili.
- Interazioni semplici con il mouse: Gli utenti possono facilmente passare una finestra da tiling a flottante (e viceversa) semplicemente trascinandola con il mouse e facendo clic col tasto destro. Il compositore mostra un “suggerimento di inserimento” per facilitare la posizione della finestra.
- Regole delle finestre: È stata introdotta una nuova regola per le finestre chiamata “is-floating”, insieme a “open-floating” e “default-floating-position”, che consente agli utenti di impostare posizioni predefinite per specifiche applicazioni.
Miglioramenti nel Comportamento Layer-Shell
Niri 25.01 apporta anche miglioramenti significativi al comportamento dei layer-shell. I layer-shell sono un concetto specifico del protocollo Wayland che consente la gestione di superfici grafiche (o finestre) organizzate in livelli sovrapposti, ognuno con una propria profondità (z-depth). Questo approccio permette di creare elementi dell’interfaccia utente, come barre degli strumenti e menu a comparsa, che possono essere ancorati ai bordi dello schermo e visualizzati sopra le finestre normali. Le superfici layer-shell possono essere utilizzate per implementare componenti desktop come barre di stato, pannelli e altri elementi interattivi, garantendo che siano sempre visibili e facilmente accessibili all’utente.
In Niri 25.01, i miglioramenti apportati ai layer-shell assicurano che i menu a comparsa, come quelli di Waybar o lxqt-panel, non si bloccano più a metà apertura e i pop-up da tutte le superfici layer-shell ora appaiono sopra le finestre normali. Questo significa che non è più necessario sovrapporre la barra di stato per garantire la visibilità dei menu contestuali.
Inoltre, Niri 25.01 introduce una novità significativa: quando si trascina una finestra da un monitor a un altro, ad esempio una scheda del browser, il workspace del nuovo monitor diventa attivo immediatamente. Questo comportamento migliora notevolmente l’esperienza utente, poiché consente di passare rapidamente tra i diversi ambienti di lavoro senza dover compiere ulteriori azioni per attivare il nuovo monitor. In questo modo, gli utenti possono gestire più schermi in modo più efficiente e continuare a lavorare senza interruzioni.
Altre Novità Rilevanti in Niri 25.01
Niri 25.01 introduce anche:
- Fix per monitor identici: Gestione automatica dei monitor con marca/modello/seriale identici per evitare conflitti nei nomi.
- Flessibilità degli spazi di lavoro: Possibilità di mantenere uno spazio di lavoro vuoto all’inizio e nuove azioni per navigare tra i monitor in modo prevedibile.
- Regole e flag di debug: Nuove opzioni per forzare o impedire il focus automatico sulle nuove finestre e diverse nuove flag di debug per casi d’uso avanzati.
- Aggiornamenti tecnici: Riscrittura dei tempi di animazione per eliminare flicker o transizioni instabili; aggiornamenti delle dipendenze critiche come Smithay e rustix.
Per ulteriori dettagli sulle novità introdotte in Niri 25.01, gli utenti possono leggere l’annuncio ufficiale della nuova versione, che include anche video dimostrativi delle nuove funzionalità in azione.
Fonte: https://github.com/YaLTeR/niri/releases/tag/v25.01
Fonte: https://www.phoronix.com/news/Niri-25.01-Tiling-Wayland-Comp
Fonte: https://linuxiac.com/niri-25-1-debuts-with-revamped-release-numbering/
Source: Read More