All pastes #1258685 Raw Edit

fvwm config

public text v1 · immutable
#1258685 ·published 2008-11-17 02:20 UTC
rendered paste body
# Modified by HM Li(hm_li@ustc.edu) based on the codes modified by LittleLEO@SMTH
#
# $Id: .fvwm2rc,v 1.69 2005/01/17 12:50:57 xrn Exp $
#
#
#
###################
# @Author:      LittleLEO@SMTH
# @Description:
#      I stolen this code from the web and keep the orignal author's info as following.
#      My modifictions focus on these aspects:
#
#         1. Add two Theme(or Decor) Modules
#         2. Make use of Windows keys to move in pagers
#         3. Put Useful Applications FvwmButtons in a Panel
#         4. Chinese font 
#
#      Actually, I made the changes to fit my habits, which might be a mess for someone else, for Jean-Paul Sartre said "Hell is other people". However, Confucius said "My teacher must be in the three". Any small tips seeming useful would pull you out of the HELL.
#
##### Original Author Info##########################################################
# This is how my fvwm2rc looked on 22/01/2004, using fvwm-2.5.8 on Gentoo Linux.
#
# Screenshots: [1]http://dev.gentoo.org/~taviso/screenshots/
# Wallpaper: [2]http://digitalblasphemy.com/
#
# -Tavis Ormandy (taviso@gentoo.org)
######################################################################################

#####
# Set the directories to look in for Image files.
#################
ImagePath ${HOME}/.fvwm/newdecors:${HOME}/.fvwm/icons:/usr/share/pixmaps:/usr/share/icons:/usr/share/icons/wm-icons/16x16-gnome:/usr/include/X11/pixmaps:${HOME}/.fvwm/images:/usr/X11R6/include/X11/pixmaps:+

#PipeRead '~/.fvwm/fvwm-theme -init' #lihm
#+ I PipeRead '~/.fvwm/scripts/Battery
#+ I PipeRead '~/.fvwm/scripts/BatteryPopup
#####
# You can set simple options like this, using variables.
#
# If you need something more complex, read the man pages for FvwmCPP, FvwmM4 or FvwmPerl.
#################
#SetEnv fvwm_video_path $[HOME]/media/video
#SetEnv fvwm_video_exec mplayer

#SetEnv fvwm_audio_path $[HOME]/media/audio
#SetEnv fvwm_audio_exec xmms --play

#SetEnv fvwm_image_path $[HOME]/media/images
#SetEnv fvwm_image_exec gqview 
#SetEnv BatteryCritical 3         # If charged state <= this number, critical battery icon will appear
#SetEnv BatteryLow 10             # If charged state <= this number, low battery icon will appear
#SetEnv fvwm_rom_path $[HOME]/stuff/zsnes
#SetEnv fvwm_rom_exec zsnes

#SetEnv fvwm_wallpaper $[HOME]/wallpaper/wallpaper.png

#####
# If you use Thumbnails, how big would you like the Icons to be?
#
# Try one of these, from tiny to large: 32, 64, 96, 128
#
# Note that the aspect ratio is maintained, so tall and thin windows may get larger icons,
# but you can change that if it annoys you.
#################
SetEnv fvwm_icon_size 96

#####
# You can automatically move the viewport into adjacent pages when the pointer
# hits the screen edge, but I dont like this.
# This EdgeResistance disables it, but still allows me to move windows over onto adjacent pages.
#
#################
# EdgeResistance: takes two parameters. The first is more relevant to the
# problem at hand: the number of milliseconds the pointer must be at
# the screen edge before you'll be moved onto the next page. The
# second parameter has to do with the way a window is moved between
# pages: it's the number of pixels over the edge of the screen a
# window's border must move before it moves partially off the screen.
# Typical default settings are:
#
# EdgeThicknessi: disables edge scrolling and EdgeCommand, which I never use.
# 
EdgeResistance 1000 10
EdgeThickness 1

#flipping pages
EdgeScroll 0 0 

#####
# You will want to disable this if you are running fvwm over a network, but otherwise this
# handy setting stops NumLock/ScrollLock from interfering with bindings.
#
# If you disable this, I guarantee it will catch you out and have you scratching your
# head at some point :)
#
# [3]http://www.fvwm.org/documentation/faq/#5.5
#################
IgnoreModifiers L25

#####
# You can use EwmhBaseStruts to stop Maximised windows from obscuring TaskBars/ButtonBars
# or anything else you always want to be visible.
#
# This Setting makes sure my ButtonBar on the left and taskbar along the bottom is always
# visible.
#################
EwmhBaseStruts 0 0 0 0

######
# Fvwm uses a default ClickTime of 150ms, which is way too short for me.
# A Click that lasts <= ClickTime is considered a `Click` in functions,
# > ClickTime is a `Hold`.
#################
ClickTime 550

#####
# Use 9 pages per desktop, arranged in a square, like this:
#
#   +-----+-----+-----+
#   |     |     |     |
#   +-----+-----+-----+
#   |     |     |     |
#   +-----+-----+-----+
#   |     |     |     |
#   +-----+-----+-----+
#
#################
DeskTopSize 2x1

### Cursor styles
## Syntax reminder:
## CursorStyle context [number|name|xpm|None|Tiny [fore back]]
## See MANPAGE for contexts; number/name is as defined by X,
## or no cursor, one pixel cursor; foreground/background colors 

# Use an arrow rather than the `X` cursor on the root window.
#CursorStyle root top_left_arrow
#CursorStyle ROOT x_cursor black white

#CursorStyle RIGHT_EDGE right_ptr green white
CursorStyle MENU left_ptr green white
CursorStyle TITLE left_ptr green white
CursorStyle DEFAULT left_ptr green white
CursorStyle SYS left_ptr green white
CursorStyle WAIT watch green white
CursorStyle RESIZE sizing green "#5477A0"
CursorStyle MOVE fleur yellow green
CursorStyle SELECT left_ptr green white
CursorStyle POSITION x_cursor green white
CursorStyle TOP top_side red green
CursorStyle RIGHT right_side red green
CursorStyle BOTTOM bottom_side red green
CursorStyle LEFT left_side red green
CursorStyle TOP_LEFT top_left_corner red green
CursorStyle TOP_RIGHT top_right_corner red green
CursorStyle BOTTOM_LEFT bottom_left_corner red green
CursorStyle BOTTOM_RIGHT bottom_right_corner red green

## Display a busy cursor during execution of commands
BusyCursor * true



#####
# OpaqueMoveSize allows you to stop Large windows from being moved opaquely,
# I like the effect, and have Cycles to burn, so all windows can use it.
#
# SnapAttraction lets nearby windows snap together, or snap to edges so that they
# are easier to align on your desktop, The default is off, if you set it too large
# it's annoying as hell, 3 pixels is just right.
#################
OpaqueMoveSize -1
SnapAttraction 3

######
# Ksh has my favourite shell syntax, so use it if it exists.
#################
#Test (f /bin/ksh) ExecUseShell /bin/ksh

######
# Menu Settings.
#
#   * PopupOffset allows you to control where submenus will appear, and
#       whether they should overlap or not.
#   * This menu uses a translucent Colorset, and Hilighted items are light
#       blue with a single pixel border.
#   * The Menu will look flat, with a 2 pixel border.
#   * I changed the default ItemFormat to be a little more spacious.
#
# AutomaticHotKeys generates your HotKeys (Keys you can press when a menu opens to
# jump straight to an item) for you, you can write your own also, or disable them.
# I've gone off HotKeys recently, so it's disabled for now.
#################
#Colorset 0 fg black, bg grey, sh lightgrey, hi black, Translucent #c6cfce 90
Colorset 0 fg black, bg #c6c3c6, Tint #efebef 65
Colorset 1 fg black, bg #9cb2ce, hi #dcdcdc, sh #dcdcdc

MenuStyle * Hilight3DThin, PopupOffset -2 100
MenuStyle * Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
#MenuStyle * MenuColorset 0, HilightBack, ActiveColorset 1
MenuStyle * BorderWidth 2, HandleWidth 2, TitleUnderlines1, SeparatorsLong, TrianglesSolid, Animation
MenuStyle * ItemFormat "%.2|%.5i%.5l%.5i%2.3>%2|"
MenuStyle * AutomaticHotKeys

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

######
# Default window Styles.
#
# I like single pixel borders, which look cleaner and simpler that the default 3d borders.
#
# It can be a little tricky to grab the handles, but I usually use a Key Binding for that
# anyway, you can always make the handles stick out a bit more if you use them more than I do.
#
# SloppyFocus is the one true Focus policy :) (focus follows mouse, except on root)
#
# If I click in a window, I like it to be raised.
#
# GrabFocus is terrible, windows are always stealing focus and keystrokes end up in the wrong
# windows and you lose your train of thought, etc. So turn it off here, and back on for windows
# that play nice with it.
#
# Set up an IconBox (an area that Windows jump to by default when Iconified) in the bottom left
#
# Syntax Reminder:
#
# IconBox [screen scr-spec] l t r b
#
# Fvwm offers several placement policies, which decide where new windows should appear, I've
# found that SmartPlacement makes a decent guess at where the windows should be, but there are
# plenty more to choose from.
#################
#Style * Font "xft:Aquafont:size=11", BorderWidth 1, HandleWidth 1
#Style * Font "-*-simsun-medium-r-normal--*-12-*-*-*-*-*-gbk-0-*,-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*"

Style * Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
#Style * Color #f6f6f6/black, HilightBack black, HilightFore white
Style * BorderWidth 2, HandleWidth 2
Style * MWMFunctions, MWMDecor, HintOverride, DecorateTransient, NoPPosition
Style * IconBox 20 100 100 -15, ClickToFocus, ClickToFocusPassesClick
Style * SmartPlacement, WindowShadeSteps 0, ResizeOpaque
Style * Button 1, Button 2, Button 4, Button 6, GrabFocusOff
Style * NoIconTitle

