This wiki was written starting from a fresh install using the Alpine 3.16 x86 extended .iso. The steps begin from the first reboot after running setup-alpine and performing a sys install to disk.
First, install & configure eudev:
# apk add eudev # setup-udev
Then install the mesa gallium drivers:
# apk add mesa-dri-gallium
The following links contain guides for setting up the video stack.
Add yourself to the input and video groups:
# adduser $USER input # adduser $USER video
You have to log out and back in for this to take effect.
Install some TTF fonts:
# apk add ttf-dejavu
Since wlroots 0.14, you need to set up libseat backend if you wish to run labwc directly (without nesting it in another wayland compositor). To do that, enable the community repository and choose one of the following methods:
- Option 1: seatd daemon (recommended)
# apk add seatd # rc-update add seatd # rc-service seatd start # adduser $USER seat
If you are already logged in as a $USER, you will need to relogin.
- Option 2: seatd-launch
# apk add seatd-launch
When starting labwc, you will need to prefix invocation with
seatd-launchis a suid binary, so it might be wise to use one of the other methods from a security perspective.
- Option 3: elogind daemon
# apk add elogind polkit-elogind # rc-update add elogind # rc-service elogind start
elogindwill automatically set the necessary permissions, so you can skip adding groups like
We can now install labwc:
# apk add labwc labwc-doc # apk add \ # Install optional dependencies: xwayland \ # recommended for compatibility reasons foot \ # default terminal emulator rofi \ # default application launcher (dmenu could be used instead) swaylock \ # lockscreen tool swaybg \ # wallpaper daemon swayidle # idle management (DPMS) daemon
Note that almost all optional dependencies are the same than Sway's. Another interesting packages are specified into the project's README, as it can be waybar (included into the Alpine's repository) as navigation bar.
To run labwc, first set XDG_RUNTIME_DIR to a suitable location (e.g. create a .run folder in your home directory and set it to ~/.run). Then run labwc from the Linux console (dbus-launch is used because pipewire needs it, it is included in dbus-x11 and you may omit it):
$ XDG_RUNTIME_DIR=~/.run dbus-launch labwc
(if you run labwc with seatd-launch, you will need to use
$ XDG_RUNTIME_DIR=~/.run dbus-launch seatd-launch labwc)
You can also create a simple alias in your shell rc file (e.g. .zshrc), like:
alias labwcinit="XDG_RUNTIME_DIR=~/.run dbus-launch seatd-launch labwc"
See the Wayland page for a permanent configuration (recommended).
Configuration and Usage
LabWC aims to implement the openbox 3.4 specification, so many things working in OpenBox should be compatible.
Moreover, the project provides examples for all the configuration files and some themes, explaining where it must be located each one of them.