Druckversion

Der Windowmanager Fvwm2

Übersicht Weiter

Dem originalen Entwickler Rob Nation ist leider die Bedeutung des »f« in seiner Wortschöpfung entfallen. Die gewitzten Betreuer des Projektes benennen den fvwm so: »Fill_in_the_blank_with_whatever_f_word_you_like_at_the_time Virtual Window Manager«.

Der Windowmanager fvwm2 als Nachfolger des »fvwm« war vor den Zeiten von Desktopumgebungen wie K Desktop Environment oder GNU Network Object Model Environment der verbreiteste Manager unter Linux. Auch heute liegt dieser Windowmanager jeder Distribution bei.

Fvwm wurde mit dem Ziel ins Leben gerufen, einen Windowmanager mit geringen Hardwareanforderungen zu präsentieren (Speicherverbrauch < 1 MByte), der die in ihm laufenden Anwendungen mit einem 3D-Outfit - analog zu Motif's mwm - austattet. Der Fvwm2 stellt in seiner Grundfunktionalität nur einen einfachen virtuellen Desktop bereit. Die Vielgestaltigkeit des Managers ergibt sich erst durch die Verwendung der im Paket enthaltenen Module.

Der »fvmw2« ist hochgradig konfigurierbar, wenngleich das Einrichten der Ressourcen-Datei wohl eher dem Konsolenfreund entgegen kommt.

Die aktuell stabile Version 2.2.4 kennzeichnet folgende Eigenschaften:

  • Dynamische Erweiterung mittels Modulen
  • Wahlweise mit Tastatur und/oder Maus bedienbar
  • Echt-Farben Icons
  • Möglichkeit des Erzeugens einer Konfigurationsdatei mit dem Makroprozessor M4
  • Unterstützung mehrerer Bildschirme
  • Animation von Fensterbewegungen
  • Themen, Sounds,...
Die Elemente des Fvwm2 Zurück Anfang Weiter

Den typischen Aufbau eines Desktops mit dem Windowmanager Fvwm2 zeigt folgende Abbildung.

Desktop des Fvwm2

Abbildung 1: Desktop des Fvwm2

Im oberen Teil ist das Modul FvwmButton zu sehen, in ihm sind integriert (von links nach rechts):

  • Das Modul FvwmPager, das die verschiedenen virtuellen Desktops symbolisiert. Der aktive Desktop ist dunkel hinterlegt. Durch Klick auf das Symbol wird zu einem anderen Desktop gewechselt.
  • Die Anwendungen »xeyes«, »xclock« und »xbiff«
  • Zugänge zu Menüs »Fvwm2«, »SuSE«, »Graphic«, »Tools« und »Shells«. Bei Anklicken eines der Symbole öffnen sich Untermenüs, die weitere Menüs oder Anwendungen enthalten.

Des Weiteren sind auf dem Desktop die Anwendungen »xterm» (Mitte), »xmessages» (links unten), »xosview« (rechts unten) und das Icon der Anwendung »gimp« zu sehen.

Klickt man mit der rechten Maustaste auf den Desktophintergrund, öffnet sich das »Alles«-Menü. Bei der Standardkonfiguration ist dieses auch über die Tastenkombination [Alt]-[F1] erreichbar.

Fvwm2: Menü der rechten Maustaste

Abbildung 2: Fvwm2: Menü der rechten Maustaste

Die mittlere Maustaste (bei 2-Tasten-Mäusen wird diese durch simultanes Drücken beider Tasten emuliert) oder die Tastenkombination [Alt]-[F2] führt zu einer Liste der aktiven Fenster.

Fvwm2: Menü der mittleren Maustaste

Abbildung 3: Fvwm2: Menü der mittleren Maustaste

Mittels der linken Maustaste oder der Tastenkombination [Alt]-[F3] öffnet sich das Arbeitsmenü.

Fvwm2: Menü der linken Maustaste

Abbildung 4: Fvwm2: Menü der linken Maustaste

Konfiguration des Fvwm2 Zurück Anfang Weiter

