След 6 месеца разработка е представен първия предварителен релиз на композитния сървър Xfwl4, използващ протокола Wayland. Xfwl4 е написан на езика Rust с библиотеката Smithay. Причината за създаването на новия композитен сървър е неуспешният опит да се реализира едновременна поддръжка на X11 и Wayland в съществуващата кодова база на мениджъра на прозорци xfwm4, който първоначално е проектиран с оглед на тясната интеграция на протокола X11, което затруднява отделянето на общата логика за управление на прозорци от спецификата на X11.
Xfwl4 се развива от нулата и не се пресича с кодовата база на мениджъра на прозорци xfwm4, но е насочен към реализация на всички функции, налични в xfwm4, включително възможността за използване на съществуващите настройки xfconf и интерфейса за конфигурация с оглед на спецификата на използването на Wayland вместо X11. Планира се функционалността на Xfwl4 да достигне ниво, при което потребителят ще може да превключва между Xfwl4 и xfwm4, без да забелязва разлики.
От разширените функции на Xfwl4 се отбелязва значителна преработка на логиката за стартиране на сесии, реализация на Wayland-протокола xdg-session-management и поддръжка за стартиране на X11-приложения чрез XWayland. Кодът на Xfwl4 се разпространява под лицензия GPLv3 (за сравнение, кодът на мениджъра на прозорци xfwm4 се разпространява под GPLv2).
Xfwl4 е построен върху библиотеката Smithay, предоставяща реализация на почти всички официални разширения на протокола Wayland, както и протоколите wlroots и KDE. Smithay се прилага в проекти като Cosmic и Niri. Подобно на wlroots, библиотеката Smithay предлага високоякостни абстракции, но същевременно позволява намеса в работата на нискоуровневите системи и адаптиране на методите за извеждане на графика, работа с входни устройства, поведение на Wayland-протоколите и обработка на задачи, свързани с изграждането на работен плот. Езикът Rust е избран, тъй като затруднява допускането на грешки при работа с паметта и намалява вероятността от проблеми, водещи до аварийно завършване на работа.
От проекта за постепенно добавяне на поддръжка за Wayland в xfwm4 е решено да се откаже поради опасения за намаляване на стабилността и появата на нови грешки в процеса на рефакториране. Оказа се, че е по-лесно да се остави xfwm4 обвързан с X11 и паралелно да се развива нов композитен сървър за Wayland. Причините за създаването на новия сървър така също се споменава невъзможността за адаптиране на някои концепции за управление на прозорци X11 за Wayland и необходимостта от използване на езика C и библиотеката wlroots в случай на продължаващо развитие на xfwm4, въпреки наличието на по-добри алтернативи.
Първият релийз на Xfwl4 е на алфа ниво и не реализира всички планирани функционалности. От възможностите, които все още не са налични в първия тестови релийз:
- Диалог за настройка на мишката и тъчпада.
- Диалог за настройка виртуални работни площи.
- Определяне на области по краищата на екрана, в които не е разрешено поставянето на прозорци.
- Минимизиране на прозореца с показване на икона и меню, което се показва при кликване с средния бутон на мишката.
- Показване на миниатюри с съдържанието на виртуалните работни площи в панела.
- Комбинации от клавиши за превключване между приложения и прозорци на приложения.
- Възстановяване на предишното местоположение на прозорците след повторно стартиране на приложенията.
Източник: opennet.ru
