Bspwm konfigurieren und nutzen

Aus LinuxUser 04/2023

Bspwm konfigurieren und nutzen

© Nikola Cvetkovic / 123RF.com

Frisch gefliest

Lange Jahre führten Tiling Window Manager wie Bspwm eher ein Nischendasein. Nun erleben sie eine Renaissance.

Tiling Window Manager ordnen Programmfenster nicht wie konventionelle Fenstermanager schwebend und überlappend an, sondern verteilen sie fliesenartig über den gesamten Desktop. Dabei nutzen sie stets den gesamten verfügbaren Platz aus, ein geöffnetes Fenster füllt den ganzen Bildschirm. Kommt ein zweites dazu, teilt sich der Desktop zumeist vertikal, um dafür Platz zu schaffen.

Man bedient diese Art von Fenstermanagern nicht mit der Maus, sondern primär mit der Tastatur. Zu Beginn ist das etwas gewöhnungsbedürftig und nicht unbedingt intuitiv, da Sie sich zumindest ein paar grundlegende Tastaturkombinationen merken müssen. Doch nach einer kurzen Eingewöhnungsphase arbeiten Sie mit solchen Programmen effizienter und zügiger als mit traditionellen Desktop-Umgebungen. Wenn Sie danach wieder zu XFCE oder KDE zurückkehren, empfinden Sie das ständige Herumschieben und Anpassen der Fenster wahrscheinlich als lästig.

Obwohl es Tiling Window Manager schon lange gibt, scheint das Interesse an ihnen erst in jüngerer Zeit wieder zu wachsen. Für Linux gibt es seit gut einem Jahrzehnt eine ganze Schar dieser Programme. Dabei unterscheidet man grundsätzlich zwei Typen: Bei einem manuellen Fenstermanager entscheiden Sie selbst, in welchem Teil des Bildschirms er das neue Fenster öffnet, oder Sie schieben es nachträglich an die gewünschte Stelle. Beim automatischen Typ ordnet die Software die Fenster dagegen nach vordefinierten Layouts an.

Auf den folgenden Seiten erklären wir die Bedienung und die Konfiguration von Bspwm [1], neben i3 einer der populärsten manuellen Window Manager.

Binäres Schema

Bspwm steht für Binary Space Partitioning Window Manager, was übersetzt etwa Fenstermanager für binäre Raumaufteilung heißt. Das bedeutet, dass die Software in der Standardkonfiguration das gerade aktive Fenster beim Start eines weiteren Programms in zwei Hälften teilt (Abbildung 1). Ein querformatiges Fenster zerlegt sie vertikal, ein hochformatiges horizontal. Öffnen Sie nacheinander mehrere Terminalfenster, ergibt das ein seltsames Muster, bei dem die Fenster in der rechten unteren Ecke des Desktops immer kleiner werden (Abbildung 2).

Abbildung 1: Tiling Window Manager wie Bspwm helfen zum Beispiel beim Bearbeiten von Konfigurationen, da man die Dokumentation automatisch neben der Konfigurationsdatei öffnen kann.

Abbildung 1: Tiling Window Manager wie Bspwm helfen zum Beispiel beim Bearbeiten von Konfigurationen, da man die Dokumentation automatisch neben der Konfigurationsdatei öffnen kann.


Abbildung 2: Mehrere nacheinander geöffnete Programme ordnet Bspwm nach einem immer gleichen Schema an.

Abbildung 2: Mehrere nacheinander geöffnete Programme ordnet Bspwm nach einem immer gleichen Schema an.

Die zweite Besonderheit von Bspwm besteht darin, dass es für die Tastaturkürzel ein eigenes Programm namens Sxhkd (Simple X11 Hotkey Daemon) nutzt. Es startet über einen Eintrag in der Konfigurationsdatei von Bspwm automatisch mit. Ohne Sxhkd lassen sich auf dem Desktop keine Programme öffnen.

Bspwm einrichten

