Oberste Maxime bei der Arbeit sollte sein, dass der Computer sich dem Menschen anpasst und nicht umgekehrt. Gerade in Sachen Flexibilität und Konfigurierbarkeit hat einer der ältesten und dennoch modernsten Fenstermanager die Nase vorn – FVWM.
deskTOPia
Wie Ihr Linux-Desktop aussieht, bestimmen allein Sie. Mit deskTOPia nehmen wir Sie regelmäßig mit auf die Reise ins Land der Window-Manager und Desktop-Umgebungen, stellen Nützliches und Farbenfrohes, Hingucker und hübsches Spielzeug vor.
Jeder Mensch hat eine individuelle Vorstellung von der optimalen Arbeitsumgebung. Wer programmieren kann, schreibt sich einfach selbst eine, alle anderen sind auf die von den Entwicklern vorgesehenen Konfigurationsoptionen angewiesen. Besonders viel Freiraum bietet FVWM [1], der von Rob Nation ins Leben gerufene Klassiker unter den Fenstermanagern, seinen Anwendern.
Geschichtsstunde
FVWM lag ursprünglich einer rxvt-Version bei, um ihn schnellstmöglich zu verbreiten. Die Rechnung ging auf, so dass FVWM vor dem Aufkommen von KDE und Gnome die Standardarbeitsumgebung unter Linux war. Da es ihm zu Beginn an Features mangelte, er jedoch die Verwaltung mehrerer Desktops beherrschte, stand FVWM zunächst für Feeble Virtual Window Manager (feeble=schwach). Die damalige Bedeutung des “F” ging schnell verloren, da sie nicht länger zutraf. Bis heute hält sich das Gerücht, seine Bedeutung sei unbekannt; sie tauchte jedoch sehr spät in einem Quelltextkommentar wieder auf. Dennoch verbreiten viele Anwender gerne die Legende des “mysteriösen F”.
Trotz seiner langen Geschichte hat sich der Star vergangener Tage nicht etwa aus der Öffentlichkeit zurückgezogen, sondern sich unter der Projektleitung von Dominik Vogt zu einem der modernsten Fenstermanager gemausert, der sich wachsender Benutzerzahlen erfreut.
Was FVWM von den unzähligen anderen Window-Managern abhebt, sind die vielfältigen Kommunikationskanäle, die er unterstützt, wie beispielsweise Mausgesten, die Aktionen nach bestimmten Mausbewegungen ausführen. Um alle FVWM-Vorzüge zu nutzen, ist jedoch der steinige Weg über das Bearbeiten von Konfigurationsdateien zu gehen. Der Lohn ist eine flexible Arbeitsumgebung, die man in dieser Form kein zweites Mal findet.
Installation
Zum Kennenlernen von FVWM bietet sich eine Entwicklerversion der 2.5er-Reihe an, die während unserer Tests stabil und zuverlässig lief. Selbst kompilieren müssen Sie den Fensterherrscher nicht: unter [2, 3] und auf unserer Heft-CD finden Sie fertige RPM- und Debian-Pakete.
Vorsichtige Naturen, die einer Entwicklerversion nicht trauen, verwenden die stabile Version des Window-Managers von den Installationsmedien der verwendeten Distribution; sie unterstützt allerdings nicht alle in diesem Artikel angesprochenen Features.
Wer lieber selbst zum Compiler greift, findet in der Datei INSTALL.fvwm im Quellcode-Verzeichnis die wichtigsten Informationen. Die Installation erledigt wie üblich der Dreischritt ./configure ; make ; su -c make install, wobei das ./configure-Skript viele zusätzliche Aufrufparameter kennt.
./configure --help
zeigt sie an; so deaktivieren z. B. alle, die FVWM nicht auf mehreren Monitoren gleichzeitig betreiben wollen, mit
./configure --disable-xinerama
die Xinerama-Unterstützung.
Erste Schritte
Dank vorhandener Pakete finden Sie nach der Installation einen FVWM-Eintrag im Auswahlmenü des Login Managers. Der erste Start bedeutet für KDE-verwöhnte Nutzer einen Kulturschock; der kahle Dektop wirkt nicht sonderlich einladend: Ohne eine Konfigurationsdatei funktionieren nur der Zugriff auf das interne Menü durch Druck der linken Maustaste und das Verschieben sowie Vergrößern der Fenster. Deshalb ist eine solche zwingend erforderlich, um mit FVWM zu arbeiten. Als Basis verwenden Sie entweder eine Beispielkonfigurationen von unserer Heft-CD oder Sie gernerieren eine über das FVWM-Menü. Klicken Sie dazu mit der linken Maustaste auf den Desktop und wählen Sie Konfiguration mit Script95. Anschließend fragt ein Assistent den bevorzugten Editor und Dateimanager ab (Abbildung 1) und erstellt eine einfache Grundkonfiguration. Nach einem FVWM-Neustart präsentiert sich der Fensterherrscher im neuen Gewand (Abbildung 2).

