Waybar und Wofi als Hilfsprogramme für Wlroots-basierte Wayland Compositors

Aus LinuxUser 07/2024

Waybar und Wofi als Hilfsprogramme für Wlroots-basierte Wayland Compositors

© Maxim Maksutov / 123RF.com

Effizientes Duo

Erst Werkzeuge wie die Statusleiste Waybar und der Anwendungsstarter Wofi sorgen dafür, dass Sie einen Wayland-Desktop komfortabel nutzen können.

Schneller Zugriff, einfache Bedienung und flexible Konfiguration gehören zu den grundlegenden Faktoren für produktives Arbeiten. Angesichts dessen gewinnen minimalistische Werkzeuge wie Waybar und Wofi [1] zunehmend an Bedeutung. Die beiden Tools wurden speziell für Wlroots-basierte Compositors wie Hyprland, Sway oder River entwickelt. Letztere kümmern sich um die Darstellung von Fenstern, verwalten Eingaben und regeln die Zusammenarbeit mit grafischen Anwendungen unter dem Display-Server-Protokoll Wayland. Sie bilden somit einen wesentlichen Teil der grafischen Bedienoberfläche eines Betriebssystems.

Als schlanke Statusleiste nach dem Vorbild von Polybar stellt Waybar wichtige Informationen übersichtlich bereit, darunter die Uhrzeit, den Netzwerkstatus, die Lautstärke und Benachrichtigungen. Die Leiste lässt sich hochgradig anpassen und ermöglicht es Ihnen, die Arbeitsumgebung nach Ihren spezifischen Bedürfnissen zu gestalten.

Hinter Wofi hingegen verbirgt sich ein einfacher, von Rofi inspirierter Anwendungsstarter. Das Programm ist eine benutzerfreundliche und schnelle Methode zur Anwendungssuche, indem es auf Knopfdruck eine Liste der verfügbaren Programme anzeigt und bei Bedarf eines davon startet. Das beschleunigt die Navigation durch das System und steigert die Produktivität.

Beide Werkzeuge besitzen gegenüber ihren Vorgängern unter anderem den Vorteil, dass Sie ihr Erscheinungsbild in der leicht verständlichen Stylesheet-Sprache CSS konfigurieren können. Auf den folgenden Seiten werfen wir einen genaueren Blick auf die beiden Hilfsprogramme, ihre Funktionen und Anpassungsmöglichkeiten und erklären, wie sie die Benutzererfahrung auf dem Linux-Desktop verbessern.

Erste Schritte

Beide Programme installieren Sie bequem aus dem Software-Repository der von Ihnen verwendeten Distribution, beispielsweise mit dem Kommando sudo apt install wofi beziehungsweise pacman -S waybar. Die Tools sind verhältnismäßig ausgereift, sodass es in der Regel unproblematisch ist, wenn die Paketquellen nicht die allerneueste Version bereitstellen.

Waybar starten Sie mithilfe des Shell-Befehls waybar. Mehr Sinn ergibt es freilich, die Leiste automatisch mit dem Compositor zu starten. Bei Hyprland tragen Sie dazu die Zeile exec-once=waybar in die Konfigurationsdatei hyprland.conf ein. Für Sway lautet der entsprechende Befehl exec waybar. Wenn Sie Sway nutzen, deaktivieren Sie die eingebaute Statusleiste, bevor Sie Waybar starten. Kommentieren Sie dafür in der Sway-Konfiguration die Zeilen wie in Listing 1 jeweils mit einer Raute aus.

Listing 1

Sway-Konfigurationsfragment Swaybar

# bar {
# position top
# The default just shows the current date and time.
# When the status_command prints a new line to stdout, swaybar updates.
# status_command while date +'%Y-%m-%d %I:%M:%S %p'; do sleep 1; done
# colors {
#   statusline #ffffff
#   background #323232
#   inactive_workspace #32323200 #32323200 #5c5c5c
#   }
# }

Danach sehen Sie eine schmale Leiste am oberen Bildschirmrand. Abhängig von der Systemkonfiguration und dem verwendeten Compositor sind bereits verschiedene Module aktiv. In jedem Fall sollte ganz rechts ein grau hinterlegtes Feld mit der Uhrzeit erscheinen. Sobald Sie den Mauszeiger über das Feld bewegen, taucht direkt darunter ein Monatskalender auf. Klicken Sie auf das Modul, um das aktuelle Datum anzuzeigen. Durch einen weiteren Mausklick springt das Modul wieder zurück zur Uhrzeit.

