Tiling-Window-Manager im Überblick

Aus LinuxUser 10/2014

Tiling-Window-Manager im Überblick

© Chiramanas Jutidharabongse, 123RF

Fliesenleger

Effizienz hat ihren Preis: Tiling-Window-Manager nutzen den Desktop optimal aus, doch die Konzepte erfordern einiges Einarbeiten.

Das heute bekannte Fenstersystem ist beinahe so alt wie die grafische Benutzeroberfläche selbst. Anwendungen laufen in eigenen Gucklöchern, die Sie übereinander stapeln und verschieben dürfen – sogar über den Rand des Bildschirms hinaus. Erweiterungen wie mehrere virtuelle Arbeitsflächen, Transparenzen oder Schattierungen des Rahmens helfen dabei, den Überblick über die Fenster zu behalten.

Doch Fenster ist nicht gleich Fenster: Die sogenannten Tiling-Window-Manager [1] legen Fenster nicht wie ein Maurer seine Steine übereinander, sondern ordnen sie wie ein Fliesenleger nebeneinander an. Dadurch überdeckt keines ein anderes. Dieses Konzept hat ansatzweise in den Fenstermanagern etablierter Arbeitsumgebungen Einzug gehalten (siehe Kasten “Alternativen”), aber zur Perfektion bringen es eher die Spezialisten unter den Window-Managern.

Alternativen

Kwin, Mutter und XFWM bieten bereits seit Längerem die Möglichkeit, Fenster nach dem Tiling-Konzept zu verwalten. Ausgeklügelte Regeln beim Verschieben und Ändern der Größe mit der Maus sorgen dafür, dass die Objekte an einem der Ränder des Desktops oder an anderen Fenstern einrasten, oder jeweils eine der vertikalen oder horizontalen Hälften sowie den ganzen Bildschirm bedecken. Für die Aktionen gibt es in der Regel Tastenkürzel.

Dabei gilt es zu bedenken, dass eine eventuelle obere Leiste der Fenstermanager möglicherweise hinter einer Kontrollleiste des jeweiligen Desktops verschwindet. Das betrifft insbesondere XFCE. Aber auch andere Arbeitsumgebungen platzieren eine Leiste am oberen Bildschirmrand.

Daher rät es sich an, zunächst den Fenstermanager und die Arbeitsumgebung getrennt voneinander zu starten und deren Konfigurationen entsprechend anzupassen. Ähnliches gilt für doppelt vergebene Tastenkombinationen, die im Extremfall dazu führen, dass sich das gewünschte Gespann nicht bedienen lässt.

Doch mit echtem Tiling hat das eher wenig zu tun: Es handelt sich vielmehr um ein Zugeständnis an Wünsche der Benutzer, die an diesem oder jenem Feature Gefallen gefunden haben, ihr gewohntes Verhalten aber nicht aufgeben wollen.

Awesome

An Awesome [2] fällt direkt auf, dass es keine herkömmlichen virtuellen Arbeitsflächen kennt: Stattdessen ordnet es einzelne Fenster in “Tags” ein. Das bedeutet andersherum, dass es ein Fenster nicht direkt über die darunterliegende Arbeitsfläche identifiziert und somit keine starre Zuweisung erfordert. Die unscharfe Logik beim Gruppieren erlaubt es, Fenster aus mehreren Tags gleichzeitig anzuzeigen – um das Anordnen kümmert sich Awesome selbst.

Hier zeigt sich schon einer der Vorteile der Kacheln: Die Software nimmt dem Benutzer die Arbeit ab, Fenster zu platzieren (Abbildung 1), und automatisiert den Vorgang in gewissen Grenzen. Das erscheint zunächst gewöhnungsbedürftig, aber schon nach kurzer Zeit empfinden viele Benutzer dies als Vorteil.

Abbildung 1: Awesome nimmt Ihnen die Aufgabe ab, die Fenster optimal auf dem Desktop zu platzieren.

Abbildung 1: Awesome nimmt Ihnen die Aufgabe ab, die Fenster optimal auf dem Desktop zu platzieren.

