The release of the labwc 0.20 project (Lab Wayland Compositor) has been published, which develops a composite server for Wayland with features reminiscent of the Openbox window manager (this project is presented as an attempt to create an alternative to Openbox for Wayland). The project's code is written in C and is distributed under the GPLv2 license. The significant version increase (from 0.9 to 0.20) is explained by synchronization with the version numbering of the wlroots library.
Labwc is utilized in the graphical environment of the Raspberry Pi OS distribution and is optionally supported in the desktop environments Xfce and LXQt. Among the goals of the labwc project are minimalism, a compact implementation, extensive customization capabilities, and high performance. Animated effects, gradients, and icons are fundamentally unsupported, except for window buttons. The foundation is based on the wlroots library, developed by the Sway user environment team, which provides basic functions for organizing the operation of a composite manager based on Wayland.
It is possible to connect plugins that implement functions such as taking screenshots, displaying wallpapers on the desktop, positioning panels and menus. To run X11 applications in a Wayland-based environment, support for the DDX component XWayland is available. The theme, main menu, and hotkeys are configurable via XML format configuration files. There is built-in support for high pixel density screens (HiDPI).
In addition to the built-in main menu, which can be configured via the menu.xml file, third-party application menu implementations such as bemenu, fuzzel, and wofi can be connected. For the panel, Waybar, sfwbar, Yambar, or LavaLauncher can be used. To manage monitor connections and change their settings, it is recommended to use wlr-randr or kanshi. Screen locking is performed using swaylock.
In the new version:
- A transition to version 0.20 of the wlroots library has been made, which implements support for color management capabilities, HDR, and cursor appearance customization. virtual desktops.
- Partial support for toplevel-capture content presented on Wayland surfaces has been implemented, allowing for screenshots and screencasts of individual window content. The implementation currently does not cover child and pop-up windows of applications launched via XWayland, nor nested Wayland surfaces xdg.
- Support for an extended brightness range has been added, enabling output to monitors that support HDR10 (works only when using the Vulkan-based rendering backend).
- Accelerated menu navigation to elements through the pressing of the first letter of their names has been implemented. For example, to launch Firefox, simply invoke the menu with the ‘Meta+a’ combination and press the letter 'f'.
- A Super-d keyboard shortcut has been added for hiding and returning windows. A ToggleShowDesktop option is provided for configuring custom keyboard shortcuts for this action.
- A command line option ‘-t’ (—title) has been added for setting the window title during nested launches of labwc.
- The labnag utility has been enhanced with ‘—details-border-color’ and ‘—details-margin’ options to set the color and margin around the content area.
- The installation of the systemd unit labwc-session.target is ensured when systemd is present.
- A configuration file setting ‘’ has been added to introduce a delay before switching focus.
- Support for the ‘onbutton’ scrolling method has been added to the ‘’ option, along with a separate ‘’ option for scrolling content using buttons.
- An option has been added to configure the range of pressure sensitivity for graphics tablets.
- A configuration file option has been added to restrict access to privileged protocols.
- A debugging parameter DebugToggleKeyStateIndicator has been added to display key state information over the content.
- Support for Wayland protocols for color management has been added: color-representation-v1 and color-management-v1.
- An interface wl_fixes has been implemented to address issues with other software interfaces of base protocols that cannot be resolved by the capabilities of these interfaces themselves. For example,
The request «wl_fixes::destroy_registry» allows you to eliminate the wl_registry object, after which the client will no longer be able to use it, and the compositor server will stop transmitting events through it.




Source: opennet.ru