Um die grundlegendsten Funktionen der Software zu nutzen, benötigen Sie die Programmpakete bspwm und sxhkd. Beide bringen Beispielkonfigurationen mit, die Sie in bestimmte Ordner in Ihrem Benutzerverzeichnis kopieren müssen. Anderenfalls findet die Software die Standardkonfiguration nicht, und der Fenstermanager verweigert den Start.

Erstellen Sie zunächst in ~/.config/ die Verzeichnisse bspwm/ und sxhkd/. Dann kopieren Sie die zwei Dateien bspwmrc und sxhkdrc aus /usr/share/doc/bspwm/examples/ in die neuen Ordner.

Dabei dient sxhkdrc als Konfigurationsdatei für Sxhkd und enthält bereits einige sinnvolle Tastaturkürzel. Öffnen Sie die Datei mit einem Texteditor. Sofern der Terminalemulator Urxvt auf Ihrem System nicht vorliegt, empfiehlt es sich, das Standardterminal von Bspwm zu ändern.

Das Tastaturkürzel für den Terminalemulator ist die erste Tastaturkombination in der Konfiguration. Der Eintrag beginnt mit dem Kommentar # terminal emulator, darunter steht das eigentliche Tastaturkürzel super + return, also [Super]+[Eingabe]. In der nächsten Zeile folgt der Befehl, den Sxhkd beim Drücken der Tasten ausführt, also urxvt. Alle Tastaturkombinationen funktionieren nach diesem Schema.

Um das Standardterminal auszuwechseln, ersetzen Sie urxvt durch den Namen des jeweiligen Terminalemulators, etwa lxterminal, und speichern die Änderung. Lesen Sie anschließend den Inhalt der Konfigurationsdatei durch und versuchen Sie, sich einige der Kombinationen zu merken. Die wichtigsten davon finden Sie in der Tabelle “Tastaturkürzel für Bspwm (Auswahl)”.

Aktion

Tastaturkürzel

Terminalfenster öffnen

[Super]+[Eingabe]

Fenster/Programm schließen

[Super]+[W]

Auf Desktop 1…10 springen

[Super]+[ 1]…[10]

Fenster auf Desktop 1…10 verschieben

[Super]+[Umschalt]+[ 1]…[10]

Zum linken Fenster springen

[Super]+[H]

Zum rechten Fenster springen

[Super]+[L]

Zum oberen Fenster springen

[Super]+[K]

Zum unteren Fenster springen

[Super]+[J]

Fenster nach links schieben

[Super]+[Umschalt]+[H]

Fenster nach rechts schieben

[Super]+[Umschalt]+[L]

Fenster nach oben schieben

[Super]+[Umschalt]+[K]

Fenster nach unten schieben

[Super]+[Umschalt]+[J]

Bspwm beenden

[Super]+[Alt]+[Q]

Dmenu anzeigen

[Super]+[Leer][Super]+[D] (siehe Text)

Monocle-Layout ein- und ausschalten

[Super]+[M]

Nun steht Bspwm im Prinzip zum Start bereit. Melden Sie sich aus der alten Desktop-Umgebung ab, wählen Sie im Display-Manager den Eintrag bspwm aus, und melden Sie sich wieder an.

Bspwm zeigt zunächst nur einen leeren schwarzen Desktop oder das Hintergrundbild des Display-Managers. Öffnen Sie mit [Super]+[Eingabe] ein Terminal und tippen Sie dort den Namen eines Programms ein, zum Beispiel firefox. Die Anwendung startet daraufhin in der rechten Bildschirmhälfte neben dem Terminalfenster. Verschieben Sie Firefox mit [Super]+[Umschalt]+[ 2] auf den zweiten virtuellen Desktop. Nun sehen Sie das Programm nicht mehr, weil Sie sich noch immer auf dem ersten virtuellen Desktop befinden. Mit [Super]+[ 2] gelangen Sie auf den zweiten Desktop, wo Firefox läuft.

