Компания System76, развивающая Linux-дистрибутив Pop!_OS, опубликовала отчёт о развитии нового пользовательского окружения COSMIC, написанного на языке Rust. Окружение развивается как универсальный проект, не привязанный к конкретному дистрибутиву, соответствующий спецификациям Freedesktop. Проектом также развивается композитный сервер cosmic-comp на базе Wayland.
Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+, а также оконная оболочка и движок для интеграции с Web. Приложения на базе Iced могут быть собраны для Windows, macOS, Linux и запуска в web-браузере. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана. Код распространяется под лицензией MIT.
Среди последних достижений в разработке COSMIC:
- Реализована поддержка вкладок и сегментированных кнопок на базе виджета SegmentedButton, позволяющих сразу совершать действие при выборе.
- В конфигураторе обеспечен интерфейс поиска с непрерывным прокручиваемым списком результатов.
- Реализована возможность выбора профилей управления энергопотреблением и отображения заряда аккумуляторов беспроводных устройств.
- Добавлен интерфейс для настройки параметров экрана, поддерживающий переключение графических режимов, изменение яркости по расписанию (ночной режим) и управления компоновкой рабочего стола при подключении нескольких мониторов.
- Добавлен интерфейс настройки языков, форматов и единиц измерения.
- Добавлен интерфейс настройки звука, позволяющий изменять громкость уведомлений в привязке к приложениям и тестировать выбранные параметры, включая конфигурации с сабвуфером.
- Предоставлена возможность выбора общего фона, разных обоев для каждого монитора или набора обоев для цикличной смены (задержка устанавливается в настройках).
- В тулкит Iced добавлен механизм динамической отрисовки iced-dyrend, подразумевающий возможность выбора разных бэкендов в зависимости от окружения (например, можно использовать OpenGL, Vulkan или программный рендеринг на базе библиотеки Softbuffer).
- Обновлена реализация движка программной отрисовки Softbuffer, которая теперь может использоваться для отрисовки виджетов, предоставляемых библиотекой libcosmic.
- Пользовательское окружение рассчитано на работу под управлением дисплейных серверов на базе протокола Wayland. Для поддержки запуска приложений X11 в композитный сервер cosmic-comp интегрирована поддержка DDX-сервера XWayland.
- Подготовлена библиотека cosmic-time, позволяющая использовать в приложениях на базе Iced анимированные эффекты.