След половин година разработка, беше представена първата предварителна версия на композитния сървър 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
