###
# Zaurus .fvwm2rc config
# Based on Taviso's config file
# by Zumi, 2005
###

# Paths to pictures, icons
ImagePath /usr/share/pixmaps:$[HOME]/.fvwm/pixmaps

# You need to set this for properly working keybindings
IgnoreModifiers L25

# Set the default cursor on the root window
CursorStyle root top_left_arrow

# Longer clicktime (if you hold the cursor for more time,
# it is considered as a Hold)
ClickTime 500

# Set the area where windows can be maximised (left right top bottom)
EwmhBaseStruts 0 0 0 30

# Only one page per desk
DeskTopSize 1x1

# The only ButtonStates I use are Active, Inactive and ActiveDown.
ButtonState ActiveDown True Inactive True
# Large windows can be moved opaque
#OpaqueMoveSize unlimited
OpaqueMoveSize 0
# Snap nearby windows together
SnapAttraction 3


###
# Colorsets
###

# Erase 'em all!
CleanupColorsets
# Menu colorset
Colorset 0 fg black, bg grey, Translucent #c6cbd6 70
# Menu colorset for the active item
Colorset 1 fg black, bg #6b83b5, hi #dcdcdc, sh #dcdcdc
# Colorset for the window titlebar
Colorset 2 fg black, bg white, sh white, RootTransparent Buffer, Tint #f6f6f6 20
# Colorset for the taskbar and for the IconMan
Colorset 3 Pixmap Panelbacks/silver.png


###
# Menu settings
###

# Set base menu style to Fvwm and the menus border to 1
MenuStyle * Fvwm, BorderWidth 1
# The foreground and background color of the menu
#MenuStyle * Foreground yellow, Background black
# The highlighted item's fore- and background
#MenuStyle * ActiveFore purple, HilightBack orange
MenuStyle * HilightBack
# Menu colorset and the colorset of the active item
MenuStyle * MenuColorset 0, ActiveColorset 1
Menustyle * Hilight3DOff, Animation
# MenuFace is faster than the Colorsets! (so they say)
#MenuStyle * MenuFace TiledPixmap something.png
MenuStyle * Font "xft:Arial:size=14:encoding=iso8859-1", 
MenuStyle * PopupOffset 0 100
# The popup menu doesn't summon the mouse pointer to it's top
MenuStyle * TitleWarpOff, TitleUnderlines1
MenuStyle * RemoveSubmenus
MenuStyle * PopupDelay 0
MenuStyle * SeparatorsLong, TrianglesSolid
MenuStyle * ItemFormat "%.4s%.1|%.5i%.5l%.5l%.5r%.5i%.20p%2.3>%1|"
#MenuStyle * AutomaticHotkeys

# Use colormaps according to Focus, rather than where the Mouse is.
ColormapFocus FollowsFocus


###
# Default window Styles. 
###
Style * Font "xft:Arial:size=14:encoding=iso8859-1"
#Style * BorderWidth 5, HandleWidth 3
Style * BorderWidth 1, HandleWidth 1
Style * Color #63656b/black
Style * HilightBack black, HilightFore #ffffff
Style * MWMFunctions, MWMDecor, HintOverride
Style * DecorateTransient, NoPPosition
Style * IconBox 400x80+10-30
Style * ClickToFocus, ClickToFocusRaises
Style * SmartPlacement, WindowShadeSteps 20
Style * Button 1, Button 2, Button 4, Button 6, GrabFocus

# Application specific Style settings
Style xvkbd BorderWidth 0, CirculateSkipIcon, CirculateSkip
Style xvkbd NoTitle, NoHandles, StaysOnTop, NeverFocus, WindowListSkip
Style ZaurusTaskbar NoTitle, NoHandles, BorderWidth 0, Sticky, WindowListSkip, NeverFocus
Style ZaurusTaskbar CirculateSkip, StaysOnTop, FixedPosition, FixedSize, !Iconifiable
Style FvwmForm-QuitVerify StaysOnTop, CenterPlacement, NoTitle, BorderWidth 3


###
# Window decoration
###

DestroyDecor DefaultDecor
AddToDecor DefaultDecor
+ TitleStyle Centered Height 23

+ ButtonStyle  1 ActiveUp (Pixmap title/menu_up.png -- Flat) ActiveDown (Pixmap title/menu_up.png -- Flat) Inactive (Pixmap title/menu_up.png -- Flat)
+ ButtonStyle  2 ActiveUp (Pixmap title/close_up.png -- Flat) ActiveDown (Pixmap title/close_down.png -- Flat) Inactive (Pixmap title/close_inactive.png -- Flat)
+ ButtonStyle  4 ActiveUp (Pixmap title/maximize_up.png -- Flat) ActiveDown (Pixmap title/maximize_down.png -- Flat) Inactive (Pixmap title/maximize_inactive.png -- Flat)
+ ButtonStyle  6 ActiveUp (Pixmap title/minimize_up.png -- Flat) ActiveDown (Pixmap title/minimize_down.png -- Flat) Inactive (Pixmap title/minimize_inactive.png -- Flat)

+ ButtonStyle 1 - Clear MwmDecorMenu
+ ButtonStyle 6 - Clear MwmDecorMin
+ ButtonStyle 4 - Clear MwmDecorMax
+ ButtonStyle 2 - Clear

+ TitleStyle AllActive MultiPixmap \
	Main TiledPixmap title/title_active_main.png, \
	RightEnd TiledPixmap title/title_active_rightend.png, \
	LeftEnd TiledPixmap title/title_active_leftend.png, \
	Buttons TiledPixmap title/title_active_buttons.png
+ TitleStyle AllInactive MultiPixmap \
	Main TiledPixmap title/title_inactive_main.png, \
	RightEnd TiledPixmap title/title_inactive_rightend.png, \
	LeftEnd TiledPixmap title/title_inactive_leftend.png, \
	Buttons TiledPixmap title/title_inactive_buttons.png
+ TitleStyle -- Flat
+ BorderStyle Simple -- NoInset Flat
#+ BorderStyle Active Solid black -- NoInset HiddenHandles
#+ BorderStyle Inactive Solid black -- NoInset HiddenHandles
+ ButtonStyle All -- UseTitleStyle

Style * UseDecor DefaultDecor


###
# Miscellaneous module settings.
###

# FvwmIdent is an xwininfo replacement.
DestroyModuleConfig FvwmIdent: *
*FvwmIdent: Back MidnightBlue
*FvwmIdent: Fore #f6f6f6
*FvwmIdent: Font "xft:Arial:size=12:encoding=iso8859-1"

# FvwmScroll swallows applications into smaller containers.
DestroyModuleConfig FvwmScroll: *
*FvwmScroll: Fore #f6f6f6


###
# Bindings
###

# Key bindings
# Syntax reminder: Key <key> <context> <modifiers> <function>
# <context> - A = anywhere
# <modifiers> - N = none, M = Alt (Address),
# C = Control (Calendar), S = Shift, 2 = Fn key

Key A A M	GotoDesk -1
Key Z A	M	GotoDesk 1
Key 4 A M	Pick Close
Key R A CM	Restart
Key 3 A 2	Exec exec setfl -
Key 4 A 2	Exec exec setfl +
Key M A CM	ZaurusMaximize
Key XF86RotateWindows A N Exec exec $[HOME]/.fvwm/fvwm-hinge
Key XF86Start A N Popup MenuFvwmRoot

# Mouse bindings
# Syntax reminder: Mouse <button> <context> <modifiers> <function>

# bindings for the Root Window.
#Mouse 1 R       A   Menu MenuFvwmRoot
Mouse 1 R       A   Nop
#Mouse 2 R       A   WindowList

# bindings on window TitleBars.
Mouse 0 1       A   Menu MenuFvwmWindowOps Nop
Mouse 0 2       A   Close
Mouse 0 4       A   ZaurusMaximize
Mouse 0 6       A   Iconify

# Other window parts, Icons, etc.
Mouse 1 FS      A   Resize-or-Raise
Mouse 1 T       A   Move-or-Raise
Mouse 1 I       A   Move-or-Iconify
Mouse 2 I       A   Iconify
Mouse 2 FST     A   Menu Window-Ops2 Nop
Mouse 3 TSIF    A   RaiseLower
Mouse 3 W       M   Menu Window-Ops Nop
Mouse 2 W       C   Resize-or-Raise
Mouse 1 W       M   Move-or-Raise

#####
# Fvwm executes StartFunction when Fvwm is initialized, and at restart.
# A Good place to start Modules.
#
# FvwmCommandS Allows you to run Fvwm Commands from a Terminal, like this:
#   $ FvwmCommand 'Module FvwmBanner'
# Or any other Command.
#
# You can test for Initialization from within StartFunction, this is a good
# place to set the Background or start your favourite applications.
#################
AddToFunc StartFunction
+ I Module FvwmCommandS
#+ I Module FvwmButtons ZaurusTaskbar
#+ I Test (Init) Exec exec fvwm-root -r $wallpaper

###
# ExitFunction is executed when you ask Fvwm to Quit.
###
AddToFunc ExitFunction
+ I Exec exec sync

# The rootmenu is generated by the menu-generator.py program
# Others are defined below
PipeRead /home/root/.fvwm/menu-generator.py

DestroyMenu FvwmMoveMethods
AddToMenu FvwmMoveMethods
+ "Move to Top" Pick AnimatedMove keep 0p
+ "Move to Left" Pick AnimatedMove 0p keep
+ "Move to Right" Pick PipeRead \
      "echo AnimatedMove `expr $[vp.width] - $[w.width]`p keep"
+ "Move to Bottom" Pick PipeRead \
      "echo AnimatedMove keep `expr $[vp.height] - $[w.height]`p"
+ "" Nop
+ "Move To Page" Popup PageList
+ "Move To Desk" Popup DeskList
+ "" Nop
+ "Interactive Move" Pick Move

