[[Vorlage(Getestet, focal)]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:Shell/Bash-Skripting-Guide_für_Anfänger:] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./herbstluftwm_logo.png, 48, align=left)]] [http://herbstluftwm.org/ herbstluftwm] {en} ist ein [:Fenstermanager/#Tilingfaehige-Fenstermanager:Tiling-Fenstermanager], der [:xmonad:] ähnelt. Er wird gerne zusammen mit dem Panel [github:robm/dzen/wiki:dzen]2 {en} verwendet, das automatisch mitinstalliert wird. Er wird vollständig mit der Tastatur bedient, außer auf Tags (vergleichbar mit virtuellen Arbeitsflächen), die in den Floating-Modus geschaltet sind, wobei herbstluftwm wie ein "normaler" Fenstermanager arbeitet. Das Tiling erfolgt gemischt automatisch (nach 3 möglichen Layout-Algorithmen) und nach Vorgaben des Benutzers. [[Vorlage(Bildunterschrift, ./herbstluftwm_ubuntu_screenshot.png, 500, "herbstluftwm mit der Standardkonfiguration des Artikelautors. Gezeigt wird manuelles Tiling mit Firefox, xterm und einem leeren Frame.", ,)]] = Installation = herbstluftwm kann über die Paketverwaltung installiert [1] werden: {{{#!vorlage Paketinstallation herbstluftwm, universe }}} == Als erste und einzige Arbeitsumgebung == Soll herbstluftwm die erste und einzige Arbeitsumgebung bei der Neuinstallation eines Systems werden, so beginnt man mit einer Installation mittels [:Minimalinstallation:] oder [:Downloads/Netzwerkinstallation:Netzwerkinstallation], und installiert '''herbstluftwm''' per Paketverwaltung. == Neben einer bestehenden Arbeitsumgebung == In einer ganz normalen grafischen Sitzung installiert man '''herbstluftwm''' per Paketverwaltung. Nach einer Abmeldung sollte eine neue grafische Sitzung in der Sitzungsauswahl zur Verfügung stehen, die die Benutzung von herbstluftwm ermöglicht. === Einrichtung von herbstluftwm === Vor dem ersten Start von herbstluftwm muss die Konfigurationsdatei ''"autostart"'' ins [:Homeverzeichnis:] kopiert werden: {{{#!vorlage Befehl mkdir -p ~/.config/herbstluftwm cp /etc/xdg/herbstluftwm/autostart ~/.config/herbstluftwm/ }}} Mit dieser Datei muss der Fenstermanager vor der ersten Benutzung erst noch brauchbar [:herbstluftwm/#Konfiguration-und-Bedienung:konfiguriert] werden! Zumindest sollte ausgewählt werden, welche Taste als Modifikationstaste zur Bedienung mit der Tastatur dienen soll: [[Vorlage(Tasten, Alt)]] (''"Mod=Mod1"'') oder [[Vorlage(Tasten, Super)]] (''"Mod=Mod4"''). = Tiling-Algorithmen = herbstluftwm verwaltet seine Frames in einem [wikipedia:Binärbaum:]. Beim Start des Fenstermanagers existiert (pro Tag) genau ein Frame, der das komplette Anzeigegerät ausfüllt. Frames erfüllen jeweils genau eine der folgenden zwei Bedingungen: 1. Frame enthält Fenster, auf die einer der folgenden Layoutalgorithmen angewendet wird: {{{#!vorlage Tabelle <-3 tableclass="zebra_start3" rowclass="titel"> Tiling-Algorithmen +++ Index Layout Beschreibung +++ 0 vertikal Fenster werden über-/untereinander angeordnet +++ 1 horizontal Fenster werden nebeneinander angeordnet +++ 2 max Alle Fenster in diesem Frame werden maximiert dargestellt +++ 3 Gitter Fenster werden in einem möglichst quadratischen Gitter dargestellt }}} 1. Frame ist in genau zwei Subframes aufgeteilt (Binärbaum!)\\ Der Frame ist in einem variablen Verhältnis entweder horizontal oder vertikal in zwei weitere Frames aufgeteilt, für welche ebenfalls die genannten Bedingungen gelten. Wird ein bereits Fenster enthaltender Frame geteilt, so werden dessen Fenster vom ersten Subframe übernommen. = Konfiguration und Bedienung = herbstluftwm wird über das Werkzeug `herbstclient` konfiguriert, das sowohl im Shellscript '''~/.config/herbstluftwm/autostart''' beim Start der Sitzung aufgerufen wird, als auch zur Laufzeit benutzt werden kann, um die Konfiguration zu ändern. ==herbstclient== `herbstclient` ist ein Kommandozeilenwerkzeug, das dazu dient, einer laufenden Instanz von herbstluftwm Kommandos (mit deren eventuellen Argumenten) zu übergeben. {{{#!vorlage Befehl herbstclient [OPTIONEN] KOMMANDO [ARGUMENTE …] }}} {{{#!vorlage Befehl herbstclient [OPTIONEN] [--wait|--idle] [FILTER …] }}} Es kann mit folgenden Optionen aufgerufen werden: {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel"> herbstclient +++ Option Wirkung +++ `-n`[[BR]]`--no-newline` Erzeugt keinen Zeilenumbruch, wenn die Ausgabe nicht mit einem Zeilenumbruch endet. +++ `-i`[[BR]]`--idle` Wartet auf hooks, statt Befehle auszuführen. +++ `-w`[[BR]]`--wait` Wie `--idle`, aber beendet nach `--count` hooks. +++ `-c`[[BR]]`--count ANZAHL` Lasse `--wait` beenden, nachdem `ANZAHL` hooks empfangen und ausgegeben wurden. Der Standardwert von `ANZAHL` ist 1. +++ `-q`[[BR]]`--quiet` Schreibt keine Fehlermeldungen, wenn `herbstclient` sich nicht mit der laufenden Instanz von herbstluftwm verbinden kann. +++ `-h`[[BR]]`--help` Schreibt Informationen über die Benutzung von `herbstclient`. }}} Ein Exitstatus von `0` vermeldet hierbei die erfolgreiche Ausführung. Wird hingegen `EXIT_FAILURE` zurückgegeben, konnte der Fenstermanager nicht starten oder `wmexec` hat versagt. ==herbstluftwm== herbstluftwm kann mit folgenden Optionen gestartet werden: {{{#!vorlage Tabelle <-2 tableclass="Zebras_start3" rowclass="titel"> herbstluftwm +++ Option Wirkung +++ `-c PFAD`[[BR]]`--autostart PFAD` Benutze `PFAD` als Autostart-Datei anstelle des Standardautostarts. +++ `-v`[[BR]]`--version` Gibt Versionshinweise aus und beendet sich. +++ `-l`[[BR]]`--locked` Setze den Wert von `monitors_locked` einmalig auf `1`. +++ `--verbose` Schreibt Informationen auf `stderr`. }}} ==Autostart== Die Datei '''~/.config/herbstluftwm/autostart''' ist die einzige Konfigurationsdatei von herbstluftwm. Da sie im [:Homeverzeichnis:] liegt, ist sie spezifisch für den jeweiligen Benutzer. Bei dieser Datei handelt es sich um ein Shellscript. Sie wird beim Start des Fenstermanagers, also dem Sitzungsbeginn, ausgeführt, und enthält `herbstclient`-Befehle, über die herbstluftwm für die Sitzung konfiguriert wird. Da es sich um ein Shellscript handelt, können aber auch Anwendungen aufgerufen werden, was der gängige Weg ist, um unter herbstluftwm ein Panel zu starten. Die von Ubuntu und Debian ausgelieferte Autostartdatei ermöglicht noch keine wirkliche Benutzung des Fenstermanagers. Es muss dafür erst angepasst werden. Das Gleiche gilt für das Betriebsskript des Panels. Eine brauchbare [paste:410862:Autostartdatei] {dl} steht zum Herunterladen zur Verfügung. Für das Panel dzen gibt es [paste:410867:ebenfalls] {dl} eine sinnvolle Erst-Konfiguration. 1. Lege den Konfigurationsordner an: {{{#!vorlage Befehl mkdir ~/.config/herbstluftwm/}}} 1. Speichere die Inhalte der Autostart-Datei und der '''panel.sh''' in entsprechend benannten Dateien im angesprochenen Konfigurationsordner. 1. Mache beide ausführbar: {{{#!vorlage Befehl chmod u+x ~/.config/herbstluftwm/autostart chmod u+x ~/.config/herbstluftwm/panel.sh }}} Danach sollte eine Anmeldung mit `herbstluftwm` als Fenstermanager funktionieren. ===Tastatur- und Mauskürzel=== Als Modifier ist in der im Artikel verlinkten Konfiguration [[Vorlage(Tasten, Super)]] (die "Windows-Taste") eingetragen. Alle Kürzel können in der Konfigurationsdatei ''"autostart"'' nach Belieben verändert werden. {{{#!vorlage Tabelle <-2 tableclass="zebra_start3" rowclass="titel"> Tastatur- und Mauskürzel +++ Kürzel Wirkung +++ [[Vorlage(Tasten,Super+Strg+q)]] beendet die Sitzung +++ [[Vorlage(Tasten,Super+Shift+r)]] lädt die Konfiguration von `herbstluftwm` neu (`herbstclient reload`) +++ [[Vorlage(Tasten,Super+Leer)]] Veränderung des Layouts +++ [[Vorlage(Tasten,Super+Shift+c)]] schließt das fokussierte Fenster +++ [[Vorlage(Tasten,Super+Enter)]] öffnet ein `xterm`-Fenster (Terminal) +++ [[Vorlage(Tasten,Super+w)]] öffnet den Webbrowser (Firefox) +++ [[Vorlage(Tasten,Super+r)]] Entfernt einen Subframe. Dessen Fenster werden vom Nachbarframe übernommen. +++ [[Vorlage(Tasten,Super+u)]] Teilt den fokussierten Frame vertikal in zwei Subframes. +++ [[Vorlage(Tasten,Super+o)]] Teilt den fokussierten Frame horizontal in zwei Subframes. +++ [[Vorlage(Tasten,Super+s)]] Schaltet zwischen Floating- und Tilingmodus um. +++ [[Vorlage(Tasten,Super+f)]] Schaltet zwischen Vollbild- und Fenstermodus des fokussierten Fensters um. +++ [[Vorlage(Tasten,Super+p)]] Schaltet den pseudotile-Status des fokussierten Fensters ein/aus. +++ [[Vorlage(Tasten,Super+1)]] bis [[Vorlage(Tasten,Super+9)]] Wechsel zum Tag 1,2,3, bis 9 +++ [[Vorlage(Tasten,Super+Shift+1)]] bis [[Vorlage(Tasten,Super+Shift+9)]] Verschiebt das fokussierte Fenster auf den Tag 1,2,3 bis 9 ''ohne diesem zu folgen''. +++ [[Vorlage(Tasten,Super+Strg+h)]] vergrößere den fokussierten Subframe nach links +++ [[Vorlage(Tasten,Super+Strg+j)]] vergrößere den fokussierten Subframe nach unten +++ [[Vorlage(Tasten,Super+Strg+k)]] vergrößere den fokussierten Subframe nach oben +++ [[Vorlage(Tasten,Super+Strg+l)]] vergrößere den fokussierten Subframe nach rechts +++ [[Vorlage(Tasten,Super+lmt)]] verschieben (nur im Floatingmodus) +++ [[Vorlage(Tasten,Super+mmt)]] Fenster skalieren (nur im Floatingmodus) +++ [[Vorlage(Tasten,Super+rmt)]] Fenster aus der Mitte aufziehen (nur im Floatingmodus) +++ [[Vorlage(Tasten,Super+Backspace)]] wechsle den Fokus durch die Monitore, falls mehrere vorhanden sind +++ [[Vorlage(Tasten,Super+Tab)]] wechsle den Fokus vorwärts durch die Fenster eines Tags +++ [[Vorlage(Tasten,Super+Shift+Tab)]] wechsle den Fokus rückwärts durch die Fenster eines Tags +++ [[Vorlage(Tasten,Super+c)]] wechsle den Fokus vorwärts durch die Fenster eines Frames +++ [[Vorlage(Tasten,Super+h)]] verschiebe den Fokus nach links +++ [[Vorlage(Tasten,Super+j)]] verschiebe den Fokus nach unten +++ [[Vorlage(Tasten,Super+k)]] verschiebe den Fokus nach rechts +++ [[Vorlage(Tasten,Super+l)]] verschiebe den Fokus nach rechts +++ [[Vorlage(Tasten,Super+Shift+h)]] verschiebe das fokussierte Fenster nach links +++ [[Vorlage(Tasten,Super+Shift+j)]] verschiebe das fokussierte Fenster nach unten +++ [[Vorlage(Tasten,Super+Shift+k)]] verschiebe das fokussierte Fenster nach oben +++ [[Vorlage(Tasten,Super+Shift+l)]] verschiebe das fokussierte Fenster nach rechts }}} ===Das Panel=== Installiert man herbstluftwm unter Ubuntu, so wird ab [:12.10:] standardmäßig das Panel [packages:dzen2:dzen] mitinstalliert. Mit der primitiven, im Artikel verlinkten Konfiguration zeigt es Uhrzeit, Datum, sowie die jeweils aktuelle Ausgabe von `herbstclient tag_status`, so dass man sich auf den mehreren konfigurierten Tags von herbstluftwm zurechtfindet. == Mehrere Monitore == Beim Start des Fenstermanagers, also beim Beginn der Sitzung, werden vorhandene Anzeigen automatisch erkannt und eingerichtet. Änderungen an den vorhandenen Anzeigegeräten und deren Layout, wie das Hinzufügen einer Anzeige oder das Rearrangieren eines Multi-Monitor-Setups zur Laufzeit werden nicht automatisch erkannt, und müssen herbstluftwm per `herbstclient` mitgeteilt werden. = Links = * [http://herbstluftwm.org/ Projektseite] {en} * [https://herbstluftwm.org/tutorial.html] {en} - Tutorial zur Einrichtung und Nutzung * [man:herbstluftwm:Manpage] {en} * [http://herbstluftwm.org/herbstclient.html herbstclient] {en} #tag: Grafik, Desktop, Fenstermanager