exozern.org


labwc

preview of 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:

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 &

  1. https://wiki.archlinux.org/title/Labwc ↩︎

  2. https://labwc.github.io/ ↩︎

  3. https://en.wikipedia.org/wiki/Raspberry_Pi_OS ↩︎

  4. https://en.wikipedia.org/wiki/Xfce ↩︎