Allein das Manual zum »fvwm2« umfasst knapp 3000 Zeilen. Nicht ganz so umfangreich, dafür umso zahlreicher sind die Manuals zu den einzelnen Modulen. Hier alle Möglichkeiten der Konfiguration zu diskutieren, würden den Leser langweilen und den Autor überfordern... Ich beschränke mich deshalb auf die Vorstellung der wesentlichen Elemente des Desktops:

Den fvmw2 konfiguriert man über eine ASCII-Datei. Die globale Datei befindet sich unter »/usr/X11R6/lib/X11/fvwm2/system.fvwm2rc«. Normalerweise wird man diese unverändert lassen, und eine lokale Kopie mit dem Namen ~/.fvwm2rc bearbeiten.

Konfiguration - Globale Einstellungen Zurück Anfang Weiter

Die Suchpfade

Der »fvwm2« benötigt zunächst Kenntnis, wo er seine Module, die Pixmaps (kleine Bildchen) und Icons (Symbole für verkleinerte Anwendungen) zu suchen hat:

ModulePath /usr/lib/X11/fvwm2
PixmapPath /usr/include/X11/pixmaps
IconPath   /usr/include/X11/bitmaps

Die Schriftarten

Weitere Einstellungen legen die verwendeten Schriftarten für die Fenstertitel und Icon-Unterschriften fest. Die meisten Leser wird die Angabe der Schriften verwirren, wer das Geheimnis zu lüften wünscht, sollte einmal das Programm »xfontsel« aufrufen.

Schriften konfigurieren mit »xfontsel«

Abbildung 5: Schriften konfigurieren mit »xfontsel«

WindowFont -adobe-times-bold-r-*-*-18-*-*-*-*-*-*-*
IconFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*

Konfiguration - Die Fenster Zurück Anfang Weiter

Mit Style kann das Aussehen jedes einzelnen Fensters und der Module gesteuert werden. Die Syntax der Styles besitzt folgendes Format:

Style "<Fenstertitel>" <Definitionen>

»Fenstertitel« steht dabei für den konkreten Programmnamen (z.B. »xosview«), alle Programme (»*«) oder einer Kombination aus beiden (»Fvwm*«). Als Definitionen sind u.a. zulässig (mehrere Definitionen werden durch Kommas getrennt):

BackColor

Hintergrundfarbe der Fensterdekoration

BackColor #00f0e4

BorderWidth

Rahmenbreite in Pixel

BorderWidth 5

ClickToFocus

Das Fenster wird erst fokussiert, sobald ein Mausklick in dieses erfolgt

ClickToFocus

Icon

Icon, das beim Verkleinern des Fensters dargestellt werden soll. Das Icon muss im Icon-Suchpfad liegen!

Icon Terminal.xpm

IconBox

Wo und in welcher Größse soll ein Icon auf dem Desktop erscheinen?
Angabe der Position: linke obere Ecke (x,y), rechte untere Ecke (x,y); ein »+« vor dem Wert besagt, dass die Position relativ zum linken, oberen Desktop-Rand ist

IconBox +55 +85 +130 +480

IconFill

Mehrere Icons werden in einem bestimmten Gitter, ausgehend von der ersten Position (IconBox) dargestellt. Ein neues Icon wird dabei in das erste freie Gitterfeld platziert. Mit IconFill kann die Ausrichtung der Darstellung beeinflusst werden. Voreingestellt ist: erst von links nach rechts, dann von oben nach unten.

IconFill Bottom Right

ForeColor

Farbe der Fensterüberschrift

ForeColor Black

MouseFocus

Das Fenster erhält den Fokus, sobald der Mauszeiger über diesem steht

ForeColor MouseFocus

NoTitle

Unterdrückt die Darstellung der Fenstertitelleiste (Voreinstellung ist »Title«)

NoTitle

SloppyFocus

Wie »MouseFocus«, jedoch verliert das Fenster den Fokus erst, wenn die Maus in eine anderes »MouseFocus«-Fenster wechselt oder ein »ClickToFocus«-Fenster aktiviert wird

SloppyFocus

StaysOnTop

Das Fenster wird auf jedem Desktop dargestellt

StaysOnTop

Sticky

Das Fenster ist auf allen virtuellen Desktops vorhanden (Voreinstellung ist »NoSticky«)

Sticky

UseDecor

