FVWM2 Configuration File (.fvwm2rc)

#========================================================================#
# Fonts - one for window titles, another for icons, and another for the menus

WindowFont  -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
IconFont  fixed
MenuStyle Black Grey SlateGrey -adobe-helvetica-medium-r-*-*-*-140-*-*-*-*-*-* fvwm

Style "*"       ForeColor White
Style "*"       BackColor CornflowerBlue

HilightColor White IndianRed

TitleStyle LeftJustified Height 20

#========================================================================#

Style "*"       NoIcon
Style "*"       HintOverride
Style "*"       DecorateTransient
Style "*"       SloppyFocus
Style "*"       NoPPosition

Style "*"       MWMButtons
Style "*"       MWMDecor
Style "*"       MWMFunctions
Style "*"       MWMBorder

Style "*"       SmartPlacement
Style "*"       RandomPlacement
Style "*"       BorderWidth 6
Style "*"       HandleWidth 6
Style "*"       StickyIcon

OpaqueMoveSize  100
EdgeScroll      100 100
EdgeResistance  10000 0
XORValue        255

#========================================================================#
# Set the desk top size in units of virtual screens

DeskTopSize 3x2

#========================================================================#
# Paths

PixmapPath /usr/X11R6/include/X11/pixmaps/:/home/hgriggs/olddata/pixmaps
IconPath   /usr/X11R6/include/X11/bitmaps/:/home/hgriggs/olddata/pixmaps

#========================================================================#
# Decoration styles

Style "*" BorderWidth 5, HandleWidth 5

Style "Fvwm*"        NoTitle, Sticky, WindowListSkip
Style "Fvwm Pager"   StaysOnTop, NoHandles
Style "FvwmBanner"   StaysOnTop
Style "FvwmButtons"  NoTitle, NoHandles, Sticky, WindowListSkip
Style "FvwmTaskBar"  NoTitle, Sticky, WindowListSkip, CirculateSkip

Style "*lock"        NoTitle, NoHandles, Sticky, WindowListSkip
Style "xbiff"        NoTitle,            Sticky, WindowListSkip

#========================================================================#
# Stuff to do at start-up

AddToFunc "InitFunction"
+ "I" Module FvwmBacker
+ "I" Module FvwmBanner
+ "I" Module FvwmButtons
+ "I" Module FvwmTaskBar
+ "I" Module FvwmAuto 600

AddToFunc "RestartFunction"
+ "I" Module FvwmBacker
+ "I" Module FvwmBanner
+ "I" Module FvwmButtons
+ "I" Module FvwmTaskBar
+ "I" Module FvwmAuto 600

#========================================================================#
# Functions

# This one moves and then raises the window if you drag the mouse,
# only raises the window if you click, or does a full maximize if 
# you double click
#
AddToFunc "Move-or-Raise" "M" Move
+                         "M" Raise
+                         "C" Raise
+                         "D" Maximize 100 100

#
# This one moves and then lowers the window if you drag the mouse,
# only lowers the window if you click, or does a RaiseLower if you double 
# click
#
AddToFunc "Move-or-Lower" "M" Move
+                         "M" Lower
+                         "C" Lower
+                         "D" RaiseLower

#
# This one moves or (de)iconifies:
#
AddToFunc "Move-or-Iconify" "M" Move
+                           "D" Iconify

#
# This one resizes and then raises the window if you drag the mouse,
# only raises the window if you click,  or does a RaiseLower if you double 
# click
#
AddToFunc "Resize-or-Raise" "M" Resize
+                           "M" Raise
+                           "C" Raise
+                           "D" RaiseLower


#========================================================================#
# Menus

DestroyMenu "Shells"
AddToMenu "Shells" "Shells" Title
+ "xterm (9x15)"        Exec xterm -rightbar -sb -sl 500 -j -ls -fn 9x15
+ ""                    Nop
+ "xterm (Tiny 5x7)"    Exec xterm -rightbar -sb -sl 500 -j -ls -fn 5x7
+ "xterm (Small 6x10)"  Exec xterm -rightbar -sb -sl 500 -j -ls -fn 6x10
+ "xterm (Medium 7x13)" Exec xterm -rightbar -sb -sl 500 -j -ls -fn 7x13
+ "xterm (Large 9x15)"  Exec xterm -rightbar -sb -sl 500 -j -ls -fn 9x15
+ "xterm (Huge 10x20)"  Exec xterm -rightbar -sb -sl 500 -j -ls -fn 10x20
+ ""                    Nop
+ "color-xterm (9x15)"  Exec color-xterm -rightbar -sb -sl 500 -j -ls -fn 9x15
+ "rxvt (9x15)"         Exec rxvt -font 9x15 -ls
+ "Rxvt (7x14 font)"    Exec rxvt -font 7x14 -ls
+ "Rxvt (10x20 font)"   Exec rxvt -font 10x20 -ls

