Доступен выпуск проекта 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.
![](https://www.opennet.ru/opennews/pics_base/CFD0C5CECEC5D4_1715681595.png)
Ключевые изменения в новом выпуске:
- Добавлена настройка для определения времени игнорирования удержания кнопок мыши, что можно использовать для защиты от непреднамеренного выбора элементов или закрытия меню.
- Добавлена возможность использования падающих теней для окон, декодируемых на стороне сервера. Для включения теней в блоке предложена настройка , а для настройки размера и цвета добавлены свойства 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-скрипта при завершении работы.