Links daneben befinden sich mehrere Anzeigefelder mit unterschiedlich eingefärbtem Hintergrund. Das violett hinterlegte Feld informiert beispielsweise über die Auslastung des Arbeitsspeichers, das grüne über die des Hauptprozessors. Wenn Sie als Inhalt dieser Module nur Prozentwerte beziehungsweise Zahlen und direkt rechts daneben ein seltsames Symbol sehen, fehlt auf Ihrem System die Symbolschriftart Awesome. Sie dient dazu, neben den Zahlenwerten kleine Symbole für Prozessor, Arbeitsspeicher, Mikrofon, Lautsprecher, Netzwerk und so weiter darzustellen. Installieren Sie also die Schriftart nach. Bei Debian und Ubuntu heißt das Paket fonts-font-awesome, bei Arch Linux und Derivaten otf-font-awesome oder ttf-font-awesome.

Der größte Teil der Leiste ist semitransparent in Grau gehalten, der Desktop-Hintergrund scheint teilweise durch. Unter Hyprland sehen Sie in der Mitte der Leiste und an deren linken Ende zunächst keine Module. Unter Sway prangt in der Mitte der Name des gerade aktiven Fensters; ganz links sehen Sie die Nummern der virtuellen Arbeitsflächen, auf denen sich Anwendungen befinden. Bei den Arbeitsflächennummern handelt es sich eigentlich um Schaltflächen. Bewegen Sie den Mauszeiger über eine davon, verdunkelt sie sich. Ein folgender Mausklick wechselt auf die entsprechende virtuelle Arbeitsfläche.

Zum Starten von Wofi genügt der Befehl wofi nicht. Sie müssen zusätzlich die Befehlsoption -S oder --show gefolgt von einem sogenannten Modus angeben. Der Modus bezieht sich darauf, welche Orte das Programm nach ausführbaren Anwendungen durchsucht. Im Test lieferten die Modi run und drun dasselbe Ergebnis, während dmenu nicht funktionierte. Starten Sie daher Wofi mit wofi -S run oder wofi --show drun. In der Mitte des Bildschirms öffnet sich daraufhin ein Fenster mit weißem Hintergrund. In der obersten Zeile gibt es ein Eingabefeld, darunter sehen Sie eine Liste mit verschiedenen Programmnamen wie firefox, dolphin oder thunar.

Tippen Sie nun zum Beispiel die Buchstaben fi ein, zeigt die Liste darunter die Namen von Programmen an, in denen die Zeichenfolge fi vorkommt. Dabei handelt es sich bei den obersten Einträgen um Anwendungen, deren Name mit fi beginnt, darunter firefox. Wählen Sie mit den Pfeiltasten einen Eintrag aus und starten Sie das Programm, indem Sie die Eingabetaste drücken.

Sinnvoller ist es, Wofi mit einem Tastaturkürzel aufzurufen. Die Standardkonfiguration von Hyprland definiert dazu die Kombination [Super]+[R]. Dementsprechend müssen Sie nur die beiden Tasten drücken, damit das Wofi-Menü erscheint. Bei Bedarf können Sie den Shortcut anpassen. Suchen Sie dafür in der Konfiguration die Zeilen bind = $mainMod, R, exec, $menu beziehungsweise $menu = wofi --show drun.

Bei Sway dagegen müssen Sie selbst ein Kürzel für Wofi festlegen. Ersetzen Sie dazu die Zeile bindsym $mod+d exec $menu beispielsweise durch bindsym $mod+d exec wofi --show run. Anschließend starten Sie Wofi mit [Super]+[D].

Waybar konfigurieren

Form und Inhalt der Waybar-Leiste steuern Sie über die zwei Konfigurationsdateien config und style.css, die meist im Verzeichnis /etc/xdg/waybar/ liegen. Erstellen Sie in Ihrem Home unter ~/.config/ einen Ordner namens waybar/ und kopieren Sie die beiden Textdateien dorthin. Dabei enthält config Informationen, die sich im Wesentlichen auf den Inhalt der Leiste beziehen, insbesondere die Namen der Module, die sie anzeigt.