Ein Rechtsklick auf den Hintergrund der Arbeitsfläche bringt ein kleines Menü zum Vorschein, über das Sie unter anderem ein Terminal öffnen oder die Dokumentation lesen. In der Leiste oben schalten Sie links zwischen den neun bereits erwähnten Tags um, daneben sehen Sie die Namen der geöffneten Fenster. Ein umfangreiches Menü, wie Sie es von Openbox oder dessen zahlreicher Verwandtschaft kennen, gibt es nicht.

In der Grundeinstellung fehlt die Dekoration der Fenster – das Konzept erfordert diese Elemente eigentlich nicht. Ein Verschieben fällt aus naheliegenden Gründen flach, und zum Schließen, Maximieren oder Minimieren nutzen Sie ohnehin entweder Tastenkombinationen oder die Maus in Kombination mit den Einträgen in der oberen Leiste.

In der Datei /etc/xdg/awesome/rc.lua finden Sie die systemweite Konfiguration, als Benutzer verwenden Sie die Datei ~/.config/awesome/rc.lua für individuelle Parameter. Letztere bearbeiten Sie über einen Eintrag im Menü, das Sie über den Rechtsklick auf dem Desktop aufrufen.

Das öffnet allerdings nur ein Terminal mit der Datei im Editor Vim – nicht unbedingt jedermanns Sache. Alternativ passen Sie die Datei mit jedem beliebigen Editor an. Dazu legen Sie sie erst einmal durch Kopieren an, Awesome erledigt das nicht automatisch. Bei dieser Gelegenheit bietet es sich an, gleich einen globalen Texteditor und ein bevorzugtes Terminal festzulegen (Listing 1).

Listing 1

terminal = "konsole"
editor = os.getenv("EDITOR") or "kate"
editor_cmd = terminal .. " -e " .. editor

Die Konfiguration basiert vollständig auf der Lua-Syntax, was sich komplett durch Awesome zieht: So setzt die Schnittstelle für Erweiterungen ebenfalls auf diese beliebte Sprache, für die es eine erfreulich große Anzahl von Plugins gibt [3]. Neue Desktop-Widgets stehen ebenso bereit wie Erweiterungen, die das Bedienen mit der Tastatur verbessern.

DWM

Mit dem “Dynamic Window Manager” [4] wandern Sie in der Linie der Ahnen zurück zum Urvater von Awesome. Laut Webseite agiert DWM im Vergleich zu den Mitbewerbern schneller und ist kleiner und einfacher. Andererseits fehlt ihm die Lua-Schnittstelle, und nicht nur das: Die Entwickler haben festgeschrieben, dass die Codebasis 2000 Zeilen nie überschreitet. Das vereinfacht es zwar, den Code zu warten, führt aber unvermeidlich zu Einschränkungen. Es existieren zwar DWM-Pakete für viele Distributionen, aber die bilden kaum mehr als eine Vorschau auf das, was sich tatsächlich mit der Software anstellen ließe.

Eine Konfiguration durch den Benutzer via Datei sieht DWM schlichtweg nicht vor. Allerdings existiert ein alternativer Weg, denn schließlich haben Sie es mit freier Software zu tun: Sie passen den Quellcode direkt an, um den Fenstermanager (in recht engen Grenzen) an Ihre Wünsche anzupassen. Das unterläuft dann aber unter Umständen den Sinn einer Paketverwaltung – es sei denn, Sie verpacken das Programm erneut oder installieren es nach /usr/local. Alles in allem wenig benutzerfreundlich und eher für die Hartgesottenen gedacht, die auch “Linux From Scratch” als System der Wahl bevorzugen.

Einige Verhaltensweisen von Awesome finden sich bereits in DWM: Das obere Panel mit den neun Tags und der Fensterliste ist präsent und ähnlich zu bedienen. Etwas anders funktioniert aber das Verwalten der Fenster: DWM unterscheidet dabei nicht zwischen Ebenen. Ob ein Fenster fest auf dem Desktop steht oder schwebt (wie modale Dialoge), spielt anders als bei anderen Tiling-Fenstermanagern für DWM keinerlei Rolle. Weiterhin gibt es eine Möglichkeit, alle Fenster ungeachtet deren tatsächlicher Größe zu maximieren und übereinander zu stapeln.