DestroyMenu "Screenlock"
AddToMenu "Screenlock" "Screenlock" Title
+ "Blank"               Exec xlock -nice 0 -mode blank
+ "Random"              Exec xlock -nice 0 -mode random

DestroyMenu "Games"
AddToMenu "Games" "Games" Title
+ "Backgammon"          Exec xgammon
+ "Solitaire"           Exec sol
+ "Mahjong Patience"    Exec mahjongg
+ "Mahjong"             Exec xmj
+ "Spider"              Exec spider
+ "Jewel"               Exec xjewel
+ "XEarth"              Exec xearth -proj merc -pos "fixed 0 45" -nolabel -nomarkers -nostars -night 60 -term 100

DestroyMenu "Accessories"
AddToMenu "Accessories" "Accessories" Title
+ "Font viewer"         Exec xfontsel
+ "Manual pages"        Exec xman
+ "Magnifying glass"    Exec xmag
+ "Oclock"              Exec oclock
+ "Top"                 Exec xterm -font 7x14 -T Top -n Top -e top
+ "System load"         Exec xload
+ "Xclipboard"          Exec xclipboard
+ "Xclock"              Exec xclock

DestroyMenu "Graphics"
AddToMenu "Graphics" "Graphics" Title
+ "Bitmap"              Exec bitmap
+ "Gimp"                Exec gimp
+ "GQView"              Exec gqview
+ "Xview"               Exec xview

DestroyMenu "Editors"
AddToMenu "Editors" "Editors" Title
+ "Emacs"               Exec emacs
+ "Font Select"         Exec xfontsel
+ "Ghostview"           Exec ghostview
+ "GVim"                Exec gvim
+ "xdvi"                Exec xdvi
+ "Xedit"               Exec xedit
+ "Xxgdb"               Exec xxgdb

DestroyMenu "Sound"
AddToMenu "Sound" "Sound" Title
+ "aumix"               Exec aumix
+ "gmix"                Exec gmix
+ "kmix"                Exec kmix
+ "Play CD"             Exec xplaycd
+ "XMMS"                Exec xmms

DestroyMenu "System"
AddToMenu "System" "System" Title
+ "Biff"                Exec xbiff
+ "Clipboard"           Exec xclipboard
+ "CPU State"           Exec xcpustate
+ "SysInfo"             Exec xsysinfo
+ "Oclock"              Exec oclock
+ "OS View"             Exec xosview
+ "Top"                 Exec rxvt -T Top -n Top -e top
+ "Xmag"                Exec xmag
+ "Xman"                Exec xman

DestroyMenu "Applications"
AddToMenu "Applications" "Applications" Title
+ "Acrobat"             Exec acroread
+ "Jpilot"              Exec jpilot
+ "Netscape"            Exec netscape -geometry 840x700+120+30
+ "StarOffice"          Exec /home/hgriggs/office52/soffice
+ "World Time"          Exec worldtime
+ "World Watch"         Exec worldwatch
+ "Ymessenger"          Exec ymessenger

# This menu is invoked as a sub-menu - it allows you to quit,
# restart, or switch to another WM.
#
DestroyMenu "Quit-Verify"
AddToMenu "Quit-Verify" "Really Quit Fvwm2?" Title
+ "Yes, Really Quit"    Quit
+ "No, Don't Quit"      Nop
+ ""                    Nop
+ "Restart"             Restart fvwm2
+ ""                    Nop
+ "Gnome"               Restart gnomesession
+ "KDE"                 Restart kde

#
# Provides a list of modules to fire off
#
DestroyMenu "Module-Popup"
AddToMenu "Module-Popup"
+ "Audio"               Module FvwmAudio
+ "Banner"              Module FvwmBanner
+ "Button Bar"          Module FvwmButtons
+ "Button Bar (Mini)"   Module FvwmButtons MiniButtons
+ "Clean-Up"            Module FvwmClean
+ "Configure"           Module FvwmConfig
+ "Debug"               Module FvwmDebug
+ "Task bar"            Module FvwmTaskBar
+ "Identify"            Module FvwmIdent
+ "Save Desktop"        Module FvwmSaveDesk
+ "Pager"               Module FvwmPager 0 0
+ "Window List"         Module FvwmWinList
+ "Talk"                Module FvwmTalk

