È stata pubblicata la versione 1.7 del gestore di composizione Sway, realizzato utilizzando il protocollo Wayland e completamente compatibile con il gestore di finestre a mosaico i3 e la barra i3bar. Il codice del progetto è scritto in C ed è distribuito sotto 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, permettendo a Sway di fungere da sostituto trasparente di i3, utilizzando Wayland al posto di X11. Sway consente di posizionare le finestre sullo schermo in modo logico piuttosto che spaziale. Le finestre sono disposte a formare una griglia, ottimizzando lo spazio dello schermo e permettendo di manipolare rapidamente le finestre solo con la tastiera.
Per creare un ambiente utente completo, sono disponibili componenti accessori: swayidle (processo in background con implementazione del protocollo KDE idle), swaylock (salvaschermo), mako (gestore delle notifiche), grim (creazione di screenshot), slurp (selezione dell'area sullo schermo), wf-recorder (cattura video), waybar (barra delle applicazioni), virtboard (tastiera sullo schermo), wl-clipboard (gestione degli appunti), wallutils (gestione degli sfondi del desktop).
Sway si evolve come progetto modulare costruito sulla libreria wlroots, che include tutte le primitive di base per l'organizzazione del lavoro di un gestore di composizione. Wlroots comprende backend per astrarre l'accesso allo schermo, ai dispositivi di input, al rendering senza un accesso diretto a OpenGL, all'interazione con KMS/DRM, libinput, Wayland e X11 (offrendo un layer per l'esecuzione di applicazioni X11 su Xwayland). Oltre a Sway, la libreria wlroots è utilizzata attivamente anche in altri progetti, tra cui Librem5 e Cage. Oltre a C/C++, sono stati sviluppati binding per Scheme, Common Lisp, Go, Haskell, OCaml, Python e Rust.
Nel nuovo rilascio:
- È stata fornita la possibilità di spostare le schede con il mouse.
- Aggiunta la compatibilità per il rendering su visori di realtà virtuale.
- Aggiunto il comando «output render_bit_depth» per abilitare modalità di composizione ad alta profondità di colore.
- Aumentata l'affidabilità e le prestazioni del rendering delle finestre a schermo intero (grazie a dmabuf, è garantito un output diretto senza ulteriori buffer).
- Attivato il protocollo xdg-activation-v1, che consente di trasferire il focus tra diverse superfici di primo livello (ad esempio, tramite xdg-activation un'applicazione può trasferire il focus a un'altra).
- È stata aggiunta l'opzione client.focused_tab_title per configurare il colore della scheda attiva.
- È stato aggiunto il comando «output modeline» per impostare il proprio profilo DRM (Direct Rendering Manager).
- È stato aggiunto il comando «output dpms toggle» per semplificare lo spegnimento dello schermo dagli script. Sono stati anche aggiunti i comandi «gaps toggle », «smart_gaps inverse_outer» e «split none».
- L'opzione «—my-next-gpu-wont-be-nvidia» è stata rimossa, ora si deve usare la modalità «—unsupported-gpu». I driver proprietari NVIDIA non sono comunque supportati.
- L'emulatore terminale definito nelle impostazioni predefinite è stato sostituito con foot.
- È stata fornita la possibilità di disattivare la barra laterale swaybar e le finestre di dialogo swaynag durante la compilazione.
- È vietata la modifica dinamica dell'altezza della barra del titolo della finestra in base ai caratteri nel testo del titolo, ora la barra ha sempre un'altezza fissa.

Fonte: opennet.ru