Sofern Sie ausschließlich Terminalprogramme verwenden und sich merken können, welche davon sich auf welchem virtuellen Desktop befinden, lässt es sich mit dieser Konfiguration eigentlich schon ganz gut arbeiten. Die meisten Anwender wünschen sich aber noch ein paar Hilfsprogramme wie ein Programmmenü und eine Statusleiste. Dazu bieten sich Dmenu beziehungsweise Rofi oder Polybar an.

Dmenu, eine Art minimalistisches Programmmenü, finden Sie bei Debian- und Ubuntu-artigen Distributionen im Paket suckless-tools. Polybar ist eine reine Statusleiste. Rofi bietet eine interessante Alternative zu beiden, lässt sich aber auch in Kombination mit Polybar nutzen.

Dmenu

Für Dmenu enthält die Standardkonfiguration von Sxhkd bereits ein Tastaturkürzel, das allerdings auf manchen Systemen nicht funktioniert. Wenn Sie Probleme mit dem Shortcut haben, ersetzen Sie in sxhkdrc die Zeile super + @space zum Beispiel durch super + d. Drücken Sie nun [Super]+[D] oder [Super] und die Leertaste, dann erscheint am oberen Bildschirmrand eine dünne schwarze Leiste mit verschiedenen Befehlen beziehungsweise Programmnamen (Abbildung 3). Am linken Ende der Leiste sehen Sie ein dunkles Eingabefeld, in dem sich der Cursor befindet.

Abbildung 3: Das minimalistische Programmmenü Dmenu erscheint beim Drücken einer Tastaturkombination am oberen oder unteren Bildschirmrand in Form einer Leiste.

Abbildung 3: Das minimalistische Programmmenü Dmenu erscheint beim Drücken einer Tastaturkombination am oberen oder unteren Bildschirmrand in Form einer Leiste.

Um ein Programm zu starten, tippen Sie die ersten Buchstaben seines Namens ein, etwa fir für Firefox. Nun erscheinen rechts vom Eingabefeld mehr Befehle, die mit “fir” beginnen. Der Name des ersten Programms erscheint farblich hervorgehoben. Nach einem Druck auf die Eingabetaste startet das Programm, und die schwarze Leiste verschwindet. Mit [Pfeil-rechts]+ und [Pfeil-links]+ springen Sie zu den anderen Befehlen, mit [Esc] verlassen Sie die Leiste.

Möglicherweise finden Sie die Standardschrift der Dmenu-Leiste zu klein. Nutzen Sie Dmenu in Kombination mit Polybar, kann es auch vorkommen, dass die Dmenu-Leiste jene von Polybar nur halb verdeckt. Vergrößern Sie in diesem Fall die Schrift, indem Sie in sxhkdrc die Zeile dmenu_run suchen und daran -fn 'Droid Sans Mono-14' anhängen.

Rofi

Um Rofi sinnvoll zu nutzen, müssen Sie zwei neue Tastaturkürzel in die sxhkdrc eintragen. Listing 1 zeigt die entsprechenden Zeilen. Speichern Sie die Änderungen und laden Sie die Konfigurationsdateien von Bspwm mit [Super]+[Esc] neu.

Listing 1

Rofi-Shortcuts

# rofi shortcuts
# show rofi program menu
super + alt + m
rofi -show run
# show window list
super + alt + w
rofi -show window

Drücken Sie nun [Super]+[Alt]+[M], dann erscheint in der Mitte des Bildschirms ein neues Dialogfenster (Abbildung 4). Der Cursor befindet sich in der ersten Zeile im Eingabefeld nach run:. Tippen Sie wieder die ersten Buchstaben eines Programmnamens ein. Die Liste darunter zeigt wie zuvor nur die Befehle, die mit diesen Buchstaben beginnen. Ein dunkler Hintergrund markiert das erste Programm, das Sie mit einem Druck auf die Eingabetaste starten. Alternativ wählen Sie mit [Pfeil-unten]+ und [Pfeil-oben] einen anderen Befehl aus der Liste aus.

Abbildung 4: Rofi umfasst mehrere praktische Tools, inklusive eines einfachen Programmmenüs in Dialogform.

Abbildung 4: Rofi umfasst mehrere praktische Tools, inklusive eines einfachen Programmmenüs in Dialogform.

