Прогресс в разработке пользовательского окружения COSMIC, написанного на Rust

Компания 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 анимированные эффекты.

Источник: http://www.opennet.ru/opennews/art.shtml?num=58583