Для построения интерфейса в COSMIC задействована библиотека Iced, которая использует безопасные типы, модульную архитектуру и модель реактивного программирования, а также предлагает архитектуру, привычную для разработчиков, знакомых с языком декларативного построения интерфейсов Elm. Предоставляется несколько движков отрисовки, поддерживающих Vulkan, Metal, DX12, OpenGL 2.1+ и OpenGL ES 2.0+, а также оконная оболочка и движок для интеграции с Web. Приложения на базе Iced могут быть собраны для Windows, macOS, Linux и запуска в web-браузере. Разработчикам предлагается готовый набор виджетов, возможность создавать асинхронные обработчики и использовать адаптивную компоновку элементов интерфейса в зависимости от размера окна и экрана. Код распространяется под лицензией MIT.
Из недавних изменений отмечается реализация режима Window-Swappin для замены окон при использовании мозаичной (тайловой) компоновки. Благодаря функции Auto-tiling позиция для новых окон на экране выбирается автоматически, что не всегда может соответствовать ожиданию пользователя. Окно можно переместить вручную, но это требует выполнения дополнительных манипуляций и отвлекает пользователя. Для упрощения операции перестановки окон предложен режим быстрой замены, позволяющий нажав и удерживания клавиатурную комбинацию «Super + X» (Windows + X) быстро переместить окно дополнительно нажимая клавиши управления курсором.
Добавлены новые виджеты для ввода текста, вставки символов по месту и поисковых запросов. Улучшено использование символьных пиктограмм, таких как увеличительное стекло, размер и цвет которых теперь лучше соответствует контексту и выбранной теме оформления.
Для клавиатуры и мыши реализована поддержка динамических настроек, подразумевающих мгновенное применение изменений после смены настройки в конфигураторе. Добавлены конфигураторы панелей, позволяющие изменить местоположение, прозрачность, оформление и размер основной панели и dock-панели, а также настроить режим автоматического скрытия и определить список апплетов на рабочем столе (wi-fi, заряд аккумулятора, виртуальные рабочие столы, часы и т.п.).
Выполнено профилирование и оптимизация производительности библиотеки Smithay, применяемой в композитном сервере. Добавлена поддержка Wayland-протокола «pointer-gestures» для управления экранными жестами с сенсорных экранов и тачпадов (например, появилась возможность масштабирования щипком).
Код библиотеки iced синхронизирован с версией 0.10. Переработана библиотека для работы с анимацией. Добавлена поддержка Wayland-протокола «security-context» для идентификации клиентов, использующих sandbox-изоляцию. Улучшено размещение панели слева или справа.
Источник: http://www.opennet.ru/opennews/art.shtml?num=59842