Abbildung 1: Der Konfigurationsassistent fragt bevorzugte Anwendungen wie Dateimanager und Editor ab.

Abbildung 2: FVWM mit der menügenerierten Beispielkonfiguration bietet eine Windows-ähnliche Task-Leiste, Schnellstart-Buttons für die wichtigsten Programme und einen Pager zum schnellen Arbeitsflächenwechsel.
Nun lassen sich Fenster mit gedrückt gehaltener linker Maustaste verschieben; gleichzeitig holt diese Aktion ein Fenster in den Vordergrund, während ein Klick mit der rechten Maustaste zwischen Vorder- und Hintergrund wechselt. Ein Linksklick auf den Desktop öffnet das Hauptmenü, ein Rechtsklick klappt die Fensterliste auf, in der Sie einzelne Fenster direkt ansteuern. Die Knöpfe in der Titelleiste (Abbildung 3) verhalten sich wie unter Windows, mit dem Unterschied, dass die linke Schaltfläche ein Menü mit zusätzlichen Fensteroperationen, etwa zum Maximieren oder Minimieren, öffnet. Alternativ erreichen Sie das Fenstermenü mit [Shift-Alt-F2]. Weitere nützliche Tastenkürzel sind [Shift-Alt-F1] für des Hauptmenü und [Shift-Alt-F3], das die Fensterliste zum Vorschein bringt.
Abbildung 3: Die Titelleiste eines FVWM-Fensters mit Buttons für die Fensterliste, zum Minimieren, Maximieren und Schließen.
Doch nun gilt es, das Mysterium um den großen grauen Kasten am rechten Bildschirmrand zu lüften: Hier kann man den Systemstatus ablesen, oft benötigte Programme starten und zwischen mehreren Desktops hin und her schalten. In der Standardkonfiguration bietet FVWM vier Desktops, die in je vier Areale unterteilt sind. Den aktuellen Desktop mit seinen vier Bereichen stellt der unten liegende Pager dar. Eine Übersicht über weitere Desktops erhalten Sie mit einem Klick auf den grauen Pfeil in der oberen linken Ecke. Zwischen den Arealen springen Sie mit [Shift-Pfeiltaste], zwischen den Desktops mit [Alt-Bild auf] und [Alt-Bild ab] hin und her.
Die Tastenkürzel der Standardkonfiguration verlangen vom Anwender ein hohes Maß an Fingerfertigkeit, doch unter FVWM muss sich glücklicherweise niemand mit den Default-Einstellungen zufrieden geben.
Herangetastet
Damit sich eigene Tastenkürzel nicht mit denen anderer Anwendungen überlappen, tun Freunde des mausfreien Desktops gut daran, neben [Alt] und [Strg] eine weitere Modifier-Taste zu definieren. Prädestiniert dafür ist die Feststell-Taste, die kaum jemand nutzt und die trotzdem schnell erreichbar ist. Damit sie unter FVWM als Modifier fungiert, ist beim Start des Fenstermanagers ein xmodmap-Kommando nötig, das Sie in die FVWM-Konfigurationsdatei .fvwm2rc schreiben. Sie liegt im Home-Verzeichnis oder dessen Unterordner .fvwm.
Der passende Eintrag lautet
AddToFunc InitFunction + "I" Exec xmodmap -e "remove Lock = Caps_Lock" + "I" Exec xmodmap -e "add mod4 = Caps_Lock"
und beraubt die Feststelltaste ihrer normalen Funktion (“remove Lock = Caps_Lock”). Künftig arbeitet sie als zusätzlicher Modifier (“add mod4 = Caps_Lock”).
Um Tastenkürzel hinzuzufügen, schreiben Sie nach dem Muster
Key Tastenname Kontext Modifier Kommando
aufgebaute Befehle in die .fvwm2rc.
“Key” ist das Kennwort dafür, dass jetzt eine Tastenkombination folgt; als Tastenname tragen Sie die Bezeichnung der gewünschten Taste ein, beispielsweise A oder F4. Der Kontext bestimmt, in welchem Zusammenhang das Tastenkürzel gilt. Soll die festgelegte Aktion nur dann stattfinden, wenn Sie sich über einem Fenster befinden, oder jederzeit? Die letzte Option ist praktisch, wenn Sie häufig benutzte Programme per Shortcut starten wollen. Eine Übersicht über die FVWM bekannten Kontexte gibt Tabelle 1.
Tabelle 1: FVWM-Kontexte
| Kürzel | Geltungsbereich |
|---|---|
| R | Desktop-Hintergrund |
| T | Titelleiste des Fensters |
| S | Seitenkante des Fensters |
| F | Fensterecken |
| I | Minimiertes Fenster |
| W | Gesamtes Fenster |
| A | Überall |
| Zahl von 0-9 | Knöpfe in der Titelleiste des Fensters, die wie folgt nummeriert sind:1 3 5 7 9 Fenstertitel 0 8 6 4 2 |
Modifier ersetzen Sie durch die gewünschte Modifikationstaste. Von Haus aus kennt FVWM C für [Strg], M für [Alt] und S für [Umschalt]. Soll eine Taste ohne gedrückten Modifier etwas bewirken, gehört N in dieses Feld, A hingegen legt fest, dass es egal ist, welche Modifier-Taste der Anwender drückt. Um einen selbst definierten Modifier zu nutzen, tragen Sie einfach dessen Nummer dort ein, für das Feststelltastenbeispiel von oben also eine 4. Als Kommando verwenden Sie einen Befehl, den FVWM versteht, z. B. Exec, den Sie bereits vom xmodmap-Aufruf kennen. Dahinter folgt das zu startende Programm, wobei Sie Aufrufe mit Leerzeichen in Anführungszeichen setzen müssen. Um etwa KMail überall auf dem Desktop mit der Tastenkombination [Feststelltaste-m] zu starten, sähe der passende Eintrag in der .fvwm2rc so aus:
Key m A 4 Exec kmail
Zusätzlich kennt FVWM noch viele weitere Befehle, die die Manpage des Fenstermanagers ausführlich erklärt. So ist es beispielsweise mit dem Eintrag
Key 1 W C MoveToPage 0 0
möglich, das gerade aktive Fenster (W) mit [Strg-1] (1, C) auf die Arbeitsfläche links oben zu verschieben (MoveToPage 0 0). Die beiden Nullen stehen für die Werte auf virtuellen X- und Y-Achsen, wobei die Arbeitsfläche oben links den Nullpunkt repräsentiert.
Mausgesteuert
Mausaktionen legen Sie genau so wie Tastenkürzel an:
Mouse Taste Kontext Modifier Kommando
Mouse bestimmt, dass eine Mausaktion folgt, als Taste tragen Sie eine Zahl zwischen 1 und 5 ein. 1 bis 3 stehen für die regulären drei Tasten, 4 und 5 für Drehungen des Mausrads. Die Kontextangaben, Modifier und Kommandos entsprechen denen für die Tastatur. So lässt sich beispielsweise ein Desktop-Wechsel durch Drehen des Mausrads realisieren:
Mouse 4 R A GotoDesk -1 0 0 3 Mouse 5 R A GotoDesk +1 0 0 3
Mit einer Bewegung des Mausrads wechseln Sie danach entweder zum vorherigen, oder nächsten Desktop.
Neben normalen Mausaktionen unterstützt FVWM wie der Browser Opera so genannte Mausgesten: Sie zeichnen mit der Maus bestimmte Figuren auf den Bildschirm, die selbst definierte Aktionen auslösen. Beispielsweise könnte ein gerader Strich von oben nach unten die Neuanordnung aller Fenster bewirken. Ebenso wie bei anderen Tastatur- und Mausereignissen legen Sie fest, mit welcher Maustaste, welchem Modifier und in welchem Kontext die Aktion eintreten soll. Die Definition einer Mausgeste hat das Format
Stroke Sequenz Maustaste Kontext Modifier Kommando
wobei Stroke die Keyword-Funktion übernimmt. Die Sequenz geben Sie wie Bewegungen auf einer Telefontastatur beim Tippen an. Die Mausgeste “rechts hoch, senkrecht nach unten” würden Sie folglich mit der Zahlenfolge 75369 beschreiben (Abbildung 4).