Zur Verwendung eines mit AddToDecor erzeugten Aussehens

UseDecor DemoDecor

WindowListSkip

Das Fenster erscheint nicht in der Fensterliste (z.B. im Menü der mittleren Maustaste)

WindowListSkip

Beispielhaft sollen die Gestaltung des FvmwButtons und der Anwendung »xterm« sowie einige Einstellungen, die alle Anwendungen betreffen, skizziert werden:

Style  "FvwmButtons"         NoTitle, Sticky, WindowListSkip
Style  "xterm"               Icon Terminal.xpm

Style  "*"                   BackColor Grey
Style  "*"                   ForeColor DimGrey

Konfiguration - Die Schalter der Fenster Zurück Anfang Weiter

Die Fensterleiste enthält meist mehrere Buttons, z.B. zum Minimieren, Maximieren oder Schließen des Fensters. Die Konfiguration der Buttons erfolgt mit dem Kommando ButtonStyle:

ButtonStyle button [ state ] [ style ] [ -- [!]flag ... ]

button kann eine Nummer zwischen 0 und 9 enthalten. Die Reihenfolge der Nummerierung ist dabei sehr seltsam: 1 3 5 7 9 0 8 6 4 2, wobei die Buttons mit ungerader Nummer links- und die anderen rechtsbündig angeordnet werden. Steht im Feld »button« »ALL«, werden alle Buttons durch das Kommando konfiguriert. »Left« und »Right« sprechen den linken bzw. rechten Schalter an. Mit »Reset« werden alle Schalter in die Voreinstellung versetzt.

state kann entfallen, dann gelten die Einstellungen für den Schalter in jedem Status. Steht dort »ActiveUp«, bezieht sich die Konfiguration auf einen nicht-gedrückten Schalter, »ActiveDown« bezeichnet den gedrückten Schalter. »Inactive« konfiguriert den Schalter eines inaktiven Fensters.

style betrifft nun das tatsächliche Aussehen des Buttons. Eine kleine Auswahl an Styles soll die Mannigfaltigkeit der Konfiguration andeuten:

Default

Setzt voreingestellte Werte, eine optionale Nummer setzt anstelle des durch »button« bezeichneten Schalters die Werte des Schalters dieser Nummer. So setzt folgende Zeile die Aussehen der Schalter 1 und 3 gleich:

ButtonStyle 1 default 3

Solid

Setzt die Farbe des Buttons:

ButtonStyle Left solid blue

Vector

Zeichnet Linien in einen Schalter. Dem Schlüsselwort folgen die Anzahl der Punkte und anschließend die Koordinaten für jeden Punkt in der Form »x-Koordinatexy-Koordinate@Farbe«. »Farbe« kann dabei "1" oder "0" sein, je nachdem, ob mit der Vorder- oder Hintergrundfarbe gezeichnet werden soll:

ButtonStyle 4 Vector 4 50x74@1 25x24@1 75x24@1 50x74@0

Pixmaps

Dem Schlüsselwort folgt der Name einer Pixmap-Datei. Somit kann anstelle des Schalters ein Bild eingeblendet werden:

ButtonStyle 4 ActiveUp (Pixmaps icon_up.xpm) ActiveDown (Pixmaps icon_down.xpm)
ButtonStyle 4 Inactive Pixmap inactive.xpm

MiniIcon

Das Mini-Symbol der Anwendung wird im Schalter dargestellt. Die Verbindungen von Anwendungen und MiniIcon-Dateien muss zuvor mit dem Style-Kommando definiert werden:

Style "xterm" MiniIcon mini-term.xpm
ButtonStyle 1 MiniIcon

flag letztlich bestimmt das Verhalten des Schalters, wenn er gedrückt wird. Mehrere Flags können, durch Leerzeichen voneinander getrennt, angegeben werden. Die Auswahl kann durch ein vorangestelltes Ausrufezeichen negiert werden.

Mögliches Aussehen von Schaltern

Abbildung 6: Mögliches Aussehen von Schaltern

Die Schalter der Abbildung werden durch folgende Konfiguration erzeugt:

