labwc

Aus wiki.archlinux.de

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.

pacman -S labwc

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

Das Client-Menü zeigt diverse Anwendungen auf vier konfigurierten Desktops.

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

Das Standard-Theme mit abgerundeten Ecken oben am Beispiel von Thunar (Fenstertitelzeile mit dem Titel und den Fenstericons).

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

Ein Menü das unter Verwendung von Emoji-Charakteren und weiteren Symbolen Menüicons simuliert.

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

Weblinks