Después de 14 meses de desarrollo, se ha lanzado la versión 1.9 del gestor de compositores Sway, construido utilizando el protocolo Wayland y completamente compatible con el gestor de ventanas en mosaico i3 y la barra de i3. El código del proyecto está escrito en C y se distribuye bajo la licencia MIT. El proyecto está dirigido a 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 han incorporado nuevas características de la biblioteca wlroots 0.17, como soporte para los protocolos Wayland content-type-v1 (gestión de información sobre el contenido mostrado), xwayland-shell-v1 (vinculación de una ventana X11 con una superficie Wayland), wp-fractional-scale-v1 (escalado fraccionado), security-context-v1 (aislamiento de sandbox) y cursor-shape-v1 (configuración de la apariencia del cursor).
- Se ha mejorado el soporte para el protocolo "xdg-activation-v1", que permite transferir el enfoque entre diferentes superficies de primer nivel de Wayland (por ejemplo, mediante xdg-activation, una aplicación puede cambiar el foco a otra). En la nueva versión se ha añadido soporte para el seguimiento del foco teniendo en cuenta escritorios virtuales y las configuraciones de múltiples monitores.
- El código para dibujar el contenido se ha trasladado a la nueva API de renderizado proporcionada por la biblioteca wlroots, lo que ha permitido un aumento en el rendimiento.
- Se ha añadido una configuración en el archivo de configuración para desactivar el buffer de intercambio primario.
- Se han añadido nuevos comandos de control de dispositivos de entrada, que permiten establecer los parámetros RotationAngle y ScrollButtonLock en libinput para resolver problemas con los touchpads y los ratones.
- Se ha añadido soporte para el uso de botones de tabletas para cambiar el tamaño de las ventanas flotantes.
- Se ha añadido soporte para eventos de salida en IPC.
- El proyecto wmenu se ha establecido como el menú de aplicaciones por defecto.
- Se ha dejado de dar soporte al protocolo idle específico de KDE, y en su lugar se ha adoptado el estándar de Wayland, el protocolo idle-notify-v1.


Fuente: opennet.ru