Über diese Datei legen Sie zudem einige formale Eigenschaften fest, etwa die Position der Leiste (oben, unten, links, rechts), ihre Breite und ihre Höhe (Abbildung 1). In style.css beschreiben Sie das Aussehen von Waybar, zum Beispiel die Hintergrundfarbe der Leiste selbst sowie die der einzelnen Module, die Schriftgröße, die Transparenz der Leiste, die Form der Module, die Schriftfarbe und so weiter. Dank CSS gibt es praktisch unendlich viele Gestaltungsmöglichkeiten (Abbildung 2). Zudem fällt die Konfiguration mehr oder weniger selbsterklärend aus.

Abbildung 1: Die extrem spartanischen Standardkonfigurationen von Waybar und Wofi sind nicht wirklich zu gebrauchen.

Abbildung 1: Die extrem spartanischen Standardkonfigurationen von Waybar und Wofi sind nicht wirklich zu gebrauchen.


Abbildung 2: Da Sie das Aussehen von Waybar mithilfe eines CSS-Stylesheets festlegen, sind den Gestaltungsmöglichkeiten fast keine Grenzen gesetzt.

Abbildung 2: Da Sie das Aussehen von Waybar mithilfe eines CSS-Stylesheets festlegen, sind den Gestaltungsmöglichkeiten fast keine Grenzen gesetzt.

Wenn Sie Hyprland nutzen, bearbeiten Sie zuerst die Datei config, um die Nummern der Arbeitsflächen und den Namen des aktiven Fensters anzeigen zu lassen. Suchen Sie dazu in den Zeilen 8 und 9 der Datei, die mit "modules-left" und "modules-center" beginnen, die Module "sway/workspaces" und "sway/window", und ersetzen Sie dort sway durch hyprland. Sobald Sie nun ein Terminalfenster öffnen, die Leiste mit killall waybar schließen und anschließend neu starten, sehen Sie links die Nummern der verwendeten Arbeitsflächen und in der Mitte den Namen des aktiven Fensters.

Bei der Standardkonfiguration stößt auf, dass die Leiste asymmetrisch wirkt, da sich zahlreiche Module am rechten Ende befinden, aber nur wenige links. Außerdem kommt es vor, dass das Tool mehrere Module wie die CPU-Temperatur, den Ladestand des Akkus oder die Bildschirmhelligkeit beim Start deaktiviert, weil es nicht auf die erforderlichen Daten oder Sensoren zugreifen kann. Nicht aktive Module löschen Sie am besten aus der Konfigurationsdatei config. Die meisten dieser Module finden Sie in Zeile 10, die mit "modules-right" beginnt.

Um der Leiste etwas mehr Symmetrie zu verleihen, verschieben Sie kurzerhand manche Module ans linke Ende. Damit der Namen des aktiven Fensters links auftaucht, löschen Sie "sway/window" beziehungsweise "hyprland/window" und fügen es in der Zeile 8 gleich nach "sway/hyprland/workspaces" ein. Eine andere Möglichkeit bestünde in einer minimalistischen Leiste, die links lediglich die Arbeitsflächen, in der Mitte den Namen des aktiven Fensters und rechts das Datum oder die Uhrzeit anordnet.

Auf vielen Bildschirmen erweist sich die Standardschriftgröße von Waybar als zu klein. Das korrigieren Sie in der Konfigurationsdatei style.css. Öffnen Sie sie in einem Texteditor und navigieren Sie zur vierten Zeile mit dem Text font-size: 13px; und ersetzen Sie dort 13 durch 16. Speichern Sie die Änderung, beenden Sie Waybar und starten Sie es wieder, um zu überprüfen, ob das Programm die Änderung korrekt umgesetzt hat.

Allerdings ist jetzt ein anderes ästhetisches Problem entstanden: Der Abstand des Texts zum oberen Bildschirmrand fällt kleiner aus als der zur unteren Kante der Leiste. Beheben Sie den Schönheitsfehler, indem Sie in die CSS-Konfiguration jedes aktiven Moduls die Zeile padding-top: 4px; einfügen. Suchen Sie zum Beispiel den folgenden Text, der das Aussehen des Moduls clock definiert:

#clock {
  background-color: #64727D; }

Ergänzen Sie hier unterhalb von background-color: #64727D; die Padding-Anweisung. Dadurch ergibt sich ein Abstand von 4 Pixeln zwischen dem Text der Uhr- respektive Datumsanzeige und dem oberen Bildschirmrand. Erweitern Sie ebenso die Konfigurationsdaten aller anderen aktiven Module.

