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

Доступен выпуск проекта labwc 0.7.2 (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.


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

  • Добавлена настройка для определения времени игнорирования удержания кнопок мыши, что можно использовать для защиты от непреднамеренного выбора элементов или закрытия меню.
  • Добавлена возможность использования падающих теней для окон, декодируемых на стороне сервера. Для включения теней в блоке предложена настройка , а для настройки размера и цвета добавлены свойства window.active|inactive.shadow.size и window.active|inactive.shadow.color.
  • Добавлено правило ignoreConfigureRequest, позволяющее игнорировать запросы конфигурации от клиентов X11 для изменения размера и позиции на экране.
  • В правилах разрешена привязка к типу окон (). Например, для окон XWayland применяется тип NET_WM_WINDOW_TYPE_DESKTOP.
  • В циклы добавлена поддержка секций “none”, срабатывающих при отсутствии успешных совпадений.
  • Добавлена опция “-S” (–session) для запуска указанной команды при запуске и для завершения работы композитного менеджера при завершении работы команды.
  • В темах оформления появилась возможность указания цвета кодирования уровня прозрачности, используя формат “#aabbccff”.
  • В настройках интерфейса переключения между окнами разрешено создание произвольных полей с форматированием в стиле printf, например, . Добавлена возможность указания ширины интерфейса переключения между окнам в процентах относительно ширины экрана (“osd.window-switcher.width: 75%”), а также изменения размера и цвета рамки вокруг эскизов окон (osd.window-switcher.preview.border.width|color). При настройке содержимого добавлены новые поля workspace, state, type_short и output.
  • Добавлена поддержка совместимых с Openbox меню (pipe-menu).
  • Добавлена возможность настройки привязки к краю экрана.
  • Добавлена поддержка настройки методов ввода и интерфейс для их редактирования.
  • Добавлена поддержка калибровки устройств ввода.
  • В интерфейсе переключения между виртуальными рабочими столами появилась возможность определения префикса наименования рабочих столов.
  • Добавлена возможность определения переменных окружения в файлах *.env, размещённых в каталоге “environment.d”.
  • Добавлена поддержка указания пустого значения для очистки переменной окружения.
  • Добавлена возможность определения запасного устройства вывода ( LABWC_FALLBACK_OUTPUT), которое будет выбрано в случае недоступности базовых устройств вывода, что может оказаться полезным, например, при запуске VNC-сервера.
  • Добавлена настройка , позволяющая в window-switcher отображать окна на всех виртуальных рабочих столах.
  • Предоставлена фозможность запуска shutdown-скрипта при завершении работы.

Release. Ссылка here.