DestroyDecor DecorDemo
AddToDecor DecorDemo
+ TitleStyle Height 30
+ TitleStyle (Solid gray -- Flat)
+ ButtonStyle 1 8 40x80@1 40x50@1 20x50@1 50x20@1 80x50@0 60x50@0 60x80@0 40x80@0
+ ButtonStyle 3 8 40x20@1 40x50@1 20x50@1 50x80@1 80x50@0 60x50@0 60x20@0 40x20@1
+ ButtonStyle 5 8 80x40@1 50x40@1 50x20@1 20x50@1 50x80@0 50x60@0 80x60@0 80x40@0
+ ButtonStyle 7 8 20x40@1 50x40@1 50x20@1 80x50@1 50x80@0 50x60@0 20x60@0 20x40@1
+ ButtonStyle 9 12 10x50@1 35x25@1 35x40@1 65x40@1 65x25@1 90x50@1 65x75@0 65x60@0 35x60@0 35x75@0 10x50@0 10x50@1
+ ButtonStyle 0 12 50x10@1 25x35@1 40x35@1 40x60@1 25x60@1 50x85@1 75x60@0 60x60@0 60x35@0 75x35@0 50x10@0 50x10@1
+ ButtonStyle 8 11 80x20@1 45x20@1 55x30@1 30x55@1 20x45@1 20x80@1 55x80@0 45x70@0 70x45@0 80x55@0 80x20@0
+ ButtonStyle 6 11 20x20@1 55x20@0 45x30@0 70x57@0 80x45@0 80x80@0 45x80@1 57x70@1 30x45@1 20x55@1 20x20@1
+ ButtonStyle 4 14 20x20@1 20x70@1 70x70@0 70x20@0 20x20@1 60x60@0 60x50@0 60x60@0 50x60@0 60x60@0 60x80@0 80x80@0 80x60@0 60x60@0
+ ButtonStyle 2 12 10x23@0 90x23@0 90x28@0 10x28@1 10x47@1 90x47@0 90x52@0 10x52@1 10x70@2 90x70@0 90x76@0 10x76@1

Konfiguration - (Re)Starteinstellungen Zurück Anfang Weiter

Der Windowmanager »fvwm2« kennt zwei spezielle Funktionen. InitFunction wird beim ersten Aufruf des Managers aufgerufen und RestartFunction ist der Ansprungspunkt nach einem Neustart. Beide Funktionen sind identisch aufgebaut und dienen dazu, den »fvwm2« beim (Re)Start weitere Programme aufrufen zu lassen. Wir widmen uns nur der »InitFunction«.

AddToFunc InitFunction
  +      "I"     Module FvwmBanner
  +      "I"     Exec susewmif xmessages
  +      "I"     Exec xterm -ls -geometry +150+85
  +      "I"     Exec xosview -geometry 175x135-10-10
  +      "I"     Module FvwmButtons
  +      "I"     Exec xpmroot /usr/X11R6/include/X11/icons/private.xpm

AddToFunc gelangt stets zum Einsatz, wenn es um das Hinzufügen einer Aktion zu einer Funktion geht. Jede Zeile, die noch zur Funktionsdefinition gehört, muss mit einem Plus + eingeleitet werden. "I" besagt, dass die Aktion unmittelbar auszuführen ist. Mit Module wird der Start eines fvwm-Modules eingeleitet, alle anderen Programme sind hinter Exec anzugeben, wobei das erste Argument als Programmname und alle weiteren bis Zeilenende als Optionen für das Programm verwendet werden.

Die Module des »fvwm2« sollten unbedingt in die RestartFunction aufgenommen werden, da diese im Gegensatz zu fvwm2-unabhängigen Programmen einen Neustart nicht überleben.

Konfiguration - Aktionen mit der Maus Zurück Anfang Weiter

Die Maus ist das wichtigste Eingabegerät unter X. Prinzipiell kann alles so konfiguriert werden, dass sämtliche Aktionen per Tastenkombinationen erreichbar sind, aber wer kann sich schon all die Tastenkürzel merken?

Das Aussehen des Mauszeigers

In Abhängigkeit von der Umgebung kann der Mauszeiger seine Optik verändern. Hierzu ist die Option CursorStyle zu verwenden, die als Argument den Bezeichner des Kontexts und die (gerade) Nummer des Stils erhält. Einige der Kontexte sind:

title

Wenn sich der Mauszeiger über einen Fenstertitel bewegt

DEFAULT

Überall dort, wo kein eigener Stil definiert wurde

SYS

Schalter der Fensterleiste

MOVE

Beim Bewegen, Ändern der Größe eines Fensters

WAIT

Während ein Programm ausgeführt wird

MENU

In Menüs

DESTROY

Wenn ein Fenster geschlossen/zerstört wird

LEFT | RIGHT

Linker/rechter Fensterrahmen

BOTTOM_LEFT

In der linken unteren Fensterecke (TOP_LEFT... analog)

Das Aussehen des Mauszeigers wird als gerader numerischer Wert angegeben. Welcher Wert für welchen Zeigertyp steht, kann der Datei »/usr/X11R6/include/X11/cursorfont.h« entnommen werden.

CursorStyle title 58
CursorStyle DEFAULT 68
CursorStyle DESTROY 124

Aktionen beim Mausklick

Das Binden einer Aktion an eine bestimmte Maustaste folgt immer dem selben Schema:

Mouse <Taste> <Kontext> <Modifizierer> <Funktion>

Taste entspricht der Tastennummer (0 alle, 1 links, 2 Mitte, 3 rechts), Kontext der Umgebung, für die die Definition zutrifft. Hier steht R für das Root-Fenster (Desktop), W für ein Anwendungsfenster. Weiterhin betrifft T den Fenstertitel, S den Rahmen, F die Ecken eines Fensters und A steht stellvertretend für jeden Kontext. 0 bis 9 binden Aktionen an die gleichnamigen Schalter der Fensterleiste.

Mit den Modifizieren kann gesteuert werden, ob die Mausaktion erst in Verbindung mit einem Tastendruck ausgelöst wird. Hierbei gilt N für »keine« Tastenbetätigung, A für »egal welche«, C für [Ctrl], M für [Alt] und S für [Shift]. Kombinationen sind zugelassen, dann müssen neben der Maustaste auch noch die angegebenen Tasten der Tastatur gedrückt sein. Schließlich ist Funktion eine der fvmw-Funktionen oder auch eine selbst definierte. Wird an ihrer Stelle ein Minus eingesetzt, so wird eine bestehende Bindung aufgehoben.

Das folgende Beispiel startet das Programm »gimp«, sobald auf dem Desktop die linke Maustaste zusammen mit [Ctrl]-[Shift] gedrückt wird:

AddToFunc StartGimp
 +   "I" Exec gimp

Mouse 1 R CS StartGimp

Obiges Beispiel funktioniert sogar, wenn zuvor die Mausaktion für das Rootfenster mit dem Kontext "A" (jede Taste) verbunden wurde. In diesem Fall überschreibt die Konfiguration nur die Aktion für diese eine Tastenkombination. Die übliche Konfiguration verbindet die Mausklicks auf dem Desktop mit dem Eröffnen von Menüs:

Mouse   1      R     A   Menu    Work_menu316popup   Nop
Mouse   2      R     A   Module  FvwmWinList  Transient
Mouse   3      R     A   Menu    SuSE0popup   Nop
Mouse   2      FST   A   Menu    windowops    Nop

Konfiguration - Aktionen mit der Tastatur Zurück Anfang Weiter

Das Binden bestimmter Tastaturereignisse an bestimmte Aktionen erfolgt ähnlich dem Vorgehen bei der Maus. Der Aufruf lautet:

Key <Tastenname> <Kontext> <Modifizierer> <Funktion>

Der Tastenname kann der Datei »/usr/include/X11/keysymdef.h« entnommen werden, wobei das führende »XK_« zu streichen ist. Kontext, Modifizierer und Funktion sind genauso zu verwenden, wie unter Aktionen mit der Maus beschrieben.

Das Beispiel ermöglicht das Bewegen des Mauszeigers mit den Navigationstasten der Tastatur bei gleichzeitigem Drücken der [Shift]-Taste. Hierbei gelangt die Funktion CursorMove zum Einsatz, die den Mauszeiger um den angegebenen Wert in x,y-Richtung verschiebt:

Key  Left  A S CursorMove -1 +0
Key  Right A S CursorMove +1 +0
Key  Up    A S CursorMove +0 -1
Key  Down  A S CursorMove +0 +1

Konfiguration - Ein eigenes Menü Zurück Anfang Weiter

Menüs gehören zum guten Stil eines jeden Windowmanagers. In ihnen sammelt man alle Programme, die über einen Mausklick erreichbar sein sollen. Während bspw. KDE seine Programme während der Installation (fast immer) automatisch in die Menüstruktur integriert, ist bei den meisten Windowmanagern ein manueller Eingriff erforderlich. Da helfen auch nicht solche Skripte wie sie SuSE-Linux beiliegen, die nach jeder Installation eines neuen Paketes für die wichtigsten Manager neue Konfigurationen erstellen. Das Programm, das ich eigentlich benötige, wurde garantiert nicht aufgenommen!

Im Falle des fvwm2 wird ein Menü mit AddToMenu erzeugt:

AddToMenu <Menüname> [<Menüüberschrift> [Title]]

Menüname ist ein eindeutiger Bezeichner, über den in anderen Stellen der Konfiguration auf das Menü Bezug genommen werden kann. Die optionale Menüüberschrift wird als als erster Eintrag des Menüs dargestellt und das optionale Title zentriert diese Überschrift und trennt die nachfolgenden Einträge durch eine Linie ab.

Um nun die Einträge einem Menü hinzuzufügen, bedient man sich folgender Syntax:

 + "&Bezeichner%Iconname%" <Aktion>
 + "B&ezeichner*Iconname*" <Aktion>

Bezeichner ist ein (leerer) Text, der im Eintrag erscheinen soll. Das & kennzeichnet den nachfolgenden Buchstaben als »Shortcut«, über den der Menüeintrag per Tastatur angewählt werden kann. Iconname ist der Dateiname des Pixmaps, das als Grafik im Eintrag platziert wird. Die Datei muss im Pfad der Pixmaps (siehe Globale Einstellungen) zu finden sein. Der Iconname wird entweder in zwei * oder % eingeschlossen. In ersten Fall wird der Bezeichner unter der Grafik dargestellt, im zweiten rechts dieser. Aktion ist die zu rufende Funktion, wenn der Menüeintrag selektiert wurde.

Beispiel: Ein Menü soll den Zugang zu den Grafikverarbeitungsprogrammen gimp und xfig realisieren:

AddToMenu StartGrafik "Grafikprogramme" Title
 +  "&Gimp%xgrab.xpm%" Exec gimp
 +  "" Nop
 +  "&Xfig%xfig.xpm%" Exec xfig

Erläuterung: Als Titelzeile soll im Menü »Grafikprogramme« stehen, Das Programm gimp soll neben der Maus auch mit der Taste [G] gestartet werden können. Als Grafik gelangt »xgrab.xpm« zum Einsatz. Die zweite Zeile erzeugt eine Linie, nop besagt, dass damit keine Aktion verbunden ist. Der dritte Eintrag schließlich fügt xfig hinzu, das über die Taste [X] aufgerufen werden kann. Folgende Abbildung zeigt das fertige Menü:

Ein eigenes Menü

Abbildung 7: Ein eigenes Menü

Jetzt haben wir zwar ein Menü aber noch keine Möglichkeit, auf dieses zuzugreifen. Beispielhaft soll das Menü erscheinen, wenn wir die Tasten [F1]-[Shift]-[Ctrl] (unabhängig vom Kontext) drücken und bei Klick mit der linken Maustaste auf den Desktop bei gleichzeitigem Betätigen der Tasten [Shift]-[Ctrl]:

Key F1 A CS Menu StartGrafik
Mouse 1 R CS Menu StartGrafik

Erläuterung: Wichtig ist Menu, um die Bindung mit einem Menü zu veranlassen.

Ein Menü kann selbst weitere Untermenüs enthalten, ein entsprechender Eintrag in AddToMenu sieht wie folgt aus:

 + "&Bezeichner%Iconname%" Popup <Menüname>

Die Definition des Untermenüs folgt exakt den Regeln eines »normalen« Menüs.