Aufgrund der fehlenden Möglichkeit, die Software als Nutzer zu konfigurieren, gestaltet es sich einigermaßen schwierig, Sitzungen zu verwalten. Die nach der Installation des Pakets vorhandene Datei /usr/share/xsessions/dwm.desktop startet nur den Fenstermanager selbst. Ein rudimentärer Autostart für ein zusätzliches Panel, ein Netzwerk-Applet oder Ähnliches ließe sich realisieren, indem Sie die gewünschten Programme in ein Skript einbauen und dieses statt des puren Binaries starten.

Wenn Sie zumindest über Grundkenntnisse im Programmieren von C verfügen und den etwas anderen Weg nicht scheuen, erhalten Sie tatsächlich mit DWM einen rasend schnellen Fensterverwalter, dessen Anforderungen an die Hardware für heutige Verhältnisse kaum noch erwähnenswert sind. Dies erweist sich insbesondere beim Wiederbeleben von Hardware für spezielle Anwendungsfälle als interessant, für die ansonsten kaum ein Fenstermanager geeignet wäre.

Ratpoison

Nach dem Start zeigt Ratpoison [5] zunächst einmal außer einem leeren Root-Fenster gar nichts. Mausklicks greifen ins Leere, erst die Tastenkombination [Strg]+[T],[C] bringt ein Terminal hervor, in dem Sie Befehle zum Starten von Anwendungen absetzen. Die Kombination [Strg]+[T] dient dabei als Prefix für alle Funktionen.

Ratpoison setzt das Tiling-Prinzip wohl am konsequentesten um. Der Manager unterteilt den Bildschirm stets in “Panes”, in denen er die Fenster anordnet. Durch die Programme vorgegebenen Größen der Fenster spielen dabei kaum eine Rolle. Das führt dazu, dass die Ansicht zuweilen seltsame Blüten treibt: Starten Sie einmal testweise mehrere Terminals hintereinander, um den Effekt zu bewundern.

Die Lernkurve gerät bei Ratpoison wohl am steilsten, denn die Maus ist hier vollkommen unnütz. Das Gleiche betrifft die Konfiguration, zumindest auf dem Testsystem mit Fedora 20: Grundlegende Tastenkürzel sind vorhanden, überschneiden sich aber oft mit denen in Anwendungen.

Wenn Sie sich auf Ratpoison einlassen, sollten Sie zunächst die Konfigurationsdatei ~/.ratpoisonrc erstellen, die das Programm selbst nicht automatisch anlegt. Eine Vorlage finden Sie im Web [6] oder auf der ersten Heft-DVD dieser Ausgabe.

i3

Von Konkurrenten wie WMII [7] inspiriert, haben es sich die Entwickler von i3 [8] zum Ziel gesetzt, Entwicklern den Einstieg ins Programmieren des Window-Managers zu erleichtern. So verzichteten sie auf die Autotools, die im Laufe der Jahrzehnte immer komplexer gerieten, und setzen stattdessen auf einfache, übersichtliche Makefiles. Außerdem bevorzugen sie statt der Xlib möglichst XCB. Auch die Selbstbeschränkung der DWM-Entwickler auf 2000 Zeilen Code findet kopfschüttelnde Erwähnung auf der i3-Webseite.

Was erhalten Sie dafür? Auch i3 weist die von Awesome bekannte Leiste auf und bringt zusätzlich Rahmen für die Fenster mit. Zwar fehlen bei diesen Schaltflächen zum Schließen oder Maximieren, aber immerhin besteht so die Möglichkeit, ein Fenster mit dem Mauszeiger am Rahmen zu greifen und über den Bildschirm zu bewegen – sofern es sich um ein schwebendes Fenster handelt.

Mit [Alt]+[Umschalt]+[Leertaste] heben Sie Fenster aus der Struktur der Kacheln heraus und sorgen dafür, dass diese über den anderen Fenstern schweben (Abbildung 2). Weiterhin existiert ein Stapelmodus, den Sie über [Alt]+[S] aktivieren. Dieser legt die Fenster direkt übereinander. Wahlweise maximieren Sie mit [Alt]+[F] ein einzelnes Fenster oder setzen es wieder zurück.

