Zum Inhalt springen

Wofi

Aus wiki.archlinux.de
Wofi im „drun“-Modus zeigt grafische Anwendungen an.

Wofi ist ein von rofi inspirierter Anwendungsstarter („Ausführen-Dialog“), der explizit für die Verwendung innerhalb von wlroots-basierenden Compositoren entwicklet wurde.

Installation

Das Programm ist als wofi in extra verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S wofi

Wofi kann dann mittels wofi und diversen Parametern für vielfältige Aufgaben gestartet werden. Es muss mindestens der Modus angegeben werden (siehe hier).

Konfiguration

Standardmäßig liest Wofi die Konfiguration aus ~/.config/wofi/config und die Stylinginformationen aus ~/.config/wofi/style.css. Mittels der Parameter --conf DATEI und --style DATEI, sowie --color DATEI können wür die jeweiligen Abschnitte andere Dateien übergeben werden.

Modus

Damit Wofi etwas tut, muss ein verfügbarer Anzeigemodus angegeben werden. Aktuell gibt es drei verschiedene Varianten, wie Wofi genutzt werden kann.

  • wofi --show run → Liste alle im $PATH befindlichen ausführbaren Dateien auf
  • wofi --show drun → Liste alle (grafischen) Programme auf (Programme mit einer .desktop-Datei)
  • wofi --show dmenu → Lese Menüinformationen von STDIN und zeige diese an
  • wofi --dmenu → Alternativer Aufruf des dmenu-Modus

Basiskonfiguration

Standardmäßig wird Wofi nur sehr minimalistisch konfiguriert. Der Wayland-client (das Fenster) wird zudem in einem Modus dargestellt, in dem es nicht verschoben, verändert, oder normal geschlossen werden kann, zudem wird keine Fensterdekoration angezeigt, und auch Icons sind nicht sichtbar. Zudem wird es immer in einer festen Größe angezeigt, und standardmäßig kein Modus gesetzt.

Folgende Konfiguration kann verwendet werden, um das Wofi-Fenster etwas angenehmer zu gestalten Alle Screenshots in diesem Artikel wurden mit dieser Basiskonfiguration erstellt.

~/.config/wofi/config
mode = run             # Automatisch im Modus „drun“ starten
normal_window = true   # Wofi als normales Fenster darstellen
insensitive = true     # Groß- und Kleinschreibung bei der Suche ignorieren
single_click = true    # Programme mit einfachem Klick starten
hide_scroll = true     # (Eventuell hässliche) Scrollbar verstecken
lines = 20             # 20 Zeilen (Programme) auf einmal anzeigen
width = 25%            # Fensterbreite auf 25% setzen
allow_images = true    # Icons für Menüeinträge anzeigen

Einige Programme bieten Aktionen an, die bei einfachem Klick auf den Pfeil vorm Programmnamen bzw. -icon angezeigt werden. Bei Verwendung von single_click = true funktioniert dies nicht, da die Anwendung direkt gestartet wird. Will man diese Funktion von Wofi verwenden, muss man die Konfiguration von single_click weg lassen. Will man die Actions nicht verwenden, kann man diese mit no_actions = true verbergen.

Wem die Icons zu nah an den Programmnamen sind, der kann diese mittels konfiguration in der Styling-Datei etwas voneinander trennen.

~/.config/wofi/style.css
#inner-box image {
  margin-right: 1em;
}

Wofi bietet für alle Angezeigten Dinge im Programmfenster entsprechende CSS-IDs und Klassen an, über diese das Aussehen sehr weitgehend konfiguriert werden kann.

dmenu-Beispiel

Wofi kann, ähnlich zu dmenu einen Speziell formatierten String per Pipe an der Standardeingabe einlesen, und daraus ein entsprechendes Menü erstellen.

Die von Wofi Syntax ist dabei recht simpel:

"img:iconname.png:text:Sichtbarer Text des Eintrags"
Wofi zeigt durch das Beispielscript im dmenu-Modus die installierten Flatpaks an

Folgendes Bash-Script verdeutlicht die Verwendung.

~/home/scripts/show_flatpaks
#!/bin/bash

RUN=$(for f in $(ls -d /var/lib/flatpak/app/*); do
    app="${f##*/}"
    title=$(flatpak info $app | head -n 2 | tail -n 1)
    echo "text:${title} (${app})"
done \
    | wofi --show dmenu --prompt 'Flatpak auswählen'\
    | sed s@'.*(\(.*\))$'@"\1"@g
)

[[ -n "${RUN}" ]] && flatpak run ${RUN}

Innerhalb der RUN-Variablen wird in einer Subshell über alle installierten Flatpak-Pakete iteriert, die Ausgabe im von Wofi erwarteten Format generiert, und das ganze dann an Wofi weitergegeben. Wofi wiederum zeigt die Ausgabe formatiert als Menü-Liste an. Bei Auswahl eines Eintrags in Wofi wird dieser als ganzes über die Standardausgabe ausgegeben. Mittels sed wird der Name des Flatpak-Pakets rausgeschnitten und dadurch der Variablen RUN zugewiesen.

im zweiten Schritt wird nun geprüft, ob RUN einen wert beinhaltet, und falls ja, wird stumpf versucht, das Flatpak mit dem in RUN hinterlegten Namen zu starten.

Verwendung

Am sinnvollsten ist es, Wofi per Tastenkombination oder Panelbutton zu starten. Hierbei kann man auch gleich die nötigen Parameter oder eine Konfigurationsdatei angeben, je nachdem, wie Wofi genutzt werden soll.

In Labwc kann man zum Beispiel folgende Konfiguration nutzen.

<keyboard>
  <keybind key="A-F1"><action name="Execute" command="wofi --show drun" /></keybind>
  <keybind key="A-F2"><action name="Execute" command="wofi --show run --lines 5" /></keybind>
</keyboard>

Dadurch bekommt man mittels Alt+F1 das Beispielhaft konfigurierte Wofi-Fenster im drun-Modus mit den grafischen Programmen aufgelistet, wohingegen man mit Alt+F2 einen Minimalistischen Ausführen-Dialog erhält, der lediglich die letzten 5 gestarteten Programme als einfache Namen anzeigt.

Zudem kann man im falle von Labwc unter ~/.local/share/icons/hicolor/scalable/apps/wofi.svg eine Icondatei ablegen, die dann statt des generischen Icons als Fenstericon angezeigt wird.

Siehe auch

  • wofimoji – Wofi als Emoji-Auswahldialog