Ни для кого не секрет, что эпоха X11 в основном осталась в прошлом. На смену ему пришёл Wayland, который теперь является сервером отображения по умолчанию почти для всех основных сред рабочего стола. Заметным исключением является Xfce, который по-прежнему использует X11, но, похоже, и это изменится в конце этого года. Почему мы так говорим?
Команда разработчиков Xfce объявила о планах по созданию собственного композитора Wayland, xfwl4, написанного на Rust. Работа финансируется напрямую за счёт пожертвований сообщества и ведётся под руководством Брайана Тарриконе, давнего разработчика ядра Xfce.
Согласно проекту, значительная часть пожертвованных средств будет направлена на разработку xfwl4. Цель состоит в том, чтобы создать композитор Wayland, который будет максимально похож на xfwm4, сохранит привычный интерфейс управления окнами Xfce и при этом будет адаптирован к архитектурным особенностям Wayland.
Важно отметить, что xfwl4 не является портом или рефакторингом xfwm4. Вместо этого он пишется с нуля. От предыдущих попыток расширить xfwm4 для параллельной поддержки X11 и Wayland в конечном счёте отказались.
Разработчики Xfce говорят, что ещё одним фактором, повлиявшим на переписывание, является фундаментальное несоответствие между некоторыми концепциями управления окнами в X11 и протоколом Wayland. В Wayland просто нет некоторых функций, и обходить эти различия в кодовой базе, ориентированной на X11, оказалось непрактично.
Помимо достижения паритета функций с xfwm4, дорожная карта xfwl4 включает в себя более масштабные архитектурные изменения во всём стеке Xfce. Запуск сеанса будет перестроен таким образом, что композитор станет корневым элементом сеанса Wayland, заменив собой xfce4-session.
Планируется поддержка протокола xdg-session-management, а также интеграция с XWayland для обеспечения совместимости с приложениями X11.
Разработка xfwl4 уже ведётся, и команда Xfce сообщает, что первый релиз ожидается примерно в середине года. Исходный код и обсуждения дизайна доступны публично. Для получения дополнительной информации см. объявление.