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 Beispielkonfigurationsdateie 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 greift für die Definition des keyboard-Layouts auf XKB zurück, ü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
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/openbox-3/
geladen.
<theme> <name>MyCoolTheme</name> ... </theme>
Alternativ kann auch hier wieder ein Attribut verwendet werden.
<theme name="MyCoolTheme"> ... </theme>
Die Datei rx.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 verfügt aktuell nicht über Icon-Support in Menüs. Für das Root-Menü kann man sich zum Beispiel mit der Verwendung von Unicode-Zeichen für Emojis behelfen, oder Entsprechende Zeichen aus Symbolschriftarten verwenden, die man einfach im Label vor den eigentlichen Menüpunkt schreibt.
<menu id="internet" label="🌐 Internet">...</menu> <menu id="games" label="🎮 Spiele">...</menu> <menu id="media" label="🎶 Multimedia">...</menu>
Je nach verwendeter Schriftart für Icons sehen diese hier im Wiki anders aus.
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
- Icon-Fonts fürs Menü: noto-fonts-emoji, ttf-nerd-fonts-symbols