Labwc: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) |
Dirk (Diskussion | Beiträge) K →Icons |
||
| (14 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 11: | Zeile 11: | ||
In der Datei {{ic|environment}} werden [[Umgebungsvariablen]] abgelegt und automatisch von labwc geladen. Die Datei {{ic|autostart}} beinhaltet Programmaufrufe, die bei jedem Starten von labwc durchgeführt werden sollen. | In der Datei {{ic|environment}} werden [[Umgebungsvariablen]] abgelegt und automatisch von labwc geladen. Die Datei {{ic|autostart}} beinhaltet Programmaufrufe, die bei jedem Starten von labwc durchgeführt werden sollen. | ||
Die Konfiguration wird beim starten automatisch geladen und angewendet. Will man labwc nach einer Konfigurationsänderung nicht neu starten, so muss man die Konfiguration manuell neu laden. | |||
labwc --reconfigure | labwc --reconfigure | ||
| Zeile 18: | Zeile 18: | ||
=== Tastaturlayout setzen === | === Tastaturlayout setzen === | ||
labwc | labwc verwendet für die Definition des Tastaturlayouts [[XKB]]. Über eine entsprechende Zuweisung in {{ic|environment}} kann das Tastaturlayout eingestellt werden. | ||
XKB_DEFAULT_RULES = ... | XKB_DEFAULT_RULES = ... | ||
| Zeile 43: | Zeile 43: | ||
Alternativ lassen die Optionen sich auch als Parameter des Keyboard-Tags setzen, um die Konfiguration „sauber“ zu halten. | 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 numLock="on" layoutScope="global" repeatRate="30" repeatDelay="200" /> | ||
Im Beispiel wird die Konfiguration komplett im entsprechenden XML-Tag vorgenommen, und dieses auch direkt geschlossen. | |||
=== Cursoroptionen setzen === | === Cursoroptionen setzen === | ||
{{hinweis|Sollte der Mauszeiger gar nicht angezeigt werden, und das System eine Nvidia-Grafikkarte verwenden, so muss in {{ic|environment}} der Hardwarecursor deaktiviert werden: {{ic|1=WLR_NO_HARDWARE_CURSORS=1}}.}} | {{hinweis|Sollte der Mauszeiger gar nicht angezeigt werden, und das System eine Nvidia-Grafikkarte verwenden, so muss in {{ic|environment}} der Hardwarecursor deaktiviert werden: {{ic|1=WLR_NO_HARDWARE_CURSORS=1}}.}} | ||
Der Mauscursor lässt sich in {{ic|rc.xml}} konfigurieren. | Der Mauscursor lässt sich in {{ic|rc.xml}} konfigurieren. Im Beispiel wird die Doppelklickgeschwindigkeit angepasst. | ||
<mouse> | <mouse> | ||
| Zeile 117: | Zeile 117: | ||
=== Theme === | === Theme === | ||
[[Datei:Thunar_420_in_labwc.png|thumbnail|Das Standard-Theme mit abgerundeten Ecken oben am Beispiel von [[Thunar]] (Fenstertitelzeile mit dem Titel und den Fenstericons).]] | [[Datei:Thunar_420_in_labwc.png|thumbnail|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 {{ic|~/.local/share/themes/THEMENAME/ | 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 {{ic|~/.local/share/themes/THEMENAME/labwc/}} geladen. | ||
<theme> | <theme> | ||
| Zeile 132: | Zeile 132: | ||
Die Datei {{ic|rc.all.xml}} listet weitere Theme-Optionen auf. Die [[Manpage]] {{ic|labwc-themes}} Erklärt, wie man Themes selber erstellen kann, und welche Parameter verfügbar sind. | Die Datei {{ic|rc.all.xml}} listet weitere Theme-Optionen auf. Die [[Manpage]] {{ic|labwc-themes}} Erklärt, wie man Themes selber erstellen kann, und welche Parameter verfügbar sind. | ||
=== | === Icons === | ||
labwc beherrscht das Anzeigen von Icons sowohl in Menüs, als auch in der Fenstertitelzeile und dem Anwendungswechsler. | |||
==== Menüicons ==== | |||
[[Datei:Labwc_menu_configured.png|thumbnail|Ein Menü mit Menüicons.]] | [[Datei:Labwc_menu_configured.png|thumbnail|Ein Menü mit Menüicons.]] | ||
Standardmäßig werden die Menüicons angezeigt, sofern konfiguriert. Menüeinträge sowie Programmeinträge können gleichermaßen per {{ic|1=icon=""}} mit einem Menüicon versehen werden | |||
<menu id="internet" label="Internet" icon="internet">...</menu> | <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 {{ic|/usr/share/icons/}}, {{ic|/usr/share/pixmaps/}}, und {{ic|~/.local/share/icons/}} werden immer geladen, wenn sie der [https://specifications.freedesktop.org/icon-naming-spec/latest/ Icon Naming Specification] {{sprache|en}} folgen. | Es wird seitens der Entwickler empfohlen, immer die Kurznamen der Menüicons zu verwenden. Icons aus {{ic|/usr/share/icons/}}, {{ic|/usr/share/pixmaps/}}, und {{ic|~/.local/share/icons/}} werden immer geladen, wenn sie der [https://specifications.freedesktop.org/icon-naming-spec/latest/ Icon Naming Specification] {{sprache|en}} folgen. | ||
Die | Die im Beispiel genutzten Icons liegen im Home-Verzeichnis in der benötigten Struktur. | ||
{{hc|1=tree ~/.local/share/icons/|2= | {{hc|1=tree ~/.local/share/icons/|2= | ||
| Zeile 155: | Zeile 160: | ||
Es können beliebig weitere Icons angelegt und so verwendet werden. | Es können beliebig weitere Icons angelegt und so verwendet werden. | ||
Will man die Menüicons nicht verwenden, so kann man dies in der Konfiguration ausschalten. | |||
{{hc|1=~/.config/labwc/rc.xml | |||
|2= | |||
<menu> | |||
<showIcons>no</showIcons> | |||
</menu> | |||
}} | |||
Dies gilt für alle Menüs. | |||
==== Fenstericons ==== | |||
[[Datei:Labwc window icons.png|thumb|300px|Fenstericons am Beispiel von [[imv]]<br><br>Oben: Das Standard-Icon von labwc<br>Unten: Das angepasste Icon]] | |||
labwc zeigt die Fenstericons basierend auf dem Icon-Theme wie konfiguriert in der Titelzeile des jeweiligen Fensters an. | |||
Wenn das Icon-Theme kein passendes Icon für die angeforderte App-ID des Fensters besitzt, wird das Standardicon von labwc benutzt. Auch kann es Anwendungen geben, die gar kein Icon definieren, auch da wird dann das Standardicon verwendet. | |||
Anwendungen, die einen generischen Iconnamen wie zum Beispiel {{ic|system-file-manager}} anstatt der App-ID benutzen, werden teilweise von Iconthemes nicht unterstützt, diese Zeigen dann statt des passenden Programmicons ebenfalls das labwc-Standardicon an. | |||
In allen Fällen kann man das gewünschte Icon sehr einfach konfigurieren. Hierbei kann man sich an den Icon-Pfaden im Beispiel der Menü-Icons orientieren. Man benötigt dann lediglich das gewünschte Icon im gewünschten Format, sowie die App-ID, nach der das Icon dann benannt werden muss. | |||
Die nötige ID kann man zum Beispiel im Anwendungswechsler anzeigen lassen, oder aber mit Zusatztools wie {{AUR|wlprop}} auslesen. | |||
{{hc|/home/user/.local/share/icons/| | |||
└ hicolor | |||
├ scalable | |||
│ └ apps | |||
│ └── system-file-manager.svg | |||
└ 48x48 | |||
└ apps | |||
└── imv.png | |||
}} | |||
Das Beispiel definiert zwei Icons, zum einen das generische Icon {{ic|system-file-manager}} als SVG, und zum anderen ein PNG-Icon für [[imv]], das die App-ID {{ic|imv}} benutzt. | |||
Will man das Standard-Fenstericon verändern, so kann man in der Konfiguration einen anderen Icon-Kurznamen für das Fallback-Icon setzen. Das Icon muss dann in der beschriebenen Dateistruktur vorliegen ode rim Icontheme vorhanden sein. | |||
<theme fallbackAppIcon="mein-tolles-icon"> | |||
... | |||
</theme> | |||
Will man die Fenstericons gar nicht verwenden, so muss man der Theme-Konfiguration aus dem Fenstertitellayout entfernen. | |||
<theme> | |||
<titlebar layout="menu:minimize,maximize,close" /> | |||
... | |||
</theme> | |||
Im Beispiel bleibt linksseitig nur noch das Fenstermenü, und rechts die gängigen drei Fensterbuttons. | |||
=== Autostart === | === Autostart === | ||
| Zeile 165: | Zeile 220: | ||
}} | }} | ||
Hier wird mittels {{paket|swaybg}} das Hintergrundbild gesetzt, und dann werden | Hier wird mittels {{paket|swaybg}} das Hintergrundbild gesetzt, und dann werden [[udiskie]] für die Wechseldatenträgerverwaltung und [[Waybar]] als Desktopleiste gestartet. | ||
=== Umgebungsvariablen === | === Umgebungsvariablen === | ||
| Zeile 182: | Zeile 237: | ||
== Siehe auch == | == Siehe auch == | ||
* Die Entwickler empfehlen {{AUR|sfwbar}} als Desktopleiste | * Die Entwickler empfehlen {{AUR|sfwbar}} als Desktopleiste | ||
== Weblinks == | == Weblinks == | ||
* [https://labwc.github.io/ Offizielle Website] {{sprache|en}} | * [https://labwc.github.io/ Offizielle Website] {{sprache|en}} | ||
* [https://github.com/labwc/labwc Offizielles Git-Repository] {{sprache|en}} | |||
* [https://www.box-look.org/browse?cat=140&ord=latest Openbox-Themes] {{sprache|en}} | * [https://www.box-look.org/browse?cat=140&ord=latest Openbox-Themes] {{sprache|en}} | ||
Aktuelle Version vom 15. Dezember 2025, 20:48 Uhr
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.
Die Konfiguration wird beim starten automatisch geladen und angewendet. Will man labwc nach einer Konfigurationsänderung nicht neu starten, so muss man die Konfiguration manuell neu laden.
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" />
Im Beispiel wird die Konfiguration komplett im entsprechenden XML-Tag vorgenommen, und dieses auch direkt geschlossen.
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. Im Beispiel wird die Doppelklickgeschwindigkeit angepasst.
<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.
Icons
labwc beherrscht das Anzeigen von Icons sowohl in Menüs, als auch in der Fenstertitelzeile und dem Anwendungswechsler.
Menüicons

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 Menü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.
Fenstericons

Oben: Das Standard-Icon von labwc
Unten: Das angepasste Icon
labwc zeigt die Fenstericons basierend auf dem Icon-Theme wie konfiguriert in der Titelzeile des jeweiligen Fensters an.
Wenn das Icon-Theme kein passendes Icon für die angeforderte App-ID des Fensters besitzt, wird das Standardicon von labwc benutzt. Auch kann es Anwendungen geben, die gar kein Icon definieren, auch da wird dann das Standardicon verwendet.
Anwendungen, die einen generischen Iconnamen wie zum Beispiel system-file-manager anstatt der App-ID benutzen, werden teilweise von Iconthemes nicht unterstützt, diese Zeigen dann statt des passenden Programmicons ebenfalls das labwc-Standardicon an.
In allen Fällen kann man das gewünschte Icon sehr einfach konfigurieren. Hierbei kann man sich an den Icon-Pfaden im Beispiel der Menü-Icons orientieren. Man benötigt dann lediglich das gewünschte Icon im gewünschten Format, sowie die App-ID, nach der das Icon dann benannt werden muss.
Die nötige ID kann man zum Beispiel im Anwendungswechsler anzeigen lassen, oder aber mit Zusatztools wie wlpropAUR auslesen.
/home/user/.local/share/icons/
└ hicolor
├ scalable
│ └ apps
│ └── system-file-manager.svg
└ 48x48
└ apps
└── imv.png
Das Beispiel definiert zwei Icons, zum einen das generische Icon system-file-manager als SVG, und zum anderen ein PNG-Icon für imv, das die App-ID imv benutzt.
Will man das Standard-Fenstericon verändern, so kann man in der Konfiguration einen anderen Icon-Kurznamen für das Fallback-Icon setzen. Das Icon muss dann in der beschriebenen Dateistruktur vorliegen ode rim Icontheme vorhanden sein.
<theme fallbackAppIcon="mein-tolles-icon"> ... </theme>
Will man die Fenstericons gar nicht verwenden, so muss man der Theme-Konfiguration aus dem Fenstertitellayout entfernen.
<theme> <titlebar layout="menu:minimize,maximize,close" /> ... </theme>
Im Beispiel bleibt linksseitig nur noch das Fenstermenü, und rechts die gängigen drei Fensterbuttons.
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