Проект Xfce анонсировал композитный сервер Xfwl4, использующий Wayland и Rust

Команда разработчиков среды рабочего стола Xfce объявила о начале разработки нового композитного сервера Xfwl4, использующего протокол Wayland. В Xfwl4 решено не использовать кодовую базу ныне применяемого оконного менеджера xfwm4 и развивать проект с нуля на языке Rust, используя библиотеку Smithay. Проект находится на начальной стадии разработки, первый тестовый выпуск ожидается в середине 2026 года. Код Xfwl4 распространяется под лицензией GPLv3.

В Xfwl4 намерены реализовать всю имеющуюся в xfwm4 функциональность, вплоть до возможности использования существующих настроек xfconf и интерфейса конфигурации, но с учётом специфики использования Wayland вместо X11. Из расширенных функций отмечается существенная переработка логики запуска сеансов, реализация Wayland-протокола xdg-session-management и поддержка запуска X11-приложений при помощи XWayland.

В качестве причины создания нового композитного сервера упоминается неудачная попытка реализации одновременной поддержки X11 и Wayland в существующей кодовой базе оконного менеджера xfwm4, который изначально был спроектирован с учётом тесной интеграции протокола X11, что затрудняло отделение общей логики управления окнами от специфики X11.

Постепенное добавление поддержки Wayland в xfwm4 признано нецелесообразным из-за вероятности снижения стабильности и появления новых ошибок в процессе рефакторинга. Проще оказалось оставить xfwm4 завязанным на X11 и параллельно развивать новый композитный сервер для Wayland. В качестве причин также упоминается невозможность адаптировать некоторые концепции управления окнами X11 для Wayland и необходимость использования языка Си и библиотеки wlroots в случае продолжения развития xfwm4, несмотря на наличие лучших альтернатив.

Xfwl4 решено развивать поверх библиотеки Smithay, предоставляющей реализацию почти всех официальных расширений протокола Wayland, а также протоколов wlroots и KDE. Smithay применяется в таких проектах, как Cosmic и Niri. По аналогии с wlroots библиотека Smithay предоставляет высокоуровневые абстракции, но при этом позволяет вмешиваться в работу низкоуровневых систем и адаптировать под свои потребности методы вывода графики, работу с устройствами ввода, поведение Wayland-протоколов и обработку задач, связанных с построением рабочего стола. Язык Rust выбран, как затрудняющий совершение ошибок при работе с памятью и снижающий вероятность проблем, приводящих к аварийному завершению работы.

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