LabWC: Difference between revisions

From Alpine Linux
No edit summary
(rearranged headings and added Include:Desktop prerequisites)
Line 1: Line 1:
[https://labwc.github.io LabWC] is a stacking [[Wayland]] compositor. Although [https://github.com/labwc/labwc#1-what-is-this it wasn't intended like that], it can serve as a drop-in replacement for the [[Openbox]] window manager (the same way [[Sway]] is for [[I3wm]]).
[https://labwc.github.io LabWC] is a stacking [[Wayland]] compositor. LabWC can serve as a drop-in replacement for the [[Openbox]] window manager.


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.
== Installation ==
 
{{:Include:Desktop prerequisites}}
Many steps below were taken from the [[Sway|wiki entry for installing Sway]], as both are wlroots-based Wayland compositors. Another interesting page, because of the same reasons, is the [[River]] compositor's.
 
== Prerequisites ==
{{Note|These steps posted as both Sway and LabWC prerequisites could be applied to almost all wlroots-based Wayland compositors.}}
 
{{:Include:Setup_Device_Manager}}


Then install the mesa gallium drivers:
The <Code>setup-wayland-base</Code> script installs and enables [[elogind]] as [[Seat manager|seat manager]], enables [[Repositories#Community|community repository]] and enables [[eudev]] automatically as these are required for Wayland to work.


{{Cmd|# apk add mesa-dri-gallium}}
=== Set up eudev ===
{{:Include:Setup Device Manager}}


The following links contain guides for setting up the video stack.
=== Setup up a seat manager ===


* [[Intel Video]]
Wayland compositors need raw access to input and output devices. This is mediated by a [[seat manager]].
* [[Radeon Video]]


Add yourself to the input and video groups:
Configure either [[seatd]] or [[elogind]] as both are supported. However using both may lead to conflicts.


=== Install fonts ===


{{Cmd|&#35; adduser $USER input
Install DejaVu fonts, which has good Unicode coverage:
&#35; adduser $USER video
{{cmd|# apk add font-dejavu}}  
}}
 
You have to log out and back in for this to take effect.
 
Install some TTF fonts:
 
{{Cmd|# apk add font-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, [[Repositories#Enabling_the_community_repository|enable the community repository]] and choose one of the following methods:
 
=== Option 1: seatd daemon (recommended) ===
See [[Seatd]].
 
=== Option 2: seatd-launch ===
 
{{Cmd|# apk add seatd-launch}}
 
When starting labwc, you will need to prefix invocation with <code>seatd-launch</code>. 
Note: <code>seatd-launch</code> is a suid binary, so it might be wise to use one of the other methods from a security perspective.
 
=== Option 3: elogind daemon ===
 
See [[Elogind]].
 
== Installation ==


=== Install labwc ===
We can now install labwc:
We can now install labwc:
{{Cmd|&#35; apk add labwc labwc-doc
{{Cmd|&#35; apk add labwc labwc-doc
Line 61: Line 32:
     dbus-x11
     dbus-x11
}}
}}
Note that almost all optional dependencies are the same as Sway's.


== Running LabWC ==
== Running LabWC ==


To run labwc, first set up [[XDG_RUNTIME_DIR]] 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):
To run labwc from console:{{Cmd|$ dbus-launch labwc}}


{{Cmd|$ dbus-launch labwc}}
'''dbus-launch labwc''' is used because pipewire needs it, it is included in dbus-x11 and you may omit it.


(if you run labwc with seatd-launch, you will need to use <code>$ dbus-launch seatd-launch labwc</code>)
(if you run labwc with seatd-launch, you will need to use <code>$ dbus-launch seatd-launch labwc</code>)
Line 79: Line 48:
}}
}}


== Configuration and Usage ==
== Configuration ==


LabWC aims to implement the [http://openbox.org/wiki/Help:Contents openbox 3.4] specification, so many things working in OpenBox should be compatible.
LabWC aims to implement the [http://openbox.org/wiki/Help:Contents openbox 3.4] specification, so many things working in OpenBox should be compatible.
Line 86: Line 55:


For additional information, labwc [https://labwc.github.io/manual.html manpages] and [https://github.com/labwc/labwc/wiki wiki] can be consulted.
For additional information, labwc [https://labwc.github.io/manual.html manpages] and [https://github.com/labwc/labwc/wiki wiki] can be consulted.
== Troubleshooting ==
== See also ==
[https://labwc.github.io LabWC Official website]


[[Category:Desktop]]
[[Category:Desktop]]
[[Category:Wayland]]
[[Category:Wayland]]
[[Category:compositor]]
[[Category:compositor]]

Revision as of 07:07, 9 January 2025

LabWC is a stacking Wayland compositor. LabWC can serve as a drop-in replacement for the Openbox window manager.

Installation

The setup-wayland-base script installs and enables elogind as seat manager, enables community repository and enables eudev automatically as these are required for Wayland to work.

Set up eudev

Setting up eudev as device manager on desktop systems is recommended in Alpine Linux. Without a fully functional device manager, users will not be able to connect to input devices. The alpine-conf package provides setup-devd script to easily install and setup device managers.

To set up eudev, issue the command:

# setup-devd udev

Setup up a seat manager

Wayland compositors need raw access to input and output devices. This is mediated by a seat manager.

Configure either seatd or elogind as both are supported. However using both may lead to conflicts.

Install fonts

Install DejaVu fonts, which has good Unicode coverage:

# apk add font-dejavu

Install labwc

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 dbus-x11

Running LabWC

To run labwc from console:

$ dbus-launch labwc

dbus-launch labwc is used because pipewire needs it, it is included in dbus-x11 and you may omit it.

(if you run labwc with seatd-launch, you will need to use $ dbus-launch seatd-launch labwc)

You can also create a simple alias in your shell rc file (e.g. .zshrc), like:

alias labwcinit="dbus-launch seatd-launch labwc"

Note:

swaylock needs to be able to read your /etc/shadow file to be able to validate your password

Configuration

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.

For additional information, labwc manpages and wiki can be consulted.

Troubleshooting

See also

LabWC Official website