Chinaunix首页 | 论坛 | 博客
  • 博客访问: 391082
  • 博文数量: 117
  • 博客积分: 4416
  • 博客等级: 上校
  • 技术积分: 1135
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-08 14:16
个人简介

一生醉生忘死,就让他继续下去吧!

文章分类

全部博文(117)

分类: LINUX

2011-09-21 15:05:05

###################
# @Author:     
# @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]
#
# -Tavis Ormandy ()
######################################################################################

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

PipeRead '~/scripts/fvwm-theme -init'

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

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

######
# 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 2x2

### 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 black white
CursorStyle MENU left_ptr black white
CursorStyle TITLE left_ptr black white
CursorStyle DEFAULT left_ptr black white
CursorStyle SYS left_ptr black white
CursorStyle WAIT watch black white
CursorStyle RESIZE sizing black "#5477A0"
CursorStyle MOVE fleur yellow black
CursorStyle SELECT left_ptr black white
CursorStyle POSITION x_cursor black white
CursorStyle TOP top_side red black
CursorStyle RIGHT right_side red black
CursorStyle BOTTOM bottom_side red black
CursorStyle LEFT left_side red black
CursorStyle TOP_LEFT top_left_corner red black
CursorStyle TOP_RIGHT top_right_corner red black
CursorStyle BOTTOM_LEFT bottom_left_corner red black
CursorStyle BOTTOM_RIGHT bottom_right_corner red black
## 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 "Shadow=1 1 SE:xft:Bitstream Vera Sans Mono:style=Roman:size=11"
#MenuStyle * Font "xft:Bitstream Vera Sans Mono:style=Roman:size=12"
MenuStyle * Font "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-14-*-*-*-*-*-*-*"
#MenuStyle * Font "-sim-nsimsun-medium-r-normal-*-12-0-0-0-c-0-*-*"
#MenuStyle * Font "Shadow=1 1 SE:-microsoft-georgia-medium-r-*-*-12-*-*-*-*-*-*-*"
MenuStyle * MenuColorset 10, 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:Bitstream Vera Sans Mono:style=Roman:size=11"
#Style * Font "xft:Aquafont:size=11", BorderWidth 1, HandleWidth 1
Style * Font "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
#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, SloppyFocus, MouseFocusClickRaises
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 * IconFont "xft:Aquafont:size=11", IndexedIconName
Style * IndexedIconName
Style * IconFont "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-13-*-*-*-*-*-*-*"

# 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
# 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 FvwmTaskBar NoTitle, WindowListSkip, CirculateSkip, Sticky, BorderWidth 0, HandleWidth 0, NoHandles, StaysOnTop, NeverFocus
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 sshMonitor.xpm, MiniIcon terminal.png, WindowShadeShrinks, BorderWidth 3
Style rxvt        Icon me.png, 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 emacs    MiniIcon emacs_mini.png, Icon emacs.png
Style "Firefox-bin"  Icon firefox.png, IconOverride
Style "Mozilla-thunderbird-bin" Icon thunderbird.png,IconOverride
#Style putty    Icon large/gnutella.png, MiniIcon gnutella.png
Style putty    Icon network.png, MiniIcon gnutella.png
Style mutt    Icon mutt/mutt3.xpm, MiniIcon mutt/mutt2.png
Style xmms    MiniIcon audio_xmms.xpm, StartsOnDesk 3
Style gnome-terminal BorderWidth 2, HandleWidth 2, Icon
Style qterm    Icon qterm.png, IconOverride

# 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 "xft:snap"
*FvwmIdent: Font "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"

############################# 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 "xft:snap"
*FvwmProxy: Font "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
*FvwmProxy: ProxyMove true

Key Escape  A   M   SendToModule FvwmProxy ShowToggle

############################# FvwmWinList
*FvwmWinList: Back DarkOliveGreen
*FvwmWinList: Fore PaleGoldenRod
*FvwmWinList: Font "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
*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 "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
MenuStyle WindowList DoubleClickTime 200
MenuStyle WindowList Hilight3DThin

 

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

# Syntax Reminder:
# Mouse Button Context Modifiers Function

Mouse 1 R       A   Menu MenuFvwmRoot
Mouse 4 R       A   Menu MenuFvwmRoot
Mouse 5 R       A   Menu MenuFvwmRoot
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
# Reserved for Mouse Gestures (See below)
#Mouse 3 R      A   -


