Dopo 14 mesi di sviluppo, è stato pubblicato il rilascio del compositing manager Sway 1.9, costruito utilizzando il protocollo Wayland e completamente compatibile con il gestore di finestre a mosaico i3 e il pannello i3bar. Il codice del progetto è scritto in C e distribuito con licenza MIT. Il progetto è destinato all'uso su Linux e FreeBSD.
La compatibilità con i3 è garantita a livello di comandi, file di configurazione e IPC, il che consente di utilizzare Sway come un sostituto trasparente di i3, che utilizza Wayland invece di X11. Sway permette di posizionare le finestre sullo schermo non spazialmente, ma logicamente. Le finestre sono disposte formando una griglia, utilizzando in modo ottimale lo spazio dello schermo e consentendo di manipolare rapidamente le finestre solo tramite tastiera.
Per allestire un ambiente utente completo sono proposti componenti aggiuntivi: swayidle (processo in background con implementazione del protocollo KDE idle), swaylock (blocco dello schermo), mako (gestore delle notifiche), grim (creazione di screenshot), slurp (selezione di aree dello schermo), wf-recorder (registrazione 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, dalla quale sono estratti tutti i primitivi di base per organizzare il funzionamento del gestore composito. Wlroots include backend per astrazioni nell'accesso allo schermo, ai dispositivi di input, nella renderizzazione senza accesso diretto a OpenGL, nell'interazione con KMS/DRM, libinput, Wayland e X11 (fornisce uno strato per eseguire applicazioni X11 su base Xwayland). Oltre a Sway, la libreria wlroots è utilizzata attivamente anche in altri progetti, inclusi Librem5 e Cage. Oltre a C/C++, sono stati sviluppati binding per Scheme, Common Lisp, Go, Haskell, OCaml, Python e Rust.
Nel nuovo rilascio:
- Sono state introdotte nuove funzionalità della libreria wlroots 0.17, come il supporto per i protocolli Wayland content-type-v1 (gestione delle informazioni sul contenuto visualizzato), xwayland-shell-v1 (collegamento delle finestre X11 con le superfici Wayland), wp-fractional-scale-v1 (scalatura frazionaria), security-context-v1 (isolamento sandbox) e cursor-shape-v1 (configurazione dell'aspetto del cursore).
- Migliorato il supporto del protocollo "xdg-activation-v1", che consente di trasferire il focus tra diverse superfici di primo livello di Wayland (ad esempio, tramite xdg-activation un'applicazione può passare il focus a un'altra). Nella nuova versione è stato aggiunto il supporto per il tracciamento del focus considerando desktop virtuali e le configurazioni multi-monitor.
- Il codice per il rendering dei contenuti è stato convertito nel nuovo API di rendering fornito dalla libreria wlroots, che ha permesso di ottenere un aumento delle prestazioni.
- Nel file di configurazione è stata aggiunta un'opzione per disabilitare il buffer di scambio primario.
- Sono state aggiunte nuove comandi di controllo dei dispositivi di input, che consentono di impostare i parametri RotationAngle e ScrollButtonLock in libinput per risolvere problemi con touchpad e mouse.
- Aggiunto il supporto per l'uso dei pulsanti dei tablet per modificare la dimensione delle finestre flottanti.
- Nell'IPC è stato aggiunto il supporto per l'evento di output.
- Come menu delle applicazioni predefinito è stato utilizzato il progetto wmenu.
- Interrotta la compatibilità con il protocollo idle specifico per KDE, a fronte del quale è stato utilizzato il protocollo standard Wayland idle-notify-v1.


Fonte: opennet.ru
