labwc
labwc ist ein auf wlroots-basierender Fenstermanager für Wayland. Er orientiert sich am Box-Modell von Openbox und ist teilweise mit der Konfiguration von Openbox kompatibel.
Installation
Das Programm ist als
labwc
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
labwc lässt sich nach der Installation direkt mittels labwc
starten.
Konfiguration
Es empfiehlt sich, die Beispielkonfigurationsdateien aus /usr/share/doc/labwc/
nach ~/.config/labwc/
zu kopieren und durchzugehen. Die Hauptkonfiguration findet wie unter Openbox in rc.xml
und menu.xml
statt. Die Datei rc.xml.all
zeigt alle Konfigurationsoptionen auf, und bietet diverse Hinweise/Kommentare zu deren Werten.
In der Datei environment
werden Umgebungsvariablen abgelegt und automatisch von labwc geladen. Die Datei autostart
beinhaltet Programmaufrufe, die bei jedem Starten von labwc durchgeführt werden sollen.
Nach jeder Konfigurationsänderung muss labwc neu geladen werden
labwc --reconfigure
Sollte die Konfiguration Syntaxfehler beinhalten, wird die Standardkonfiguration benutzt.
Tastaturlayout setzen
labwc verwendet für die Definition des Tastaturlayouts XKB. Über eine entsprechende Zuweisung in environment
kann das Tastaturlayout eingestellt werden.
XKB_DEFAULT_RULES = ... XKB_DEFAULT_MODEL = ... XKB_DEFAULT_LAYOUT = ... XKB_DEFAULT_VARIANT = ... XKB_DEFAULT_OPTIONS = ...
Nicht alle Variablen müssen verwendet werden. Für eine Deutsche Tastatur mit Basisfunktionalität reicht es, das Layout zu definieren.
XKB_DEFAULT_LAYOUT=de
Die möglichen Werte entsprechen den verfügbaren Layouts. Um die Layouts einzusehen, kann man entweder localectl
benutzen (localectl list-x11-keymap-layouts
), oder manuell in /usr/share/X11/xkb/symbols
nachsehen.
Weitere Konfiguration, wie die Wiederholrate und der Numlock-Status lassen sich in rc.xml
setzen.
<keyboard> <numlock>on</numlock> <repeatRate>25</repeatRate> <repeatDelay>600</repeatDelay> ... </keyboard>
Alternativ lassen die Optionen sich auch als Parameter des Keyboard-Tags setzen, um die Konfiguration „sauber“ zu halten.
<keyboard numLock="on" layoutScope="global" repeatRate="30" repeatDelay="200" > ... </keyboard>
Cursoroptionen setzen
Hinweis: Sollte der Mauszeiger gar nicht angezeigt werden, und das System eine Nvidia-Grafikkarte verwenden, so muss in environment
der Hardwarecursor deaktiviert werden: WLR_NO_HARDWARE_CURSORS=1
.
Der Mauscursor lässt sich in rc.xml
konfigurieren.
<mouse> <doubleClickTime>500</doubleClickTime> ... </mouse>
Oder alternativ:
<mouse doubleClickTime="500"> ... </mouse>
Weitere Maus- und Touchpadoptionen, wie die Geschwindigkeit, Cursorbeschleunigung, Deaktivieren-beim-Tippen, etc. lassen sich im Abschnitt <libinput>
konfigurieren.
<libinput> <device category="default"> <pointerSpeed>0.5</pointerSpeed> ... </device> </libinput>
Im Beispiel wird eine langsame Cursorgeschwindigkeit eingestellt.
Client-Menü einrichten

>...<
), und Alacritty ist die fokussierte Anwendung auf diesem Desktop (*...
).Die Standardkonfiguration von labwc zeigt beim Klick einer beliebigen Maustaste auf dem Desktop (in der labwc-Terminologie: „Root“) immer das Root-Menu an. Will man das von Openbox bekannte Client-Menü mit den Anwendungen auf den verschiedenen Desktops haben, so muss man dies explizit als Maustastenkombination konfigurieren.
<mouse> <context name="Root"> <mousebind button="Middle" action="Press"> <action name="ShowMenu" menu="client-list-combined-menu" /> </mousebind> ... </context> ... <mouse>
Virtuelle Desktops

