##########################################################################
#------------------------------------------------------------------------
# Windows behaviour
#
# Alt-tab between windows, similar to Windows9x.  For instance:
#  AutoReverse 0: default switching among the windows in one direction
#  AutoReverse 1: #1->#2->#3->#4 and then #4->#3->#2->#1
#  AutoReverse 2: #1->#2->#3->#4 and then #4->#1->#3->#2 etc.
AutoReverse 2
#
# window switching through desks?
#AutoTabThroughDesks
#
# Automatically raise a window if mouse stays > 500 msec on it
# AutoRaise 500
#
# While zapping, warp mouse pointer to
Xzap 12
Yzap 12
#
# Avoid problems with xpaint like applications which define their own icon
# as a window and tell the window manager it's its icon
KeepIconWindows

# when application changes its name - hints will be updated and applied
#FollowTitleChanges

#
# Don't push titlebar when clicked
# Titlebarnopush
#
# Click on titlebar to focus window (ie put it in the foreground)
# ClickToFocus
#
# Click on titlebar to raise window (ie put it in the foreground)
ClickToRaise
#
# Focus on window until pointer gets in another one
SloppyFocus
#
# Iconify to original place
StubbornIcons
#
# Uniconify to original place
StubbornPlacement
#
# Optimize icon placement
# StubbornIconPlacement
#
# Give a name to each icon
IconTitle
#
# Icons follow you on the desktop
StickyIcons
#
# Don't jump to an icon while zapping windows
# CirculateSkipIcons
#
# Center the screen on the current window while circulating
#CenterOnCirculate
#
# Double click period in ms
# ClickTime 150
#
# Keep showing window while being moved if size<N%
OpaqueMove 100
#
# Keep showing window while being resized if size<N%
OpaqueResize 100
#
# Mouse pushing on screen edge : N% move
EdgeScroll 100 100
#
# To avoid unwanted moving, edges resist during N ms
EdgeResistance 800 80
#

###########################################################################
# Initial Placement of the windows
##############
# Old style (simplified) settings :

# Place window in empty zones
SmartPlacement
# Random window placement
RandomPlacement
# Windows can't chose where to place
#NoPPosition

#############
# New style (simplified) settings :
# WindowBox configuration may look something like this :
# WindowBox   "some_name"
# 	Area   WxH+X+Y
# 	Virtual
#	MinWidth	width
#	MinHeight	height
#	MaxWidth	width
#	MaxHeight	height
#	FirstTry	SmartPlacement|RandomPlacement|Tile
#	ThenTry 	RandomPlacement|Cascade|Manual
#	VerticalPriority
#	ReverseOrder
#     	Desk        desk
#     	MinLayer    min_layer
#     	MaxLayer    max_layer
#~WindowBox
#
#DefaultWindowBox  "some_name"
#

##########################################################################
# X server performance tweaks :
#AppsBackingStore
#BackingStore
#SaveUnders

##########################################################################
# Misc stuff :
#
#RecentSubmenuItems   <number>   # changes number of recently used submenu items displayed in poarent menu
#
# Put a titlebar + various stuff on dialog boxes
DecorateTransients
#

# this will cause blue screen to come up on desktop changes even if desktop background 
# in the same  on both desks :
AnimateDeskChange

# these defines how desktop cover (blue screen) is animated when withdrawn :
#   Available Types :
#     sliding 	1 - 8
#     shrinking 9 - 11
#     melting	12
CoverAnimationSteps	12
CoverAnimationType	10


##########################################################################
##########################################################################
# Cursor
#
# Cursor THISTYPE THISCURSOR where type is :
#
#  0 POSITION      - used when initially placing windows
#  1 TITLE         - used in a window title-bar
#  2 DEFAULT       - used in windows that don't bother to set their cursor
#  3 SYS           - used in one of the title-bar buttons
#  4 MOVE          - used when moving or resizing windows.
#  5 WAIT          - used during an EXEC builtin command.
#  6 MENU          - used in a menus.
#  7 SELECT        - used for various builtin commands such as iconify.
#  8 DESTROY       - used for DESTROY and DELETE built-ins.
#  9 TOP           - used in the top side-bar of a window
# 10 RIGHT        - used in the right side-bar of a window
# 11 BOTTOM
# 12 LEFT
# 13 TOP_LEFT
# 14 TOP_RIGHT
# 15 BOTTOM_LEFT
# 16 BOTTOM_RIGHT
#
# while /usr/include/X11/cursorfont.h contains available cursors
#
#Cursor 0
Cursor 1 58
Cursor 2 68
Cursor 3 22
Cursor 4 120
Cursor 5 150
Cursor 6 60
Cursor 7 68
Cursor 8 88
Cursor 9 138
Cursor 10 96
Cursor 11 16
Cursor 12 70
Cursor 13 134
Cursor 14 136
Cursor 15 12
Cursor 16 14

