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