#####
# Key bindings.
#################
Key Menu A  N Popup MenuFvwmRoot Root c c
#Key Menu A  C  press_fvwmbuttons 0 50 50
#Key F4  A   C  press_fvwmbuttons 1 10 10
Key F1  A  3   Exec exec crxvt-gb -title '.: c r x v t :.'
Key F2  A  3   Exec exec firefox
Key F3  A       3   Module FvwmConsole -terminal xterm -bg DodgerBlue4 -fg yellow2
#Key F4  A       3   Module FvwmScript FvwmScript-Quit
Key F4  A       3   Quit
Key F5  A       3   Restart
Key F6  A       3   Exec exec gvim
Key F7  A       3   Exec exec emacs
Key F8  A       3   Exec exec xmms
Key F9  A       3   Exec exec stardict
Key F10  A       3   Exec exec gaim
Key F11  A  3 Exec exec putty
Key F12  A       4 Exec exec mozilla-thunderbird
Key F12  A  3 Exec exec crxvt-gb -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 F1  A       4 Exec exec crxvt-gb -tr -title '.: c r x v t :.'
Key F2  A  4 Exec exec grun
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 P  A  3 Exec exec pyshell
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
Key Print A  3 Exec exec scrot -s --quality 100

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

# Change our viewpoint to another page
Key Left    A  M3   GotoPage -1p  0p
Key H     A  M3   GotoPage -1p  0p
Key Right   A       M3   GotoPage +1p  0p
Key L  A       M3   GotoPage +1p  0p
Key Up      A       M3   GotoPage  0p -1p
Key K  A       M3   GotoPage  0p -1p
Key Down    A       M3   GotoPage  0p +1p
Key J  A       M3   GotoPage  0p +1p

# 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       CM3  MovetoPage -1p  0p
Key H     A       CM3  MovetoPage -1p  0p
Key Right   A       CM3  MovetoPage +1p  0p
Key L  A       CM3  MovetoPage +1p  0p
Key Up      A       CM3  MovetoPage  0p -1p
Key K     A       CM3  MovetoPage  0p -1p
Key Down    A       CM3  MovetoPage  0p +1p
Key J  A       CM3  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 firefox

# 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 gnome-settings-daemon
#+ I Exec exec gnome-panel
#+ I Exec exec fbpanel
+ I Exec exec xsetroot -solid SteelBlue4
#+ I Read $./newdecors/aqua.decor
#+ 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

#DestroyFunc RestartFunction
#AddToFunc RestartFunction

#####
# 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.
#################
AddToFunc ExitFunction
+ I Test (!ToRestart) Exec exec rm -f $[HOME]/.fvwm/icon.tmp.*
#+ 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
+   MissingSubmenuFunction      Beep
+ "%debian.png%Debian"         Popup /Debian
+   ""           Nop
+   %terminal-remote.xpm%"&Rxvt"    Exec exec crxvt-gb -title '.: crxvt-gb :.'
#+   %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
+   %utility.xpm%"Utilities"   Popup MenuUtilities
#+   %developement.xpm%"Development"   Popup MenuDevel
#+   %game.xpm%"Games"    Popup MenuGames
#+   %monitoring.xpm%"Logins"     Popup Menulogins
+   ""           Nop
+   %start.png%"&Run..."      Exec exec grun
+   ""           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
+   %display.xpm%"&Screenshot"   Exec exec scrot --quality 100
+   ""           Nop
+   %lock.xpm%"&Lock Screen"  Exec exec xscreensaver-command -lock
+   ""           Nop
+   %quit.xpm%"Exit Fvwm"    Popup MenuQuit-Verify

############# 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
+   %word-processor.xpm%"Word Processor"    Exec exec oowriter
+   %acroread.xpm%"Acrobat Reader"    Exec exec acroread
+   %xpdf.xpm%"Xpdf"    Exec exec xpdf
+   %calculator.xpm%"Calculator"   Exec exec xcalc
#+   %paper_pencil2.png%"Sticky Notes"       Exec exec xpad
+   %xpaint.png%"Xpaint"     Exec exec xpaint

