Se ha publicado la versión 1.7 del gestor de composición Sway, construido utilizando el protocolo Wayland y completamente compatible con el gestor de ventanas mosaico i3 y el panel i3bar. El código del proyecto está escrito en C y se distribuye bajo la licencia MIT. El proyecto está diseñado para su uso en Linux y FreeBSD.
La compatibilidad con i3 se garantiza a nivel de comandos, archivos de configuración e IPC, lo que permite usar Sway como un sustituto transparente de i3, utilizando Wayland en lugar de X11. Sway permite colocar ventanas en la pantalla no de manera espacial, sino lógica. Las ventanas se organizan formando una cuadrícula que utiliza de manera óptima el espacio de la pantalla y permite manipularlas rápidamente solo con el teclado.
Para configurar un entorno de usuario completo, se ofrecen componentes complementarios: swayidle (proceso en segundo plano con implementación del protocolo KDE idle), swaylock (protector de pantalla), mako (gestor de notificaciones), grim (creación de capturas de pantalla), slurp (selección de área en la pantalla), wf-recorder (grabación de vídeo), waybar (barra de aplicaciones), virtboard (teclado en pantalla), wl-clipboard (gestión del portapapeles), wallutils (gestión de fondos de pantalla).
Sway se desarrolla como un proyecto modular, construido sobre la biblioteca wlroots, que extrae todos los primitivas básicas para organizar el funcionamiento del gestor de compositores. Wlroots incluye backends para abstraer el acceso a la pantalla, dispositivos de entrada, renderizado sin acceso directo a OpenGL, interacción con KMS/DRM, libinput, Wayland y X11 (se proporciona una capa para ejecutar aplicaciones X11 basadas en Xwayland). Además de Sway, la biblioteca wlroots se utiliza activamente en otros proyectos, incluyendo Librem5 y Cage. Además de C/C++, se han desarrollado bindings para Scheme, Common Lisp, Go, Haskell, OCaml, Python y Rust.
En esta nueva versión:
- Se ha añadido la posibilidad de mover pestañas con el ratón.
- Se ha añadido soporte para la salida en cascos de realidad virtual.
- Se ha añadido el comando «output render_bit_depth» para habilitar el modo de composición con alta profundidad de color.
- Se ha mejorado la fiabilidad y el rendimiento de la salida de ventanas en pantalla completa (gracias a dmabuf, se garantiza una salida directa sin almacenamiento intermedio adicional).
- Se ha activado el protocolo xdg-activation-v1, que permite transferir el enfoque entre diferentes superficies de primer nivel (por ejemplo, mediante xdg-activation, una aplicación puede cambiar el enfoque a otra).
- Se ha añadido la opción client.focused_tab_title para personalizar el color de la pestaña activa.
- Se ha añadido el comando «output modeline» para establecer un modo propio del DRM (Gestor de Renderizado Directo).
- Se ha añadido el comando «output dpms toggle» para simplificar la desactivación de la pantalla desde scripts. También se han añadido los comandos «gaps toggle », «smart_gaps inverse_outer» y «split none».
- Se ha eliminado la opción «—my-next-gpu-wont-be-nvidia», y en su lugar se debe usar el modo «—unsupported-gpu». Los controladores propietarios de NVIDIA aún no son compatibles.
- El emulador de terminal definido en la configuración predeterminada ha sido reemplazado por foot.
- Se ha proporcionado la posibilidad de desactivar el panel swaybar y los diálogos swaynag durante la compilación.
- Se ha prohibido el cambio dinámico de la altura del encabezado de la ventana en función de los caracteres en el texto del encabezado; el encabezado ahora tiene una altura fija.

Fuente: opennet.ru