Abbildung 2: Der Window-Manager i3 bietet etwas mehr Flexibilität, da er es erlaubt, Fenster aus dem Verbund zu lösen.

Abbildung 2: Der Window-Manager i3 bietet etwas mehr Flexibilität, da er es erlaubt, Fenster aus dem Verbund zu lösen.

Die Tastenkürzel lehnen sich im Großen und Ganzen stark an jene von Awesome an und lassen sich ebenso umfassend konfigurieren. Das Programm erkennt beim ersten Start das Fehlen einer Konfigurationsdatei und bietet an, diese zu erstellen, indem es die systemweite Konfiguration nach ~/.config/i3/config oder ~/.i3/config kopiert. Die Datei bearbeiten Sie dann nach Ihren Wünschen.

Die voreingestellte Konfiguration erlaubt es bereits, mit dem Fenstermanager vernünftig zu arbeiten. Doch insbesondere, wenn Sie weitere Programme beim Start laden möchten, ist die individuelle Konfiguration unerlässlich.

Mit dem Eintrag exec ~/skript.sh, den Sie außerhalb eines definierten Tastenkürzels eintragen, starten Sie ein selbst geschriebenes Skript. Starten Sie i3 innerhalb einer Sitzung allerdings neu, greift dieser Befehl nicht erneut. Wenn Sie das wünschen, ersetzen Sie exec durch exec_always.

Herbstluftwm

Im Gegensatz zu den technischen, an Kürzel angelehnte Namen erscheint Herbstluftwm [9] als Bezeichnung schon fast poetisch. Dieser Kandidat bringt von allem etwas mit, und das verheimlichen die Entwickler gar nicht. Die aus Awesome bekannten Tags sind vorhanden, ebenso erkennt man das Verhalten anderer hier vorgestellter Programme wieder.

Durch das Abspalten des herbstclient vom eigentlichen Binary herbstluftwm realisierten die Entwickler ein interessantes Konzept. Die Konfiguration im Ordner ~/.config/herbstluftwm/, über die Sie den Window-Manager kontrollieren, enthält folglich eine Folge von solchen Client-Aufrufen.

Dieses Server-Client-System macht den einzigen echten Unterschied zu den Mitbewerbern aus. Ansonsten ließen sich im Test keine weiteren Alleinstellungsmerkmale finden. Wieder fehlen Fensterdekorationen, allgemein prägt Sparsamkeit das Bild. Das in gedeckten Farben gehaltene Design wirkt recht angenehm (Abbildung 3).

Abbildung 3: Das satte Grün des Herbstluftwm schont die Augen, während der Window-Manager genügsam mit den Ressourcen des Rechners umgeht.

Abbildung 3: Das satte Grün des Herbstluftwm schont die Augen, während der Window-Manager genügsam mit den Ressourcen des Rechners umgeht.

Distributionen

Als gemeinsames Merkmal aller dieser Fensterschieber entpuppt sich ein gediegener Aufwand bei der Konfiguration, falls Sie die Funktionen hinreichend praxisgerecht nutzen möchten – nicht unbedingt jedermanns Sache. Doch wie sollte es anders sein: Einer der Spezialisten unter den Distributionen liefert einen der schlanken Window-Manager als Voreinstellung aus – das auf Slackware basierende Projekt Salix [10] bietet ISO-Images mit Ratpoison als Standard an.

Wenn Sie nicht gleich die ganze Distribution wechseln wollen, ist das kein Beinbruch: Für alle hier vorgestellten Programme haben die Mainstream-Distributionen hinreichend aktuelle Pakete an Bord.

Die bereits erwähnten Einschränkungen für DWM hinderten die Entwickler nicht daran, Pakete dafür bereitzustellen. Für Fedora gibt es zusätzlich das Paket dwm-user, das das Anpassen erleichtert. OpenMandriva liefert außerdem ein Paket namens dwm-tools mit, das einige spezielle Skripte für diesen Zweck enthält.

EWMH-Kompatibilität

