The release of the labwc 0.9.0 project (Lab Wayland Compositor) has been published, developing a compositor server for Wayland with features reminiscent of the Openbox window manager (the project is presented as an attempt to create an alternative to Openbox for Wayland). Among the features of labwc are minimalism, compact implementation, extensive customization options, and high performance. Animated effects, gradients, and icons, except for window buttons, are fundamentally not supported. The project's code is written in C and is distributed under the GPLv2 license.
The foundation uses the wlroots library, developed by the Sway desktop environment developers, and provides the basic functions for operating a compositor manager based on Wayland. It is possible to connect plugins that implement features such as taking screenshots, displaying wallpapers on the desktop, and placing panels and menus. To run X11 applications in a Wayland-based environment, the use of the XWayland DDX component is supported. The theme, basic menu, and hotkeys are customizable through configuration files in XML format. There is built-in support for high-density pixel screens (HiDPI).
In addition to the built-in root menu, customizable via the menu.xml file, third-party application menu implementations can be connected, such as bemenu, fuzzel, and wofi. For the panel, you can use Waybar, sfwbar, Yambar, or LavaLauncher. To manage monitor connections and change their settings, wlr-randr or kanshi is recommended. The screen can be locked using swaylock. The compositor manager is utilized in the graphical environment of the Raspberry Pi OS distribution and optionally supported in Xfce and LXQt desktop environments.
In the new version:
- Support for the capabilities of the new release of the wlroots library 0.19 has been added, including the implementation of new Wayland protocols, Multi-GPU support, and the ability for explicit buffer synchronization using DRM (Direct Rendering Manager) synchronization objects.
- Support for Wayland protocols has been provided:
- ext-data-control — allows privileged clients to manage data processing, for instance, for clipboard managers.
- alpha-modifier — allows clients to change the transparency level of surfaces and offload transparency operations to the compositor side. server.
- xdg-toplevel-icon — implements icon binding to a top-level window.
- drm-syncobj — provides tools for explicit synchronization of buffers using DRM (Direct Rendering Manager) synchronization objects.
- ext-image-copy-capture — facilitates capturing content displayed on the screen.
- The command "lab-sensible-terminal" has been added to launch a terminal emulator (the program is selected based on the $TERMINAL environment variable). A menu item has been added to the root menu for invoking the terminal.
- Support for gradient filling in the window title area has been added. The following options are provided for gradient configuration:
- window.*.title.bg: Solid | Gradient ( Vertical | SplitVertical )
- window.*.title.bg.colorTo:
- window.*.title.bg.color.splitTo:
- window.*.title.bg.colorTo.splitTo:
- When launched with the options "-v" ("--version"), support capabilities information, such as "+xwayland -rsvg", has been added to the output.
- The sending of DRM (Direct Rendering Manager Leases) resources to XWayland clients has been ensured.
- Added configuration <windowRule iconPriority=»client|server»> to choose the preferred method for icon lookup.
- Support for color themes defined using the X11-color-names syntax and ‘#rgb’ has been added.
- Support for the XWayland property _NET_WM_ICON has been implemented, along with the addition of the iconPriority rule to enable its support.
- Configuration "<core><primarySelection>" has been added to allow middle mouse wheel auto-scrolling in Chromium and Electron-based applications without inadvertently pasting data from the clipboard.
- Supported versions of Wayland protocols xdg_shell and wl_compositor have been updated.
- Support for auxiliary buttons on mice has been added.
- Settings for libinput have been added:
- «<threeFingerDrag>»
- «<dragLock>sticky<\/dragLock>»
- «<scrollMethod>none|twofinger|edge<\/scrollMethod>»
- Parameters «{left,right}-occupied» have been added to simplify navigation between virtual desktops with open windows.
- A setting "<theme><dropShadowsOnTiled>" has been added to enable the display of shadows for tiled windows.
- Support for mouse wheel scrolling emulation has been added, for which the parameters EnableScrollWheelEmulation, DisableScrollWheelEmulation, and ToggleScrollWheelEmulation are provided.


Source: opennet.ru
