1 # Unfortunately, order does matter in this file
2 # The correct order for inserting configurations is:
4 # 2. Assorted configuration paramters such as ClickToFocus, or MWMBorders
5 # 3. Path setup (ModulePath, PixmapPath, IconPath)
6 # 4. Style settings, including the default style Style "*" ...
7 # 5. InitFunction and ResetFunction definitions.
8 # 6. Other Functions. Functions cannot be forward referenced from
9 # other functions, but they can be backward referenced.
10 # 7. Menus definitions. Same caveats about forward referencing
11 # 8. Key and Mouse Bindings.
14 # The order of steps 5, 6, and 7 is not critical, as long as there are
15 # no forward references to functions or menus.
17 # If you get it wrong, the most common problem is that color or font settings
20 ###########################################################################
23 # OK some people like bright clear colors on their window decorations.
24 # These people, I guess would mostly be from nice sunny/good weather places
28 # StdBackColor LightSkyBlue
30 # HiBackColor PeachPuff1
31 # PagerBackColor BlanchedAlmond
33 # Me, I'm from Upstate New York, and live in New Hampshire, so I prefer
34 # these dark muddy colors...
39 # this is used for the selected window
41 HiBackColor SlateBlue4
43 #PagerBackColor #5c54c0
44 #PagerForeColor orchid
47 StickyBackColor #60c0a0
52 MenuStippleColor SlateGrey
54 ############################################################################
55 # Now the fonts - one for menus, another for window titles, another for icons
56 #Font -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
57 #Font -*-times-medium-i-*-*-*-120-*-*-*-*-*-*
58 #WindowFont -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
59 #IconFont -adobe-helvetica-medium-r-*-*-11-*-*-*-*-*-*-*
62 Font lucidasanstypewriter-12
63 WindowFont lucidasanstypewriter-12
64 IconFont lucidasanstypewriter-12
66 ###########################################################################
67 # Set up the major operating modes
69 ######################## FOCUS STUFF ##############################
70 # Set windows to auto-raise after 750 milliseconds if you like it.
71 # Autoraise can sometimes obscure pop-up windows. Performance is now
72 # similar to olvwm's auto-raise feature.
75 # Normally, we'll be in focus-follows mouse mode, but uncomment this
76 # for mwm-style click-to-focus
79 ######################## ICON STUFF ##############################
80 # Auto Place Icons is a nice feature....
81 # This creates two icon boxes, one on the left side, then one on the
82 # bottom. Leaves room in the upper left for my clock and xbiff,
83 # room on the bottom for the Pager.
84 #IconBox -150 90 -5 -140
85 #IconBox 5 -140 -140 -5
88 # If you uncomment this, and make sure that the WindowList is bound to
89 # something, it works pretty much like an icon manager.
92 # StubbornIcons makes icons de-iconify into their original position on the
93 # desktop, instead of on the current page.
96 # With AutoPlacement, icons will normally place themselves underneath active
97 # windows. This option changes that.
98 #StubbornIconPlacement
100 # If you want ALL you icons to follow you around the desktop (Sticky), try
104 ######################## MWM EMULATION #######################
106 # My feeling is that everyone should use MWMDecorHints and MWMFunctionHints,
107 # since some applications depend on having the window manager respect them
109 # MWMFunction hints parses the function information in the MOTIF_WM_HINTS
110 # property, and prohibits use of these functions on the window. Appropriate
111 # portions of the window decorations are removed.
114 # MWM is kinda picky about what can be done to transients, and it was keeping
115 # me from iconifying some windows that I like to iconify, so here's an
116 # over-ride that will allow me to do the operation, even tough the menu
117 # item is shaded out.
120 # MWMDecor hints parses the decoration information in the MOTIF_WM_HINTS
121 # property, and removes these decoratons from the window. This does not affect
122 # the functions that can be performed via the menus.
125 # These are affect minor aspects for the look-and-feel.
126 # Sub-menus placement mwm-style?
128 # mwm-style border reliefs (less deep than default fvwm) ?
130 # Maximize button does mwm-inversion thingy
132 ######################## MISCELLANEOUS STUFF #######################
133 # If you don't like the default 150 msec click delay for the complex functions
134 # change this and uncomment it.
137 # OpaqueMove has a number (N) attached to it (default 5).
138 # if the window occupies less than N% of the screen,
139 # then opaque move is used. 0 <= N <= 100
142 # flip by whole pages on the edge of the screen.
145 # A modest delay before flipping pages seems to be nice...
146 # I thresh in a 50 pixel Move-resistance too, just so people
148 EdgeResistance 350 50
151 ######################## WINDOW PLACEMENT #######################
152 # RandomPlacement prevents user interaction while placing windows:
155 # SmartPlacement makes new windows pop-up in blank regions of screen
156 # if possible, or falls back to random or interactive placement.
159 # With SmartPlacement, windows will normally place themselves over icons.
160 # Uncomment this to change that.
163 # NoPPosition instructs fvwm to ignore the PPosition field in window
164 # geometry hints. Emacs annoyingly sets PPosition to (0,0)!
168 ######################## DECORATIONS #######################
169 # If you want decorated transient windows, uncomment this:
173 ###########################################################################
174 # Set up the virtual desktop and pager
176 #set the desk top size in units of physical screen size
179 # and the reduction scale used for the panner/pager
182 ##########################################################################
183 # Module path and paths to the icons
185 # ModulePath is a colon-separated list, just like regular unix PATH
186 ModulePath /usr/X11R6/lib/X11/fvwm/
187 PixmapPath /usr/X11R6/include/X11/pixmaps/:/usr/X11R6/share/icons/:/usr/X11R6/share/icons/mini/:/usr/share/icons/:/usr/share/icons/mini/
188 IconPath /usr/X11R6/include/X11/bitmaps/:/usr/X11R6/share/icons/:/usr/X11R6/share/icons/mini/:/usr/share/icons/:/usr/share/icons/mini/
190 ############################################################################
191 # Set the decoration styles and window options
192 # Order is important!!!!
193 # If compatible styles are set for a single window in multiple Style
194 # commands, then the styles are ORed together. If conflicting styles
195 # are set, the last one specified is used.
197 # These commands should command before any menus or functions are defined,
198 # and before the internal pager is started.
200 # change the default width.
201 Style "*" BorderWidth 5, HandleWidth 5, Icon unknown1.xpm
203 Style "Fvwm*" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0
204 # Style "Fvwm Pager" StaysOnTop
205 # Style "FvwmPager" StaysOnTop
206 Style "FvwmBanner" StaysOnTop
207 Style "GoodStuff" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0, CirculateSkip
208 Style "*lock" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0, CirculateSkip
209 Style "xbiff" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0, CirculateSkip
210 Style "Maker" StartsOnDesk 1
211 Style "matlab" StartsOnDesk 3
212 Style "signal" StartsOnDesk 3
213 Style "rxvt" Icon term.xpm
214 Style "xterm" Icon xterm.xpm
215 Style "Console" Icon xterm.xpm
216 Style "xterm_color" Icon xterm.xpm
217 Style "Appointment" Icon datebook.xpm, NoButton 2, NoButton 4
218 Style "xcalc" Icon xcalc.xpm, NoButton 2
219 Style "xbiff" Icon mail1.xpm, NoButton 2
220 Style "xmh" Icon mail1.xpm, StartsOnDesk 2, NoButton 2
221 Style "xman" Icon xman.xpm
222 Style "xvgr" Icon graphs.xpm
223 Style "matlab" Icon math4.xpm
224 Style "xmag" Icon mag_glass.xpm
225 Style "xgraph" Icon graphs.xpm
226 Style "GoodStuff" Icon toolbox.xpm
228 # Change the Maximize and iconify buttons to up and down triangles.
230 #ButtonStyle : 2 4 50x35@1 65x65@0 35x65@0 50x35@1
231 #ButtonStyle : 4 4 50x65@1 35x35@1 65x35@1 50x65@0
236 #############################################################################
238 # Stuff to do at start-up
240 Function "InitFunction"
241 # Module "I" FvwmBanner
242 # Exec "I" xpmroot /usr/include/X11/pixmaps/fvwm.xpm &
243 Exec "I" xsetroot -solid "#266294"
245 # Exec "I" exec xterm -geometry 80x64+0+0 &
248 # Exec "I" exec xterm -geometry +0+0 &
250 # Module "I" FvwmPager 0 0
254 Function "RestartFunction"
255 Exec "I" xsetroot -solid "#266294"
257 # Module "I" FvwmPager 0 0
261 ############################################################################
262 # Now define some handy complex functions
264 # This one moves and then raises the window if you drag the mouse,
265 # only raises the window if you click, or does a RaiseLower if you double
267 Function "Move-or-Raise"
272 # This one maximizes vertically if you click (leaving room for the GoodStuff bar at the
273 # bottom, or does a full maximization if you double click, or a true full vertical
274 # maximization if you just hold the mouse button down.
275 Function "maximize_func"
276 Maximize "Motion" 0 100
277 Maximize "Click" 0 80
278 Maximize "DoubleClick" 100 100
282 # This one moves and then lowers the window if you drag the mouse,
283 # only lowers the window if you click, or does a RaiseLower if you double
285 Function "Move-or-Lower"
289 RaiseLower "DoubleClick"
292 # This one moves or (de)iconifies:
293 Function "Move-or-Iconify"
298 # This one resizes and then raises the window if you drag the mouse,
299 # only raises the window if you click, or does a RaiseLower if you double
301 Function "Resize-or-Raise"
305 RaiseLower "DoubleClick"
309 # This is provided as a hint only.
310 # Move to a known page on the desktop, then start an application in a
311 # known location. Could also switch to a known desktop, I guess
312 #Function "abs_coord"
313 # GoToPage "Immediate" 1,1
314 # Exec "Immediate" exec xcalc -geometry +100+100&
318 ##############################################################################
319 #now define the menus - defer bindings until later
321 # This menu is invoked as a sub-menu - it allows you to quit,
322 # restart, or switch to another WM.
324 Title "Really Quit Fvwm?"
325 Quit "Yes, Really Quit"
326 Restart "Restart Fvwm" fvwm
327 Restart "Start twm" twm
328 Restart "Start tvtwm" tvtwm
329 Restart "Start mwm" mwm
330 Restart "Start olwm" /usr/openwin/bin/olwm
335 # Provides a list of modules to fire off
338 Module "GoodStuff" GoodStuff
339 Module "Clean-Up" FvwmClean
340 Module "Identify" FvwmIdent
341 Module "SaveDesktop" FvwmSave
342 Module "Debug" FvwmDebug
343 Module "Pager" FvwmPager 0 0
344 Module "FvwmWinList" FvwmWinList
348 Exec "Netscape" exec netscape &
349 Exec "Mosaic" exec Mosaic &
350 Exec "Arena" exec arena &
352 Exec "slrn" exec xterm -e slrn &
353 Exec "exmh" exec exmh &
354 Exec "Pine" exec xterm -e pine &
355 Exec "Elm" exec xterm -e elm &
357 Exec "TkMan" exec tkman &
358 Exec "TkInfo" exec tkinfo &
359 Exec "Emacs" exec emacs &
360 Exec "Emacs nox" exec xterm -e emacs-nox &
361 Exec "Jed" exec xterm -e jed &
363 Exec "X File Manager" exec xfm &
364 Exec "xpaint" exec xpaint &
365 Exec "xfig" exec xfig &
366 # Why doesn't this work?
367 # Exec "ImageMagick" exec display &
370 Exec "wish" exec xterm -e wish &
371 Exec "Python" exec xterm -e python &
375 Exec "Hextris" exec cxhextris &
376 Exec "xbill" exec xbill &
377 Exec "Chess" exec xboard &
378 Exec "xchomp" exec xchomp &
379 Exec "Minesweeper" exec xdemineur &
380 Exec "Backgammon" exec xgammon &
381 Exec "xjewel" exec xjewel &
382 Exec "xlander" exec xlander &
383 Exec "xsnow" exec xsnow &
384 Exec "Tetris" exec xtetris &
385 Exec "Trojka" exec xtrojka &
389 Exec "Top" exec xterm -T Top -n Top -e top &
390 Exec "Calculator" exec xcalc &
391 Exec "Xman" exec xman &
392 Exec "Xmag" exec xmag &
393 Exec "xosview" exec xosview &
396 # This menu will fire up some very common utilities
399 Exec "Xterm" exec xterm &
400 Exec "Rxvt" exec rxvt -bg Black -fg Wheat &
401 Exec "Color Xterm" exec xterm-color &
403 Popup "Applications" Apps
405 Popup "Utilities" Utils
406 Popup "Modules" Module-Popup
408 Restart "Restart Fvwm" fvwm
409 Popup "Exit Fvwm" Quit-Verify
412 # This defines the most common window operations
415 Function "Move" Move-or-Raise
416 Function "Resize" Resize-or-Raise
419 Iconify "(De)Iconify"
421 Function "(Un)Maximize" maximize_func
426 Refresh "Refresh Screen"
429 # A trimmed down version of "Window Ops", good for binding to decorations
431 Function "Move" Move-or-Raise
432 Function "Resize" Resize-or-Raise
441 Module "ScrollBar" FvwmScroll 2 2
444 #############################################################################
445 # One more complex function - couldn't be defined earlier because it used
448 # This creates a motif-ish sticky menu for the title-bar window-ops
450 # Menu acts like normal twm menu if you just hold the button down,
451 # but if you click instead, the menu stays up, motif style
452 Function "window_ops_func"
453 PopUp "Click" Window Ops2
454 PopUp "Motion" Window Ops2
456 # I'll add it too, it can be mighty handy.
461 ##############################################################################
462 # This defines the mouse bindings
464 # First, for the mouse in the root window
465 # Button 1 gives the Utilities menu
466 # Button 2 gives the Window Ops menu
467 # Button 3 gives the WindowList (like TwmWindows)
468 # I use the AnyModifier (A) option for the modifier field, so you can hold down
469 # any shift-control-whatever combination you want!
471 # Button Context Modifi Function
472 Mouse 1 R A PopUp "Utilities"
473 Mouse 2 R A PopUp "Window Ops"
474 Mouse 3 R A Module "winlist" FvwmWinList transient
478 # Now the title bar buttons
479 # Any button in the left title-bar button gives the window ops menu
480 # Any button in the right title-bar button Iconifies the window
481 # Any button in the rightmost title-bar button maximizes
482 # Note the use of "Mouse 0" for AnyButton.
484 # Button Context Modifi Function
485 #Mouse 0 1 A Function "window_ops_func"
486 #Mouse 0 2 A Function "maximize_func"
488 Mouse 0 1 A Function "window_ops_func"
491 Mouse 1 4 A Maximize 0 100
492 Mouse 3 4 A Maximize 100 100
494 # Now the rest of the frame
495 # Here I invoke my complex functions for Move-or-lower, Move-or-raise,
496 # and Resize-or-Raise.
497 # Button 1 in the corner pieces, with any modifiers, gives resize or raise
498 #Mouse 1 F A Function "Resize-or-Raise"
500 # Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
501 #Mouse 1 TS A Function "Move-or-Raise"
502 Mouse 1 T A Function "Move-or-Raise"
504 # Button 1 in an icons gives move for a drag, de-iconify for a double-click,
505 # nothing for a single click
506 # Button 2 in an icon, w/ any modifiers, gives de-iconify
508 Mouse 1 I A Function "Move-or-Iconify"
511 # Button 2 in the corners, sides, or title-bar gives the window ops menu
512 Mouse 2 FST A Function "window_ops_func"
513 # Button 3 anywhere in the decoration (except the title-bar buttons)
515 Mouse 3 TSIF A RaiseLower
517 # Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
518 # gives Raise-Lower. Used to use control here, but that interferes with xterm
519 #Mouse 3 W M RaiseLower
520 Mouse 1 W M RaiseLower
524 ############################################################################
525 # Now some keyboard shortcuts.
528 # press arrow + control anywhere, and scroll by 1 page
529 #Key Left A C Scroll -100 0
530 #Key Right A C Scroll +100 +0
531 #Key Up A C Scroll +0 -100
532 #Key Down A C Scroll +0 +100
534 # press arrow + meta key, and scroll by 1/10 of a page
535 #Key Left A M Scroll -10 +0
536 #Key Right A M Scroll +10 +0
537 #Key Up A M Scroll +0 -10
538 #Key Down A M Scroll +0 +10
540 # press shift arrow + control anywhere, and move the pointer by 1% of a page
541 #Key Left A SC CursorMove -1 0
542 #Key Right A SC CursorMove +1 +0
543 #Key Up A SC CursorMove +0 -1
544 #Key Down A SC CursorMove +0 +1
546 # press shift arrow + meta key, and move the pointer by 1/10 of a page
547 #Key Left A SM CursorMove -10 +0
548 #Key Right A SM CursorMove +10 +0
549 #Key Up A SM CursorMove +0 -10
550 #Key Down A SM CursorMove +0 +10
552 # Keyboard accelerators
553 #Key F1 A M CirculateUp
554 #Key F1 A M Popup "Utilities"
555 #Key F2 A M Popup "Window Ops"
556 #Key F3 A M Module "WindowList" FvwmWinList
560 #Key F7 A M CirculateUp
561 #Key F8 A M CirculateDown
563 #Page Up/Dapge Down keys are used to scroll by one desktop page
564 # in any context, press page up/down + control
565 # in root context, just pressing page up/down is OK
567 # I prefer the non-wrapping scroll. These are for example purposes only
568 #Key Next A C Scroll 100000 0
569 #Key Next R N Scroll 100000 0
570 #Key Prior A C Scroll -100000 0
571 #Key Prior R N Scroll -100000 0
574 ############################################################################
575 ############################################################################
576 #Definitions used by the modules
578 ###################### GoodStuff button-bar ################################
580 *GoodStuffFore Orchid
581 *GoodStuffBack Grey20
584 *GoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
585 # Geometry - really likes to pick its own size, but giving a position is OK
586 *GoodStuffGeometry +0+0
588 # Layout: specify rows or columns, not both
591 *GoodStuff - - Swallow "XLoad" xload -nolabel -fg gold -bg grey10 &
592 *GoodStuff - - SwallowModule "FvwmPager" FvwmPager 0 0
594 # Define the buttons to use.....
595 *GoodStuff Kill rbomb.xpm Destroy
596 *GoodStuff xterm xterm.xpm Exec "xterm" xterm &
597 *GoodStuff xclock clock.xpm Swallow "xclock" xclock -bg Grey20 -fg Orchid -hd Orchid -hl Orchid -geometry -1500-1500 -padding 0 &
598 *GoodStuff xbiff mail1.xpm Swallow "xbiff" xbiff -bg Grey20 -fg Orchid &
600 ######################### No Clutter ########################################
601 # I only wrote NoClutter as a simple test case, but maybe some big sites like
602 # universities really have usage problems (too many open windows)....
603 # Time delays are in seconds.
604 *FvwmNoClutter 3600 Iconify 1
605 *FvwmNoClutter 86400 Delete
606 *FvwmNoCLutter 172800 Destroy
608 ########################## Window-Identifier ###############################
609 # Just choose colors and a fonts
610 *FvwmIdentBack MidnightBlue
611 *FvwmIdentFore Yellow
612 *FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
614 ########################### Pager #########################################
616 *FvwmPagerFore Orchid
618 *FvwmPagerHilight Black
619 *FvwmPagerSmallFont 5x8
621 ##########################FvwmWinList##################################
622 *FvwmWinListBack #908090
623 *FvwmWinListFore Black
624 *FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
625 *FvwmWinListAction Click1 Iconify -1,Focus
626 *FvwmWinListAction Click2 Iconify
627 *FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent
628 *FvwmWinListUseSkipList
629 *FvwmWinListGeometry +0-1