#
# Fonts - one for window titles, another for icons, and another for the menus
#
WindowFont -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
IconFont fixed
MenuStyle black grey76 grey30 -adobe-helvetica-medium-r-*-*-*-120-*-*-*-*-*-* fvwm
#
# 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 #c3c3c3 #c3c3c3 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
# Let's comment this out and be more UNIX-like :^)
# Style "*" ClickToFocus
# If we use the FvwmTaskBar we don't need the icons :-)
# Style "..." Icon is also commented below.
Style "*" NoIcon
Style "*" MWMFunctions
Style "*" HintOverride
Style "*" MWMDecor
#
# 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
#
# Module path and paths to the icons
# ModulePath is a colon-separated list, just like regular unix PATH
#
ModulePath /usr/X11R6/lib/X11/fvwm2/
PixmapPath /usr/include/X11/pixmaps/:/usr/X11R6/icons/
IconPath /usr/include/X11/bitmaps/:/usr/local/icons/
# Set the decoration styles and window options
# Order is important!!!!
# 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.
#
# 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
#
# 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
# 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 "Utilities" 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
# 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
# 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
Key F7 A M CirculateUp
Key F8 A M CirculateDown
#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
#------------------ FvwmButtons
*FvwmButtonsFore Black
*FvwmButtonsBack #c3c3c3
*FvwmButtonsFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
# Geometry - really likes to pick its own size, but giving a position is OK
*FvwmButtonsGeometry -5-5
# Layout: specify rows or columns, not both
*FvwmButtonsRows 1
#------------------ FvwmTaskBar
#Style "FvwmTaskBar" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,StaysOnTop,WindowListSkip,CirculateSkip
# I don't like the taskbar to stay to top, since it covers the bottom
# part of Netscape in full-screen mode:
#Style "FvwmTaskBar" NoTitle,BorderWidth 4,HandleWidth 4,Sticky,WindowListSkip,CirculateSkip
*FvwmTaskBarGeometry +0-0
*FvwmTaskBarFore Black
*FvwmTaskBarBack #c3c3c3
*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 StartMenu
# Just for fun, let's use the Linux penguin for the Start button:
*FvwmTaskBarStartIcon mini-penguin.xpm
#*FvwmTaskBarStartIcon mini-exp.xpm
*FvwmTaskBarShowTips
*FvwmTaskBarMailProg xterm -e mail