Verwenden Sie einen dunklen Desktop-Hintergrund, empfinden Sie die dicke Linie am unteren Rand der Leiste vermutlich als unästhetisch. Zeile 9 von style.css definiert sie als 3 Pixel breit. Ändern Sie den Wert auf 1 Pixel. Ersetzen Sie dafür in der Gruppe window#waybar in der nachstehenden Zeile 3px durch 1px:

border-bottom: 3px solid rgba(100, 114, 125, 0.5);

Unangenehm sticht in Kombination mit Hyprland zudem ins Auge, dass die Software die virtuellen Arbeitsflächen nicht durch eine Hintergrundfarbe hervorhebt. Darüber hinaus ist die Textfarbe bei der aktiven Arbeitsfläche identisch mit der Textfarbe der anderen verwendeten Arbeitsflächen. Dadurch erkennen Sie nicht sofort, auf welcher Arbeitsfläche Sie sich befinden. Verleihen Sie daher dem Arbeitsflächen-Widget die graue Farbe des Moduls clock und ändern Sie die Textfarbe der aktiven Arbeitsfläche zum Beispiel auf Rot.

Finden Sie dafür zuerst die Konfiguration des Moduls #clock heraus und kopieren Sie dort die Zeile background-color: #64727D;. Suchen Sie daraufhin den Abschnitt #workspaces button (ungefähr Zeile 51) und ersetzen Sie dort background-color: transparent; durch den soeben kopierten Text. Wenden Sie sich nun dem Abschnitt #workspaces button.focused zu und ersetzen Sie hier zuerst focused durch active. Fügen Sie schließlich unterhalb von box-shadow: inset 0 -3px #ffffff; den Text color: red; ein.

Auf ähnlich einfache Weise konfigurieren Sie alle möglichen Eigenschaften der Waybar. Beispielsweise können Sie die Ecken der einzelnen Module abrunden oder schwebend aussehen lassen. Darüber hinaus lässt sich mehr als eine Waybar-Leiste auf dem Desktop anzeigen (Abbildung 3). Am einfachsten funktioniert die Konfiguration der Leiste mithilfe der zahlreichen, bereits online existierenden Dotfiles. Gute Beispielkonfigurationen finden Sie unter anderem auf den Live-Systemen von Arco Linux Hyprland [1] und Garuda Linux Hyprland [2] sowie im Waybar-Wiki [3].

Abbildung 3: Indem Sie Waybar ein zweites Mal mit der Befehlsoption <code>-c /<em class="replaceable">Pfad</em>/<em class="replaceable">zur</em>/<em class="replaceable">Konfiguration</em></code> starten, lassen Sie sich zwei Leisten auf dem Desktop anzeigen.

Abbildung 3: Indem Sie Waybar ein zweites Mal mit der Befehlsoption -c /Pfad/zur/Konfiguration starten, lassen Sie sich zwei Leisten auf dem Desktop anzeigen.

Wofi konfigurieren

Auch die Konfiguration von Wofi steuern Sie gewissermaßen auf zwei Ebenen. Zahlreiche Eigenschaften des Dialogfensters legen Sie in Form von Befehlsoptionen fest, die Sie an den Hauptbefehl wofi --show run anhängen. Eine relevante Rolle spielt hier jedoch nur die Größe des Fensters, eventuell zusätzlich seine Position. Alles Übrige beschreiben Sie in einem CSS-Stylesheet, darunter beispielsweise Schriftgröße, Hintergrundfarbe und -transparenz, Abstand der Schrift oder der Menüeinträge vom Fensterrand, Breite und Farbe des Fensterrands und so weiter.

Um die Breite des Dialogs festzulegen, erweitern Sie den Befehl durch -W oder --width, gefolgt von einer Zahl und möglicherweise einem Prozentzeichen. Wenn nach --width lediglich eine Zahl folgt, etwa 300, erscheint das Dialogfenster 300 Pixel breit. Fügen Sie ein Prozentzeichen hinzu, muss die Zahl davor logischerweise kleiner sein als 100. So bewirkt der Befehl wofi --show run --width 25%, dass die Breite des Wofi-Fensters ein Viertel der Bildschirmbreite beträgt. Die passende Befehlsoption für die Höhe des Fensters lautet --height. Der Standardwert für die Breite liegt bei 50 Prozent, was sich meist als zu groß erweist. Besser reduzieren Sie die Breite auf 25 bis 33 Prozent.

