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
22 ###########################################################################
25 # OK some people like bright clear colors on their window decorations.
26 # These people, I guess would mostly be from nice sunny/good weather places
30 # StdBackColor LightSkyBlue
32 # HiBackColor PeachPuff1
33 # PagerBackColor BlanchedAlmond
35 # Me, I'm from Upstate New York, and live in New Hampshire, so I prefer
36 # these dark muddy colors...
41 # this is used for the selected window
43 HiBackColor SlateBlue4
45 #PagerBackColor #5c54c0
46 #PagerForeColor orchid
49 StickyBackColor #60c0a0
54 MenuStippleColor SlateGrey
56 ############################################################################
57 # Now the fonts - one for menus, another for window titles, another for icons
58 #Font -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
59 #Font -*-times-medium-i-*-*-*-120-*-*-*-*-*-*
60 #WindowFont -adobe-helvetica-bold-r-*-*-12-*-*-*-*-*-*-*
61 #IconFont -adobe-helvetica-medium-r-*-*-11-*-*-*-*-*-*-*
64 Font lucidasanstypewriter-12
65 WindowFont lucidasanstypewriter-12
66 IconFont lucidasanstypewriter-12
68 ###########################################################################
69 # Set up the major operating modes
71 ######################## FOCUS STUFF ##############################
72 # Set windows to auto-raise after 750 milliseconds if you like it.
73 # Autoraise can sometimes obscure pop-up windows. Performance is now
74 # similar to olvwm's auto-raise feature.
77 # Normally, we'll be in focus-follows mouse mode, but uncomment this
78 # for mwm-style click-to-focus
81 ######################## ICON STUFF ##############################
82 # Auto Place Icons is a nice feature....
83 # This creates two icon boxes, one on the left side, then one on the
84 # bottom. Leaves room in the upper left for my clock and xbiff,
85 # room on the bottom for the Pager.
86 #IconBox -150 90 -5 -140
87 #IconBox 5 -140 -140 -5
90 # If you uncomment this, and make sure that the WindowList is bound to
91 # something, it works pretty much like an icon manager.
94 # StubbornIcons makes icons de-iconify into their original position on the
95 # desktop, instead of on the current page.
98 # With AutoPlacement, icons will normally place themselves underneath active
99 # windows. This option changes that.
100 #StubbornIconPlacement
102 # If you want ALL you icons to follow you around the desktop (Sticky), try
106 ######################## MWM EMULATION #######################
108 # My feeling is that everyone should use MWMDecorHints and MWMFunctionHints,
109 # since some applications depend on having the window manager respect them
111 # MWMFunction hints parses the function information in the MOTIF_WM_HINTS
112 # property, and prohibits use of these functions on the window. Appropriate
113 # portions of the window decorations are removed.
116 # MWM is kinda picky about what can be done to transients, and it was keeping
117 # me from iconifying some windows that I like to iconify, so here's an
118 # over-ride that will allow me to do the operation, even tough the menu
119 # item is shaded out.
122 # MWMDecor hints parses the decoration information in the MOTIF_WM_HINTS
123 # property, and removes these decoratons from the window. This does not affect
124 # the functions that can be performed via the menus.
127 # These are affect minor aspects for the look-and-feel.
128 # Sub-menus placement mwm-style?
130 # mwm-style border reliefs (less deep than default fvwm) ?
132 # Maximize button does mwm-inversion thingy
134 ######################## MISCELLANEOUS STUFF #######################
135 # If you don't like the default 150 msec click delay for the complex functions
136 # change this and uncomment it.
139 # OpaqueMove has a number (N) attached to it (default 5).
140 # if the window occupies less than N% of the screen,
141 # then opaque move is used. 0 <= N <= 100
144 # flip by whole pages on the edge of the screen.
147 # A modest delay before flipping pages seems to be nice...
148 # I thresh in a 50 pixel Move-resistance too, just so people
150 EdgeResistance 350 50
153 ######################## WINDOW PLACEMENT #######################
154 # RandomPlacement prevents user interaction while placing windows:
157 # SmartPlacement makes new windows pop-up in blank regions of screen
158 # if possible, or falls back to random or interactive placement.
161 # With SmartPlacement, windows will normally place themselves over icons.
162 # Uncomment this to change that.
165 # NoPPosition instructs fvwm to ignore the PPosition field in window
166 # geometry hints. Emacs annoyingly sets PPosition to (0,0)!
170 ######################## DECORATIONS #######################
171 # If you want decorated transient windows, uncomment this:
175 ###########################################################################
176 # Set up the virtual desktop and pager
178 #set the desk top size in units of physical screen size
181 # and the reduction scale used for the panner/pager
184 ##########################################################################
185 # Module path and paths to the icons
187 # ModulePath is a colon-separated list, just like regular unix PATH
188 ModulePath /usr/lib/fvwm1/
189 PixmapPath /usr/share/pixmaps/:/usr/share/pixmaps/mini/:/usr/X11R6/include/X11/pixmaps/:/usr/X11R6/share/icons/:/usr/X11R6/share/icons/mini/:/usr/share/icons/:/usr/share/icons/mini/
190 IconPath /usr/share/pixmaps/:/usr/share/pixmaps/mini/:/usr/X11R6/include/X11/bitmaps/:/usr/X11R6/share/icons/:/usr/X11R6/share/icons/mini/:/usr/share/icons/:/usr/share/icons/mini/
192 ############################################################################
193 # Set the decoration styles and window options
194 # Order is important!!!!
195 # If compatible styles are set for a single window in multiple Style
196 # commands, then the styles are ORed together. If conflicting styles
197 # are set, the last one specified is used.
199 # These commands should command before any menus or functions are defined,
200 # and before the internal pager is started.
202 # change the default width.
203 Style "*" BorderWidth 5, HandleWidth 5, Icon unknown1.xpm
205 Style "Fvwm*" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0
206 # Style "Fvwm Pager" StaysOnTop
207 # Style "FvwmPager" StaysOnTop
208 Style "FvwmBanner" StaysOnTop
209 Style "GoodStuff" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0, CirculateSkip
210 Style "*lock" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0, CirculateSkip
211 Style "xbiff" NoTitle, NoHandles, Sticky, WindowListSkip, BorderWidth 0, CirculateSkip
212 Style "Maker" StartsOnDesk 1
213 Style "matlab" StartsOnDesk 3
214 Style "signal" StartsOnDesk 3
215 Style "rxvt" Icon term.xpm
216 Style "xterm" Icon xterm.xpm
217 Style "Console" Icon xterm.xpm
218 Style "xterm_color" Icon xterm.xpm
219 Style "Appointment" Icon datebook.xpm, NoButton 2, NoButton 4
220 Style "xcalc" Icon xcalc.xpm, NoButton 2
221 Style "xbiff" Icon mail1.xpm, NoButton 2
222 Style "xmh" Icon mail1.xpm, StartsOnDesk 2, NoButton 2
223 Style "xman" Icon xman.xpm
224 Style "xvgr" Icon graphs.xpm
225 Style "matlab" Icon math4.xpm
226 Style "xmag" Icon mag_glass.xpm
227 Style "xgraph" Icon graphs.xpm
228 Style "GoodStuff" Icon toolbox.xpm
230 # Change the Maximize and iconify buttons to up and down triangles.
232 #ButtonStyle : 2 4 50x35@1 65x65@0 35x65@0 50x35@1
233 #ButtonStyle : 4 4 50x65@1 35x35@1 65x35@1 50x65@0
238 #############################################################################
240 # Stuff to do at start-up
242 Function "InitFunction"
243 # Module "I" FvwmBanner
244 # Exec "I" xpmroot /usr/share/pixmaps/fvwm.xpm &
245 Exec "I" xsetroot -solid "#266294"
247 # Exec "I" exec xterm -geometry 80x64+0+0 &
250 # Exec "I" exec xterm -geometry +0+0 &
252 # Module "I" FvwmPager 0 0
256 Function "RestartFunction"
257 Exec "I" xsetroot -solid "#266294"
259 # Module "I" FvwmPager 0 0
263 ############################################################################
264 # Now define some handy complex functions
266 # This one moves and then raises the window if you drag the mouse,
267 # only raises the window if you click, or does a RaiseLower if you double
269 Function "Move-or-Raise"
274 # This one maximizes vertically if you click (leaving room for the GoodStuff bar at the
275 # bottom, or does a full maximization if you double click, or a true full vertical
276 # maximization if you just hold the mouse button down.
277 Function "maximize_func"
278 Maximize "Motion" 0 100
279 Maximize "Click" 0 80
280 Maximize "DoubleClick" 100 100
284 # This one moves and then lowers the window if you drag the mouse,
285 # only lowers the window if you click, or does a RaiseLower if you double
287 Function "Move-or-Lower"
291 RaiseLower "DoubleClick"
294 # This one moves or (de)iconifies:
295 Function "Move-or-Iconify"
300 # This one resizes and then raises the window if you drag the mouse,
301 # only raises the window if you click, or does a RaiseLower if you double
303 Function "Resize-or-Raise"
307 RaiseLower "DoubleClick"
311 # This is provided as a hint only.
312 # Move to a known page on the desktop, then start an application in a
313 # known location. Could also switch to a known desktop, I guess
314 #Function "abs_coord"
315 # GoToPage "Immediate" 1,1
316 # Exec "Immediate" exec xcalc -geometry +100+100&
320 ##############################################################################
321 #now define the menus - defer bindings until later
323 # This menu is invoked as a sub-menu - it allows you to quit,
324 # restart, or switch to another WM.
326 Title "Really Quit Fvwm?"
327 Quit "Yes, Really Quit"
328 Restart "Restart Fvwm" fvwm1
329 Restart "Start twm" twm
330 Restart "Start tvtwm" tvtwm
331 Restart "Start mwm" mwm
332 Restart "Start olwm" /usr/openwin/bin/olwm
337 # Provides a list of modules to fire off
340 Module "GoodStuff" GoodStuff
341 Module "Clean-Up" FvwmClean
342 Module "Identify" FvwmIdent
343 Module "SaveDesktop" FvwmSave
344 Module "Debug" FvwmDebug
345 Module "Pager" FvwmPager 0 0
346 Module "FvwmWinList" FvwmWinList
349 # This defines the most common window operations
352 Function "Move" Move-or-Raise
353 Function "Resize" Resize-or-Raise
356 Iconify "(De)Iconify"
358 Function "(Un)Maximize" maximize_func
363 Refresh "Refresh Screen"
366 # A trimmed down version of "Window Ops", good for binding to decorations
368 Function "Move" Move-or-Raise
369 Function "Resize" Resize-or-Raise
378 Module "ScrollBar" FvwmScroll 2 2
381 #############################################################################
382 # One more complex function - couldn't be defined earlier because it used
385 # This creates a motif-ish sticky menu for the title-bar window-ops
387 # Menu acts like normal twm menu if you just hold the button down,
388 # but if you click instead, the menu stays up, motif style
389 Function "window_ops_func"
390 PopUp "Click" Window Ops2
391 PopUp "Motion" Window Ops2
393 # I'll add it too, it can be mighty handy.
397 #esyscmd(wmconfig --output afterstep --rootmenu Applications)
398 #esyscmd(vfmg -f -x -c fvwm)
399 esyscmd(cat /etc/X11/fvwm/fvwm.menu)
402 Exec "Xterm" exec xterm &
403 Exec "Rxvt" exec rxvt -bg Black -fg Wheat &
405 Popup "Applications" Applications
407 Popup "Modules" Module-Popup
409 Restart "Restart Fvwm" fvwm1
410 Popup "Exit Fvwm" Quit-Verify
413 ##############################################################################
414 # This defines the mouse bindings
416 # First, for the mouse in the root window
417 # Button 1 gives the Utilities menu
418 # Button 2 gives the Window Ops menu
419 # Button 3 gives the WindowList (like TwmWindows)
420 # I use the AnyModifier (A) option for the modifier field, so you can hold down
421 # any shift-control-whatever combination you want!
423 # Button Context Modifi Function
424 Mouse 1 R A PopUp "Main Menu"
425 Mouse 2 R A PopUp "Window Ops"
426 Mouse 3 R A Module "winlist" FvwmWinList transient
430 # Now the title bar buttons
431 # Any button in the left title-bar button gives the window ops menu
432 # Any button in the right title-bar button Iconifies the window
433 # Any button in the rightmost title-bar button maximizes
434 # Note the use of "Mouse 0" for AnyButton.
436 # Button Context Modifi Function
437 #Mouse 0 1 A Function "window_ops_func"
438 #Mouse 0 2 A Function "maximize_func"
440 Mouse 0 1 A Function "window_ops_func"
443 Mouse 1 4 A Maximize 0 100
444 Mouse 3 4 A Maximize 100 100
446 # Now the rest of the frame
447 # Here I invoke my complex functions for Move-or-lower, Move-or-raise,
448 # and Resize-or-Raise.
449 # Button 1 in the corner pieces, with any modifiers, gives resize or raise
450 #Mouse 1 F A Function "Resize-or-Raise"
452 # Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
453 #Mouse 1 TS A Function "Move-or-Raise"
454 Mouse 1 T A Function "Move-or-Raise"
456 # Button 1 in an icons gives move for a drag, de-iconify for a double-click,
457 # nothing for a single click
458 # Button 2 in an icon, w/ any modifiers, gives de-iconify
460 Mouse 1 I A Function "Move-or-Iconify"
463 # Button 2 in the corners, sides, or title-bar gives the window ops menu
464 Mouse 2 FST A Function "window_ops_func"
465 # Button 3 anywhere in the decoration (except the title-bar buttons)
467 Mouse 3 TSIF A RaiseLower
469 # Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
470 # gives Raise-Lower. Used to use control here, but that interferes with xterm
471 #Mouse 3 W M RaiseLower
472 Mouse 1 W M RaiseLower
476 ############################################################################
477 # Now some keyboard shortcuts.
480 # press arrow + control anywhere, and scroll by 1 page
481 #Key Left A C Scroll -100 0
482 #Key Right A C Scroll +100 +0
483 #Key Up A C Scroll +0 -100
484 #Key Down A C Scroll +0 +100
486 # press arrow + meta key, and scroll by 1/10 of a page
487 #Key Left A M Scroll -10 +0
488 #Key Right A M Scroll +10 +0
489 #Key Up A M Scroll +0 -10
490 #Key Down A M Scroll +0 +10
492 # press shift arrow + control anywhere, and move the pointer by 1% of a page
493 #Key Left A SC CursorMove -1 0
494 #Key Right A SC CursorMove +1 +0
495 #Key Up A SC CursorMove +0 -1
496 #Key Down A SC CursorMove +0 +1
498 # press shift arrow + meta key, and move the pointer by 1/10 of a page
499 #Key Left A SM CursorMove -10 +0
500 #Key Right A SM CursorMove +10 +0
501 #Key Up A SM CursorMove +0 -10
502 #Key Down A SM CursorMove +0 +10
504 # Keyboard accelerators
505 #Key F1 A M CirculateUp
506 #Key F1 A M Popup "Utilities"
507 #Key F2 A M Popup "Window Ops"
508 #Key F3 A M Module "WindowList" FvwmWinList
512 #Key F7 A M CirculateUp
513 #Key F8 A M CirculateDown
515 #Page Up/Dapge Down keys are used to scroll by one desktop page
516 # in any context, press page up/down + control
517 # in root context, just pressing page up/down is OK
519 # I prefer the non-wrapping scroll. These are for example purposes only
520 #Key Next A C Scroll 100000 0
521 #Key Next R N Scroll 100000 0
522 #Key Prior A C Scroll -100000 0
523 #Key Prior R N Scroll -100000 0
526 ############################################################################
527 ############################################################################
528 #Definitions used by the modules
530 ###################### GoodStuff button-bar ################################
532 *GoodStuffFore Orchid
533 *GoodStuffBack Grey20
536 *GoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
537 # Geometry - really likes to pick its own size, but giving a position is OK
538 *GoodStuffGeometry +0+0
540 # Layout: specify rows or columns, not both
543 *GoodStuff - - Swallow "XLoad" xload -nolabel -fg gold -bg grey10 &
544 *GoodStuff - - SwallowModule "FvwmPager" FvwmPager 0 0
546 # Define the buttons to use.....
547 *GoodStuff Kill rbomb.xpm Destroy
548 *GoodStuff xterm xterm.xpm Exec "xterm" xterm &
549 *GoodStuff xclock clock.xpm Swallow "xclock" xclock -bg Grey20 -fg Orchid -hd Orchid -hl Orchid -geometry -1500-1500 -padding 0 &
550 *GoodStuff xbiff mail1.xpm Swallow "xbiff" xbiff -bg Grey20 -fg Orchid &
552 ######################### No Clutter ########################################
553 # I only wrote NoClutter as a simple test case, but maybe some big sites like
554 # universities really have usage problems (too many open windows)....
555 # Time delays are in seconds.
556 *FvwmNoClutter 3600 Iconify 1
557 *FvwmNoClutter 86400 Delete
558 *FvwmNoCLutter 172800 Destroy
560 ########################## Window-Identifier ###############################
561 # Just choose colors and a fonts
562 *FvwmIdentBack MidnightBlue
563 *FvwmIdentFore Yellow
564 *FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
566 ########################### Pager #########################################
568 *FvwmPagerFore Orchid
570 *FvwmPagerHilight Black
571 *FvwmPagerSmallFont 5x8
573 ##########################FvwmWinList##################################
574 *FvwmWinListBack #908090
575 *FvwmWinListFore Black
576 *FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
577 *FvwmWinListAction Click1 Iconify -1,Focus
578 *FvwmWinListAction Click2 Iconify
579 *FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent
580 *FvwmWinListUseSkipList
581 *FvwmWinListGeometry +0-1