Drücken Sie [Super]+[Alt]+[W], erscheint in der Bildschirmmitte ebenfalls ein neuer Dialog. In dessen erster Zeile steht jedoch window:, rechts daneben befindet sich wieder ein Eingabefeld (Abbildung 5). Darunter sehen Sie eine Liste aller derzeit geöffneten Programme. Tippen Sie nun entweder die ersten Buchstaben des Namens des anzuzeigenden Fensters ein oder navigieren Sie mit [Pfeil-unten] zum passenden Eintrag in der Liste und drücken Sie anschließend die Eingabetaste.

Abbildung 5: Mithilfe der simplen Fensterliste von Rofi lässt sich Bspwm auch ohne Statusleiste nutzen.

Abbildung 5: Mithilfe der simplen Fensterliste von Rofi lässt sich Bspwm auch ohne Statusleiste nutzen.

Polybar

Mit Polybar erstellen Sie Statusleisten, die verschiedene Informationen anzeigen, darunter die Nummer des virtuellen Desktops, auf dem Sie sich gerade befinden, den Namen des fokussierten Fensters sowie Uhrzeit und Datum (Abbildung 6).

Abbildung 6: Die einfache Systemleiste Polybar zeigt verschiedene Informationen wie eine Liste der freien und belegten Desktops, den Namen des aktiven Fensters oder die Uhrzeit an.

Abbildung 6: Die einfache Systemleiste Polybar zeigt verschiedene Informationen wie eine Liste der freien und belegten Desktops, den Namen des aktiven Fensters oder die Uhrzeit an.

Auch dieses Programm bringt eine sinnvolle Beispielkonfiguration mit. Auf Debian-Systemen heißt die entsprechende Datei config und liegt im Verzeichnis /usr/share/doc/polybar/. Erstellen Sie in Ihrem Benutzerverzeichnis einen Ordner namens polybar/, kopieren Sie die Datei dorthin und benennen Sie sie in config.ini um. Erstellen Sie anschließend im selben Ordner eine Textdatei namens polybar.sh mit dem Inhalt von Listing 2 und machen Sie sie mit dem Kommando chmod +x polybar.sh ausführbar.

Listing 2

polybar.sh

#! /bin/sh
polybar example --config=/home/$USER/polybar/config.ini

Öffnen Sie dann die Konfigurationsdatei ~/.config/bspwm/bspwmrc und fügen Sie an deren Ende folgende Zeile ein:

/home/$USER/polybar/polybar.sh

Speichern und schließen Sie danach die Datei. Damit in der Mitte der Leiste der Name des gerade fokussierten Fensters oder Programms erscheint, nehmen Sie danach in der Konfigurationsdatei ~/polybar/config.ini eine kleine Änderung vor: Hängen Sie ans Ende des Eintrags modules-center = mpd die Ergänzung xwindow an und speichern Sie die Datei.

Bei einem Neustart von Bspwm erscheint jetzt am oberen Bildschirmrand eine schwarze Leiste. Ganz links sehen Sie die Zahlen 1 bis 10, die für die virtuellen Desktops stehen. Die grau hinterlegte und gelb unterstrichene weiße 1 signalisiert, dass Sie sich auf dem ersten Desktop befinden, die Zahlen 2 bis 10 erscheinen ausgegraut.

Öffnen Sie nun ein Programm, zum Beispiel ein Terminal. Wechseln Sie jetzt mit [Super]+[ 2] zum zweiten Desktop, springt die graue Markierung auf 2. Die 1 bleibt jedoch weiß, da sich auf diesem Desktop ein Fenster befindet. Wechseln Sie wieder in den ersten Desktop. Ungefähr in der Mitte der Leiste sehen Sie den Namen des gerade fokussierten Fensters. Am rechten Ende erscheinen verschiedene Systeminformationen, darunter die Lautstärke, die Uhrzeit, die RAM-Belegung und das gerade aktive Tastaturlayout. Ganz rechts finden sich eventuell einige Tray-Symbole.