#
##########################################################################

##########################################################################
# Functions
#

# Used to move icons on desktop

Function "Move-or-Top"
        Move            "Motion"
        RaiseLower      "Click"
        ToggleLayer     "DoubleClick" 0 1
EndFunction

Function "Move-or-Normal"
        Move            "Motion"
        RaiseLower      "Click"
        ToggleLayer     "DoubleClick" 1 0
EndFunction

# Used to move windows on desktop

Function "Move-or-Iconify"
        Move            "Motion"
        Iconify         "Click"
EndFunction

# Window operations

Popup "Window"
        Title           "This window :"
        TakeWindowShot  "Capture window image"
 MiniPixmap "mini-app.xpm"
        TakeFrameShot   "Capture framed window image"
 MiniPixmap "mini-app.xpm"
        TakeScreenShot  "Capture screen image"
 MiniPixmap "mini-app.xpm"
         Move            "Move"
 MiniPixmap "mini-as.xpm"
        WindowsDesk     " - to desk #0" 0
 MiniPixmap "mini-folder.xpm"
        WindowsDesk     " - to desk #1" 1
 MiniPixmap "mini-folder.xpm"
        WindowsDesk     " - to desk #2" 2
 MiniPixmap "mini-folder.xpm"
        WindowsDesk     " - to desk #3" 3
 MiniPixmap "mini-folder.xpm"
        Resize          "Resize"
 MiniPixmap "mini-as.xpm"
        Raise           "To foreground"
 MiniPixmap "mini-as.xpm"
        Lower           "To background"
 MiniPixmap "mini-as.xpm"
        Maximize "Maximize 100%" 100 100
 MiniPixmap "mini-as.xpm"
        Maximize "Maximize 80%" 80 80
 MiniPixmap "mini-as.xpm"
        Destroy         "Kill"
 MiniPixmap "mini-exit.xpm"
        Delete          "Quit"
 MiniPixmap "mini-exit.xpm"
        Refresh         "Redraw"
 MiniPixmap "mini-recycler.xpm"
EndPopup
#
##########################################################################

##########################################################################
# Key binding :
#
# [Zap button] [Window ops]   Title   [Iconify] [Shade] [Quit]
#
# Zap switches to next window, if middle clicked switches to previous one while
#  right click open man file of the current window.
#
# Window ops lets you act on window geometry, size (...) if right clicked
#  asks which window you want to switch to.
#
# Iconify button iconifies current window, if right clicked it maximises it.
#
# Shade swallows window under titlebar and makes it sticky, if right clicked
#  it only makes it sticky, without swallowing it
#
# Quit closes current window, if right clicked it kills it
##########################################################################

##########################################################################
# Calls
#
# There are 4 colums to the table
# First column is the event (Mouse Click or Key Press)
#   Mouse 0 specify any click in a TitleBar box
#     Where can be 1 or 2 for first or second box
#   Mouse 1 is left button, 2 is middle, 3 is right
# Second Column is where the click takes place
#   R = Root window (main background)
#   F = Window Frame (the corners)
#   S = Bottom bar
#   I = Icon Window
#   T = TitleBar
#   W = Application Window
#   A = Any context except for inside the TitleBar Boxes
# Third Column is the Context (ie, modifier keys)
#   N = No modifiers
#   A = Any modifier
#   C = Control
#   S = Shift
#   M = Meta
#   Combos are allowed (eg, CS = Control+Shift)
# Fourth Column is the action to take upon click : function, popup, or action

