labwc

Overview
Labwc (short for Lab Wayland Compositor)[1] is a stacking wayland compositor, based on the wlroots library. It is lightweight and only understands wayland protocols]2 and wlr-protocols. This means that it cannot be controlled with dbus, *sway/i3-IPC, or similar technology.[2]
This compositor relies on other applications to create a full desktop environment. It only provides the winow management functionality and doesn't even implement display scaling.
Notable distributions and desktop environments that use labwc as compositor:
Setup
labwc usually can be installed with the labwc package. On archlinux the
installation looks like the following:
sudo pacman -S labwc
Note however, that this only installs labwc. In order to start labwc, it
needs some access to your seat. This will require the installation of either
the polkit package or the seatd package. With seatd, the user neets to be
added to the seat user group. Also the seatd.service needs to be enabled.
To now start labwc enter the following command into a tty:
labwc
If nothing is configured yet, this will only display a simple black screen.
Configuration
The configuration files for labwc are located in $HOME/.config/labwc and
should consist at least of the following entries:
environment: Set environment variables such as theXKB_DEFAULT_LAYOUT(keyboard layout)rc.xml: Labwc configuration (shortcuts, theme, keyboard repeat rate)autostart: Commands to run on the start of labwc
rc.xml
This file contains various configurations for labwc on how to configure the compositor. This includes keybinds, themes, fonts and much more.
An example rc.xml could look like:
<?xml version="1.0" ?>
<labwc_config>
<!-- Keyboard Configuration -->
<keyboard>
<repeatRate>60</repeatRate>
<repeatDelay>200</repeatDelay>
<default />
<!-- Alt + Space to open fuzzel -->
<keybind key="A-Space">
<action name="Execute" command="fuzzel" />
</keybind>
</keyboard>
<!-- Virtual Desktops -->
<desktops>
<initial>1</initial>
<names>
<name>1</name>
<name>2</name>
<name>3</name>
<name>4</name>
<name>5</name>
</names>
</desktops>
</labwc_config>
environment:
This file sets environment variables.
An example environment file could look like:
XKB_DEFAULT_LAYOUT=ch(de_mac)
autostart:
This file contains instructions on what to start at the beginning of an labwc session. This is just a bash script, that will be run on the start and thus the syntax is exactly the same.
An example autostart could look like:
# Set display scaling
wlr-randr --output eDP-1 --scale 1.75 &
# Add background
swaybg --image $HOME/Pictures/dscf1208.jpeg -m fill &
# Add bar
waybar >/dev/null 2>&1 &