Zwar ist der Begriff EWMH bei Gnome aus der Mode gekommen, seit die dritte Version dem Einbau eines anderen Fenstermanagers einen Riegel vorgeschoben hat. Dennoch war und ist er immer noch ein Anzeichen dafür, dass Software der gleichnamigen Freedesktop-Spezifikation [11] folgt und sie somit innerhalb von KDE, XFCE oder LXDE fast problemlos läuft.

Tatsächlich erfüllen die vorgestellten Tiling-WMs durchaus die Voraussetzungen, in KDE macht aber keiner von der Möglichkeit Gebrauch, sie im Kontrollzentrum automatisch als Ersatz für Kwin anzubieten. Hier hilft nur das Aktivieren in Form einer speziellen Desktop-Datei.

In Listing 2 finden Sie ein Beispiel für Awesome, das Sie als awesome.desktop in /.kde/share/apps/ksmserver/windowmanagers/ speichern. Dann können Sie in den KDE-Systemeinstellungen unter Erscheinungsbild und Verhalten der Arbeitsfläche | Standardkomponenten | Fenstermanager Awesome auswählen. Gleiches gilt analog für die anderen Kandidaten.

Listing 2

[Desktop Entry]
Encoding=UTF-8
Name=Awesome
Comment=Highly configurable framework window manager
Type=XSession
Exec=awesome
TryExec=awesome

In XFCE führte normalerweise der einfachste Weg über den Autostart von Applikationen. Allerdings schützt die Umgebung die hier voreingestellten Kandidaten vor dem Austausch mittels --replace. Die Xfconf-Datenbank bietet sich aber als Lösung an: Ein Eintrag genügt, um dauerhaft Awesome zu nutzen (Listing 3, Zeile 1). Gefällt Ihnen das Ergebnis nicht, drehen Sie das Rad wieder zurück (Listing 3, Zeile 2).

Listing 3

xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -s "awesome" -a
xfconf-query -c xfce4-session -p /sessions/Failsafe/Client0_Command -t string -s "xfwm4" -t string -s "--replace" -a

Für LXDE brauchen Sie nur die Datei ~/.config/lxsession/LXDE/desktop.conf zu bearbeiten. Die Zeile unter [Session] zeigt üblicherweise auf openbox oder openbox-lxde, was Sie einfach in awesome oder eben den Befehl des gewünschten Fenstermanagers ändern.

Fazit

Alle vorgestellten Fenstermanager reizen das Tiling-Konzept auf ihre jeweils eigene Weise aus. Es gilt aber, zu bedenken, dass eingefleischte Mausschubser mit Tiling nicht sehr weit kommen – ohnehin erscheinen die zugrundeliegenden Konzepte aufgrund des vom Mainstream sehr verschiedenen Ansatzes vielen Anwendern wenig intuitiv.

Die wenigsten Schwierigkeiten beim Eingewöhnen verursachen erfahrungsgemäß Awesome und i3, aber um ein Anpassen der Konfiguration kommen Sie in keinem Fall herum. Außerdem ist der Betrieb auf kleineren Bildschirmen, wie bei 14-Zoll-Notebooks, etwas gewöhnungsbedürftig und erfordert tiefere Eingriffe in die Konfiguration.

Ringen Sie sich dennoch dazu durch, zum Erlernen ein wenig Zeit zu investieren, stehen die Chancen nicht schlecht, dass die Software diese Investition mittelfristig mit hohen Zinsen zurückzahlt: Schneller und effizienter als mit klassischen WMs arbeiten Sie mit den “Kachelschubsern” allemal. 

Glossar

Lua

Durch einen vergleichsweise kleinen Interpreter eignet sich die Programmiersprache zum Erweitern von Anwendungen oder für Skripte in der frühen Phase beim Booten des Systems, wenn üblicherweise ausgewachsene Interpreter für Perl oder Python noch nicht bereitstehen.

XCB

“X C Binding” ermöglicht als Bibliothek den direkten Zugriff auf Transaktionen des X-Window-Protokolls über Funktionsaufrufe in der Programmiersprache C.

EWMH

Die “Extended Window Manager Hints” regeln die Interoperabilität zwischen Fenstermanagern und den anderen Bestandteilen einer Arbeitsumgebung. Dieser Standard sorgt dafür, dass Gnome-Programme möglichst reibungslos unter KDE oder Openbox laufen.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2014 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