Компания System76, разрабатывающая Linux-дистрибутив Pop!_OS, объявила о прогрессе в разработке пользовательской оболочки COSMIC, переписанной на языке Rust (не путать со старым COSMIC, который был основан на GNOME Shell). Оболочка находится в разработке уже более двух лет и близка к формированию первого альфа-выпуска, который ознаменует готовность базового набора возможностей, позволяющих рассматривать оболочку как рабочий продукт. Предполагается, что альфа-версию удастся опубликовать в конце марта и она поможет собрать больше отзывов для финального оттачивания функциональности и повышения удобства работы.
Оболочка развивается как универсальный проект, не привязанный к конкретному дистрибутиву и соответствующий спецификациям Freedesktop. Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана. Проектом также разрабатывается композитный сервер cosmic-comp на базе Wayland.
Находящиеся в разработке возможности, которые включены в список минимально необходимых для формирования альфа-выпуска COSMIC:
- Эмулятор терминала COSMIC Terminal, написанный с использованием фреймворка alacritty_terminal и поддерживающий такие возможности, как отрисовка с использованием GPU, темы оформления и расширенные методы ввода. Из находящихся в разработке задач отмечается добавление поддержки эмуляции мыши и возможность открытия гиперсылок в терминале.
- Создана утилита COSMIC Randr для вывода параметров и настройки экранов в окружении на базе Wayland, которую планируется задействовать в конфигураторе COSMIC Settings для настройки параметров вывода.
- Апплет для создания скриншотов. В настоящее время уже создана начальная реализация для создания скриншотов всего экрана, отдельных окон и выделенной области.
- Обеспечение работы на системах с гибридной графикой (встроенный GPU + дискретная видеокарта) с возможностью отключения дискретной карты для экономии энергии в автономном режиме или её выборочной активации для игр и графических приложений.
- Реализация поддержки эффекта матового стекла (размытый фон) в темах оформления.
- Создание апплета для управления мозаичной компоновкой окон и возможность активации автоматического мозаичного размещения окон в привязке к определённому рабочему столу.
- Режим стекового закрепления окон для группировки разных окон приложений по аналогии с вкладками в браузере. Возможность пока находится на стадии проектирования и обсуждения.
- Создание пиктограмм для новых приложений и апплетов.
- Возможность вывода информации поверх содержимого (OSD – On-Screen Display) и задействование данной возможности для отображения индикаторов яркости, громкости, переключения окон по Alt + Tab и перехода в автономный режим.
- Создание стилизованных обоев рабочего стола и интерфейса для установки обоев с таким возможностями как слайд-шоу и масштабирование изображения на весь экран.
- Экраны входа и блокировки. Спроектированы и находятся на стадии разработки.
- Интерфейс для настройки ориентации экрана, масштаба, цветового профиля, графических режимов. Пока готовы только макеты.
- Интерфейс для настройки устройств ввода, позволяющий менять параметры мыши и тачпада, такие как скорость движения курсора.
- Виртуальные рабочие столы. Завершено обсуждение функциональности и началась стадия разработки.
- Ревизия и унификация оформления для всех уже разработанных возможностей, таких как меню приложений, интерфейс запуска программ и система уведомлений.