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

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

В качестве основы используется библиотека wlroots, развиваемая разработчиками пользовательского окружения Sway и предоставляющая базовые функции для организации работы композитного менеджера на базе Wayland. Из расширенных Wayland-протоколов поддерживаются wlr-output-management для настройки устройств вывода, layer-shell для организации работы оболочки рабочего стола и foreign-toplevel для подключения собственных панелей и переключателей окон.

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


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

Ключевые изменения в новом выпуске:

  • Осуществлён переход на новую ветку библиотеки wlroots 0.17.
  • Добавлена поддержка расширения Wayland-протокола cursor-shape-v1, применяемого для настройки внешнего вида курсора через передачу серии изображений курсора.
  • Добавлена поддержка протокола fractional-scale, при помощи которого композитный менеджер может передавать нецелые значения масштабирования поверхностей, что позволяет клиенту определять более точный размер буферов для объектов wp_viewport, по сравнению с передачей округлённых сведений о масштабе.
  • Добавлена поддержка пиктограмм в заголовке окон.
  • В интерфейсе переключения между окнами реализована возможность обратной прокрутки через нажатие стрелки влево или вверх.
  • Добавлена настройка osd.workspace-switcher.boxes.{width,height} для определения размера интерфейса переключения между виртуальными рабочими столами.
  • Добавлены новые действия VirtualOutputAdd и VirtualOutputRemove для добавления и удаления виртуальных устройств вывода.
  • Добавлено действие ResizeTo для изменения размера.
  • Добавлено действие ToggleOmnipresent и опция “Always on Visible Workspace” для размещения содержимого всегда на активном рабочем столе.
  • Для приложений, использующих XWayland, обеспечено выставление свойства _NET_WORKAREA, позволяющее понять размер свободной области на экране, не занятой панелями (например, используется в Qt при расчёте размера всплывающих меню).

Release. Ссылка here.