DestroyMenu MenuInternet
AddToMenu MenuInternet
+   %gaim-menu.xpm%"Gaim"   Exec exec gaim
#+   %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
+   %%"Firefox"   Exec exec firefox
#+   %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
#+   %mail_edit.png%"Gedit Editor"           Exec exec gedit
+   %editor.xpm%"Xedit Editor"        Exec exec xedit


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.xpm%"Audio Mixer"  Exec exec aumix
+   ""                                      Nop
+   %hardware_video_camera_display.png%"Browse Videos"  Popup $[fvwm_video_path]
+   %music_notes_view.png%"Browse Music"    Popup $[fvwm_audio_path]
+   %graphics_presentation_person.png%"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.png%"Window Information"        Exec exec xmessage "`xwininfo`"
+   %gears.png%"Process Information"        Exec exec crxvt-gb -title '.: t o p :.' -tr -e top
+   ""                                      Nop
+   %graphics_convert_polaroid.png%"Expose Page" FvwmExpose
+   %desk_desktop.png%"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]%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
+   "Quit Fvwm Now"   Quit
+   "Restart Fvwm..." Restart
+   ""                Nop
+   "Restart twm"     Restart twm
+   "Restart xterm"   Restart xterm
+   ""                Nop
+   "Cancel"          Nop

DestroyMenu MenuFvwmConfig
AddToMenu MenuFvwmConfig
+   "Colour Browser" Exec exec xcolors
+ "Colour Picker"  Exec exec xcolorsel
+   "Edit fvwm2rc"   Exec exec gvim -geom 115x46 ~/.fvwm/.fvwm2rc
+   ""                                  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
+   ""                              Nop
+   "Interactive Move"  Pick Move

DestroyMenu MenuPageList
AddToMenu MenuPageList
+ "1"   Pick MoveToPage 0 0
+ "2"   Pick MoveToPage 1 0
+ "3"   Pick MoveToPage 2 0
+ "4"   Pick MoveToPage 0 1
+ "5"   Pick MoveToPage 1 1
+ "6"   Pick MoveToPage 2 1
+ "7"   Pick MoveToPage 0 2
+ "8"   Pick MoveToPage 1 2
+ "9"   Pick MoveToPage 2 2

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

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

#####
# 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 "xft:Bitstream Vera Sans Mono:style=Roman:size=11"
*FvwmPager: SmallFont "-*-verdana-medium-r-normal-*-10-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-10-*-*-*-*-*-*-*"
*FvwmPager: Balloons All
*FvwmPager: BalloonFont  "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
*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 General
*FvwmPager: Label 1 Network
*FvwmPager: Label 2 Program
*FvwmPager: Label 3 Media


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


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  -*-simsun-medium-r-*-*-16-*-*-*-*-*-*-*


########### NavButtons: tools bar ##############################
#Colorset 10 fg black, bg #c6c3c6, RootTransparent Buffer, Tint #efebef 65
Colorset 10 fg white, bg SteelBlue4, Tint #efebef 65
*NavButtons: Columns 23
#*NavButtons: Font "Shadow=1 1 SE:xft:Bitstream Vera Sans Mono:style=Roman:size=10"
*NavButtons: Font "xft:Bitstream Vera Sans Mono:style=Roman:size=10"
*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 ############################################### 
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 "xft:Bitstream Vera Sans Mono:style=Roman:size=10"
*FvwmTaskBar: Font "-*-verdana-medium-r-normal-*-11-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
#*FvwmTaskBar: StatusFont "xft:Bitstream Vera Sans Mono:style=Roman:size=10"
*FvwmTaskBar: StatusFont "-*-verdana-medium-r-normal-*-11-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
#*FvwmTaskBar: SelFont "xft:Bitstream Vera Sans Mono:style=Roman:size=11"
*FvwmTaskBar: SelFont "-*-verdana-bold-r-normal-*-11-*-*-*-*-*-iso8859-*,-*-simsun-bold-r-normal-*-12-*-*-*-*-*-*-*"
*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
*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 $[HOME]/Mail/
*FvwmTaskBar: MailCommand Exec crxvt-gb -geometry 100x40+0+0 -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


#------FvwmIconMan
#
DestroyModuleConfig FvwmIconMan: *
*FvwmIconMan: Nummanagers   1
*FvwmIconMan: Resolution   global
*FvwmIconMan: Background   steelblue4
*FvwmIconMan: Foreground   white
*FvwmIconMan: Font "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
*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 "-*-verdana-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-simsun-medium-r-normal-*-12-*-*-*-*-*-*-*"
*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"

阅读(2423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~