The release of project labwc 0.6 (Lab Wayland Compositor) is available, which develops a compositor server for Wayland with features similar to the Openbox window manager (the project is presented as an attempt to create an alternative to Openbox for Wayland). Labwc is noted for its minimalism, compact implementation, extensive customization options, and high performance. The project's code is written in C and is distributed under the GPLv2 license.
It uses the wlroots library, developed by the creators of the Sway desktop environment, which provides the basic functions for organizing the work of a compositing manager based on Wayland. Among the extended Wayland protocols supported are wlr-output-management for configuring output devices, layer-shell for desktop shell functionality, and foreign-toplevel for connecting custom panels and window switches.
Extensions can be connected to implement features such as taking screenshots, displaying desktop wallpapers, and placing panels and menus. Animated effects, gradients, and icons (except for window buttons) are not supported by design. To run X11 applications in a Wayland-based environment, the DDX component XWayland is supported. The theme, basic menu, and hotkeys are configurable through XML configuration files. There is built-in support for high pixel density (HiDPI) displays.

In addition to the built-in root menu, configurable via menu.xml, external implementations of application menus such as bemenu, fuzzel, and wofi can be connected. For a panel, you can use Waybar, sfwbar, Yambar, or LavaLauncher. To manage monitor connections and change their settings, wlr-randr or kanshi is suggested. Screen locking is performed using swaylock.
Key changes in the new release:
- The use of the scene graph API provided in wlroots has been significantly overhauled. The redesign has affected rendering, window decoration, menus, and the implementation of screen shells. Image and font processing before output to the screen has been transitioned to use buffers instead of textures (wlr_texture structure), allowing for correct output scaling. The code for binding handlers to wlr_scene_nodes has been simplified. Debugging capabilities have been expanded.
- Support added virtual desktops.
- Support for using different languages in client menus has been added.
- Support for the presentation-time protocol, used for displaying video, has been implemented.
- Support for touch devices has been added.
- Support for the drm_lease_v1 protocol, used to create stereoscopic images with different buffers for the left and right eyes when outputting to virtual reality headsets, has been implemented.
- Protocols for the application of virtual keyboard and pointer have been implemented.
- A mode for pinning a window on top of other windows (ToggleAlwaysOnTop) has been added.
- Settings osd.border.color and osd.border.width have been added to define the width and color of the window frame.
- Settings for changing the input keyboard delay and repeat parameters have been added.
- The ability to bind operations to mouse wheel scrolling has been added (by default, scrolling on the desktop switches between virtual desktops).
- Support for smooth and horizontal scrolling has been added.
- Testing in a continuous integration build system for Debian, FreeBSD, Arch, and Void, including builds without xwayland, has been ensured.
- Support for customizing font slant and thickness (for using italic and bold fonts) has been added.
- The setting for controlling the inclusion of outline previews has been added.
- Arrow rendering for submenus has been ensured. Support for separators has been added to the menu.
- The xdg-desktop-portal-wlr protocol operates without additional configuration (dbus initialization and activation via systemd have been completed), resolving issues with launching OBS Studio.

Source: opennet.ru