# Comment out these lines if you don't like Icons to have Titles.
Colorset 11 fg black, bg white, NoShape, RootTransparent Buffer
Style * IconTitle, IconTitleColorset 11, HilightIconTitleColorset 11, IconTitleRelief 0
Style * IndexedIconName
Style * IconFont "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=13:encoding=iso10646-1"

# This is another nice Placement Policy, which tries to avoid obscuring existing windows,
# you can set penalties on certain window types so some are less likely to be obscured than
# others. Check the manpage for even more Placement Policies.
Style * MinOverlapPercentPlacement
Style * MinOverlapPercentPlacementPenalties 2 5 1 2 0.5 50

#BorderStyle Active Solid black -- NoInset HiddenHandles
#BorderStyle Inactive Solid black -- NoInset HiddenHandles

#####
# Application specific Style settings
#
# You might be interested in the IconOverride style, which will allow you to specify
# an Icon for an application even if it has set its own previously, This can be very
# useful for applications that insist on setting their own icons even if it doesnt
# fit in with your theme :)
#################
#Style *			  FocusFollowsMouse
Style *			  ClickToFocus, ClickToFocusPassesClick
# StippledTitle
# draw horizontal lines in Title, not so good
#Style *			  Icon me.png, MiniIcon me_mini.png
Style FvwmPager   NoTitle,  Sticky, WindowListSkip, CirculateSkipIcon, CirculateSkip
Style FvwmPager   StaysOnTop, NoHandles, BorderWidth 1
Style FvwmPager   BackColor SteelBlue3 
Style FvwmBanner  NoTitle
#Style FvwmButtons NoTitle, StaysOnBottom, Sticky, WindowListSkip, CirculateSkipIcon, CirculateSkip
#Style FvwmButtons HandleWidth 2, NeverFocus, Layer 1
Style FvwmIconMan NoTitle, Sticky, WindowListSkip, CirculateSkipIcon, CirculateSkip
Style FvwmIconMan HandleWidth 0, BorderWidth 0
	   
Style "Fvwm*"	  Icon fvwm2.xpm

# Use xprop | grep CLASS then click on window to identify the window class
# for example, if you want to set style for emacs, however you do not know
# how the wm names it, then you can use "xprop | grep CLASS" and select a
# running emacs, you'll get its class name as
#		WM_CLASS(STRING) = "emacs", "Emacs"
# That is to say, you can write either
#		Style emacs .....
# or
#		Style Emacs .....
# to point to the emacs editor.
#
Style crxvt*   MiniIcon terminal.xpm, Icon terminals_section.png 
Style xcalc       ClickToFocus
Style xman        ClickToFocus, MiniIcon help.xpm 
Style xmag        ClickToFocus, MiniIcon viewer.xpm
Style XVroot      GrabFocus
Style grun        MiniIcon gears.png
Style FvwmIdent   MiniIcon label_tag_version.png
Style Calculator  MiniIcon calculator.xpm
Style rdesktop	  Icon vmware.xpm
Style xmessage    NoTitle, NoHandles, MiniIcon message.xpm 

#Style xchat-2     ClickToFocus
#Style rxvt        Icon xterm.xpm, MiniIcon terminal.png, WindowShadeShrinks, BorderWidth 3
Style crxvt-gb			Icon xterm.xpm, MiniIcon gnutella.png
#Style rxvt        MiniIcon terminal.png, WindowShadeShrinks, BorderWidth 3
#Style Mulberry    MiniIcon mail.png
#Style Message     MiniIcon person_face_talking.png
#Style VMware      MiniIcon hardware_computers.png
#Style SDL_App     EWMHMiniIconOverride, MiniIcon games_jesters-cap.png
#Style XDosEmu     EWMHMiniIconOverride, MiniIcon games_jesters-cap.png
Style FvwmScript-Quit MiniIcon quit.xpm 
Style __messages_root Sticky, WindowListSkip, NoTitle
Style __messages_root BorderWidth 0, StaysOnBottom, NoHandles, NeverFocus
#Style nautilus    EWMHMiniIconOverride, Icon Folder.xpm
#Style abiword     EWMHMiniIconOverride, MiniIcon document_letter_word-processor.png
#Style grip        EWMHMiniIconOverride, MiniIcon hardware_audio_cd.png
Style xv          		Icon xv.xpm 
Style "*Iceweasel"		Icon firefox.png, IconOverride
Style "*Icedove" 		Icon /usr/share/icedove/icons/default.png,IconOverride
Style mutt				Icon mutt/mutt3.xpm, MiniIcon mutt/mutt2.png
Style xmms				MiniIcon audio_xmms.xpm, StaysOnTop, WindowListSkip,sticky
Style "*Audacious*"		StaysOnTop, WindowListSkip,sticky
Style "*BMP"			StaysOnTop, WindowListSkip, sticky
Style XMMPlayer			StaysOnTop,Notitle
Style MPlayer			StaysOnTop,Notitle
Style xine				StaysOnTop,Notitle
Style "*Filtering*"		StaysOnTop,Notitle
Style "gkrellm"  		Sticky,WindowListSkip,CirculateSkip

#Style mail-notification	StaysOnTop
Style mplayer			StaysOnTop , Notitle
Style gnome-terminal	BorderWidth 1, HandleWidth 1, Icon
#Style gnome-panel		StaysOnTop, Notitle

# AutoHiding Console
Style HiddenConsole Sticky, WindowListSkip, Notitle, StaysOnTop, NoHandles
Style HiddenConsole WindowShadeSteps 100

# Start Menu
# use NeverFocus to avoid being Iconify StaysOnTop 
Style MyStartMenu NeverFocus, Sticky, NoTitle, WindowListSkip, CirculateHit, BorderWidth 0, NoHandles 
Style NavButtons  NeverFocus, Sticky, NoTitle, WindowListSkip, CirculateSkipIcon, CirculateSkip, BorderWidth 0, HandleWidth 0, StaysOnTop

#####
# Miscellaneous Module Settings.
#################

########################## FvwmIdent is an xwininfo replacement.
DestroyModuleConfig FvwmIdent: *
*FvwmIdent: Back MidnightBlue
*FvwmIdent: Fore #f6f6f6
*FvwmIdent: Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"

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

############################# FvwmEvent can bind Commands to Events
DestroyModuleConfig FvwmEvent: *

############################# FvwmAnimate
# You could also use Frame, Lines, Flip, Turn, Twist, Random and None.
DestroyModuleConfig FvwmAnimate: *
*FvwmAnimate: Effect Random
*FvwmAnimate: Delay 25
*FvwmAnimate: Color SteelBlue4

############################# FvwmProxy
# Hit Alt+Esc to toggle FvwmProxy, which allows you to see all windows on your
# desktop, even if they've been obscured..really cool.
DestroyModuleConfig FvwmProxy: *
*FvwmProxy:  Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmProxy: ProxyMove true

Key Escape  A   M   SendToModule FvwmProxy ShowToggle

Colorset 11 fg white, bg SteelBlue4, sh black, hi SteelBlue2, RootTransparent Buffer
############################# FvwmWinList
*FvwmWinList: Colorset 11
*FvwmWinList: Back DarkOliveGreen
*FvwmWinList: Fore PaleGoldenRod
*FvwmWinList: Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmWinList: Action Click1 Function DeiconifyAndRaise
*FvwmWinList: Action Click2 Iconify
*FvwmWinList: Action Click3 Module FvwmIdent
*FvwmWinList: UseSkipList
*FvwmWinList: UseIconNames
#*FvwmWinList: Geometry -50-85
*FvwmWinList: MinWidth 70
*FvwmWinList: MaxWidth 120
# I prefer the text centered
#*FvwmWinList: LeftJustify
# I like it anchored
*FvwmWinList: NoAnchor
# A flat list in most recently focused order
*FvwmWinList: FollowWindowList
*FvwmWinList: ShowAllDesk
#*FvwmWinList: BorderReliefWidth 0
# pretend to be a taskbar
*FvwmWinList: NoIconAction SendToModule FvwmAnimate animate




######################### WindowList menu style
# To get rid of SelectOnRelease use 
MenuStyle WindowList SelectOnRelease none
MenuStyle WindowList SelectOnRelease Meta_L
MenuStyle WindowList SelectOnRelease Alt_L
MenuStyle WindowList Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
MenuStyle WindowList DoubleClickTime 200
MenuStyle WindowList Hilight3DThin
MenuStyle WindowList MenuColorset 11



#####
# Mouse bindings.
#################

# Syntax Reminder:
# Mouse Button Context Modifiers Function
#Context
#R(Root Window) 
#n (n 0...9 ) n 
#1 3 5 7 9     0 8 6 4 2
#, 
#T(Title)
#S(Sidebar).  '[', ']', '-' , '_' 
#F(Frame)resize.  '<', '^', '>' and 'v' 
#W(Working Area) 
#I(Icon window)  


Mouse 1 R       A   Menu MenuFvwmRoot
Mouse 4 R       A   Menu MenuFvwmRoot
Mouse 5 R       A   Menu MenuFvwmRoot
Mouse 3 A       4   Menu MenuFvwmRoot Nop
Mouse 2 R       A   WindowList
Mouse 0 1       A   Menu MenuFvwmWindowOps Nop
Mouse 0 2       A   DestroyOnHold
Mouse 0 6       A   Thumbnail
Mouse 0 4       A   My-Maximize 
Mouse 2 T       A   My-Maximize
Mouse 3 I		A   My-Iconify
Mouse 3 T		A   Iconify
#Mouse 2 TI		C	Close
Mouse 4 T       A   WheelToggleShade True
Mouse 5 T       A   WheelToggleShade False
Mouse 1 FS      A   Resize-or-Raise
Mouse 1 T       A   Move-or-Raise
Mouse 1 I       A   Move-or-Iconify
#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
Mouse 2 S       A   Menu MenuFvwmRoot
# Reserved for Mouse Gestures (See below)
#Mouse 3 R      A   -