#
# This is my main menu
#
DestroyMenu "MainMenu"
AddToMenu "MainMenu" "Main Menu" Title
+ "Applications"        Popup Applications
+ "Editors"             Popup Editors
+ "Games"               Popup Games
+ "Graphics"            Popup Graphics
+ "Accessories"         Popup Accessories
+ "Shells"              Popup Shells
+ "Sound"               Popup Sound
+ "System"              Popup System
+ ""                    Nop
+ "Lock Screen"         Popup Screenlock
+ ""                    Nop
+ "Modules"             Popup Module-Popup
+ ""                    Nop
+ "Refresh Screen"      Refresh
+ ""                    Nop
+ "Exit Fvwm"           Popup Quit-Verify

#
# This defines the most common window operations
#
DestroyMenu "Window"
AddToMenu "Window" "Window Ops" Title
+ "&Move"           Function Move-or-Raise
+ "&Resize"         Function Resize-or-Raise
+ "R&aise"          Raise
+ "&Lower"          Lower
+ "(De)Iconify"         Iconify
+ "(Un)Stick"           Stick
+ "(Un)Maximize"        Function maximize_func
+ ""                    Nop
+ "Kill"                Destroy
+ "&Close"          Delete
+ ""                    Nop
+ "Switch to..."        WindowList
+ "Refresh Screen"      Refresh

#
# A trimmed down version of "Window Ops", good for binding to decorations
#
AddToMenu "Window-Ops2" "∓Restore"         Iconify -1
+                       "&Move"           Move-or-Raise
+                       "&Size"           Resize-or-Raise
+                       "Mi&nimize"       Iconify 1
+                       "Ma&ximize"       Maximize 100 100
+                       ""                    Nop
+                       "&Kill"           Destroy
+                       "&Close  Alt+F4"  Delete

#========================================================================#
# One more complex function - couldn't be defined earlier because it used 
# pop-up menus
#
# This creates the "system" menu for the title-bar window-ops
# pop-up

AddToFunc "window_ops_func" "C" PopUp Window-Ops2
+              "M" PopUp Window-Ops2
+              "D" Delete


#========================================================================#
# Mouse bindings

# First, for the mouse in the root window
# Button 1 gives the MainMenu menu
# Button 2 gives the Window Ops menu
# Button 3 gives the WindowList (like TwmWindows)
# I use the AnyModifier (A) option for the modifier field, so you can hold down
# any shift-control-whatever combination you want!

# Button    Context Modifi    Function
Mouse 1     R       A         Menu "MainMenu" Nop
Mouse 2     R       A         Menu "Window Ops" Nop
Mouse 3     R       A         WindowList

# Now the title bar buttons
# Any button in the left title-bar button gives the window ops menu
# Any button in the first right title-bar button Iconifies the window
# Any button in the second title-bar button full-maximizes
# Note the use of "Mouse 0" for AnyButton.

#     Button  Context Modif   Function
Mouse 0   1       A       Function "window_ops_func"
Mouse 0   2       A       Maximize 100 100
Mouse 0   4       A       Iconify

# Now the rest of the frame
# Here I invoke my complex functions for Move-or-lower, Move-or-raise,
# and Resize-or-Raise. 
#
# Button 1 in the corner pieces, with any modifiers, gives resize or raise
Mouse 1         F      A        Function "Resize-or-Raise"
# Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
Mouse 1         TS     A        Function "Move-or-Raise"

# Button 1 in an icons gives move for a drag, de-iconify for a double-click,
# nothing for a single click
# Button 2 in an icon, w/ any modifiers, gives de-iconify
Mouse 1         I      A        Function "Move-or-Iconify"
Mouse 2         I      A        Iconify

# Button 2 in the corners, sides, or title-bar gives the window ops menu
Mouse 2         FST    A        Function "window_ops_func"

# Button 3 anywhere in the decoration (except the title-bar buttons)
# does a raise-lower
Mouse 3         TSIF   A        RaiseLower

# Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
# gives Raise-Lower. Used to use control here, but that interferes with xterm
Mouse 3         W      M        RaiseLower

#========================================================================#

# Now some keyboard shortcuts.

# Arrow Keys
# press arrow + control anywhere, and scroll by 1 page
Key Left        A      C        Scroll -100 0
Key Right       A      C        Scroll +100 +0
Key Up          A      C        Scroll +0   -100
Key Down        A      C        Scroll +0   +100

# press arrow + meta key, and scroll by 1/10 of a page
Key Left        A      M        Scroll -10 +0
Key Right       A      M        Scroll +10 +0
Key Up          A      M        Scroll +0  -10
Key Down        A      M        Scroll +0  +10

