Waybar
„Waybar“ wurde von Dirk (Diskussion) als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere Dirk (Diskussion) bitte, bevor du den Artikel bearbeitest.
Waybar ist ein hochgradig konfigurierbares und erweiterbares Panel für Wayland-Kompositoren. Die Konfiguration erfolgt in JSONC, das Styling ist mittels CSS realisiert. Für die Konfiguration stehen standardmäßig viele Module mit verschiedenen Anzeigen zur Verfügung, und es können sehr einfach eigene Module eingerichtet werden.
Installation
Waybar ist als
waybar
in extra
verfügbar, und kann von dort
mittels Pacman
installiert werden.
pacman -S waybar
# Für die Icons der standardmäßig vorkonfigurierten Module benötigt.
pacman -S otf-font-awesome
Einige der Standardmodule benötigen weitere installierte Programme um zu funktionieren. Dies ist durch Fehlermeldungen der entsprechenden Module ersichtlich. Waybar hängt von den Programmen nicht ab.
Konfiguration
In der Standardkonfiguration wird Waybar an die obere Bildschirmseite gebunden, die vorkonfigurierten Module werden dabei rechtsbündig angezeigt.
Von links sind dies der idle-inhibitor
(verhindern von Bildschirmschoner, Standby, etc. bei Inaktivität), Lautstärkeinformationen, Netzwerkkonnektivität, Prozessorauslastung, Arbeitsspeicherauslastung, Temperatur der thermal-zone
2 (dies ist konfigurierbar und Systemabhängig), die Uhrzeit, sowie ein Energie-Menü als individuelles Modul umgesetzt.
Für alle Standardmodule existieren Manpages, die ausführlich auf die Konfiguration eingehen.
Beispiele
Da Waybar sehr umfangreich und individuell anpassbar ist, sei hier nur exemplarisch auf einige Dinge eingegangen.
Individuelles Menü
Um ein Modul um ein individuelles Menü zu erweitern, müssen dem Modul ein Menü-Trigger, eine Menü-Datei und entsprechende Menü-Aktionen hinzugefügt werden.
"custom/menu": { "format": "", "menu": "on-click-right", "menu-file": "system-menu.xml", "menu-actions": { "htop": "alacrity -e htop", "free": "watch free -m" } }
Damit wird ein Icon angezeigt, über das ein Menü aus system-menu.xml
geöffnet wird. Es werden zudem zwei Aktionen definiert. Die Menüdatei definiert als XML formatiert ein Menü.
system-menu.xml
<?xml version="1.0" encoding="UTF-8"?> <interface> <object class="GtkMenu" id="menu"> <child> <object class="GtkMenuItem" id="htop"> <property name="label">Systemauslastung mit htop anzeigen</property> </object> </child> <child> <object class="GtkMenuItem" id="free"> <property name="label">Arbeitsspeicherverwendung anzeigen</property> </object> </child> </object> </interface>
Das Attribut id=""
in den jeweiligen GtkMenuItem
-Objekten entspricht den IDs der definierten Menü-Aktionen. Fehlende Menü-Aktionen führen nicht zu einer Fehlermeldung – es wird dann einfach nichts ausgeführt.
Programmaufruf und Tooltip
Der Newsreader newsboat erlaubt es, an der Befehlszeile die Feeds zu aktualisieren, und die Anzahl der ungelesenen Artikel anzuzeigen. Dies kann man in einem individuellen Modul verwenden.
"custom/newsboat": { "format": "", "exec": "newsboat --execute reload print-unread", "interval": 600, "tooltip-format": "{}", "exec-on-event": false, "on-click": "alacritty --class newsboat -e newsboat" }
Newsboat wird alle 10 Minuten derart ausgeführt, dass die Feeds aktualisiert werden und die Anzahl der neuen Artikel ausgegeben wird. Diese Ausgabe wird im Tooltipo an der Stelle von {}
eingefügt. Beim Anklicken des Icons öffnet sich alacritty mit newsboat und angepasster Fensterklasse. exec-on-event
ist hier nötig, da sonst beim Anklicken exec
erneut ausgeführt werden würde, was darin resultiert, dass Newsboat in dem Moment wo es geöffnet wird bereits durch das Update läuft, und daher das öffnen mit einer Fehlermeldung abgebrochen werden würde.
Styling
Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!