#
Mouse   5   T  N   Layer 0 0  
#
Mouse   4   T   N   Layer 0 9
#
Mouse   2   T   N   Layer default
Key Super_L A   N   Layer default

#####
# Key bindings.
#################
#Key Keyname Context Modifiers Function
#KeynameContextModifiers Function
Key space	A		M	Popup MenuFvwmRoot Root c c
#Key space A SM Menu root c c WindowMenu 
#Key Menu A		C	 press_fvwmbuttons 0 50 50
#Key F4  A		 C	 press_fvwmbuttons 1 10 10
#Key Super_L	A		M   Module FvwmTaskBar 
Key F1		A		4   Exec exec crxvt-gb
Key F2		A		4	Exec exec grun
Key F3		A       4   Module FvwmConsole -terminal xterm -bg DodgerBlue4 -fg yellow2 
#kEy F4		A       3   Module FvwmScript FvwmScript-Quit
#Key F4		A       4   Quit
Key F4		A		4   Exec exec iceweasel 
Key F5		A      M4   Restart
Key F6		A       4   Exec exec gvim 
Key F9		A       4   Exec exec stardict
Key F10		A       4   Exec exec pidgin
Key F11		A       4	Exec exec icedove
Key F12		A		4	Exec exec rxvt -geometry 100x40+0+0 -e mutt
# we can use ImageMagick's import to capture the screen
#Key F13 A		 M   Exec exec import 
Key Menu	A		4	Get-FvwmIconMan
#Key Q		A		3	Exec exec qterm
#Key R		A		3	Exec exec rox
Key L		A		4	Exec exec xscreensaver-command -lock
Key G		A		3	Exec exec gnome-terminal
Key N		A		3	Exec exec nautilus --no-desktop
Key m		a		3   mY-mAXIMIZE 
Key I		A		3	Iconify
Key X		A       3   Pick Close
Key X		A       4   Pick Destroy
Key T		A       3   All (AcceptsFocus CurrentPage !Iconic !Shaded) Thumbnail
Key D		A		3	All (AcceptsFocus CurrentPage !Iconic !Shaded)	Iconify
Key Print	A		N	Exec exec scrot --quality 100 '%Y-%m-%d-%X_$wx$h.jpg'
Key Print	A		3	Exec exec scrot -s --quality 100 '%Y-%m-%d-%X_$wx$h.jpg'

Key 1	A		 C	 GoToDesk 0 0
Key 2	A		 C	 GoToDesk 0 1
Key 3	A		 C	 GoToDesk 0 2
Key 4	A		 C	 GoToDesk 0 3

Key 1	A		 CM	 MoveToDesk 0 0
Key 2	A		 CM	 MoveToDesk 0 1
Key 3	A		 CM	 MoveToDesk 0 2
Key 4	A		 CM	 MoveToDesk 0 3

# Change our viewpoint to another page
Key Left    A		M   GotoPage -1p  0p
Key H	    A		M   GotoPage -1p  0p
Key Right   A       M   GotoPage +1p  0p
Key L		A       M   GotoPage +1p  0p
Key Up      A       M   GotoPage  0p -1p
Key K		A       M   GotoPage  0p -1p
Key Down    A       M   GotoPage  0p +1p
Key J		A       M   GotoPage  0p +1p
Key equal   A       M   Exec exec amixer set PCM 2%+
Key minus   A       M   Exec exec amixer set PCM 2%-
Key equal   A       CM  Exec exec audacious -f
Key minus   A       CM  Exec exec audacious -r

# Move the current object in the current page
Key C		A		3	CenterWindow Current
Key End     A       3   CenterWIndow Current
Key End		A		C3	CenterWindow Current
Key Up		WTSF    C3  PackWrapperUp
Key K		WTSF    C3  PackWrapperUp
Key Down	WTSF    C3  PackWrapperDown
Key J		WTSF    C3  PackWrapperDown
Key Left	WTSF    C3  PackWrapperLeft
Key H		WTSF    C3  PackWrapperLeft
Key Right	WTSF    C3  PackWrapperRight
Key L		WTSF    C3  PackWrapperRight

Key Up      WTSF     3  My-Move w0  w-2
Key K		WTSF     3  My-Move w0  w-2
Key Down    WTSF     3  My-Move w0  w5
Key J	    WTSF     3  My-Move w0  w5
Key Left    WTSF     3  My-Move w-2 w0
Key H	    WTSF     3  My-Move w-2 w0
Key Right   WTSF     3  My-Move w2  w0
Key L		WTSF     3  My-Move w2  w0

# Move the current object to another page
Key Left    A       CM  MovetoPage -1p  0p
Key H	    A       CM  MovetoPage -1p  0p
Key Right   A       CM  MovetoPage +1p  0p
Key L		A       CM  MovetoPage +1p  0p
Key Up      A       CM  MovetoPage  0p -1p
Key K	    A       CM  MovetoPage  0p -1p
Key Down    A       CM  MovetoPage  0p +1p
Key J		A       CM  MovetoPage  0p +1p

# Resize the window by kbd, anyhow not so good
Key Z       A		3	 Resize Direction SE warptoborder 
Key End     A		S3   ResizeCenter br w+4 w+4
Key Home    A		S3   ResizeCenter br w-4 w-4
Key Left    A		S3   ResizeCenter br w-2 keep
Key H		A		S3   ResizeCenter br w-2 keep
Key Right	A		S3   ResizeCenter br w+2 keep
Key L		A		S3   ResizeCenter br w+2 keep
Key Up      A		S3   ResizeCenter br keep w-2
Key K		A		S3   ResizeCenter br keep w-2
Key Down    A		S3   ResizeCenter br keep w+2
Key J		A		S3   ResizeCenter br keep w+2

# Save alt-tab for emacs, we can use M-ESC the FvwmProxy to cycle windows
# If you like M-Tab to cycle the windows list, you can use ESC-TAB in Emacs instead. 
# That's my choice.
#Key Tab A M -

####
# Mouse Gestures.
#
# Syntax reminder:
#
#   1   2   3
#
#   4   5   6
#
#   7   8   9
#
# Stroke Sequence Button Context Modifiers Function
#
# I use mouse gestures in Opera and Mozilla, so I've duplicated some common ones here.
#
# To try these out, hold down the Left mouse button and trace the pattern on the Root
# Window, the sequence is a pattern on the grid above, so 14789 would be down then Right.
#################

####
# First, define a StrokeFunc.
#
# Without this, you would have to execute all of your gestures entirely on the Root
# Window, This lets you change the Context and have a few other Neat Features, such as
# DrawMotion, which will draw a line as you make your Gesture (Neat!).
#
# There is also EchoSequence, Feedback and NotStayPressed.
#
# Note: EchoSequence prints sequences to STDERR.
#################
Mouse 3 R A     StrokeFunc DrawMotion FeedBack StrokeWidth 1

# Down, Then Up.
Stroke 25852 0 R N  Refresh

# Directions...
Stroke 456 0 R N    GotoPage +1p 0p
Stroke 654 0 R N    GotoPage -1p 0p
Stroke 852 0 R N    GotoPage 0p -1p
Stroke 258 0 R N    GotoPage 0p +1p

# Diagonal...
Stroke 159 0 R N    GotoPage +1p +1p
Stroke 951 0 R N    GotoPage -1p -1p
Stroke 357 0 R N    GotoPage -1p +1p
Stroke 753 0 R N    GotoPage +1p -1p

#####
# Quit
#
# Down, Then Right.
#
# Dont worry about running this gesture by accident,
# you will be asked to confirm
#################
#Stroke N74123 0 R N  Module FvwmForm FvwmForm-QuitVerify
Stroke N78963 0 R N  All (AcceptsFocus CurrentPage !Iconic !Shaded) Iconify

####
# Up, Then Down: Close a window.
#
# Note that you can also enter the sequence as it appears on your
# Numeric Keypad, by preceding the sequence with an `N`.
#
# The FVWM developers think of everything :)
#################
Stroke N25852 0 R N Pick Destroy

# Start a Web Browser
Stroke N1478963 0 R N Exec exec iceweasel 

# Make a new Sticky Note
#Stroke N1598753 0 R N Exec exec xpad

# Start a crxvt-gb
Stroke N9874123 0 R N Exec exec crxvt-gb


#####
# 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 FvwmAnimate
#+ I Module FvwmEvent
#+ I Module FvwmProxy
+ I Module FvwmAuto FvwmAutohide -menter FuncAutoEnter
# interval on raising
+ I Module FvwmAuto 500 
#+ I Module FvwmButtons MyStartMenu
+ I Module FvwmPager 0 3 
+ I Module FvwmTaskBar 
+ I Module FvwmIconMan
+ I Schedule 5000 PipeRead "echo SetEnv IconManId `xwininfo -name FvwmIconMan | grep xwininfo | cut -d' ' -f4`"