Außerdem fällt die Standardschriftgröße für viele Bildschirme zu klein aus. Sie hängt jedoch auch von den Eigenschaften des verwendeten GTK-Themes ab (Abbildung 4). Sie ändern sie mithilfe des CSS-Stylesheets. Erstellen Sie dazu eine Datei namens style.css, fügen Sie den folgenden Text ein und speichern Sie sie im Verzeichnis ~/.config/wofi:

window {
  font-size: 16; }
Abbildung 4: Mithilfe der Befehlsoptionen <code>--gtk-dark</code> und <code>--columns</code> w&auml;hlen Sie f&uuml;r das Programm die dunkle Version des gerade aktiven GTK-Themes aus und machen das Fenster mehrspaltig.

Abbildung 4: Mithilfe der Befehlsoptionen --gtk-dark und --columns wählen Sie für das Programm die dunkle Version des gerade aktiven GTK-Themes aus und machen das Fenster mehrspaltig.

Um die Ecken der Programmliste abzurunden, ergänzen Sie vor oder nach font-size: 16; den Text border-radius: 8px;. Je größer der Wert von border-radius, desto runder werden die Ecken. Die Zeile border: 1px solid black; legt fest, dass das Fenster von einer 1 Pixel breiten schwarzen Linie umrandet wird. Wenn Sie ein transparentes Fenster möchten, geben Sie die Hintergrundfarbe in Form von RGBA-Werten an. Der folgende Codeschnipsel definiert als Hintergrundfarbe ein leicht durchsichtiges helles Grau:

background-color: rgba (230, 230, 230, 0.7);

Die RGB-Werte der Hintergrundfarbe lauten 230, 230, 230, der Transparenzwert 0.7. Je niedriger dieser Wert, desto höher die Transparenz.

Angaben für die Gruppe window beziehen sich ausschließlich auf die Liste mit den aufrufbaren Programmen. Das Eingabefeld selbst besitzt nach wie vor weder abgerundete Ecken noch eine Umrandung. Um dies zu ändern, fügen Sie den folgenden Code in das Stylesheet ein:

#input {
  border: 1px solid black;
  border-radius: 8px; }

Die Gruppe #input enthält die Gestaltungsvorgaben für das Eingabefeld. Rücken Sie zum Schluss die Liste ein wenig nach rechts ein, um zwischen dem Text und dem Fensterrand etwas Abstand zu gewinnen. Dafür benötigen Sie eine weitere Gruppe namens #inner-box. Kopieren Sie den nachstehenden Text in die CSS-Datei und speichern Sie sie.

#inner-box { padding: 10px 40px 10px 40px; }

Nun beträgt der Abstand der Liste zum oberen und unteren Rand 10 Pixel und zum linken und rechten Rand 40 Pixel. Welche der zahlreichen Elemente des Wofi-Dialogfensters (Abbildung 5) Sie mit CSS-Code anpassen können, zeigt außerdem das Beispiel-Stylesheet Example CSS auf der offiziellen Wofi-Webseite [4].

Abbildung 5: Eine hervorragende Quelle f&uuml;r Beispielkonfigurationen liegt im Live-ISO-Image von Arco Linux B&nbsp;Hyprland.

Abbildung 5: Eine hervorragende Quelle für Beispielkonfigurationen liegt im Live-ISO-Image von Arco Linux B Hyprland.

Fazit

Waybar und Wofi erweisen sich als unverzichtbare Hilfsprogramme für Wlroots-basierte Compositors. Sie zeigen sich nicht nur hochfunktional, sondern auch äußerst anpassungsfähig. Waybar bietet eine übersichtliche Anzeige von Systeminformationen und Schnellzugriff auf wichtige Funktionen, während Wofi eine effiziente Suchfunktion für Anwendungen bereitstellt. Mittels CSS-Stylesheets passen Sie das Erscheinungsbild beider Programme einfach und zugleich flexibel an Ihre Präferenzen an. Das verleiht Waybar und Wofi eine bemerkenswerte Vielseitigkeit und macht sie zu essenziellen Werkzeugen für das Gestalten eines individuellen und effizienten Desktops. (csi)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 07/2024 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben