26.09.2020

Представлен KWinFT, форк KWin, сфокусированный на Wayland


Роман Гилг (Roman Gilg), участвующий в разработке KDE, Wayland, Xwayland и X Server, представил проект KWinFT (KWin Fast Track), развивающий гибкий и простой в использовании композитный оконный менеджер для Wayland и X11, основанный на кодовой базе KWin. Помимо оконного менеджера проект также развивает библиотеку wrapland с реализацией обвязки над libwayland для Qt/C++, продолжающей развитие KWayland, но избавленной от привязки к Qt. Код распространяется под лицензиями GPLv2 и LGPLv2.

Целью проекта является переработка KWin и KWayland с использованием современных технологий и практик разработки, позволяющих ускорить развитие проекта, провести рефакторинг кода, добавить оптимизации и упростить добавление фундаментальных новшеств, интеграция который в KWin в текущем виде затруднена. KWinFT и Wrapland могут использоваться для прозрачной замены KWin и KWayland, но они не ограничены рамками, которые накладывает завязка на KWin многих продуктов, сохранение полной совместимости с которыми является приоритетом, препятствующим продвижению новшеств.

В KWinFT у разработчиков развязаны руки и они могут экспериментировать с новыми возможностями, добиваясь сохранения стабильности за счёт применения более современных техник разработки. Например, для проверки кода KWinFT задействована система непрерывной интеграции, включающая проверку при помощи разных linter, автоматическое формирование сборок и расширенное тестирование. Что касается развития функциональности, основное внимание в KWinFT будет удаляться обеспечению качественной и полной поддержки протокола Wayland, в том числе переработке архитектурых особенностей KWin, усложняющих интеграцию с Wayland.

Среди уже добавленных в KWinFT экспериментальных новшеств, отмечаются:

  • Переработан процесс композитинга, что позволило значительно улучшить отрисовку контента под управлением X11 и Wayland. Дополнительно добавлен таймер для минимизации задержек между созданием изображения и его выводом на экран.
  • Реализовано расширение протокола Wayland «viewporter«, позволяющее клиенту выполнять действия по масштабированию и обрезанию краёв поверхности на стороне сервера. В сочетании со следующим значительным выпуском XWayland расширение даст возможность эмулировать изменение разрешения экрана для старых игр.
  • Полная поддержка поворота и зеркального отражения вывода для сеансов на основе Wayland.

Wrapland предоставляет спроектированный в стиле Qt программный интерфейс, предоставляющий доступ к функциям libwayland в форме удобной для использования в проектах на С++. Вначале Wrapland планировали развивать как форк KWayland, но из-за неудовлетворительного состояния кода KWayland он теперь рассматривается как проект по полной переработке KWayland. Наиболее важным отличием Wrapland от KWayland является избавление от привязки к Qt и возможность использования отдельно без установки Qt. В будущем Wrapland сможет применяться как универсальная библиотека с С++ API, избавляющая разработчиков от необходимости использования С API libwayland.

Готовые пакеты сформированы для пользователей Manjaro Linux. Для задействования KWinFT достаточно установить из репозитория kwinft, а для отката на штатный KWin — установить пакет kwin. Использование Wrapland не ограничивается KDE, например, подготовлена реализация клиента для применяемого в wlroots протокола управления выводом, позволяющая в композитных серверах на базе wlroots (Sway, Wayfire) использовать KScreen для настройки вывода.

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

Добавить комментарий