DestroyFunc InitFunction
AddToFunc InitFunction
#+ I Exec exec xsetroot -solid SteelBlue4
+ I Read $./newdecors/aqua.decor
+ I Exec exec fvwm-root --retain-pixmap ~/.fvwm/meihuaxiangzikuhanlai.png
+ I Exec exec gnome-terminal
+ I Exec exec ~/script/fvwm-init
#+ I Exec exec xscreensaver -no-splash
#+ I Exec exec scim -f socket -ns socket -c simple -d
#+ I Exec exec scim -d
#+ I Exec exec fcitx
#+ I Exec exec iceweasel
#+ I Exec exec icedove
#+ I Exec exec pidgin
#+ I Exec exec gkrellm
#+ I Test (Init) Exec exec fvwm-root --dither --retain-pixmap $[fvwm_wallpaper]
#+ I Test (Init) Exec exec rxvt -tr -title '__messages_root' -fn 'cure' -g 80x8+20+15 -fg grey -e mtail --remove-blanks -f /var/log/messages
#+ I Test (Init) StartHiddenConsole
#+ I Test (Restart) All (Iconic) Test (f $[HOME]/.fvwm/icon.tmp.$[w.id].png) WindowStyle IconOverride, Icon $[HOME]/.fvwm/icon.tmp.$[w.id].png
#+ I Exec exec gnome-panel

DestroyFunc RestartFunction
AddToFunc RestartFunction
+ I Read $./newdecors/aqua.decor

#####
# I Sometimes use xsm, but dont usually bother.
#################
#AddToFunc SessionInitFunction I Nop
#AddToFunc SessionRestartFunction I Nop

#####
# ExitFunction is executed when you ask Fvwm to Quit.
# Test (ToRestart) is true before a Restart.
#################
DestroyFunc ExitFunction
AddToFunc ExitFunction
#+ I Test (!ToRestart) Exec exec xmms-shell -e 'xmmsexit'
#+ I Test (!ToRestart) Exec exec xmms -q
+ I Exec exec sync

#####
# Autohide console example: [4]http://dev.gentoo.org/~taviso/autohide_console.png
##################
#DestroyFunc StartHiddenConsole
#AddToFunc StartHiddenConsole
#+ I Exec exec crxvt-gb +sb -geometry 144x8+0+0 -name HiddenConsole
#+ I Wait HiddenConsole
#+ I Autohide HiddenConsole 250 0 N

#####
# Menu definitions
# Beep if theres a missing SubMenu to remind me to write it.
#################

DestroyMenu MenuFvwmRoot
#AddToMenu MenuFvwmRoot *me.png* Title Top
AddToMenu MenuFvwmRoot  %debian-logo.png%Menu Title
#+   MissingSubmenuFunction						Beep
+   ""											Nop
+   %gnome-terminal.xpm%"&Gnome Terminal"		Exec exec gnome-terminal
+   %audacious-32.xpm%"&Audacious"  			Exec exec audacious -p
+   %iceweasel.xpm%"&IceWeasel"					Exec exec iceweasel
+   %icedove.png%"Ice&Dove"						Exec exec icedove
+   %pidgin-menu.xpm%"&Pidgin"					Exec exec pidgin
+	%stardict_32x32.xpm%"&Stardict"				Exec exec stardict
+   %xpdf.xpm%"X&pdf" 		    				Exec exec xpdf
+	%gqview.xpm%"Gq&view"						Exec exec gqview
+	%/usr/share/icons/gnome/32x32/apps/openofficeorg3-writer.png%"&Open Office"			Exec exec ooffice -nologo
+   %/usr/share/eiofileicon/gnome-mime-application-X-eio.png%"Office" 	Exec exec eio
+   %VBox.png%"&VirtualBox" 					Exec exec VirtualBox
+   %acroread.xpm%"&Adobe Reader"   			Exec exec acroread
+   %gimp.xpm%"GI&MP" 		    				Exec exec gimp
+   %googleearth.xpm%"&Google Earth"			Exec exec googleearth
+   ""											Nop
+	%debian-logo.png%""						Popup /Debian
#+   %amsn.png%"My Favourite"					Popup MenuFavourite
#+   %terminal.xpm%"&Aterm"						Exec exec aterm -title '.: a t e r m :.'
#+   ""											Nop
#+   %word-processor.xpm%"Office"				Popup MenuOffice
#+   %network.xpm%"Internet"					Popup MenuInternet
#+   %editor.xpm%"Editors"						Popup MenuEditors
#+   %video.xpm%"Multimedia"					Popup MenuMultimedia
#+   %start.png%"&Run..."						Exec exec grun
#+   %developement.xpm%"Development"   			Popup MenuDevel
#+   %game.xpm%"Games"							Popup MenuGames
#+   %monitoring.xpm%"Logins"					Popup Menulogins
#+   ""											Nop
#+   %utility.xpm%"Utilities"					Popup MenuUtilities
#+   ""											Nop
#+   %terminal-special.xpm%"FvwmConsole"		Module FvwmConsole -terminal rxvt
#+   %system.xpm%"Preferences"					Popup MenuFvwmConfig
#+   %window.xpm%"Window Controls"				Popup MenuFvwmWindowOps
#+   ""											Nop
#+   %choice-no.xpm%"&Xkill"					Pick Destroy
#+   %refresh.xpm%"R&efresh"  					Refresh
#+   %dillo.png%"Decors"						Popup NewDecors
#+   %colors.xpm%"&Wallpaper"					Popup WallpaperMenu
#+   %themes.xpm%"&Themes"						Popup ThemesMenu
+   ""											Nop
+   %lock.xpm%"&Lock Screen"					Exec exec xscreensaver-command -lock
+   ""											Nop
+   %quit.xpm%"Exit Fvwm"						Popup MenuQuit-Verify
#+	"Quit/Restart Fvwm" Module FvwmForm FvwmForm-QuitVerify

############# Menus
# I have made a patch to fvwm-theme to save wallpaper automatically,
# and load it next time. However, I can not browser the thumbnail,
# which I think would turn to be a night mare if there were too many
# wallpapers. Moreover, fvwm-wallpaper can not work recursively, that
# is to say, I have to put all wallpapers in the single ~/wallpaper
# directory, which is not a so good solution :)
#Read $[HOME]/.fvwm-wallpaper/menu
Colorset 7 fg black, bg white, NoShape, Tint #5a8ade 60
Colorset 8 fg black, bg white, NoShape, Tint #f6f6f6 20


# System Debian Menu
Read /etc/X11/fvwm/menudefs.hook

DestroyMenu MenuOffice
AddToMenu MenuOffice
+   %acroread.xpm%"Adobe Reader"    Exec exec acroread
+   %xpdf.xpm%"Xpdf"    Exec exec xpdf
+   %calculator.xpm%"Calculator"			Exec exec rcalc

DestroyMenu MenuInternet
AddToMenu MenuInternet
+   %pidgin-menu%"Pidgin"   Exec exec pidgin
#+   %news_newspaper.png%"News Reader"%ctl_alt_n.png%    Exec exec pan
+   %chat.xpm%"Xchat"          Exec exec xchat-2
#+   %network_view.png%"Network Analyser"    Exec exec sudo ethereal
#+   %music_notes_view.png%"File Sharing"    Exec exec giFToxic
#+   %mail.png%"E-Mail Client"%ctl_alt_m.png%    Exec exec mulberry
+   ""                                      Nop
+   %www.xpm%"iceweasel"   Exec exec iceweasel
#+   %browser_ship-wheel.png%"Mozilla Firebird"  Exec exec MozillaFirebird
#+   %hand_world_web-site.png%"Dillo Fast Web Browser" Exec exec dillo

DestroyMenu MenuEditors
AddToMenu MenuEditors
+   %vim.xpm%"gVim"						Exec exec gvim -geom 115x46
#+	%gnu.xpm%"Emacs"						Exec exec emacs
+   %gedit-icon.xpm%"Gedit Editor"           Exec exec gedit


DestroyMenu MenuMultimedia
AddToMenu MenuMultimedia
+   MissingSubmenuFunction FuncFvwmMenuDirectory
+   %xmms.xpm%"XMMS"      Exec exec xmms
#+   %graphics_woman_panel.png%"Xv Graphics Viewer"  Exec exec xv
+   %gqview.xpm%"gqview"  Exec exec gqview
+   %gimp.xpm%"GIMP"   Exec exec gimp
#+   %hardware_audio_cd.png%"Audio CD Player"    Exec exec grip
+   %aumix.mini.xpm%"Audio Mixer"  Exec exec aumix
+   ""                                      Nop
+   "Browse Videos"  Popup $[fvwm_video_path]
+   "Browse Music"    Popup $[fvwm_audio_path]
+   "Browse Images"   Popup $[fvwm_image_path]

DestroyMenu MenuUtilities
AddToMenu MenuUtilities
#+   %folder_view.png%"Nautilus File Manager"    Exec exec nautilus --no-desktop
#+   %hardware_computers.png%"VMware Workstation"    Exec exec vmware
#+   %document_graph.png%"3D File System Explorer"   Exec exec fsv
+   %viewer.xpm%"Magnifying Glass"   Exec exec xmag
+   "Window Information"        Exec exec xmessage "`xwininfo`"
+   "Process Information"        Exec exec crxvt-gb -title '.: t o p :.' -tr -e top
+   ""                                      Nop
+   "Expose Page" FvwmExpose
+   "Show Desktop" All (AcceptsFocus CurrentPage !Iconic !Shaded) Thumbnail

DestroyMenu MenuDevel
AddToMenu MenuDevel
#+   %html_edit.png%"Bluefish Html Editor"   Exec exec bluefish
#+   %widget_buttons.png%"Anjuta Development Environment"    Exec exec anjuta
+   %gnu.xpm%"Emacs"   Exec exec emacs
+   %item.xpm%"Graphical Debugger"   Exec exec ddd

DestroyMenu MenuGames
AddToMenu MenuGames
+   MissingSubmenuFunction FuncFvwmMenuDirectory
#+   %games_jesters-cap.png%"MAME Arcade Emulator"   Exec exec gxmame
#+   %games_shooters_target.png%"Super Nintendo Emulator"    Exec exec zsnes
#+   %games_roleplaying_muds_people.png%"Nethack Adventure Game" Exec exec nethack
#+   %games_jesters-cap.png%"MS-DOS Emulator"    Exec exec xdosemu
#+   ""                                      Nop
#+   %plane.png%"Browse Super Nintendo Games"    Popup $[fvwm_rom_path]

