Übersicht |
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:
Die Elemente des Fvwm2 |
Den typischen Aufbau eines Desktops mit dem Windowmanager Fvwm2 zeigt folgende Abbildung.
Abbildung 1: Desktop des Fvwm2
Im oberen Teil ist das Modul FvwmButton zu sehen, in ihm sind integriert (von links nach rechts):
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.
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.
Abbildung 3: Fvwm2: Menü der mittleren Maustaste
Mittels der linken Maustaste oder der Tastenkombination [Alt]-[F3] öffnet sich das Arbeitsmenü.
Abbildung 4: Fvwm2: Menü der linken Maustaste
Konfiguration des Fvwm2 |
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 |
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 |
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.
Abbildung 5: Schriften konfigurieren mit »xfontsel«
WindowFont -adobe-times-bold-r-*-*-18-*-*-*-*-*-*-* IconFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-* |
Konfiguration - Die Fenster |
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 |
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.
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 |
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 |
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?
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
DEFAULT
SYS
MOVE
WAIT
MENU
DESTROY
LEFT | RIGHT
BOTTOM_LEFT
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 |
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 |
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ü |
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ü:
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 |
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") |