#
# .fvwm2rc95 example configuration file for fvwm95-2.0.41
#

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

#
# Fonts - one for window titles, another for icons, and another for the menus
#
WindowFont	-adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
IconFont	fixed
MenuFont   	-adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-*

#
# Set the default window colors. The syntax is:
#  DefaultColors winforecolor winbackcolor titleforecolor titlebackcolor
# where:
#  winbackcolor    is the background (border) color of all windows,
#                  including the menu windows 
#  winforecolor    is used for the menu text
#  titlebackcolor  is the background color used for title bars of 
#                  non selected windows
#  titleforecolor  is the color of the title text of non selected windows
#
DefaultColors   Black #c0c0c0 #c0c0c0 grey51

#
# Text and background color for the title bar of the active (selected) window
#
HilightColors   White #000080

#
# Text and background color for the title bar of sticky windows
#
StickyColors    grey51 #60c080

# You can also use the Style command to set the colors of individual
# title bars of some non-selected windows

#Style "*" ForeColor #c0c0c0
#Style "*" BackColor grey51

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

#
# Set up the major operating modes
#

Style "*" ClickToFocus
# Comment the above and uncomment one of the following if you prefer
# focus follow mouse.
#Style "*" MouseFocus
#Style "*" SloppyFocus

# If we use the FvwmTaskBar we don't need the icons :-)
# Style "..." Icon are also commented below.
Style "*" NoIcon
Style "*" MWMFunctions
Style "*" HintOverride
Style "*" MWMDecor
Style "*" DecorateTransient

OpaqueMoveSize 100
EdgeScroll 100 100
EdgeResistance 10000 0

#
# RandomPlacement prevents user interaction while placing windows:
#
Style "*" RandomPlacement

#
# NoPPosition instructs fvwm to ignore the PPosition field in window 
# geometry hints. Emacs annoyingly sets PPosition to (0,0)!
#
Style "*" NoPPosition

Read /etc/X11/fvwm95/pre.hook
Read .fvwm95/pre.hook

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

#
# Set the desk top size in units of physical screen size
#




DeskTopSize 3x2

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

#
# Module path and paths to the icons
# ModulePath is a colon-separated list, just like regular unix PATH
#
ModulePath /usr/X11R6/lib/X11/fvwm95-2/
PixmapPath /usr/X11R6/pixmaps:/usr/include/X11/pixmaps/:/usr/local/mini-icons/
IconPath   /usr/X11R6/icons:/usr/include/X11/bitmaps/:/usr/local/icons/

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

# Set the decoration styles and window options
# If compatible styles are set for a single window in multiple Style
# commands, then the styles are ORed together. If conflicting styles
# are set, the last one specified is used.

# These commands should command before any menus or functions are defined,
# and before the internal pager is started.

#
# Default border and handle widths
#
Style "*" BorderWidth 5, HandleWidth 5

Style "Fvwm*"        NoTitle, Sticky, WindowListSkip
Style "Fvwm Pager"   StaysOnTop, NoHandles
Style "FvwmBanner"   StaysOnTop
Style "FvwmButtons"  NoTitle, NoHandles, Sticky, WindowListSkip,BorderWidth 5
Style "*lock"        NoTitle, NoHandles, Sticky, WindowListSkip
Style "xbiff"        NoTitle,            Sticky, WindowListSkip

#
# Some mini-icons for the title bar
#
Style "*"         TitleIcon mini-x2.xpm
Style "*xterm*"   TitleIcon mini-term.xpm
Style "rxvt"      TitleIcon mini-term.xpm
Style "xcalc"     TitleIcon mini-calc.xpm
Style "xsession"  TitleIcon mini-bx2.xpm
Style "xv"        TitleIcon mini-xv.xpm
Style "Netscape"  TitleIcon mini-nscape.xpm
Style "xmag"      TitleIcon mini-zoom.xpm
Style "editor"    TitleIcon mini-edit.xpm
Style "tkps"      TitleIcon mini-run.xpm
Style "Ghostview" TitleIcon mini-gv.xpm
Style "Xcolorsel" TitleIcon mini-colors.xpm
Style "IDL*"      TitleIcon mini-zoom.xpm
Style "xeyes"     TitleIcon mini-eyes.xpm
Style "*fm*"      TitleIcon mini-filemgr.xpm
# xman resource names
Style "topBox"    TitleIcon mini-book1.xpm
Style "help"      TitleIcon mini-book2.xpm
Style "manualBrowser" TitleIcon mini-book2.xpm
# xpaint resource names
Style "xpaint"    TitleIcon mini-paint.xpm
Style "Canvas"    TitleIcon mini-paint.xpm
Style "fatbits"   TitleIcon mini-paint.xpm
Style "filebrowser" TitleIcon mini-ofolder.xpm

Style "FvwmFile"  TitleIcon mini-ofolder.xpm
Style "XDbx"      TitleIcon mini-bug2.xpm


#Style "rxvt"       Icon  term.xpm
#Style "xterm"      Icon xterm.xpm
#Style "color_xterm" Icon rterm.xpm
#Style "Appointment" Icon datebook.xpm
#Style "xcalc"      Icon Rcalc.xpm
#Style "xbiff"      Icon mail1.xpm
#Style "xmh"        Icon mail1.xpm, StartsOnDesk 2
#Style "xman"	   Icon xman.xpm
#Style "xvgr"	   Icon graphs.xpm
#Style "matlab"	   Icon math4.xpm
#Style "xmag"	   Icon mag_glass.xpm
#Style "xgraph"	   Icon graphs.xpm
#Style "xv"         Icon xview.xpm
#Style "FvwmButtons"  Icon toolbox.xpm
#Style "xconsole"   Icon koala.xpm
#Style "xsession"   Icon koala.xpm
#Style "editor"   Icon textedit.xpm
#Style "ghostview"  Icon gv.xpm

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

