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

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

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

  • Значительно переработано использование API графа сцены, предоставляемого в wlroots. Переработка отразилась на отрисовке, декорировании окон, меню и реализации экранной оболочки. Обработка изображений и шрифтов перед выводом на экран переведена на использование буферов вместо текстур (структура wlr_texture), что позволило обеспечить корректное масштабирование вывода. Упрощён код для привязки обработчиков к узлам wlr_scene_nodes. Расширены возможности для отладки.
  • Добавлена поддержка виртуальных рабочих столов.
  • Добавлена поддержка использования разных языков в клиентских меню.
  • Реализована поддержка протокола presentation-time, применяемого для отображения видео.
  • Добавлена поддержка сенсорных устройств.
  • Реализована поддержка протокола drm_lease_v1, применяемого для формирования стереокартинки с разными буферами для левого и правого глаза при выводе на шлемы виртуальной реальности.
  • Реализованы протоколы для применения виртуальной клавиатуры и указателя.
  • Добавлен режим для закрепления окна поверх других окон ( ToggleAlwaysOnTop).
  • Добавлены настройки osd.border.color и osd.border.width для определения ширины и цвета оконной рамки.
  • Добавлены настройки для изменения параметров задержки и повтора ввода клавиатуры.
  • Добавлена возможность привязки операций к прокрутке колесом мыши (по умолчанию при проктутке на рабочем столе производится переключение между виртуальными рабочими столами).
  • Добавлена поддержка плавной и горизонтальной прокрутки.
  • Обеспечено тестирование в системе непрерывной интеграции сборок для Debian, FreeBSD, Arch и Void, включая сборок без xwayland.
  • Добавлена поддержка наклона и толщины шрифтов (для использования наклонных и жирных шрифтов).
  • Добавлена настройка для управления включением предпросмотра контуров.
  • Обеспечена отрисовка стрелок для подменю. В меню добавлена поддержка разделителей.
  • Обеспечена работа протокола xdg-desktop-portal-wlr без дополнительных настроек (выполнена инициализация dbus и активации через systemd), что решило проблемы с запуском OBS Studio.



Release. Ссылка here.