Infos, die Sie nicht benötigen, blenden Sie aus. Dazu suchen Sie in der Konfigurationsdatei von Polybar die mit modules-right = beginnende Zeile und entfernen dort die überflüssigen Module. Oft betrifft das alsa oder pulseaudio. Laufen auf Ihrem System sowohl Alsa als auch Pulseaudio, zeigt Polybar sonst die Lautstärke doppelt an.

Bei vielen Bildschirmen empfiehlt es sich außerdem, die Größe der Leiste und der Schrift anzupassen. Um die Höhe der Leiste zu ändern, suchen Sie in der Konfiguration height = 27 und ersetzen dort die Angabe durch einen höheren Wert, etwa 34. Die Schriftgröße legen Sie unter font-0 = fixed:pixelsize=10;1 fest. Ersetzen Sie hier pixelsize=10 zum Beispiel durch pixelsize=12.

Autostart

Bei der Datei bspwmrc handelt es sich im Grunde nur um ein Shell-Skript, das der Fenstermanager beim Start ausführt. Daher können Sie Programme, die automatisch starten sollen, dort eintragen, wobei Sie an den Programmaufruf ein & anhängen.

Das funktioniert auch für das Programm, das Sie zum Einstellen des Desktop-Hintergrundbilds verwenden. Linux bietet hier mehrere Möglichkeiten, darunter den minimalistischen Bildbetrachter Feh. Nach dessen Installation tragen Sie am Ende der bspwmrc folgende Befehlszeile ein:

$ feh --bg-fill /Pfad/zum/Hintergrundbild.jpg &

Die Option --bg-fill bewirkt, dass Feh so weit in das Bild hineinzoomt, bis es den Bildschirm vollständig ausfüllt. Abhängig vom Bildformat schneidet es dabei oben und unten beziehungsweise links und rechts jeweils einen Streifen ab, das Seitenverhältnis bleibt aber erhalten.

Als nützlich erweist sich ferner das automatische Starten eines sogenannten Polkit-Agenten. Er zeigt ein Eingabefenster für das Root-Passwort an, wenn Sie Programme ausführen möchten, die Root-Rechte benötigen. Für diese Aufgabe bieten sich auch mehrere Programme an, darunter Lxpolkit.

Möchten Sie beim Start von Bspwm Programme mit komplexen Befehlsoptionen ausführen, empfiehlt sich das Erstellen und Ausführen eines kleinen Shell-Skripts wie bei Polybar.

Weitere Einstellungen

Bspwm bietet weitgehende und komplexe Konfigurations- und Automatisierungsmöglichkeiten. Die Befehle man bspwm beziehungsweise man sxhkd öffnen die jeweiligen Manpages und vermitteln ein Gefühl über den Funktionsumfang, allerdings nur in englischer Sprache. Alternativ studieren Sie bereits existierende Konfigurationsdateien.

Dazu bieten sich die Konfigurationen der Linux-Distributionen EndeavourOS [2] und insbesondere ArcoLinux [3] an. Letzteres erlaubt es, ein vorkonfiguriertes Live-System [4] mit Bspwm direkt auszuprobieren. Allerdings weichen dort die Tastaturkürzel zum Teil stark von der hier besprochenen Standardkonfiguration ab. Im Folgenden erklären wir daher einige grundlegende Konfigurationsoptionen.

Wenn Sie die Datei bspwmrc in einem Texteditor öffnen, sehen Sie darin neben den Autostart-Befehlen vor allem Zeilen, die mit bspc config oder bspc rule beginnen. So definiert etwa die Zeile bspc config border_width 2 die Breite der Fensterumrandungen von 2 Pixeln, während bspc config window_gap 12 festlegt, dass der Abstand zwischen einzelnen Fenstern 12 Pixel beträgt. Auf dieselbe Weise konfigurieren Sie zahlreiche andere Eigenschaften von Bspwm, darunter die Farbe der aktiven und inaktiven Fensterrahmen, die Abstände von den Bildschirmrändern und so weiter.

