Выпуск labwc 0.9.0, композитного сервера для Wayland

Опубликован выпуск проекта labwc 0.9.0 (Lab Wayland Compositor), развивающего композитный сервер для Wayland с возможностями, напоминающими оконный менеджер Openbox (проект преподносится как попытка создания альтернативы Openbox для Wayland). Из особенностей labwc упоминается минимализм, компактная реализация, широкие возможности настройки и высокая производительность. Анимированные эффекты, градиенты и пиктограммы, за исключением кнопок для окон, не поддерживаются принципиально. Код проекта написан на языке Си и распространяется под лицензией GPLv2.

В качестве основы используется библиотека wlroots, развиваемая разработчиками пользовательского окружения Sway и предоставляющая базовые функции для организации работы композитного менеджера на базе Wayland. Возможно подключение надстроек с реализацией таких функций, как создание скриншотов, отображение обоев на рабочем столе, размещение панели и меню. Для запуска X11-приложений в окружении на базе протокола Wayland поддерживается использование DDX-компонента XWayland. Тема оформления, базовое меню и горячие клавиши настраиваются через файлы конфигурации в формате xml. Имеется встроенная поддержка экранов с высокой плотностью пикселей (HiDPI).

Помимо встроенного корневого меню, настраиваемого через файл menu.xml, можно подключить сторонние реализации меню приложений, такие как bemenu, fuzzel и wofi. В качестве панели можно использовать Waybar, sfwbar, Yambar или LavaLauncher. Для управления подключением мониторов и изменением их параметров предлагается использовать wlr-randr или kanshi. Блокировка экрана осуществляется при помощи swaylock. Композитный менеджер задействован в графическом окружении дистрибутива Raspberry Pi OS и опционально поддерживается в средах рабочего стола Xfce и LXQt.

В новой версии:

  • Добавлена поддержка возможностей нового выпуска библиотеки wlroots 0.19, таких как реализация новых протоколов Wayland, поддержка Multi-GPU и возможность явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager).
  • Обеспечена поддержка Wayland-протоколов:
    • ext-data-control — позволяет привилегированным клиентам управлять обработкой данных, например, для реализации менеджеров буфера обмена.
    • alpha-modifier — позволяет клиентам менять уровень прозрачности поверхности и выносить операции по обеспечению прозрачности на сторону композитного сервера.
    • xdg-toplevel-icon — реализует привязку пиктограммы к окну верхнего уровня.
    • drm-syncobj» — предоставляет инструменты для явной синхронизации буферов при помощи объектов синхронизации DRM (Direct Rendering Manager).
    • ext-image-copy-capture — организация захвата контента, выводимого на экран.
  • Добавлена команда «lab-sensible-terminal» для запуска эмулятора терминала (программа выбирается на основе переменной окружения $TERMINAL). В корневое меню добавлен пункт для вызова терминала.
  • Добавлена поддержка градиентной заливки области заголовка окна. Для настройки градиента предложены опции:
    • window.*.title.bg: Solid | Gradient ( Vertical | SplitVertical )
    • window.*.title.bg.colorTo:
    • window.*.title.bg.color.splitTo:
    • window.*.title.bg.colorTo.splitTo:
  • В вывод при запуске с опциями «-v» («—version») добавлена информация о поддерживаемых возможностях, например «+xwayland -rsvg».
  • Обеспечена отправка ресурсов DRM (Direct Rendering Manager Leases) клиентам XWayland.
  • Добавлена настройка ‹windowRule iconPriority=»client|server»› для выбора приоритетного метода поиска пиктограмм.
  • Добавлена поддержка цветовых тем, определённых с использованием синтаксиса X11-color-names и ‘#rgb’.
  • Реализована поддержка XWayland-свойства _NET_WM_ICON и добавлено правило iconPriority для включения его поддержки.
  • Добавлена настройка «‹core›‹primarySelection›», позволяющая использовать автопрокрутку средним колесом мыши в Chromium и приложениях на платформе Electron без непреднамеренной вставки данных из буфера обмена.
  • Обновлены поддерживаемые версии Wayland-протоколовp xdg_shell и wl_compositor.
  • Добавлена поддержка вспомогательных кнопок на мышах.
  • Добавлены настройки для libinput:
    • «‹threeFingerDrag›»
    • «‹dragLock›sticky‹/dragLock›»
    • «‹scrollMethod›none|twofinger|edge‹/scrollMethod›»
  • Добавлены параметры «{left,right}-occupied» для упрощения навигации между виртуальными рабочими столами, на которых имеются открытые окна.
  • Добавлена настройка «‹theme›‹dropShadowsOnTiled›» для включения показа тени для мозаичных окон.
  • Добавлена поддержка эмуляции прокрутки колесом мыши, для управления которой предложены параметры EnableScrollWheelEmulation, DisableScrollWheelEmulation и ToggleScrollWheelEmulation.


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