#
# Stuff to do at start-up
#

AddToFunc "InitFunction"    "I" Exec xsetroot -solid cyan4 &
#+                          "I" Module FvwmBanner
+                           "I" Module FvwmButtons
+                           "I" Module FvwmTaskBar
#+                          "I" Module FvwmPager 0 3

AddToFunc "RestartFunction" "I" Module FvwmButtons
+                           "I" Module FvwmTaskBar
#+                          "I" Module FvwmPager 0 3


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

# Now define some handy complex 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


#
# The main menu.
#


#
# Read in system and user menu definitions.
#

Read /etc/X11/fvwm95/menudefs.hook
Read .fvwm95/menudefs.hook

AddToMenu /Debian
+ ""                    Nop
+ "Exit Fvwm"           Popup Quit-Verify


#========================================================================#
#
# The Window-Ops menu is for manipulating windows.  It is invoked either
# from the main menu, or directly from the root window.
#


#
# Now define the menus - defer bindings until later
#

# This is for the Start menu of the FvwmTaskBar


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

# This menu is invoked as a sub-menu - it allows you to quit,
# restart, or switch to another WM.

AddToMenu "Quit-Verify" "Really Quit Fvwm?" Title
+ "Restart%mini-turn.xpm%"		Restart fvwm95-2
+ "" 					Nop
+ "Fvwm95"                              Restart /usr/bin/X11/fvwm95-2
+ "Fvwm95"                              Restart /usr/bin/X11/fvwm95-2
+ "Fvwm95"                              Restart  /usr/bin/X11/fvwm95-2
+ "Yes, Really Quit%mini-exclam.xpm%"	Quit
+ "No, Don't Quit%mini-cross.xpm%" 	Nop


#
# 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 Utilities 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 "/Debian" Nop
Mouse 2		R    	A       Menu "Window Ops" Nop
Mouse 3         R       A       WindowList
#Mouse 3	R    	A      	Module "winlist" FvwmWinList transient

# 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
# Any button in the third (rightmost) title-bar button closes
# Note the use of "Mouse 0" for AnyButton.

#     Button	Context Modif 	Function
Mouse 0		1    	A      	Function "window_ops_func"
Mouse 1         2       A       Delete
Mouse 0		4    	A     	Maximize 100 100
Mouse 0		6    	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 "Utilities"
Key F1		A	M	Popup "Utilities"
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

#Page Up/Dapge Down keys are used to scroll by one desktop page
# in any context, press page up/down + control
# in root context, just pressing page up/down is OK
# 
# I prefer the non-wrapping scroll. These are for example purposes only
#Key Next	A       C       Scroll 100000 0
#Key Next	R       N       Scroll 100000 0  
#Key Prior	A       C       Scroll -100000 0
#Key Prior	R       N       Scroll -100000 0

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 -1-1
*FvwmPagerLabel 0 Desktop
*FvwmPagerSmallFont 5x8

#------------------ FvwmButtons (from 2.0.42)
*FvwmButtonsFore Black
*FvwmButtonsBack #c0c0c0
*FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
# Geometry - really likes to pick its own size, but giving a position is OK
*FvwmButtonsGeometry -5-34
# Layout: specify rows or columns, not both
*FvwmButtonsRows 1

# Define the buttons to use.....

*FvwmButtons(Title xclock, Icon clock.xpm, \
             Swallow(UseOld) "xclock" 'Exec /usr/bin/X11/xclock -bg \#c0c0c0 \
             -padding 0 -geometry -1500-1500 &')
*FvwmButtons(2x1, Title load, \
             Swallow(UseOld) "xload" 'Exec /usr/bin/X11/xload \
                     -nolabel -bg grey60 -update 5 -geometry -1500-1500 &')
*FvwmButtons(Title xterm, Icon rterm.xpm, \
             Action 'Exec "XTerm" xterm_color \
                     -ls -sb -fn 8x13 -title "Color xterm" &')
*FvwmButtons(Title Files, Icon Xfm.xpm, \
             Action 'Exec "Files" files &') 
*FvwmButtons(Title Editor, Icon textedit.xpm, \
             Action 'Exec "editor" editor &')
*FvwmButtons(Title xcalc, Icon rcalc.xpm, \
             Action 'Exec "Calculator" xcalc &')
*FvwmButtons(Title xview, Icon xview.xpm, \
             Action 'Exec "xv" xv &')
*FvwmButtons(Title gview, Icon gv.xpm, \
             Action 'Exec "ghostview" ghostview &')
*FvwmButtons(Title netscape, Icon nscape.xpm, \
             Action 'Exec "Netscape" netscape -geometry 920x622+90+5 &')
*FvwmButtons(Title kill, Icon rbomb.xpm, Action Destroy)
*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
        
#------------------ FvwmTaskBar
Style "FvwmTaskBar" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,StaysOnTop,WindowListSkip,CirculateSkip

*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 /Debian
*FvwmTaskBarStartIcon mini-exp.xpm
*FvwmTaskBarShowTips
#*FvwmTaskBarShowTransients
#*FvwmTaskBarClockFormat %I:%M%p
#*FvwmTaskBarHighlightFocus
#*FvwmTaskBarAutoHide
*FvwmTaskBarMailCommand Exec xterm_color -T Mail -ls -fn 8x13 -e pine -i
