# 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"