Mit rule definieren Sie Regeln für den Umgang mit bestimmten Programmen. So beschreibt die folgende Zeile, wie Bspwm mit Gimp umgeht:

$ bspc rule -a Gimp desktop='^8' state=floating follow=on

Die Option desktop='^8' legt fest, dass das Programm immer auf dem achten virtuellen Desktop startet. Die Direktive state=floating aktiviert für dieses Fenster den Floating-Modus, und mit follow=on sorgen Sie dafür, dass Bspwm nach dem Start des von Gimp immer automatisch auf den Desktop springt, auf dem sich Gimp befindet.

Achten Sie bei der Definition solcher Regeln darauf, statt des Programmnamens den Namen des Fensters unter X11 anzugeben. Den finden Sie heraus, indem Sie das betreffende Programm starten und anschließend in einem Terminal xwininfo eintippen. Klicken Sie anschließend das gewünschte Fenster an, zeigt das Programm im Terminal verschiedene Informationen darüber an. Hier finden Sie unter window id auch den X11-Fensternamen. Allerdings scheint das nicht bei allen Programmen zu funktionieren. So öffnete sich im Test etwa Darktable immer nur auf dem gerade aktiven virtuellen Desktop.

Spezielle Shortcuts

Einen großen Vorteil spielen Tiling Window Manager damit aus, dass sich für häufig wiederkehrende komplexere Aufgaben wie zum Beispiel das Ausführen eines Skripts oder das Starten des Webbrowsers mit einer bestimmten Webseite einfache Tastaturkürzel erstellen lassen.

Fügen Sie zum Beispiel den Code in Listing 3 in die Datei sxhkdrc ein, öffnet die Kombination [Super]+[F4] die Seite http://linux-community.de mit Firefox, verschiebt das Programmfenster auf den dritten Desktop und wechselt anschließend in den Monocle-Modus.

Listing 3

Spezielle Shortcuts

# open firefox on desktop 3 in monocle mode and go to linux-community.de
super + F4
bspc desktop -f '^3' & firefox linux-community.de & bspc desktop -l monocle
# lock screen and suspend
super + alt + s
slock & systemctl suspend

Um den Bildschirm zu sperren und das System in den Standby zu versetzen drücken Sie [Super]+[Alt]+[S] (Listing 3, ab Zeile 4). Dazu muss auf dem System allerdings das Tool Slock installiert sein. Bei Debian finden Sie es im Paket suckless-tools.

Achten Sie beim Erstellen von Tastaturkombinationen darauf, dass nicht bereits andere Programme die neuen Kürzel belegen.

Fazit

Der minimalistische Tiling Window Manager Bspwm lässt sich zur Not auch ohne Statusleiste nutzen. Ein sinnvoller Einsatz setzt aber einige Hilfsprogramme voraus, wie Polybar, Feh, Dmenu oder Rofi. Die Konfiguration des Fenstermanagers gestaltet sich im Prinzip einfach, allerdings bietet die rudimentäre Dokumentation dabei nur wenig Hilfestellung.

Nutzer von automatischen Tiling Window Managern wie Awesome oder Spectrwm werden außerdem vermissen, dass das zuletzt geöffnete Programm nicht automatisch die Hälfte des Bildschirms einnimmt und links angezeigt wird. Ein großer Vorteil ist jedoch das Tastaturkürzel-Tool Sxhkd, das vor allem fortgeschrittenen Nutzern unzählige flexible Konfigurations- und Automatisierungsmöglichkeiten bietet.

Unter dem Strich präsentiert sich Bspwm als einfacher und flexibel konfigurierbarer Fenstermanager, dem Sie mit wenigen Handgriffen eine attraktive Optik verleihen. (tle/jlu)

Glossar

[Super]

Die Normen ISO/IEC 9995 und DIN 2137 erlauben auf Tastaturen betriebssystemspezifische Tasten. Deren Tastenkappen tragen in der Praxis oft ein OS-Logo (Windows-Logo, Pinguin) oder als generisches Zeichen ein Schleifenquadrat.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 04/2023 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
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben