KwinFT, un nuevo window manager basado en KWin para Wayland
Roman Gilg, involucrado en el desarrollo de KDE, Wayland, Xwayland y X Server, presentó el proyecto KWinFT (KWin Fast Track), que desarrolla un administrador de ventanas compuesto flexible y fácil de usar para Wayland y X11, basado en la base de código KWin.
Además del administrador de ventanas, el proyecto también desarrolla una biblioteca wrapland con la implementación de enlaces sobre libwayland para Qt/C ++, que continúa el desarrollo de KWayland, pero se libera de la unión a Qt.
Sobre KwinFT
El objetivo del proyecto es reelaborar KWin y KWayland utilizando tecnologías modernas y prácticas de desarrollo que aceleren el desarrollo del proyecto, refactoricen el código, agreguen optimizaciones y simplifiquen la incorporación de innovaciones fundamentales, que son difíciles de integrar en KWin en su forma actual. KWinFT y Wrapland se pueden usar para reemplazar KWin y KWayland de manera transparente, pero no se limitan al marco impuesto a KWin por muchos productos, manteniendo una compatibilidad total con la cual es una prioridad que impide el avance de las innovaciones.
En KWinFT, los desarrolladores tienen las manos libres y pueden experimentar con nuevas características, buscando mantener la estabilidad mediante el uso de técnicas de desarrollo más modernas.
Por ejemplo, para verificar el código KWinFT, está involucrado un sistema de integración continua, que incluye la verificación utilizando diferentes linter, generación automática de ensamblaje y pruebas avanzadas. Con respecto al desarrollo de la funcionalidad, el enfoque principal de KWinFT será proporcionar un soporte completo y de alta calidad para el protocolo Wayland, incluida la reelaboración de las características arquitectónicas de KWin que complican la integración con Wayland.
Entre las innovaciones experimentales ya agregadas a KWinFT, se destacan las siguientes:
- El proceso de composición se rediseñó, lo que mejoró significativamente la representación del contenido bajo el control de X11 y Wayland. Además, se ha agregado un temporizador para minimizar los retrasos entre la creación y visualización de la imagen.
- Se implementó una extensión del protocolo “viewporter” de Wayland, que permite al cliente realizar acciones para escalar y recortar los bordes de la superficie en el lado del servidor. En combinación con la próxima versión principal de XWayland, la extensión le permitirá emular un cambio en la resolución de pantalla para juegos más antiguos.
- Soporte completo para la rotación y el reflejo de salida para sesiones basadas en Wayland.
- Wrapland proporciona una interfaz de programación de estilo Qt que proporciona acceso a las funciones de libwayland en una forma conveniente para su uso en proyectos C ++. Inicialmente, planearon desarrollar Wrapland como una bifurcación de KWayland, pero debido al estado insatisfactorio del código de KWayland, ahora se considera como un proyecto para el procesamiento completo de KWayland. La diferencia más importante entre Wrapland y KWayland es la eliminación de la unión a Qt y la posibilidad de usarlo por separado sin instalar Qt. En el futuro, Wrapland podrá usarse como una biblioteca universal con una API C ++, eliminando la necesidad de que los desarrolladores usen la API C libwayland.
- Los paquetes listos para usar están hechos para usuarios de Manjaro Linux. Para habilitar KWinFT, simplemente instale kwinft desde el repositorio, y para volver al KWin normal, instale el paquete kwin. El uso de Wrapland no se limita a KDE, por ejemplo, se ha preparado una implementación de cliente para el protocolo de control de salida utilizado en wlroots, que permite usar KScreen para configurar la salida en servidores compuestos basados en wlroots (Sway, Wayfire).
Mientras tanto, las actualizaciones del proyecto KWin de baja latencia continúan siendo publicadas, que forma la junta editorial del administrador compuesto de KWin con parches para aumentar la capacidad de respuesta de la interfaz y solucionar algunos problemas relacionados con la velocidad de respuesta a las acciones del usuario, como el frenado de entrada.
Finalmente para quienes estén interesados en conocer más al respecto o revisar el código de KwinFT pueden dirigirse al siguiente enlace, donde ademas encontraran información sobre su instalación.
El código se distribuye bajo las licencias GPLv2 y LGPLv2.