# fvwm2

Die globale Einstellung wird durch die Datei `/usr/X11R6/lib/X11/fvwm2/.fvwm2rc` gesteuert. Um eigene Einstellungen vorzunehmen, speichert man sich diese Datei im Heimatverzeichnis unter dem Namen`.fvwm2rc` ab. Wer sich die soeben kopierte Datei zu Gemüte führt, wird vielleicht vor der Fülle der Einstellungen zurückschrecken (ca. 2500 Zeilen). An dieser Stelle möchte ich auch nicht auf alle Details eingehen, sondern nur einige wenige Konfigurationen modifizieren. Wer sich mit der Materie umfassend auseinanderzusetzen wünscht, sollte einen Blick in das Manual zum `fvwm2` werfen. Zunächst nehmen wir einige globale Einstellungen (Auswahl) vor; diese sollten zu Beginn der Datei stehen:

`# Anzahl virtueller Desktops auf 12 (Format 4 x 3) # DeskTopSize 4x3 # Wie verhaelt sich die Farbdarstellung bei Mausbewegung? # ColormapFocus FollowsMouse # Zeit fuer Mausklick # ClickTime 750 # Module befinden sich in diesem Pfad # ModulePath /usr/X11R6/lib/X11/fvwm2 # ... und Bitmaps hier # PixmapPath /usr/X11R6/include/X11/3dpixmaps/small:#...weitere # Pfade fuer Icons # IconPath /usr/X11R6/include/X11/bitmaps # Farbe Fenstertitel und Fensterrahmen # HilightColor Black CadetBlue # Schriften fuer Fenster und Icons # WindowFont -misc-fixed-bold-r-normal-*-13-*-75-75-c-80-iso8859-1 IconFont -misc-fixed-medium-r-normal-*-10-*-75-75-c-60-iso8859-1 # Fokussiertes Fenster in den Vordergrund (Autoraise) # Module FvwmAuto 200 #`

Damit ist die Fülle globaler Einstellungen noch lange nicht erschöpft, so lassen sich z.B. die Icons beliebig positionieren, mit der Maus über den Bildschirmrand hinaus in andere Desktops scrollen... Wir wenden uns aber den Einträgen in den Menüs zu. Startet man den `fvwm2`, erscheint ein oberer Button, dessen Optik durch ein Modul mit dem Namen `FvwmButtons` gesteuert wird. Schauen wir uns die einzelnen Möglichkeiten zu dessen Konfiguration genauer an:

`# generelles Aussehen: # *FvwmButtonsFont 6x13 nbsp;nbsp;nbsp;nbsp;nbsp;nbsp; # Schriftgroesse *FvwmButtonsFore Blacknbsp;nbsp;nbsp;nbsp;nbsp;nbsp; # Schriftfarbe *FvwmButtonsBack grey67nbsp;nbsp;nbsp;nbsp; # Hintergrundfarbe *FvwmButtonsGeometry +0+0nbsp;nbsp; # relative Bildschirmposition # Anzahl Spalten fuer den Button # *FvwmButtonsRows 1 # Groesse des Feldes fuer den virtuellen Desktop und # absolute Position innerhalb des Buttons (0 0) # ACHTUNG: geänderte Syntax in neueren Versionen: # *FvwmButtons (2x1 Frame 0 Swallow(UseOld) "FvwmPager" "Module FvwmPager 0 0") # *FvwmButtons (2x1) - - Swallow "FvwmPager" Module FvwmPager 0 0 # manche Buttons werden direkt mit Programmen verbunden # Position ist relativ angegeben (+0+0) "linksbuendig anordnen" # *FvwmButtons - - Swallow "FvwmXeyes" Exec xeyes -name "FvwmXeyes" -geometry +0+0 -bg grey67 & # manche Buttons werden mit einem Menue verbunden # *FvwmButtons <Menuetext> <Bitmap> Function <Functionname> # *FvwmButtons Fvwm2... window3d.xpm Function barthiswmpopupfunc #`