Konfiguration - Das Modul FvwmButtons Zurück Anfang

Das Modul FvwmButtons

Abbildung 8: Das Modul FvwmButtons

Die Module sind eine Erweiterung des fvwm2, die zur eigenen Arbeit allerdings einen aktiven Windowmanager benötigen. Die Module selbst werden mit dem Schlüsselwort Module geladen und verwenden den Pipemechanismus zur Kommunikation mit dem fvwm. Stellvertretend für den Umgang mit Modulen soll die Konfiguration des FvwmButtons dienen, also des Modules, das in vielen anderen Managern unter dem Begriff "Startleiste" existiert.

Das Modul FvmwButtons kann sowohl Icons beherbergen, über die bestimmte Funktionen zugänglich werden, als auch Programme, die innerhalb des Buttons ausgeführt werden. Im links abgebildeten Beispiel ist das Modul FvwmPager innerhalb des Buttons aktiv (ganz unten), der das Umschalten zwischen den einzelnen virtuellen Desktops ermöglicht.. Werfen wir kurz einen Blick auf dessen Konfiguration:

DeskTopSize 2x2

*FvwmPagerRows 1
*FvwmPagerColumns 1
*FvwmPagerGeometry -0+0
*FvwmPagerFore Black
*FvwmPagerBack grey67
*FvwmPagerHilight grey50
*FvwmPagerSmallFont -misc-fixed-medium-r-normal--7-70-75-75-c-50-iso8859-1
*FvwmPagerLabel * Desktop

Erläuterung: DeskTopSize bedingt nicht die Existenz des FvwmPagers, sondern ist eine Option des fvwm und legt die Anzahl der virtuellen Desktops fest (hier 2 in horizontaler und 2 in vertikaler Richtung). Der Pager selbst mappt die Desktops in seinen Bereich. Die beiden folgenden Zeilen definieren die Ausdehnung (1 Zeile, 1 Spalte) des Pagers, die nächste Zeile bestimmt die relative Position der Darstellung. Weitere Optionen legen die Farben für Vorder- und Hintergrund, sowie für den gerade aktiven Desktop fest. Der letzte Eintrag setzt »Desktop« als Überschrift des Pagers (* weist den Titel allen Desktops zu; hier kann für jeden Desktop ein eigener Titel definiert werden).

Bedienung des FvwmPagers: Indem Sie mit der rechten Maustaste auf das Symbol eines Desktops klicken, wird zu diesem gewechselt. Klicken Sie gezielt auf das Symbol einer Anwendung, erhält diese zugleich den Fokus. Auch lassen sich die Anwendungen zwischen den verschiedenen Deskops verschieben, indem Sie mit der mittleren Maustaste das Symbol fixieren und auf den neuen Desktop ziehen.

Der »FvwmButton« wurde durch folgende Einstellungen erzeugt:

*FvwmButtonsFont      6x13
*FvwmButtonsFore      Black
*FvwmButtonsBack      grey67
*FvwmButtonsGeometry  +0+0
*FvwmButtonsColumns   2
*FvwmButtons - - Swallow "FvwmXeyes" Exec xeyes -name "FvwmXeyes" -geometry +0+0 -bg grey67 &
*FvwmButtons - - Swallow "FvwmXclock" Exec xclock -name "FvwmXclock" -geometry +0+0 -padding 1 -bg grey67 &
*FvwmButtons - - Swallow "coolmail" Exec coolmail -geometry +0+0 -vol 100 -int 12 -e "xterm -g 80x36 -e pine" &
*FvwmButtons Fvwm2 window3d.xpm Menu WindowManager324popup
*FvwmButtons SuSE logo_suse_3d.xpm Menu barsusepopup
*FvwmButtons Graphics palette3_3d.xpm Menu bargraphicspopup
*FvwmButtons Tools box_full_3d.xpm Menu bartoolspopup
*FvwmButtons Shells Shell.xpm Menu barshellspopup
*FvwmButtons (2x1 Frame 0 Swallow(UseOld) "FvwmPager" "Module FvwmPager 0 0")
 Korrekturen, Hinweise?
Startseite Nächste Seite Nächstes Kapitel Vorherige Seite Kapitelanfang