# WindowOps, Main window controls menu.
DestroyMenu MenuFvwmWindowOps
AddToMenu MenuFvwmWindowOps
+ "Resize" Resize
+ "Iconify" Iconify
+ "Maximize" ZaurusMaximize
+ "Move" Popup FvwmMoveMethods
+ "Shade" WindowShade Toggle
+ "" Nop
+ "Stick" Stick
+ "Raise" Raise
+ "Lower" Lower
+ "Scroll" Pick Module FvwmScroll
+ "Refresh" RefreshWindow
+ "" Nop
+ "Identify" Pick Module FvwmIdent
+ "Xwininfo" Pick Exec exec xmessage "`xwininfo -id $[w.id]`"
+ "" Nop
+ "Close" Close
+ "Destroy" Destroy

DestroyMenu MenuFvwmModules
AddToMenu MenuFvwmModules
+ "Animation" Module FvwmAnimate
+ "Button-Bar" Module FvwmButtons
+ "Identify" Module FvwmIdent
+ "IconMan" Module FvwmIconMan
+ "Banner" Module FvwmBanner
+ "Console" Module FvwmConsole -terminal rxvt
+ "Pager" Module FvwmPager 0 1
+ "Backer" Module FvwmBacker
+ "ScrollBar" Module FvwmScroll 50 50
+ "FvwmTaskBar" Module FvwmTaskBar
+ "AutoRaise" Module FvwmAuto 200 Raise Nop
+ "WinList" Module FvwmWinList
+ "" Nop
+ "Stop Module" Popup  MenuFvwmStopModule

DestroyMenu MenuFvwmStopModule
AddToMenu MenuFvwmStopModule
+ "Stop Button-Bar" KillModule FvwmButtons
+ "Stop IconBox" KillModule FvwmIconBox
+ "Stop IconMan" KillModule FvwmIconMan
+ "Stop Pager" KillModule FvwmPager
+ "Stop Backer" KillModule FvwmBacker
+ "Stop ScrollBar" KillModule FvwmScroll
+ "Stop FvwmTaskBar" KillModule FvwmTaskBar
+ "Stop AutoRaise" KillModule FvwmAuto
+ "Stop WinList" KillModule FvwmWinList


###
# Name:     FuncFvwmFocusPolicyChange
# Bound:    MenuFvwmConfig, Focus Policy Changes.
# Purpose:  Start using a new Focus Policy.
###
DestroyFunc FuncFvwmFocusPolicyChange
AddToFunc FuncFvwmFocusPolicyChange
+ I Style * $0
+ I Recapture

###
# Miscellaneous Functions
###
AddToFunc Move-or-Raise         I Raise
+                               M Move
+                               D WindowShade Toggle

AddToFunc Move-or-Raise2        M Raise
+                               M Move
+                               D Lower

AddToFunc Maximize-Func         M Maximize       0 100
+                               C Maximize       0 80
+                               D Maximize       100 100

AddToFunc Move-or-Iconify       I Raise
+                               M Move
+                               D Iconify

AddToFunc Resize-or-Raise       I Raise
+                               M Resize
+                               D Lower

AddToFunc Resize-or-Raise2      M Raise
+                               M Resize
+                               D Lower

AddToFunc Iconify-and-Raise     I Iconify
+                               I Raise

AddToFunc FocusAndWarp I Focus
+                      I WarpToWindow 2p 2p

AddToFunc DeiconifyFocusAndWarp I Iconify -1
+                               I FocusAndWarp

AddToFunc FocusRaise
+ I Focus
+ I Raise

AddToFunc MyMax
+ I Maximize 640p 450p


#*FvwmScript: DefaultColorset 3
*FvwmScript: DefaultFont "xft:Arial:size=16:encoding=iso8859-1"

DestroyModuleConfig FvwmIconMan: *
*FvwmIconMan: ManagerGeometry 1x1
*FvwmIconMan: ButtonGeometry 24x32
*FvwmIconMan: FocusAndSelectButton down
*FvwmIconMan: FocusButton down
*FvwmIconMan: IconButton up
*FvwmIconMan: PlainButton up
*FvwmIconMan: SelectButton up
# disable default binding of "Iconify"
*FvwmIconMan: Action Mouse 0 N sendcommand Nop
# redefine buttons 1, 2 and 3.
#*FvwmIconMan: Action Mouse 1 N sendcommand "Iconify off", sendcommand RaiseLower, sendcommand FlipFocus
*FvwmIconMan: Action Mouse 1 N sendcommand "FocusRaise"
*FvwmIconMan: Action Mouse 3 N sendcommand "Popup MenuFvwmWindowOps Rectangle +$left+$top 0 -100m"
*FvwmIconMan: Colorset 3
*FvwmIconMan: ReliefThickness 1
*FvwmIconMan: Font "xft:Arial:size=12:encoding=iso8859-1"
*FvwmIconMan: FocusAndSelectColorset 3
*FvwmIconMan: FocusColorset 3
*FvwmIconMan: Resolution Global
*FvwmIconMan: DrawIcons Always
*FvwmIconMan: FollowFocus True
*FvwmIconMan: UseWinList True
*FvwmIconMan: ShowOnlyIcons False
#*FvwmIconMan: Format "%c: %i"
*FvwmIconMan: Format "%t"
*FvwmIconMan: Title ""
*FvwmIconMan: Sort id

Exec $[HOME]/.fvwm/fvwm-hinge

