Ya the new version of labwc 0.6 was released, which is an important version, since includes a refactoring to use the wlroots graphics API. This touches many areas of the code, particularly rendering, server-side decoration, layer implementation, and the menu.
For those of you unfamiliar with labwc 0.6, you should know that it is based on the wlroots library, which was developed by the developers of the Sway user environment and provides basic functions for organizing the work of the Wayland-based composite manager.
Of Wayland's extended protocols, wlr-output-management is supported for configuring output devices, layer-shell for organizing the work of the desktop shell, and Foreign-toplevel for connecting your own panes and window switches.
Main novelties of labwc 0.6
In this new version of labwc 0.6 that is presented, it is highlighted that significantly redesigned the use of the graphics API of scene provided by wlroots, thereby the processing was reflected in the rendering, the decoration of windows, menus and the implementation of the screen casing.
El image and font processing before displaying on screen switched to buffering instead of textures (the wlr_texture structure), which made it possible to ensure correct scaling of the output, plus the code for binding controllers to wlr_scene_nodes has been simplified.
Another change that stands out in this new version is that continuous integration tests provided for Debian, FreeBSD, Arch and Void builds, including non-xwayland builds.
In addition to that, we can also find that added support for adjusting the italics and weight of fonts (to use italic and bold fonts), as well as adding a setting to control whether schematic previews are enabled.
The xdg-desktop-portal-wlr protocol was enabled to work without additional configuration (dbus initialization and activation via systemd completed), which resolved issues with the OBS Studio release.
Also highlighted in this new version of labwc 0.6 is the Implemented support for the drm_lease_v1 protocol, which is used to generate a stereo image with different buffers for the left and right eyes when displayed in virtual reality headsets.
- Proportioned representation of arrows for submenus. Support for separators has been added to the menu.
- Improved debugging options.
- Added support for virtual desktops.
- Added support for using different languages in client menus.
- Implemented support for the presentation time protocol used to display video.
- Added support for touch devices.
- Protocols implemented for the use of the virtual keyboard and the pointer.
- Added a way to pin a window on top of other windows (ToggleAlwaysOnTop).
- Added osd.border.color and osd.border.width settings to define the width and color of the window frame.
- Added settings to change keyboard delay and repeat settings.
- Added the ability to link operations to scroll with the mouse wheel (by default, scrolling on the desktop switches between virtual desktops).
- Added support for smooth and horizontal scrolling.
How to install LABWC?
For those who are interested in being able to install this composer on their system, they must follow the instructions that we share below.
The distribution that has the easiest installation method is Fedora and to install labwc, just open a terminal and in it we are going to type:
sudo dnf install labwc
Those who are users of Arch Linux, Manjaro or any other distribution derived from Arch Linux, they must open a terminal and in it they will type the following command to download the necessary dependencies:
sudo pacman -S meson wlroots cairo pango libxml2 glib2
After that, they will get the LABWC source code by running the following command in the terminal:
git clone https://github.com/johanmalm/labwc cd labwc meson build ninja -C build
Now, for those who are users of Debian, UBuntu or any other distribution based on either of these two, they must type the following in the terminal:
git clone https://github.com/johanmalm/labwc cd labwc meson build ninja -C build
For those who are interested in learning more about LABWC, they can visit the site of the project on GitHub.