Abbildung 4: Abbildung einer Mausgeste auf eine Telefontastatur.
Menüs
Da sich niemand so viele Tastenkombinationen merken kann, wie er Programme nutzt, bietet FVWM zusätzlich Menüs. Sie lassen sich mit der Maus oder Tastatur aufrufen; so öffnet standardmäßig ein Linksklick auf den Desktop das Root-Menü. Zur Tastaturnavigation kann man außerdem jedem Eintrag eine Taste zuweisen. Beispielsweise könnte das Fenstermenü mit den Optionen zum Maximieren, Minimieren und Schließen an die Windows-Taste gebunden sein, das Maximieren an das [M]. Der Shortcut [Windows-M] ließe dann das aktive Fenster auf Arbeitsflächengröße wachsen. Menüdefinitionen sind einfach:
AddToMenu Menuename + "erster Menüein&trag" Kommando + "z&weiter Menüeintrag" Kommando
Der Buchstabe, der vor dem & steht, dient als Hotkey und macht den Menüpunkt über die Tastatur erreichbar. Er erscheint zusätzlich im Menü unterstrichen, wie Sie es auch von anderen Anwendungen kennen. Als Menuename wählen Sie einen beliebigen Namen, der das Menü identifiziert. Sie nutzen ihn später zum Aufruf des Menüs mit dem Kommando PopUp Menuename, wobei es bei Ihnen liegt, ob ein Mausklick oder eine Tastenkombination das eigene Menü einblendet. Eine Menüdefinition für Mozilla, Gimp und ein rxvt sähe so aus (Abbildung 5):
AddToMenu Anwendungen + "&Mozilla" Exec mozilla + "&Terminal" Exec rxvt + "&GIMP" Exec gimp