Damit stehen uns alle Kenntnisse zur Verfügung, um ein eigenes Menü hinzuzufügen. In diesem sollen die Editoren `vi` und `xemacs` erscheinen. Außerdem ändern wir die Wirkung des Mailbuttons dahingehend, dass nun nicht das Programm `pine`, sondern der Mailclient von Netscape (dieser ist allerdings noch zu konfigurieren) gestartet wird:

`# Modifizierung des FvwmButtons fuer den Mailaufruf # *FvwmButtons - - Swallow "coolmail" Exec coolmail -geometry +0+0 -vol 100 -int 12 -e "netscape -messanger" & # Erzeugen eines Eintrages in der Buttonleiste: # *FvwmButtons Editors... pencil_3d.xpm Function bareditpopupfunc # Was soll die Funktion realisieren? Sie soll ein Untermenue # oeffnen.Das "I" bewirkt, dass bei Fokussierung des Buttons jede # Aktion (beliebiger Mausklick, Enter) die Funktion ausloest: # AddToFunc bareditpopupfunc + "I" Popup bareditpopup # das Untermenue "bareditpopup" muss noch erzeugt werden # AddToMenu bareditpopup "Editors" Title + "Vi*wordprocess_3d.xpm*" Exec xterm -e vi + "Xemacs*emacs_3d.xpm*" Exec xemacs #`

Nach dem Neustart des `fvwm2` steht uns nun ein Button "Editors..." zur Verfügung. Klicken wir auf diesen, öffnet sich ein Untermenü mit der Überschrift "Editor" und den beiden Einträgen "Vi" (als Bitmap dient wordprocess_3d.xpm) und "Xemacs" (emacs_3d.xpm). Die Auswahl eines der Einträge bewirkt den Start von `xemacs` bzw. eines `xterm`, in dem wiederum der `vi` gestartet wird.

Betrachten wir nun noch, wie ein Eintrag in ein mit der Maus erreichbares Menü gelangt. Dazu verfolgen wir die Realisierung des Menüs, das mittels der rechten Maustaste eröffnet wird:

`# Die rechte Maustaste wird an das Menue gebunden # Mouse 3 R A Menu allpopup Nop # ueber die Tasten ALT-F3 ist ebenfalls das Menue erreichbar # Key F3 A M Menu allpopup # das Menue selbst... # AddToMenu allpopup "Alles" Title + "&System-Werkzeuge%small.sysinfo_3d.xpm%" Popup systempopup + "&Programmieren%small.program_3d.xpm%" Popup develpopup + "Ed&itoren%small.TextEditor.xpm%" Popup editorpopup + "Prod&uctivity%small.edit_doc_3d.xpm%" Popup prodpopup + "&Multimedia%small.Multimedia3.xpm%" Popup multimediapopup + "&Dokumentation%small.helpme_3d.xpm%" Popup helppopup + "Bildschi&rm%small.window3d.xpm%" Popup wmpopup + "Spi&ele%small.Game.xpm%" Popup gamespopup # als Beispiel betrachten wir das Untermenue <helppopup> # AddToMenu helppopup "Dokumentation" Title + "&SuSE Hilfesystem%small.logo_suse_3d.xpm%" Exec hilfe + "" Nop # Linie darstellen + "&XMan%small.xman3d.xpm%" Exec xman + "&TkMan%small.library_3d.xpm%" Exec tkman + "" Nop + "&Howto%small.question2_3d.xpm%" Popup h #`

Wie man erkennt, wird mit`AddToMenu <menuname> "<Text>" Title` ein neues Menü eingeleitet, und jeder Eintrag besitzt die Form `+ "<&Text>%<Bitmap>%" <was ist zu tun>`. Ein vorgestelltes `&` erklärt den nachfolgenden Buchstaben zum Shortcut für den Eintrag; die zugehörige Bitmap wird zwischen Prozentzeichen `%` angegeben. Schließlich wird die auszuführende Aktion angegeben. Hierbei kann es sich um die Ausführung eines Programmes handeln `Exec <programm>`, um ein weiteres Untermenü `Popup <subpopupname>`, oder aber um keine Operation `Nop`.