#####
# I start fvwm from my ~/.xinitrc like this:
#   exec ssh-agent fvwm2
# So if i select "Add Agent Identity" from this menu, it adds my default ssh key to ssh-agent.
#################
DestroyMenu MenuLogins
AddToMenu MenuLogins
#+   %telephone_out.png%"SDF Public Access UNIX System"%ctl_alt_s.png%   Exec exec aterm -g \
#        102x42 -title '.: s d f :.' -e ssh tty.freeshell.org
#+   %computer_network.png%"Gentoo Linux Dev Server" Exec exec aterm -g \
#        102x42 -title '.: t e r m i n a l :.' -e ssh dev.gentoo.org
#+   %key2.png%"Add Agent Identity"  Exec ssh-add < /dev/null || ( test -x /usr/lib/misc/ssh-askpass || xmessage "Please install net-misc/x11-ssh-askpass." )
#+   ""                                      Nop
#+   %computer_x11.png%"Large Terminal Emulator" Exec exec aterm -g 102x42 -title '.: t e r m i n a l :.'
#+   %computer_x11.png%"Mini Terminal Emulator"  Exec exec rxvt -g 63x8 -title '.: m i n i t e r m :.' -e sh

#####
# You can browse directories and files with the fvwm-menu-directory
# script included with Fvwm, its very configurable (as you might expect!),
# and very useful.
#
# [5]http://www.mail-archive.com/fvwm%40hpc.uh.edu/msg05260.html
#################
DestroyFunc FuncFvwmMenuDirectory
AddToFunc FuncFvwmMenuDirectory
+ I PipeRead 'case $0 in \
		$[fvwm_rom_path]*) myexec=$[fvwm_rom_exec] mypng=games_puzzles_dice.png;; \
		$[fvwm_video_path]*) myexec=$[fvwm_video_exec] mypng=film.png;; \
		$[fvwm_audio_path]*) myexec=$[fvwm_audio_exec] mypng=audio.png;; \
		$[fvwm_image_path]*) myexec=$[fvwm_image_exec] mypng=graphics_presentation_person.png;; \
		esac; \
		fvwm-menu-directory --icon-title folder_view.png --icon-file ${mypng:-file_text_view.png} \
		--icon-dir folder_paper_closed.png --dir $0 --xterm exec --exec-file ${myexec:-gvim}'

DestroyMenu MenuQuit-Verify
AddToMenu MenuQuit-Verify
+   " Fvwm" Restart
+   ""          Nop
+   ""          Nop
+   " Fvwm" Quit
+   ""          Nop
+   ""          Nop
#+   "/"				Popup Shutdown-Verify
#DestroyMenu Shutdown-Verify
#AddToMenu Shutdown-Verify %quit.xpm%"/" title
+   ""   Exec exec sudo /sbin/shutdown -h now
+   ""       Nop
+   ""       Nop
+   ""   Exec exec sudo /sbin/reboot
#+   "Quit Fvwm Now" Module FvwmForm FvwmForm-QuitVerify

DestroyMenu MenuFvwmConfig
AddToMenu MenuFvwmConfig
+   "Colour Browser" Exec exec xcolors
+	"Colour Picker"  Exec exec xcolorsel
+   "Edit fvwm2rc"   Exec exec gnome-terminal -e "vim $HOME/.fvwm/config"
+   ""               Nop
+   "Fvwm Modules"   Popup MenuFvwmModules
+   ""               Nop
+   "Configure FvwmForm..." Module FvwmForm FvwmForm-Form
+   "Configure Cursor..."   Module FvwmForm FvwmForm-RootCursor
+   "Configure Screensaver..."  Exec exec xscreensaver-demo
+   "Configure Mouse..."    Module FvwmScript FvwmScript-PointerSetup
+   "Configure Keyboard..." Module FvwmScript FvwmScript-KeyboardSetup
+   "Configure Bell..."      Module FvwmScript FvwmScript-BellSetup
+   "General Settings..."  Module FvwmScript FvwmScript-BaseConfig

DestroyFunc SwitchDecor
AddToFunc SwitchDecor
+ I Style * IconTitleColorset
+ I Style * HilightIconTitleColorset
+ I Style * IconBackgroundColorset
+ I Read $./newdecors/$0

DestroyMenu NewDecors
AddToMenu NewDecors "Decors" Title
+       "ABC"           Function SwitchDecor abc.decor
+       "Apple Aqua"    Function SwitchDecor aqua.decor
+       "BlueGray"      Function SwitchDecor bluegray.decor
+       "Blue Wing"     Function SwitchDecor blue_wing.decor
+       "Celtic"        Function SwitchDecor celtic.decor
+		"Default"		Function SwitchDecor default.decor
+       "Emerald"       Function SwitchDecor emerald.decor
+       "Glass"         Function SwitchDecor glass.decor
+       "Gold Leaf"     Function SwitchDecor goldleaf.decor
+       "Leather"       Function SwitchDecor leather.decor
+       "Marble"        Function SwitchDecor marble.decor
+       "Metal"         Function SwitchDecor metal.decor
+       "MWM"           Function PlainDecor #cdc7b8 #97715a
+       "Pink Pearl"    Function SwitchDecor pinkpearl.decor
+       "Purple and Silver"  Function SwitchDecor purpsilver.decor
+       "Rainbow"       Function SwitchDecor rainbow.decor
+       "Red and Gold"  Function SwitchDecor redgold.decor
+       "Silver"        Function SwitchDecor silver.decor
+		"Simple"		Function SwitchDecor simple.decor
+       "Springtime"    Function SwitchDecor springtime.decor
+       "Starry"        Function SwitchDecor starry.decor
+       "Stone Age"     Function SwitchDecor stoneage.decor
+       "Water"         Function SwitchDecor water.decor
+       "Wine"          Function SwitchDecor wine.decor
+       "Wood"          Function SwitchDecor wood.decor
+       "Plain Decors"        Popup Fractal-Decors

DestroyMenu Fractal-Decors
AddToMenu Fractal-Decors "Fractal Decors" Title
+       "Circled Vine"   Function PlainDecor #847383 #403b5b
+       "Fanar"          Function PlainDecor #cdc7b8 #97715a
+       "Old Lace"       Function PlainDecor #b197a2 #f7eecf
+       "Startdust"      Function PlainDecor #8c95b4 #3d3571
+       "Sunset Flowers" Function PlainDecor #8a9a8f #3b3d4a
+       "Swimming"       Function PlainDecor #a08895 #684f62
+       "Twist of Fate"  Function PlainDecor #938988 #364147

DestroyFunc PlainDecor
AddToFunc PlainDecor
+ I Colorset 0 fg $0, bg $1, TiledPixmap, Pixmap
+ I Colorset 1 fg $1, bg $0, TiledPixmap, Pixmap
+ I Style * IconTitleColorset
+ I Style * IconBackgroundColorset
+ I Style * HilightIconTitleColorset
+ I Read $./plain.decor


#####
# `Pick` is very handy, if it's obvious which window you're talking about,
# The command is executed immediately within the context of that window.
#
# If it isnt obvious, for example, you select `Move` from the Root menu, the
# cursor becomes a crosshair, and you can select the window you you would like
# to apply the command to by clicking it.
#
# This saves a lot of work, you can use `Pick` with everything that might be
# Called without context and only write one function/menu instead of two.
#################
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
+   "Center Window"		Pick PipeRead \
	"echo AnimatedMove `expr \\( $[vp.width] - $[w.width] \\) / 2`p \
	`expr \\( $[vp.height] - $[w.height] \\) / 2`p"
+   ""                              Nop
+   "Pack Up"			Pick PackWrapperUp
+   "Pack Left"			Pick PackWrapperLeft
+   "Pack right"		Pick PackWrapperRight
+   "Pack down"			Pick PackWrapperDown
+   ""                              Nop
#+   "Move To Page"		Popup MenuPageList
+   "Move To Desk"		Popup MenuDeskList
+   ""                              Nop
+   "Interactive Move"  Pick Move

DestroyMenu MenuPageList
AddToMenu MenuPageList
+ "0 0"   Pick MoveToPage 0 0
+ "1 0"   Pick MoveToPage 1 0
#+ "0 1"   Pick MoveToPage 0 1
#+ "1 1"   Pick MoveToPage 1 1
DestroyMenu MenuDeskList
AddToMenu MenuDeskList
+ "0"   Pick MoveToDesk 0 0
+ "1"   Pick MoveToDesk 0 1
+ "2"   Pick MoveToDesk 0 2
+ "3"   Pick MoveToDesk 0 3
#####
# WindowOps, Main window controls menu.
#################
DestroyMenu MenuFvwmWindowOps
AddToMenu MenuFvwmWindowOps
+	"Raise/Lower"		Pick RaiseLower
+   "Iconify"			Pick Iconify
+   "Maxmimise"         Pick Maximize
+   "Resize"            Pick Resize
+   "Thumbnail "        Pick Thumbnail
+   "Move"              Popup FvwmMoveMethods
+   "Shade"             Pick WindowShade Toggle
+   ""  Nop
+   "Stick"				Pick Stick
+   "Scroll"            Pick Module FvwmScroll
+   "Refresh"			Pick RefreshWindow
+   ""  Nop
+   "Identify"			Pick Module FvwmIdent
#+   "Zoom"				Pick Exec exec xmag -source $[w.width]x$[w.height]+$[w.x]+$[w.y] -mag 2
+   ""  Nop
+   "Close"				Pick Close
+   "Destroy"			Pick 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 3
+   "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 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

DestroyMenu MenuFavourite
AddToMenu MenuFavourite %amsn.png%"My Favourite" Title
+   %iceweasel.xpm%"&IceWeasel"					Exec exec iceweasel
+   %icedove.png%"Ice&Dove"						Exec exec icedove
+   %pidgin-menu.xpm%"&Pidgin"						Exec exec pidgin
+	%stardict_32x32.xpm%"&Stardict"						Exec exec stardict
+   %audacious-32.xpm%"&Audacious"     				Exec exec audacious
+	%gqview.xpm%"Gq&view"						Exec exec gqview
+	%gnome-calendar.png%"&Open Office"					Exec exec ooffice -nologo
+   %xmms.xpm%"&XMMS"     					Exec exec xmms -p
+   %acroread.xpm%"&Adobe Reader"   Exec exec acroread
+   %VBox.png%"&VirtualBox" 		Exec exec VirtualBox
+   %chmsee-32x32.xpm%"&ChmSee" 			    		Exec exec chmsee
+	%gedit-icon.xpm%"G&Edit"						Exec exec gedit
+   %gimp.xpm%"GI&MP" 		    			Exec exec gimp
+   %gkrellm.xpm%"G&krellm" 			    		Exec exec gkrellm
+   %grdesktop.png%"G&rdesktop" 			    	Exec exec grdesktop
+   %totem.xpm%"T&otem" 			    		Exec exec totem
+   %realplay_32x32.png%"&Realplayer" 			    	Exec exec realplayer
+   %xine.xpm%"Xi&ne"      					Exec exec xine
+   %xpdf.xpm%"X&pdf" 		    			Exec exec xpdf
+   "X&kill" 		    			Exec exec xkill
+   "Scree&nshot"					Exec exec scrot --quality 100

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

#####
# Name:     PackWindowUp
# Bound:    Alt+Shift+Up When a window is active
# Purpose:  Interrogate all windows on the current page, find the window with an edge
#           closest to active window, and slide the Active window upto that edge, or
#           the Page edge, if no window is in the way.
#
#           The Wrappers are required to look after the Context while we're testing
#           windows. Could also do it with a load of variables, but this is nicer.
#
#           See PackWindowLeft for a description of the logic (i know it looks a little
#           cryptic).
#
#           Sometimes terminals seem to need WindowRefresh, but 99% of the time it just
#           works, it creates a little flicker so I'll leave it out until it starts to bug
#           me.
#
#           Windows are also Raised, you can disable this.
#
#################
DestroyFunc PackWindowUp
AddToFunc PackWindowUp
+ I SetEnv low_w 0
+ I WindowId $3 Raise
+ I All (CurrentPage !Iconic AcceptsFocus \
		!Shaded) PipeRead "test `expr $[w.y] + $[w.height]` -gt $[low_w] \
		-a `expr $[w.y] + $[w.height]` -lt $0 \
		-a \\( \\( $[w.x] -gt $1 -a $[w.x] -lt `expr $1 + $2` \\) \
				-o \\( $1 -gt $[w.x] -a $1 -lt `expr $[w.x] + $[w.width]` \\) \
				-o \\( $1 -le $[w.x] -a `expr $1 + $2` -ge `expr $[w.x] + $[w.width]` \\) \
				-o \\( $[w.x] -lt $1 -a `expr $[w.x] + $[w.width]` -gt `expr $1 + $2` \\) \
		\\) \
		&& echo SetEnv low_w `expr $[w.y] + $[w.height]` \
		|| echo Nop"
+ I WindowId $3 AnimatedMove keep $[low_w] preshWindow

AddToFunc PackWrapperUp 
+ I SetEnv THIS_WIN $[w.id]
+ I NoWindow PackWindowUp $[w.y] $[w.x] $[w.width] $[w.id]
+ I WindowId $[THIS_WIN] WarpToWindow 50 50

#####
# Name:     PackWindowDown
# Bound:    Alt+Shift+Down When a window is active.
# Purpose:  See PackWindowUp.
#
#################
DestroyFunc PackWindowDown
AddToFunc PackWindowDown
+ I SetEnv high_w $[vp.height]
+ I WindowId $3 Raise
+ I All (CurrentPage !Iconic AcceptsFocus \
	!Shaded) PipeRead "test $[w.y] -lt $[high_w] \
	-a $[w.y] -gt `expr $0 + $4`  \
	-a \\( \\( $[w.x] -gt $1 -a $[w.x] -lt `expr $1 + $2` \\) \
			-o \\( $1 -gt $[w.x] -a $1 -lt `expr $[w.x] + $[w.width]` \\) \
			-o \\( $1 -le $[w.x] -a `expr $1 + $2` -ge `expr $[w.x] + $[w.width]` \\) \
			-o \\( $[w.x] -lt $1 -a `expr $[w.x] + $[w.width]` -gt `expr $1 + $2` \\) \
	\\) \
	&& echo SetEnv high_w $[w.y] \
	|| echo Nop"
+ I PipeRead "echo WindowId $3 AnimatedMove keep `expr $[high_w] - $4`p"
#+ I WindowId $3 RefreshWindow

AddToFunc PackWrapperDown 
+ I SetEnv THIS_WIN $[w.id]
+ I NoWindow PackWindowDown $[w.y] $[w.x] $[w.width] $[w.id] $[w.height]
+ I WindowId $[THIS_WIN] WarpToWindow 0 0

#####
# Name:     PackWindowLeft
# Bound:    Alt+Shift+Left When a window is active
# Purpose:  See PackWindowUp.
#
# The Logic works likes this:
#   1. Set Destination to the Left Edge
#   2. For every window, Run these tests:
#               + Is the Window's Right edge further _Right_ than furthest edge seen yet?
#       And:    + Is it's Right edge Further _Left_ than Target Windows Left edge? (ie, in the way)
#           Yes:
#                   + Does the window start inside Target Window, and end below?
#               Or  + Does it start above, and end inside?
#               Or  + Is it the same vertical position/height/size, or start inside and end inside?
#               Or  + Does it start above, and end below?
#                   Yes:
#                       This is the new Destination.
#                   No:
#                       Nop
#           No:
#               Nop
#   3. Move to Destination.
#
#################
DestroyFunc PackWindowLeft
AddToFunc PackWindowLeft
+ I SetEnv left_w 0
+ I WindowId $3 Raise
+ I All (CurrentPage !Iconic AcceptsFocus \
		!Shaded) PipeRead "test `expr $[w.x] + $[w.width]` -gt $[left_w] \
		-a `expr $[w.x] + $[w.width]` -lt $1 \
		-a \\( \\( $[w.y] -gt $0 -a $[w.y] -lt `expr $0 + $4` \\) \
				-o \\( $[w.y] -lt $0 -a `expr $[w.y] + $[w.height]` -gt $0 \\) \
				-o \\( $[w.y] -ge $0 -a `expr $[w.y] + $[w.height]` -le `expr $0 + $4` \\) \
				-o \\( $[w.y] -lt $0 -a `expr $[w.y] + $[w.height]` -gt `expr $0 + $4` \\) \
		\\) \
		&& echo SetEnv left_w `expr $[w.x] + $[w.width]`  \
		|| echo Nop"
+ I WindowId $3 AnimatedMove $[left_w]p keep
#+ I WindowId $3 RefreshWindow

AddToFunc PackWrapperLeft 
+ I SetEnv THIS_WIN $[w.id]
+ I NoWindow PackWindowLeft $[w.y] $[w.x] $[w.width] $[w.id] $[w.height]
+ I WindowId $[THIS_WIN] WarpToWindow 50 50

DestroyFunc PackWindowRight
AddToFunc PackWindowRight
+ I SetEnv right_w $[vp.width]
+ I WindowId $3 Raise
+ I All (CurrentPage !Iconic AcceptsFocus \
		!Shaded) PipeRead "test $[w.x] -lt $[right_w] \
	-a $[w.x] -gt `expr $1 + $2` \
	-a \\( \\( $[w.y] -gt $0 -a $[w.y] -lt `expr $0 + $4` \\) \
			-o \\( $[w.y] -lt $0 -a `expr $[w.y] + $[w.height]` -gt $0 \\) \
			-o \\( $[w.y] -ge $0 -a `expr $[w.y] + $[w.height]` -le `expr $0 + $4` \\) \
			-o \\( $[w.y] -lt $0 -a `expr $[w.y] + $[w.height]` -gt `expr $0 + $4` \\) \
	\\) \
	&& echo SetEnv right_w $[w.x] \
	|| echo Nop"
+ I PipeRead "echo WindowId $3 AnimatedMove `expr $[right_w] - $2`p keep"
#+ I WindowId $3 RefreshWindow

AddToFunc PackWrapperRight 
+ I SetEnv THIS_WIN $[w.id]
+ I NoWindow PackWindowRight $[w.y] $[w.x] $[w.width] $[w.id] $[w.height]
+ I WindowId $[THIS_WIN] WarpToWindow 50 50

DestroyFunc CenterWindow
AddToFunc   CenterWindow
+ I SetEnv THIS_WIN $[w.id]
+ I ThisWindow Piperead "echo Move \
		$(( $[vp.width]/2-$[w.width]/2 ))p \
		$(( $[vp.height]/2-$[w.height]/2 ))p"
+ I WindowId $[THIS_WIN] WarpToWindow 50 50

DestroyFunc ResizeCenter
AddToFunc ResizeCenter
+ I WarpToWindow 50 50
+ I Resize $0 $1 $2
#+ I CenterWindow

#####
# Name:     WheelToggleShade
# Bound:    Mouse Buttons 4 and 5 (wheel up and down) on Titlebars
# Purpose:  Shade or unshade the window when the Mouse wheel is rolled up or
#           down on the Titlebar. Rolling the Wheel up calls the Function with
#           argument `True` and rolling it down uses `False`, so rolling the wheel
#           down when the window isnt shaded has no effect, which I like :)
#
#################
DestroyFunc WheelToggleShade
AddToFunc WheelToggleShade D WindowShade $0