# press shift arrow + control anywhere, and move the pointer by 1% of a page
Key Left        A      SC       CursorMove -1 0
Key Right       A      SC       CursorMove +1 +0
Key Up          A      SC       CursorMove +0 -1
Key Down        A      SC       CursorMove +0 +1

# press shift arrow + meta key, and move the pointer by 1/10 of a page
Key Left        A      SM       CursorMove -10 +0
Key Right       A      SM       CursorMove +10 +0
Key Up          A      SM       CursorMove +0  -10
Key Down        A      SM       CursorMove +0  +10

# Keyboard accelerators
Key F1          A      M        Popup "MainMenu"
Key F1          A      M        Popup "MainMenu"
Key F2          A      M        Popup "Window Ops"
Key F3          A      M        Module "WindowList" FvwmWinList
Key F4          A      M        Iconify
Key F5          A      M        Move
Key F6          A      M        Resize
Key F7          A      M        CirculateUp
Key F8          A      M        CirculateDown

Key Tab         A      M        Prev Focus
Key Tab         A      MS       Next Focus
Key Escape      A      C        WindowList

#========================================================================#
# Definitions used by the modules

#------------------ Pager

*FvwmPagerBack grey60
*FvwmPagerFore black
*FvwmPagerFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmPagerHilight #c0c0c0
*FvwmPagerGeometry -3-27
*FvwmPagerLabel 0 Desktop
*FvwmPagerSmallFont 5x8

#------------------ FvwmButtons

*FvwmButtonsFore Black
*FvwmButtonsBack #c0c0c0
*FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmButtonsGeometry +0-32
*FvwmButtonsRows 10
*FvwmButtonsColumns 2

*FvwmButtons(Size 64 64, Title "XTerm" Icon rterm.xpm, \
             Action 'Exec xterm -rightbar -ls -sb -sl 500 -j -fn 9x15')
*FvwmButtons(Size 64 64, Title "Kill", Icon rbomb.xpm, Action Destroy)
*FvwmButtons(Size 64 64, Title "KCalc" Icon HP-16C-48.xpm, Action 'Exec kcalc')
*FvwmButtons(Size 64 64, Title "QGView" Icon monalisa.xpm, \
      Action 'Exec gqview')
*FvwmButtons(Size 64 64, Title "Netscape" Icon netscape.xpm, \
      Action 'Exec netscape -geometry 840x700+120+30')
*FvwmButtons(Size 64 64, Title "Mozilla" \
              Icon /usr/local/mozilla/icons/mozicon50.xpm, \
              Action 'Exec /usr/local/mozilla/mozilla')

*FvwmButtons(2x1, Swallow(UseOld) "Desktop" 'FvwmPager 0 0')

#------------------ Identify

*FvwmIdentBack #000080
*FvwmIdentFore Yellow
*FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*

#------------------ FvwmWinList

*FvwmWinListBack #c0c0c0
*FvwmWinListFore Black
*FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmWinListAction Click1 Iconify -1,Focus
*FvwmWinListAction Click2 Iconify
*FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent
*FvwmWinListUseSkipList
*FvwmWinListGeometry +0-1
*FvwmWinListShowCurrentDesk
        
#------------------ FvwmBacker

*FvwmBackerDesk 0 -solid steelblue
*FvwmBackerDesk 1 -solid midnightblue

#------------------ FvwmScrollBack

*FvwmScrollBack grey40
*FvwmScrollFore green

#------------------ FvwmTaskBar

*FvwmTaskBarGeometry -0-0
*FvwmTaskBarFore Black
*FvwmTaskBarBack #c0c0c0
*FvwmTaskBarTipsFore black
*FvwmTaskBarTipsBack bisque
*FvwmTaskBarFont -adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*
*FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-*-120-*-*-*-*-*-*
*FvwmTaskBarAction Click1 Iconify -1,Raise,Focus
*FvwmTaskBarAction Click2 Iconify
*FvwmTaskBarAction Click3 Module "FvwmIdent" FvwmIdent
*FvwmTaskBarUseSkipList
*FvwmTaskBarAutoStick
*FvwmTaskBarStartName Start
*FvwmTaskBarStartMenu MainMenu
*FvwmTaskBarStartIcon mini-penguin.xpm
*FvwmTaskBarShowTips
*FvwmTaskBarMailProg xterm -e mail
*FvwmTaskBarShowTransients
*FvwmTaskBarClockFormat %a %d-%b-%Y %H:%M