COSMIC, el escritorio de Pop!_OS ya presenta grandes avances en su desarrollo en Rust
System76 (la empresa de distribución Pop!_OS Linux) dio a conocer hace poco un informe sobre el desarrollo de un nuevo entorno de usuario COSMIC escrito en Rust. El entorno se está desarrollando como un proyecto universal que no está vinculado a una distribución específica y se ajusta a las especificaciones de Freedesktop.
El proyecto también desarrolla el servidor compuesto cosmic-comp basado en Wayland y que ademas se proporcionan varios motores de renderizado compatibles con Vulkan, Metal, DX12, OpenGL 2.1+ y OpenGL ES 2.0+, así como un shell de ventanas y un motor de integración web.
Sobre el proyecto se menciona que para construir una interfaz, COSMIC usa la biblioteca Iced, que usa una arquitectura modular con seguridad de tipos y modelos de programación reactivos y también ofrece una arquitectura familiar para los desarrolladores familiarizados con Elm, un lenguaje de construcción de interfaz declarativo.
Hay que recordar que System76 opto por realizar el cambio de GTK e Iced, ya que durante las pruebas que se realizaron se prepararon varios applets de COSMIC, escritos simultáneamente en GTK e Iced para comparar tecnologías. Las pruebas realizadas han demostrado que, en comparación con GTK, la biblioteca Iced proporciona una API más flexible, expresiva y comprensible, se combina naturalmente con el código Rust y ofrece una arquitectura familiar para los desarrolladores familiarizados con el lenguaje de construcción de interfaz declarativa Elm.
La biblioteca Iced está escrita completamente en lenguaje Rust, utiliza tipos seguros, una arquitectura modular y un modelo de programación reactivo.
Las aplicaciones basadas en Iced se pueden crear para Windows, macOS, Linux y ejecutarse en un navegador web. A los desarrolladores se les ofrece un conjunto de widgets listos para usar, la capacidad de crear controladores asincrónicos y utilizar el diseño adaptable de los elementos de la interfaz según el tamaño de la ventana y la pantalla.
De los últimos logros en el desarrollo de COSMIC:
- Soporte implementado para pestañas y botones segmentados basados en el widget SegmentedButton, lo que le permite realizar una acción inmediatamente cuando se selecciona.
- El configurador proporciona una interfaz de búsqueda con una lista continua de resultados desplazables.
- Se implementó la capacidad de seleccionar perfiles de administración de energía y mostrar la carga de la batería de los dispositivos inalámbricos.
- Se agregó una interfaz para configurar los ajustes de pantalla que admite cambiar los modos de gráficos, cambiar el brillo en un horario (modo nocturno) y controlar el diseño del escritorio cuando se conectan varios monitores.
- Añadida interfaz para configurar idiomas, formatos y unidades de medida.
- Se agregó una interfaz de configuración de sonido que le permite cambiar el volumen de las notificaciones en relación con las aplicaciones y probar los parámetros seleccionados, incluidas las configuraciones con un subwoofer. Para la prueba de altavoces, los usuarios con más de dos altavoces en su sistema pueden probar todos los altavoces y su subwoofer a la vez con un solo clic.
- Se proporciona la capacidad de seleccionar un fondo común, diferentes fondos de pantalla para cada monitor o un conjunto de fondos de pantalla para un cambio cíclico (el retraso se establece en la configuración).
- El mecanismo de renderizado dinámico iced -dyrend se ha agregado al kit de herramientas Iced, lo que implica la capacidad de seleccionar diferentes backends según el entorno (por ejemplo, puede usar OpenGL, Vulkan o renderizado de software basado en la biblioteca Softbuffer).
- Se actualizó la implementación de Softbuffer del motor de renderizado de software, que ahora se puede usar para renderizar widgets proporcionados por la biblioteca libcosmic.
- El entorno de usuario está diseñado para funcionar bajo el control de servidores de visualización basados en el protocolo Wayland. Para respaldar el lanzamiento de aplicaciones X11, se integra soporte para el servidor XWayland DDX en el servidor compuesto de cosmic-comp.
- Se ha preparado la biblioteca de tiempo cósmico, que permite utilizar efectos animados en aplicaciones basadas en Iced.
Finalmente si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.