Abbildung 5: Beispielmenü mit hinterlegten Hotkeys.
Neben selbst definierten Menüs gibt es noch die bereits erwähnte Fensterliste. In ihr befinden sich alle offenen Fenster in einer durchnumerierter Reihenfolge. Um ein Fenster auszuwählen, klicken Sie es entweder an oder drücken die entsprechende Zahl auf der Tastatur. Zum Aufruf der Fensterliste kennt FVWM das Kommando WindowList, so dass Sie es leicht an ein Tastenkürzel oder eine Mausaktion binden können.
Listing 1 zeigt eine kommentierte Beispiel-Konfigurationsdatei, die einige Shortcuts und Mausgesten definiert und zusätzlich ein Menübeispiel enthält.
Listing 1
Beispielkonfiguration
#Mit den Pfeiltasten und #Modifier-Taste Nr.4 zum nächsten Fenster in #dieser Richtung springen. Als Richtung #(Direction) dienen die vier #Himmelsrichtungen. Die Tastenkombination #gilt überall (A). Key Left A 4 Direction West Focus Key Right A 4 Direction East Focus Key Up A 4 Direction North Focus Key Down A 4 Direction South Focus #Die Windows-Taste zusammen mit einem #beliebigen Modifier öffnet das Fenstermenü #(PopUp WindowOps). Diese #Kombination gilt nur über einem Fenster #(W). Key Super_L W A PopUp WindowOps #[Menü] zusammen mit einem beliebigen #Modifier öffnet die Fensterliste (WindowList) Key Menu R A WindowList #Ein Klick der linken Maustaste (1) auf den #linken Titelleistenknopf (1) schließt das #Fenster Mouse 1 1 A Close #Eine Bewegung mit gedrückter rechter Maustaste (3) #von links unten nach rechts oben und danach senkrecht runter #(75369) ordnet alle Fenster neu an. Stroke 75369 3 A A All PlaceAgain #Die Einträge Verschieben (Move), Größe ändern (Resize), #Minimieren (Iconify) und Maximieren (Maximize) in das #Fenstermenü aufnehmen (AddToMenu Window-Ops). Die Tastaturkürzel #zum Anspringen der einzelnen Einträge lauten der Reihe nach M, #R, y und s AddToMenu WindowOps + "&Move" Move + "&Resize" Resize + "Iconif&y" Iconify + "Maximize to &screen" Maximize 100 100
Platz für alle
Bei der Fensterplatzierung richtet FVWM sich ebenfalls nach Ihren Wünschen: Sie dürfen sogar für jedes Fenster separat entscheiden, nach welchen Kriterien der Fensterverwalter es platziert. Um eine globale Methode für alle Fenster festzulegen, tragen Sie eine Zeile der Form
Style "*" Platzierungsmethode
in die .fvwmrc ein. Der Stern (*) dient als Platzhalter für alle Fenster, alternativ gehört dort ein Fenstername hin. Diesen lesen Sie aus der Titelleiste der Fenster ab, genauere Informationen liefert Identify aus dem Fenstermenü. Gültige Werte für den Fensternamen stehen in den Feldern Class und Resource. Die gebräuchlichsten Platzierungsmethoden sind:
- CascadePlacement: Wie unter Windows 3.1 öffnet sich jedes Fenster leicht versetzt zum vorherigen, so dass die Titelleisten und Buttons aller Fenster sichtbar bleiben.
- TileCascadePlacement: versucht, neue Fenster zu kacheln, also neben ein anderes Fenster zu legen. Gelingt das aus Platzmangel nicht, benutzt FVWM stattdessen die Methode CascadePlacement als Fallback.
- TileManualPlacement: sucht erst eine Position zum Kacheln und lässt den Anwender das Fenster manuell platzieren, falls der Platz dazu nicht ausreicht.
- MinOverlapPlacement: überlappt beim Öffnen neuer Fenster die schon vorhandenen so wenig wie möglich.
- ManualPlacement: lässt den Anwender selbst seine Fenster positionieren. Bevor sich ein Fenster öffnet, erscheint ein gelblicher Rahmen, der dem Mauszeiger folgt. Mit einem Mausklick legt der Benutzer das Fenster auf der Arbeitsfläche ab.
Am wenigsten Arbeit haben Sie mit der MinOverlapPlacement-Methode, da sie automatisch die günstigste Position sucht.
Unbegrenzte Möglichkeiten
Wer sich keine komplett eigene .fvwm2rc-Datei schreiben will, findet auf der Heft-CD zwei Beispielkonfigurationen. Eine (taviso.fvwm2rc) (Abbildung 6) stammt von Tavis Ormandy und enthält einige grafisch sehr anspruchsvolle Optionen, wie halbtransparente Miniatur-Screenshots für minimierte Fenster. Bei der zweiten (rvb.fvwm2rc) handelt es sich um die persönliche Konfiguration des Autors, die sich weniger auf optische Reize, sondern vielmehr auf Ressourcenschonung und schnelle Bedienbarkeit konzentriert (Abbildung 7).
Beide Konfigurationen können als Basis für eine eigene dienen. Wer noch weitere Anregungen sucht, findet sie vielleicht in der FVWM beiliegenden Beispielkonfiguration, die gewöhnlich im Verzeichnis /usr/share/fvwm liegt. Weitere Informationsquellen sind die ausführliche FVWM-Manpage mit der Kommandoreferenz und das FVWM-Wiki unter [4].
Glossar
-
rxvt
-
Ein Terminal-Emulator wie das “xterm”, die KDE-Konsole oder das “gnome-terminal”
-
Login Manager
-
Eine grafische Anmeldemaske, die neben der Login-Option oft noch weitere Features bietet, z. B. Buttons zum Runterfahren oder Neustart des Systems. Die bekanntesten Login Manager sind KDM, GDM und der Klassiker XDM.
-
Modifier-Taste
-
Taste, die nur gemeinsam mit anderen Tasten wirkt. Auf den meisten Linux-Systemen arbeiten [Strg] und [Alt] als Modifier.
-
xmodmap
-
Programm zur Tastaturkonfiguration, mit dem der Anwender bestimmt, was beim Druck auf eine bestimmte Taste geschieht. Mit der Anwendung lassen sich leicht einzelne Tasten vertauschen.
Infos
[1] FVWM: http://www.fvwm.org/
[2] RPM-Pakete: http://fvwm-themes.sourceforge.net/rpm/
[3] Debian-Pakete: http://fvwm-themes.sourceforge.net/deb/
[4] FVWM-Wiki: http://fvwm.rvb-web.de/