#
# Mouse actions
#
Mouse 1         R       A       PopUp "0"
Mouse 2         R       A       GetHelp
Mouse 3         R       A       WindowList
Mouse 1         1       A       ChangeWindowUp
Mouse 2         1       C       BookmarkWindow "1"	bkmrk1
Mouse 2         1       S       GoToBookmark "1"	bkmrk1
Mouse 3         1       A       ChangeWindowDown
Mouse 1         2       A       Delete
Mouse 2         2       A       Close
Mouse 3         2       A       Destroy
Mouse 1         3       A       PopUp "Window"
Mouse 2         3       A       WindowList 2
Mouse 3         3       A       WindowList
Mouse 1         4       A       Shade
Mouse 2         4       A       Stick
Mouse 3         4       A       Stick
Mouse 1         5       A       PinMenu
Mouse 2         5       A       PinMenu
Mouse 3         5       A       PinMenu
Mouse 1         6       A       Iconify
Mouse 2         6       A       Maximize
Mouse 3         6       A       Maximize
Mouse 1         FS      A       Resize
Mouse 2         FS      A       Move
Mouse 3         FS      A       Move
Mouse 1         T       A       Function "Move-or-Top"
Mouse 2         T       A       Function "Move-or-Normal"
#Mouse 2         T       A       RaiseLower
Mouse 3         T       A       RaiseLower
Mouse 0         I       A       Function "Move-or-Iconify"

#
# Keys actions
#
# control + arrow = 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

# Those keybindings trap Mozilla history navigation keybindings, but you can
# uncomment them if you do not use those Mozilla keybindings.
# alt + arrow = 1/10 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

# alt + shift + arrow = move cursor
Key Left        A       MS       CursorMove -1 0
Key Right       A       MS       CursorMove +1 +0
Key Up          A       MS       CursorMove +0 -1
Key Down        A       MS       CursorMove +0 +1

# shift + control + arrow = change desktop
#Key Left        A       SC      Desk 0 0
#Key Right       A       SC      Desk 0 1
#Key Up          A       SC      Desk 0 2
#Key Down        A       SC      Desk 0 3

# here is the better approach to desktop switching : Ctrl-Fx =
Key F1          A       C        Desk 0 0
Key F2          A       C        Desk 0 1
Key F3          A       C        Desk 0 2
Key F4          A       C        Desk 0 3


# For asforms & menus : Ctrl-Shift-Fx =
Key F1          A       SC      Module "Help" Form HELPForm
Key F1          A       SC      GetHelp
Key F2          A       SC      Iconify
Key F3          A       SC      Resize
Key F4          A       SC      Delete
Key F5          A       SC      Move
Key F6          A       SC      Destroy
Key F7          A       SC      ChangeWindowUp
Key F8          A       SC      Module "Run"  Form RUNForm
Key F9          A       SC      WindowList
Key F10         A       SC      PutOnBack
Key F11         A       SC      Module "Find" Form FINDForm
Key F12         A       SC      PopUp "0"

# Windows-alike keys
#
# alt + tab = change window
Key Tab         A       M       WarpFore
# alt + q = return to window
Key q		A	M	WarpBack
# shift + alt + tab = focus on current window
Key Tab         A       S       Focus

# ctrl-v = paste
# If you have problems with pasting data into applications - 
# try uncommenting this :
#Key v		W	C	PasteSelection


# Window keys
Key Menu        A       A       Popup "0"
#Key Meta_L      A       A       WarpFore
#Key Meta_R      A       A       WarpBack
# PC keys aren't always defined is keymaps
#Key Print       A       A       TakeScreenShot
Key Print       A       A       Exec "screenshot" exec xwd -root -out ~/screen.xwd && mogrify -format png ~/screen.xwd && rm ~/screen.xwd
#Key Print       A       S       TakeWindowShot
Key Print       A       S       Exec "windowshot" exec xwd -nobdrs -out ~/window.xwd && mogrify -format png ~/window.xwd && rm ~/window.xwd
#Key Print       A       M       TakeFrameShot
Key Print       A       M       Exec "frameshot" exec xwd -frame -out ~/frame.xwd && mogrify -format png ~/frame.xwd && rm ~/frame.xwd 
Key Pause       A       A       Exec "xlock" exec xlock -mode random
#Key Pause       A       A       Exec "xscreensaver" exec xscreensaver-command -lock
Key Sys_Req     A       A       GetHelp
#Key Scroll_Lock A       A       Desk 0
#
############################################################################

