В пользовательском окружении COSMIC появился режим замены окон

Компания System76, разрабатывающая Linux-дистрибутив Pop!_OS, опубликовала сентябрьский отчёт о развитии новой редакции пользовательского окружения COSMIC, переписанной на языке Rust (не путать со старым COSMIC, который был основан на GNOME Shell). Окружение развивается как универсальный проект, не привязанный к конкретному дистрибутиву и соответствующий спецификациям Freedesktop. Проектом также разрабатывается композитный сервер cosmic-comp на базе Wayland.

Для построения интерфейса в 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-изоляцию. Улучшено размещение панели слева или справа.




Release. Ссылка here.