#####
# Name:     DestroyOnHold
# Bound:    Titlebar Button 2 (X)
# Purpose:  When clicked, Raise the window Immediately.
#           If the button is pressed and released, Close the Window. If it is pressed
#           and held, Destroy it, and issue a Beep to confirm.
#
#           There is a 100ms delay before issuing `Close` so I have a chance to see the
#           animation when the button changes from ActiveDown to ActiveUp :).
#
#################
DestroyFunc DestroyOnHold
AddToFunc DestroyOnHold I Raise
+ C Schedule 100 Close
+ H Destroy
+ H Beep

#####
# Name:     Thumbnail
# Purpose:  Iconify a window with a reduced screenshot of the application
#           Window, looks really cool.
#
#           Uses FvwmEvent to remove the Icon when deiconified, you will want
#           to remove this if you use WindowStyle elsewhere.
#
#           Thumbnailing example: [6]http://dev.gentoo.org/~taviso/step2.png
#
##################
DestroyFunc Thumbnail
AddToFunc Thumbnail
+ I Raise
#+ I PipeRead "xwd -silent -id $[w.id] | convert -scale $[fvwm_icon_size] -frame 1x1 \
	-mattecolor black -quality 0 xwd:- png:$[HOME]/.fvwm/icon.tmp.$[w.id].png \
	&& echo WindowStyle IconOverride, Icon $[HOME]/.fvwm/icon.tmp.$[w.id].png, StaysOnBottom \
	|| echo Nop"
+ I Iconify

DestroyFunc DeThumbnail
AddToFunc DeThumbnail
+ I DestroyWindowStyle
+ I Exec exec rm -f $HOME/.fvwm/icon.tmp.$[w.id].png

# FIXME: This will destroy all Windowstyle settings.
#*FvwmEvent: deiconify DeThumbnail

# FIXME: Make this more useful.
# XXX: This doesnt do much yet, you can play with it if you like.
# Example: [7]http://dev.gentoo.org/~taviso/fvwm_expose.png
DestroyFunc FvwmExpose
AddToFunc FvwmExpose
+ I AddToMenu FvwmExposeMenu ".: e x p o s e :." Title
+ I All (!Iconic !Shaded CurrentPage AcceptsFocus)\
	PipeRead "echo Raise; \
	xwd -silent -id $[w.id] | convert -scale 128 -frame 1x1 \
	-mattecolor white -quality 0 xwd:- \
	png:$[HOME]/.fvwm/icon.exp.$[w.id].png \
	&& echo AddToMenu FvwmExposeMenu \
	%$[HOME]/.fvwm/icon.exp.$[w.id].png%\\\'\"$[w.name]\"\\\' WindowID $[w.id] WarpToWindow 50 50 \
	&& echo AddToMenu FvwmExposeMenu \\\"\\\" Nop \
	|| Nop"
+ I Popup FvwmExposeMenu
+ I DestroyMenu FvwmExposeMenu
+ I Exec exec rm -f $[HOME]/.fvwm/icon.exp.*

AddToFunc WindowListFunc I WarpToWindow 50 50

DestroyFunc FuncAutoEnter
AddToFunc FuncAutoEnter 
#+ I Autohide HiddenConsole 250 500 N
#+ I Autohide MyStartMenu 50 4000 N
+ I Autohide FvwmPager 50 50 N
#+ I Autohide FvwmTaskBar 100 250 S

####
# These functions modified from the functions provided in the fvwm FAQ.
# [8]http://www.fvwm.org/documentation/faq/#7.17
#################
AddToFunc Autohide
+ I ThisWindow ($0) Deschedule $[w.id]
+ I TestRc (!Match) Deschedule -$[w.id]
+ I ThisWindow ($0) ThisWindow (shaded) AutohideShow $1 $3
+ I TestRc (!Match) All ($0, !shaded) AutohideHide $2 $3

AddToFunc AutohideShow
+ I Schedule $0 -$[w.id] WindowShade $1 off
+ I Schedule $0 -$[w.id] Raise
+ I Schedule $0 -$[w.id] Deschedule $[w.id]
+ I Schedule $0 -$[w.id] Deschedule -$[w.id]

AddToFunc AutohideHide
+ I Schedule $0 $[w.id] WindowShade $1 on
+ I Schedule $0 $[w.id] Deschedule $[w.id]
+ I Schedule $0 $[w.id] Deschedule -$[w.id]

#####
# Miscellaneous Functions
#################
DestroyFunc My-Maximize
AddToFunc My-Maximize
+ I SetEnv THIS_WIN $[w.id]
#+ I Piperead echo "SetEnv MYTEMP  `expr $[pointer.wx] \\* 100`"
#+ I Piperead echo "SetEnv THIS_X  `expr $[MYTEMP] / $[w.width]`"
#+ I SetEnv THIS_X	$[pointer.wx]
+ I SetEnv THIS_Y   $[pointer.wy]
+ I Maximize
+ I WindowId $[THIS_WIN] WarpToWindow 50 $[THIS_Y]p


DestroyFunc My-Move
AddToFunc My-Move
+ I SetEnv THIS_WIN $[w.id]
#+ I SetEnv THIS_X   $[pointer.wx]
+ I SetEnv THIS_Y   $[pointer.wy]
+ I Move $0 $1
+ I WindowId $[THIS_WIN] WarpToWindow 50 $[THIS_Y]p


DestroyFunc My-Iconify
AddToFunc My-Iconify
+ I SetEnv THIS_WIN $[w.id]
+ I Iconify
+ I WindowId $[THIS_WIN] WarpToWindow 50 5p

AddToFunc Raise-to-Top
+ I Layer 0 ontop
+ I Raise

DestroyFunc Move-or-Raise
AddToFunc Move-or-Raise 
+ I Raise
+ M Move
#+ D WindowShade Toggle
+ D My-Maximize


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


DestroyFunc Move-or-Iconify
AddToFunc Move-or-Iconify 
+ I Raise
+ M Move
+ C Iconify

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


DestroyFunc Get-FvwmIconMan
AddToFunc Get-FvwmIconMan
# I am not sure whether how to ref fvwmiconman with a name instead of windowid
+ I WindowId $[IconManId] WarpToWindow 50 50


DestroyFunc Raise-FvwmIconMan
AddToFunc Raise-FvwmIconMan
# I am not sure whether how to ref fvwmiconman with a name instead of windowid
+ I WindowId $[IconManId] RaiseLower

#####
# FvwmPager is probably the most advanced desktop pager ever written,
# of course its highly configurable, has many advanced features, and can
# be made to look very eye candy.
#
# You can drag the Windows around inside the Pager, pull windows from
# other desktops out onto your current page, or drag the viewport into
# non-standard positions.
#
# This pager gets swallowed into my FvwmButtons Bar. The pages are seperated
# by solid white lines, the pager itself is tinted transparent and the colours
# lighten as focus and the viewport changes.
#
# You can write titles, or draw icons into the Windows, but i prefer to use
# the Balloons (tooltips) to find the Names.
#
#   +-----+-----+-----+
#   |     |     |     |
#   +-----+-----+-----+
#   |     |     |     |
#   +-----+-----+-----+
#   |     |     |     |
#   +-----+-----+-----+
#
#################
# high color of focus window
Colorset 2 fg white, bg SteelBlue2, Tint #b5b2ff 80
# color of focus window
Colorset 3 fg #63656e, bg SteelBlue4, Tint #b5b2ff 60
# main color
Colorset 4 fg SteelBlue3, bg SteelBlue4, sh black, hi SteelBlue2, RootTransparent Buffer
# balloon color
Colorset 5 fg black, bg Khaki1, Plain 
# focus pager
Colorset 6 fg SteelBlue2, bg DodgerBlue4

DestroyModuleConfig FvwmPager: *
*FvwmPager: Geometry +0+0
*FvwmPager: Rows 1
# main color
*FvwmPager: Colorset * 4
# focus pager
*FvwmPager: HilightColorset * 6
# focus window
*FvwmPager: WindowColorsets 3 2
# Balloon color
*FvwmPager: BalloonColorset * 5
*FvwmPager: Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=11:encoding=iso10646-1"
*FvwmPager: SmallFont "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=10:encoding=iso10646-1"
*FvwmPager: Balloons All
*FvwmPager: BalloonFont "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmPager: BalloonYOffset +2
*FvwmPager: BalloonBorderWidth 1
*FvwmPager: SloppyFocus 
*FvwmPager: UseSkipList
*FvwmPager: MoveThreshold 3
#*FvwmPager: SolidSeparators
*FvwmPager: WindowLabelFormat "%i"
*FvwmPager: WindowBorderWidth 1
#*FvwmPager: Window3DBorders
*FvwmPager: Label 0 Frist
*FvwmPager: Label 1 Second
*FvwmPager: Label 2 Third
*FvwmPager: Label 3 Fourth


##### Press Button Simulation
# http://www.fvwm.org/documentation/faq/#toc_4.7
# TODO
DestroyFunc press_fvwmbuttons
AddToFunc press_fvwmbuttons
+ I SetEnv pointer_x $[pointer.x]
+ I SetEnv pointer_y $[pointer.y]
+ I Next ("MyStartMenu", CirculateHit) WarpToWindow $1 $2
+ I FakeClick depth 0 press $0 release $0
+ I WindowId root WarpToWindow $[pointer_x]p $[pointer_y]p

DestroyFunc FuncFullScreen
AddtoFunc FuncFullScreen
+ I Current (Maximizable, HasHandles,!FixedSize) FuncDoFullScreen Break
+ I Current (FixedSize, Maximized) FuncUnFullScreen

