Dopo quasi un anno di sviluppo, è stato pubblicato il rilascio del compositore Sway 1.12, costruito utilizzando il protocollo Wayland e compatibile con il gestore di finestre a mosaico i3 e la barra i3bar. Il codice del progetto è scritto in C ed è distribuito con licenza MIT. Il progetto è destinato all'uso su Linux e FreeBSD.
Sway consente di utilizzare il posizionamento logico delle finestre (il gestore delle finestre sceglie dinamicamente la posizione e le dimensioni della finestra, tenendo conto delle altre finestre aperte ed evitando sovrapposizioni), anziché il tradizionale posizionamento spaziale (l'utente sceglie un luogo e una dimensione arbitraria per la finestra, con possibili sovrapposizioni). Le finestre sono disposte in una griglia, ottimizzando l'uso dello spazio su schermo e permettendo di manipolare rapidamente le finestre solo con la tastiera. La compatibilità con i3 è garantita a livello di comandi, file di configurazione e IPC, consentendo l'uso di Sway come una sostituzione trasparente di i3, utilizzando Wayland invece di X11.
Per la creazione di un ambiente utente completo sono disponibili componenti ausiliari: swayidle (processo in background con implementazione della modalità di attesa), swaylock (blocco schermo), mako (gestore delle notifiche), grim (creazione di screenshot), slurp (selezione di aree sullo schermo), wf-recorder (cattura video), waybar (barra delle applicazioni), virtboard (tastiera su schermo), wl-clipboard (gestione degli appunti), wallutils (gestione degli sfondi del desktop).
Sway si sviluppa come progetto modulare, costruito sopra la libreria wlroots, che contiene tutti i primitivi di base per organizzare il funzionamento del compositore. Wlroots include backend per
astrarre l'accesso a schermo, dispositivi di input, rendering senza accesso diretto a OpenGL, interazione con KMS/DRM, libinput, Wayland e X11 (viene fornita un'interfaccia per eseguire applicazioni X11 basate su Xwayland). Oltre a Sway, la libreria wlroots è attivamente utilizzata anche in altri progetti. Oltre al supporto per i linguaggi C/C++, sono disponibili binding per i linguaggi Scheme, Common Lisp, Go, Haskell, OCaml, Zig, Python e Rust.
Nel nuovo rilascio:
- È stata aggiunta la possibilità di catturare singole finestre.
- Implementato il supporto per l'uscita ad alta gamma dinamica HDR10 utilizzando il rendering basato sull'API Vulkan.
- Aggiunto il supporto ai protocolli Wayland:
- color-management-v1 per la gestione del colore e il supporto per l'ampio intervallo dinamico (HDR, High Dynamic Range).
- color-representation-v1 per la definizione della rappresentazione dei colori della superficie Wayland.
- xdg-toplevel-tag-v1 per l'assegnazione di tag alle superfici di livello superiore da parte dei client Wayland, che il compositore server può utilizzare per ripristinare la posizione, le dimensioni e le proprietà delle finestre dopo il riavvio, e per definire regole speciali per tipi specifici di finestre.
- ext-workspace-v1 per la creazione di pannelli o indicatori che mostrano un elenco di quelli disponibili desktop virtuali e consentono di passare da uno all'altro.
- wl_fixes per risolvere problemi con altre interfacce software dei protocolli di base che non possono essere risolti dalle proprie capacità di queste interfacce.
- Implementata l'opzione "—device-primaries", che consente di formare il profilo colore sulla base dei dati forniti dal monitor attraverso l'EDID.
- Aggiunta la supporto per rilevare la presenza di un tastierino, utilizzando il flag LIBINPUT_SWITCH_KEYPAD_SLIDE in libinput.
- Nel file di configurazione sono state incluse le assegnazioni di tasti multimediali speciali (pausa, ripresa, brano successivo, ecc.) per controllare la riproduzione dei contenuti multimediali tramite l'utilità playerctl.
- Il profilo colore di uscita srgb è stato convertito per utilizzare una funzione di trasferimento a pezzi (piece-wise) sRGB anziché gamma 2.2 (per gamma 2.2 è necessario utilizzare un profilo separato gamma22 che viene applicato per impostazione predefinita).
- L'avvio in sistemi con GPU non supportate (ad esempio, utilizzando driver NVIDIA proprietari) ora porta a visualizzare un avviso anziché terminare con un errore. L'avviso può essere disattivato utilizzando il flag "—unsupported-gpu" o la variabile d'ambiente SWAY_UNSUPPORTED_GPU.
- Aggiunto il supporto ufficiale per l'uso di gestori di visualizzazione per l'avvio di Sway.
- Attivate nuove funzionalità della libreria wlroots 0.20. Tra le novità della nuova versione di wlroots: supporto per la definizione della rappresentazione dei colori della superficie Wayland, gestione del colore e utilizzo dell'HDR tramite i protocolli color-representation-v1 e color-management-v1. Supporto per i protocolli Wayland cursor-shape-v1 per configurare l'aspetto del cursore,
ext-workspace-v1 per l'utilizzo del concetto di desktop virtuali e xdg-toplevel-tag-v1 per identificare finestre/superfici tramite l'associazione di tag.

Fonte: opennet.ru