Es können beliebig viele Desktops eingerichtet und benannt werden.
<desktops> <names> <name>Erster</name> <name>Zweiter</name> <name>Dritter</name> <name>Vierter</name> </names> </desktops>
Will man nur eine gewisse Anzahl an Desktops einrichten, so kann man dies ebenfalls, ohne alle Desktops explizit aufzulisten.
<desktops number="4" />
Man kann Nummerierte Desktops auch mit einem Präfix versehen.
<desktops> <number>10</number> <prefix>Desktop</prefix> </desktops>
Dies richtet 10 Desktops mit den Namen „Desktop 1“ bis „Desktop 10“ ein.
Theme

labwc benutzt Openbox-Themes und kann die meisten der Theme-Optionen richtig interpretieren und umsetzen. Es können daher also die bekannten Themes verwendet werden, diese werden aus ~/.local/share/themes/THEMENAME/labwc/
geladen.
<theme> <name>MyCoolTheme</name> ... </theme>
Alternativ kann auch hier wieder ein Attribut verwendet werden.
<theme name="MyCoolTheme"> ... </theme>
Die Datei rc.all.xml
listet weitere Theme-Optionen auf. Die Manpage labwc-themes
Erklärt, wie man Themes selber erstellen kann, und welche Parameter verfügbar sind.
Menü-Icons

labwc beherrscht das Anzeigen von Menüicons im Root-Menü. Standardmäßig werden die Menüicons angezeigt, sofern konfiguriert. Menüeinträge sowie Programmeinträge können gleichermaßen per icon=""
mit einem Menüicon versehen werden
<menu id="root-menu"> <menu id="internet" label="Internet" icon="internet">...</menu> <menu id="media" label="Multimedia" icon="multimedia">...</menu> <menu id="games" label="Spiele" icon="games">...</menu> </menu>
Es wird seitens der Entwickler empfohlen, immer die Kurznamen der Menüicons zu verwenden. Icons aus /usr/share/icons/
, /usr/share/pixmaps/
, und ~/.local/share/icons/
werden immer geladen, wenn sie der Icon Naming Specification folgen.
Die im Beispiel genutzten Icons liegen im Home-Verzeichnis in der benötigten Struktur.
tree ~/.local/share/icons/
/home/user/.local/share/icons/ └ hicolor └ scalable └ apps ├── games.svg ├── internet.svg └── multimedia.svg
Es können beliebig weitere Icons angelegt und so verwendet werden.
Will man die Icons nicht verwenden, so kann man dies in der Konfiguration ausschalten.
~/.config/labwc/rc.xml
<menu> <showIcons>no</showIcons> </menu>
Dies gilt für alle Menüs.
Autostart
In der Datei autostart
werden Programme aufgelistet, die beim Starten von labwc automatisch mitgestartet werden sollen. Programme, die im Vordergrund ausgeführt werden, müssen entsprechend mittels &
in den Hintergrund gebracht werden damit der Startvorgang weiterlaufen kann.
~/.config/labwc/autostart
swaybg -i ~/.wallpapers/default.png & udiskie & waybar &
Hier wird mittels swaybg das Hintergrundbild gesetzt, und dann werden udiskie für die Wechseldatenträgerverwaltung und Waybar als Desktopleiste gestartet.
Umgebungsvariablen
Um Umgebungsvariablen zu setzen, kann man unter labwc die Datei environment
benutzen.
~/.config/labwc/environment
GBM_BACKEND=nvidia-drm LIBVA_DRIVER_NAME=nvidia QT_QPA_PLATFORM=wayland WLR_NO_HARDWARE_CURSORS=1 XKB_DEFAULT_LAYOUT=de
Im Beispiel werden einige Variablen für das Zusammenspiel von Wayland und den Nvidia-Treibern gesetzt, sowie das von labwc benutzte Tastaturlayout bestimmt.
Siehe auch
- Die Entwickler empfehlen sfwbarAUR als Desktopleiste