DestroyFunc FuncDoFullScreen
AddtoFunc FuncDoFullScreen
+ I WindowStyle NoTitle,HandleWidth 0,FixedSize,FixedPosition
+ I Current (!Maximized) Maximize
+ I ResizeMaximize 100 100

DestroyFunc FuncUnFullScreen
AddtoFunc FuncUnFullScreen
+ I DestroyWindowStyle
+ I Maximize

DestroyModuleConfig FvwmButtons: *
################## FvwmButtons button-bar ################################
#*FvwmButtonsBack DodgerBlue3
#bisque3
*MyStartMenu: Geometry 63x16+0+0
*MyStartMenu: Back SteelBlue4
*MyStartMenu: (Panel(down, indicator, delay 0, steps 1, NoHints, position Button left 0 0 noplr) \
									NavButtons "Module FvwmButtons NavButtons")
#*MyStartMenu: Font  -*-simsun-medium-r-*-*-16-*-*-*-*-*-*-*
#*NavPanel: Geometry 80x352
#*NavPanel: (Swallow "FvwmButtons" "Module FvwmButtons NavButtons")
#*NavPanel: Font  "StringEncoding=gbk-0:xft:MingLiu:Bold:Size=12:encoding=iso10646-1"


########### NavButtons: tools bar ##############################
#Colorset 10 fg black, bg #c6c3c6, RootTransparent Buffer, Tint #efebef 65
Colorset 10 fg white, bg SteelBlue4, Tint #efebef 65, RootTransparent Buffer
*NavButtons: Columns 23
*NavButtons: Font "StringEncoding=gbk-0:xft:MingLiu:Bold:Size=12:encoding=iso10646-1"
*NavButtons: Colorset 10
*NavButtons: Frame 1
*NavButtons: Padding 2 2
*NavButtons: Geometry 124x240 
*NavButtons: Rows 21 
*NavButtons: (Size 1x21, Back #dedbde, Frame 1, Action (Mouse 1) `Nop`)
#*NavButtons: (Size 22x1, Frame 0, Back #c6c3c6, Action (Mouse 1) `Nop`)
*NavButtons: (Title (Center) "", Size 22x1)
*NavButtons: (Size 11x5, Swallow wmcpuload, 'Exec exec wmcpuload -bw -bl -lc rgb:ee/82/ee')
*NavButtons: (Size 11x5, Swallow wmmemload, 'Exec exec wmmemload -bw -bl -lc rgb:ee/c9/00')
*NavButtons: (Size 11x5, Swallow wmnet, 'Exec exec wmnet')
#*NavButtons: (Size 11x5, Swallow wmclockmon, 'Exec exec wmclockmon -bw')
#*NavButtons: (Size 11x5, Frame 0, Back #c6c3c6, Action (Mouse 1) `Nop`)
#*NavButtons: (Title (Center) "Info", Size 22x1)
#*NavButtons: (Size 11x5, Swallow wmcalclock, '')
#*NavButtons: (Size 11x5, Swallow wmmaiload, '')
#*NavButtons: (Size 11x5, Frame 0, Back #c6c3c6, Action (Mouse 1) `Nop`)
#*NavButtons: (Title (Center) "Games", Size 22x1)
#*NavButtons: (Size 11x5, Swallow wmmatrix, '')
#*NavButtons: (Size 11x5, Swallow wmufo, '')
*NavButtons: (Size 22x4, Frame 0, Back #c6c3c6, Action (Mouse 1) `Nop`)
#*NavButtons: (Size 11x5, Frame 0, Back #c6c3c6, Action (Mouse 1) `Nop`)
#*NavButtons: (Size 22x7, Swallow "FvwmPager" "FvwmPager 0")
#*NavButtons: (Size 22x7, Swallow "FvwmPager" "FvwmPager 1")
#*NavButtons: (Size 22x7, Swallow "FvwmPager" "FvwmPager 2")
#*NavButtons: (Size 22x7, Swallow "FvwmPager" "FvwmPager 3")
*NavButtons: (Title (Center) "I love you, Mom!" Size 22x1, Frame 1, Back #c6c3c6, Action (Mouse 1) `Nop`)
#*NavButtons: (Size 22x2, Swallow peksystray, 'Exec exec fbpanel')

#*PagerButtons: (Swallow "FvwmPager" "FvwmPager 0 3")


####################  FvwmTaskBar ###############################################	
Style FvwmTaskBar NoTitle, WindowListSkip, CirculateSkip, Sticky, BorderWidth 0, HandleWidth 0, NoHandles, StaysOnTop, ClickToFocus
Colorset 11 fg white, bg SteelBlue4, sh black, hi SteelBlue2, RootTransparent Buffer
#Colorset 11 fg white, RootTransparent Buffer
Colorset 12 fg SteelBlue4, bg white, sh SteelBlue2, hi black, RootTransparent Buffer
#Colorset 12 fg SteelBlue4, bg white, RootTransparent Buffer 
DestroyModuleConfig FvwmTaskBar: *
*FvwmTaskBar: Geometry +0-0
*FvwmTaskBar: Rows 1
*FvwmTaskBar: Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmTaskBar: StatusFont "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmTaskBar: SelFont "StringEncoding=gbk-0:xft:MingLiu:Bold:Size=12:encoding=iso10646-1"
*FvwmTaskBar: Colorset 11
*FvwmTaskBar: Action Click1 Iconify 
*FvwmTaskBar: Action Click2 Maximize 
*FvwmTaskBar: Action Click3 RaiseLower
*FvwmTaskBar: Action Click4 Popup MenuFvwmWindowOps rectangle $widthx$height+$left+$top -2p -100m
*FvwmTaskBar: Action Click5 Popup MenuFvwmWindowOps rectangle $widthx$height+$left+$top -2p -100m
*FvwmTaskBar: AutoStick
*FvwmTaskBar: AutoHide
*FvwmTaskBar: AutoFocus
*FvwmTaskBar: UseSkipList
*FvwmTaskBar: DeskOnly
#*FvwmTaskBar: PageOnly
*FvwmTaskBar: ShowTips
#*FvwmTaskBar: HighlightFocus,FollowMouseFocus
*FvwmTaskBar: ShowTransients
#*FvwmTaskBar: NoDefaultStartButton
*FvwmTaskBar: StartMenu MenuFvwmRoot
*FvwmTaskBar: StartCommand Raise-FvwmIconMan
*FvwmTaskBar: StartName 
*FvwmTaskBar: StartIcon fvwm.xpm
#buttons/feline-light.xpm 
*FvwmTaskBar: NoBrightFocus
*FvwmTaskBar: 3DFvwm
*FvwmTaskBar: BellVolume 100
*FvwmTaskBar: MailBox None
#*FvwmTaskBar: MailCommand Exec gnome-terminal -e mutt
#*FvwmTaskBar: MailCheck 600
*FvwmTaskBar: IconColorset 11
*FvwmTaskBar: FocusColorset 11
#*FvwmTaskBar: ClockFormat %a %b%d %R
*FvwmTaskBar: WindowButtonsRightMargin 0 
*FvwmTaskBar: WindowButtonsLeftMargin 0 
#*FvwmTaskBar: StartButtonRightMargin 1 
#*FvwmTaskBar: AutoHide 6 
#*FvwmTaskBar: Button Title PipeRead 'acpi -b | awk -F, '{print $2}'

#------FvwmIconMan
#
DestroyModuleConfig FvwmIconMan: *
*FvwmIconMan: Nummanagers			1
*FvwmIconMan: Resolution			global
*FvwmIconMan: Background			steelblue4
*FvwmIconMan: Foreground			white
*FvwmIconMan: Colorset 11
*FvwmIconMan: Font "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmIconMan: ButtonGeometry		233x0
*FvwmIconMan: ManagerGeometry		1x0+0-21
*FvwmIconMan: UseWinList			true
*FvwmIconMan: DrawIcons				true
*FvwmIconMan: Shape					true
*FvwmIconMan: FollowFocus			true
*FvwmIconMan: Sort					name
*FvwmIconMan: PlainButton			flat white steelblue
*FvwmIconMan: SelectButton			up white dodgerblue4
*FvwmIconMan: FocusButton			up white brown
*FvwmIconMan: FocusAndSelectButton	down white maroon
#NOTICE: pay attention here, we shoule make the title name consistent with
# Get-FvwmIconMan, otherwise xwininfo will faile
#*FvwmIconMan: Title				    "Windows List"
*FvwmIconMan: TitleButton			raisededge white steelblue
*FvwmIconMan: Tips					always
*FvwmIconMan: TipsFont "StringEncoding=gbk-0:xft:MingLiu:Medium:Size=12:encoding=iso10646-1"
*FvwmIconMan: NoIconAction			"SendToModule FvwmAnimate animate"
*FvwmIconMan: ReliefThickness		1
*FvwmIconMan: Action				Mouse   1 N sendcommand "Iconify off, Raise"
*FvwmIconMan: Action				Mouse   2 N sendcommand "WarpToWindow 50 50"
*FvwmIconMan: Action				Mouse   3 N sendcommand "Popup MenuFvwmWindowOps rectangle $widthx$height+$left+$top 0 -100m"
*FvwmIconMan: Action				Mouse   4 N bif Prev 3, gotobutton -1, warp, ret, gotobutton Prev, warp
*FvwmIconMan: Action				Mouse   5 N bif Next 3, gotobutton  0, warp, ret, gotobutton Next, warp
*FvwmIconMan: Action				Key		Up   N bif Prev 3, gotobutton -1, warp, ret, gotobutton Prev, warp
*FvwmIconMan: Action				Key		Down N bif Next 3, gotobutton  0, warp, ret, gotobutton Next, warp
*FvwmIconMan: Action				Key		Return N sendcommand "Iconify off, Raise"