]> git.pld-linux.org Git - packages/fvwm.git/blob - fvwm-system.fvwmrc
18c39805016f1d7fd0bcfa6c7d7c56371f5949d1
[packages/fvwm.git] / fvwm-system.fvwmrc
1 # Unfortunately, order does matter in this file
2 # The correct order for inserting configurations is:
3 # 1. Colors
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.
12 # 9. Module options.
13
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.
16
17 # If you get it wrong, the most common problem is that color or font settings
18 # are ignored
19
20 undefine(`include')
21
22 ###########################################################################
23 # set up the colors
24 #
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
27 # line California.
28 #
29 # StdForeColor          Black
30 # StdBackColor          LightSkyBlue
31 # HiForeColor           yellow
32 # HiBackColor           PeachPuff1
33 # PagerBackColor        BlanchedAlmond
34
35 # Me, I'm from Upstate New York, and live in New Hampshire, so I prefer
36 # these dark muddy colors...
37
38 StdForeColor            Wheat
39 StdBackColor            DimGrey
40
41 # this is used for the selected window
42 HiForeColor             Wheat
43 HiBackColor             SlateBlue4
44
45 #PagerBackColor         #5c54c0
46 #PagerForeColor         orchid
47
48 StickyForeColor         Black
49 StickyBackColor         #60c0a0
50
51 # Menu colors
52 MenuForeColor           Wheat
53 MenuBackColor           DimGrey
54 MenuStippleColor        SlateGrey
55
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-*-*-*-*-*-*-*
62 #IconFont               fixed
63
64 Font                    lucidasanstypewriter-12
65 WindowFont              lucidasanstypewriter-12
66 IconFont                lucidasanstypewriter-12
67
68 ###########################################################################
69 # Set up the major operating modes
70 #
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.
75 #AutoRaise 750
76
77 # Normally, we'll be in focus-follows mouse mode, but uncomment this 
78 # for mwm-style click-to-focus
79 #ClickToFocus
80
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
88 IconBox -70 1 -1 -140
89
90 # If you uncomment this, and make sure that the WindowList is bound to
91 # something, it works pretty much like an icon manager.
92 #SuppressIcons
93
94 # StubbornIcons makes icons de-iconify into their original position on the
95 # desktop, instead of on the current page.
96 #StubbornIcons
97
98 # With AutoPlacement, icons will normally place themselves underneath active
99 # windows. This option changes that.
100 #StubbornIconPlacement
101
102 # If you want ALL you icons to follow you around the desktop (Sticky), try
103 # this
104 #StickyIcons
105
106 ########################      MWM EMULATION     #######################
107 #
108 # My feeling is that everyone should use MWMDecorHints and MWMFunctionHints,
109 # since some applications depend on having the window manager respect them
110
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.
114 MWMFunctionHints
115
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.
120 MWMHintOverride
121
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.
125 MWMDecorHints
126
127 # These are affect minor aspects for the look-and-feel.
128 # Sub-menus placement mwm-style?
129 # MWMMenus
130 # mwm-style border reliefs (less deep than default fvwm) ?
131 # MWMBorders
132 # Maximize button does mwm-inversion thingy
133 # MWMButtons
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.
137 # ClickTime 150
138
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
142 # OpaqueMove 100
143
144 # flip by whole pages on the edge of the screen.
145 EdgeScroll 100 100
146
147 # A modest delay before flipping pages seems to be nice...
148 # I thresh in a 50 pixel Move-resistance too, just so people
149 # can try it out.
150 EdgeResistance 350 50
151
152
153 ########################      WINDOW PLACEMENT     #######################
154 # RandomPlacement prevents user interaction while placing windows:
155 #RandomPlacement
156
157 # SmartPlacement makes new windows pop-up in blank regions of screen 
158 # if possible, or falls back to random or interactive placement.
159 SmartPlacement
160
161 # With SmartPlacement, windows will normally place themselves over icons. 
162 # Uncomment this to change that.
163 #StubbornPlacement
164
165 # NoPPosition instructs fvwm to ignore the PPosition field in window 
166 # geometry hints. Emacs annoyingly sets PPosition to (0,0)!
167 NoPPosition
168
169
170 ########################      DECORATIONS     #######################
171 # If you want decorated transient windows, uncomment this:
172 #DecorateTransients
173
174
175 ###########################################################################
176 # Set up the virtual desktop and pager
177
178 #set the desk top size in units of physical screen size
179 DeskTopSize 2x2
180
181 # and the reduction scale used for the panner/pager
182 DeskTopScale 32
183
184 ##########################################################################
185 # Module path and paths to the icons
186 #
187 # ModulePath is a colon-separated list, just like regular unix PATH
188 ModulePath /usr/X11R6/lib/X11/fvwm/
189 PixmapPath /usr/X11R6/include/X11/pixmaps/:/usr/X11R6/share/icons/:/usr/X11R6/share/icons/mini/:/usr/share/icons/:/usr/share/icons/mini/
190 IconPath   /usr/X11R6/include/X11/bitmaps/:/usr/X11R6/share/icons/:/usr/X11R6/share/icons/mini/:/usr/share/icons/:/usr/share/icons/mini/
191
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.
198
199 # These commands should command before any menus or functions are defined,
200 # and before the internal pager is started.
201
202 # change the default width.
203 Style "*" BorderWidth 5, HandleWidth 5, Icon unknown1.xpm
204
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
229
230 # Change the Maximize and iconify buttons to up and down triangles.
231
232 #ButtonStyle : 2 4 50x35@1 65x65@0 35x65@0 50x35@1
233 #ButtonStyle : 4 4 50x65@1 35x35@1 65x35@1 50x65@0
234
235 ButtonStyle 2 20x20
236 ButtonStyle 4 50x50
237
238 #############################################################################
239
240 # Stuff to do at start-up
241
242 Function "InitFunction"
243 #       Module  "I"     FvwmBanner
244 #       Exec    "I"     xpmroot /usr/include/X11/pixmaps/fvwm.xpm &
245         Exec    "I"     xsetroot -solid "#266294"      
246         Module  "I"     GoodStuff
247 #       Exec    "I"     exec xterm -geometry 80x64+0+0 &
248 #       Wait    "I"     xterm
249 #       Desk    "I"     0 2
250 #       Exec    "I"     exec xterm -geometry +0+0 &
251 #       Wait    "I"     xterm
252 #       Module  "I"     FvwmPager 0 0
253         Desk    "I"     0 0
254 EndFunction
255
256 Function "RestartFunction"
257         Exec    "I"     xsetroot -solid "#266294"      
258         Module  "I"     GoodStuff
259 #       Module  "I"     FvwmPager 0 0
260 EndFunction
261
262
263 ############################################################################
264 # Now define some handy complex functions
265
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 
268 # click
269 Function "Move-or-Raise"
270         Move            "Motion"
271         Raise           "Click"
272 EndFunction
273
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
281 EndFunction
282
283
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 
286 # click
287 Function "Move-or-Lower"
288         Move            "Motion"
289         Lower           "Motion"
290         Lower           "Click"
291         RaiseLower      "DoubleClick"
292 EndFunction
293
294 # This one moves or (de)iconifies:
295 Function "Move-or-Iconify"
296         Move            "Motion"
297         Iconify         "Click"
298 EndFunction
299
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 
302 # click
303 Function "Resize-or-Raise"
304         Resize          "Motion"
305         Raise           "Motion"
306         Raise           "Click"
307         RaiseLower      "DoubleClick"
308 EndFunction
309
310
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&
317 #EndFunction
318
319
320 ##############################################################################
321 #now define the menus - defer bindings until later
322
323 # This menu is invoked as a sub-menu - it allows you to quit,
324 # restart, or switch to another WM.
325 Popup "Quit-Verify"
326         Title   "Really Quit Fvwm?"
327         Quit    "Yes, Really Quit"
328         Restart "Restart Fvwm"  fvwm
329         Restart "Start twm"     twm
330         Restart "Start tvtwm"   tvtwm
331         Restart "Start mwm"     mwm
332         Restart "Start olwm"    /usr/openwin/bin/olwm
333         Nop     ""
334         Nop     "No, Don't Quit"
335 EndPopup
336
337 # Provides a list of modules to fire off
338 Popup "Module-Popup"
339         Title   "Modules"
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
347 EndPopup
348
349 # This defines the most common window operations
350 Popup "Window Ops"
351         Title           "Window Ops"
352         Function        "Move"          Move-or-Raise
353         Function        "Resize"        Resize-or-Raise
354         Raise           "Raise"
355         Lower           "Lower"
356         Iconify         "(De)Iconify" 
357         Stick           "(Un)Stick"
358         Function        "(Un)Maximize"  maximize_func
359         Nop             ""
360         Destroy         "Destroy"
361         Close           "Close"
362         Nop             ""
363         Refresh         "Refresh Screen"
364 EndPopup
365
366 # A trimmed down version of "Window Ops", good for binding to decorations
367 Popup "Window Ops2"
368         Function        "Move"          Move-or-Raise
369         Function        "Resize"        Resize-or-Raise
370         Raise           "Raise"
371         Lower           "Lower"
372         Iconify         "Iconify"
373         Stick           "(Un)Stick"
374         Nop             ""
375         Destroy         "Destroy"
376         Close           "Close"
377         Nop             ""
378         Module          "ScrollBar"     FvwmScroll 2 2
379 EndPopup
380
381 #############################################################################
382 # One more complex function - couldn't be defined earlier because it used 
383 # pop-up menus
384 #
385 # This creates a motif-ish sticky menu for the title-bar window-ops
386 # pop-up
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
392 # Motif would add:
393 # I'll add it too, it can be mighty handy.
394         Close  "DoubleClick"  
395 EndFunction
396
397 esyscmd(wmconfig --output afterstep --rootmenu Programs)
398
399 Popup   "Main Menu"
400         Exec    "Xterm"         exec xterm &
401         Exec    "Rxvt"          exec rxvt -bg Black -fg Wheat &
402         Nop     ""
403         Popup   "Programs"      Programs
404         Nop     ""
405         Popup   "Modules"       Module-Popup
406         Nop     ""
407         Restart "Restart Fvwm"  fvwm
408         Popup   "Exit Fvwm"     Quit-Verify
409 EndPopup
410
411 ##############################################################################
412 # This defines the mouse bindings
413
414 # First, for the mouse in the root window
415 # Button 1 gives the Utilities menu
416 # Button 2 gives the Window Ops menu
417 # Button 3 gives the WindowList (like TwmWindows)
418 # I use the AnyModifier (A) option for the modifier field, so you can hold down
419 # any shift-control-whatever combination you want!
420
421 #     Button    Context Modifi  Function
422 Mouse 1         R       A       PopUp "Main Menu"
423 Mouse 2         R       A       PopUp "Window Ops"
424 Mouse 3         R       A       Module "winlist" FvwmWinList transient
425
426
427
428 # Now the title bar buttons
429 # Any button in the left title-bar button gives the window ops menu
430 # Any button in the right title-bar button Iconifies the window
431 # Any button in the rightmost title-bar button maximizes
432 # Note the use of "Mouse 0" for AnyButton.
433
434 #     Button    Context Modifi  Function
435 #Mouse 0                1       A       Function "window_ops_func"
436 #Mouse 0                2       A       Function "maximize_func"
437 #Mouse 0                4       A       Iconify
438 Mouse 0         1       A       Function "window_ops_func"
439 Mouse 1         2       A       Iconify
440 Mouse 3         2       A       Destroy
441 Mouse 1         4       A       Maximize 0 100
442 Mouse 3         4       A       Maximize 100 100
443
444 # Now the rest of the frame
445 # Here I invoke my complex functions for Move-or-lower, Move-or-raise,
446 # and Resize-or-Raise. 
447 # Button 1 in the corner pieces, with any modifiers, gives resize or raise
448 #Mouse 1                F       A       Function "Resize-or-Raise"
449 Mouse 1         FS      A       Resize
450 # Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
451 #Mouse 1                TS      A       Function "Move-or-Raise"
452 Mouse 1         T       A       Function "Move-or-Raise"
453
454 # Button 1 in an icons gives move for a drag, de-iconify for a double-click,
455 # nothing for a single click
456 # Button 2 in an icon, w/ any modifiers, gives de-iconify
457
458 Mouse 1         I       A       Function "Move-or-Iconify"
459 Mouse 2         I       A       Iconify
460
461 # Button 2 in the corners, sides, or title-bar gives the window ops menu
462 Mouse 2         FST     A       Function "window_ops_func"
463 # Button 3 anywhere in the decoration (except the title-bar buttons)
464 # does a raise-lower
465 Mouse 3         TSIF    A       RaiseLower
466
467 # Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
468 # gives Raise-Lower. Used to use control here, but that interferes with xterm
469 #Mouse 3         W       M       RaiseLower
470 Mouse 1         W       M       RaiseLower
471 Mouse 2         W       M       Move
472 Mouse 3         W       M       Resize
473
474 ############################################################################
475 # Now some keyboard shortcuts.
476
477 # Arrow Keys
478 # press arrow + control anywhere, and scroll by 1 page
479 #Key Left       A       C       Scroll -100 0
480 #Key Right      A       C       Scroll +100 +0
481 #Key Up         A       C       Scroll +0   -100
482 #Key Down       A       C       Scroll +0   +100
483
484 # press arrow + meta key, and scroll by 1/10 of a page
485 #Key Left       A       M       Scroll -10 +0
486 #Key Right      A       M       Scroll +10 +0
487 #Key Up         A       M       Scroll +0   -10
488 #Key Down       A       M       Scroll +0   +10
489
490 # press shift arrow + control anywhere, and move the pointer by 1% of a page
491 #Key Left       A       SC      CursorMove -1 0
492 #Key Right      A       SC      CursorMove +1 +0
493 #Key Up         A       SC      CursorMove +0   -1
494 #Key Down       A       SC      CursorMove +0   +1
495
496 # press shift arrow + meta key, and move the pointer by 1/10 of a page
497 #Key Left       A       SM      CursorMove -10 +0
498 #Key Right      A       SM      CursorMove +10 +0
499 #Key Up         A       SM      CursorMove +0   -10
500 #Key Down       A       SM      CursorMove +0   +10
501
502 # Keyboard accelerators
503 #Key F1         A       M       CirculateUp
504 #Key F1         A       M       Popup "Utilities"
505 #Key F2         A       M       Popup "Window Ops"
506 #Key F3         A       M       Module "WindowList" FvwmWinList 
507 #Key F4         A       M       Iconify
508 #Key F5         A       M       Move
509 #Key F6         A       M       Resize
510 #Key F7         A       M       CirculateUp
511 #Key F8         A       M       CirculateDown
512
513 #Page Up/Dapge Down keys are used to scroll by one desktop page
514 # in any context, press page up/down + control
515 # in root context, just pressing page up/down is OK
516
517 # I prefer the non-wrapping scroll. These are for example purposes only
518 #Key Next       A       C       Scroll 100000 0
519 #Key Next       R       N       Scroll 100000 0  
520 #Key Prior      A       C       Scroll -100000 0
521 #Key Prior      R       N       Scroll -100000 0
522
523
524 ############################################################################
525 ############################################################################
526 #Definitions used by the modules
527
528 ###################### GoodStuff button-bar ################################
529 # Colors
530 *GoodStuffFore Orchid
531 *GoodStuffBack Grey20
532
533 # Font
534 *GoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
535 # Geometry - really likes to pick its own size, but giving a position is OK
536 *GoodStuffGeometry +0+0
537
538 # Layout: specify rows or columns, not both
539 *GoodStuffColumns 1
540
541 *GoodStuff - - Swallow "XLoad" xload -nolabel -fg gold -bg grey10 &
542 *GoodStuff - - SwallowModule "FvwmPager" FvwmPager 0 0
543
544 # Define the buttons to use.....
545 *GoodStuff Kill    rbomb.xpm   Destroy
546 *GoodStuff xterm   xterm.xpm   Exec "xterm" xterm &
547 *GoodStuff xclock  clock.xpm   Swallow "xclock" xclock -bg Grey20 -fg Orchid -hd Orchid -hl Orchid -geometry -1500-1500 -padding 0 &
548 *GoodStuff xbiff   mail1.xpm   Swallow "xbiff" xbiff -bg Grey20 -fg Orchid &
549
550 ######################### No Clutter ########################################
551 # I only wrote NoClutter as a simple test case, but maybe some big sites like
552 # universities really have usage problems (too many open windows)....
553 # Time delays are in seconds.
554 *FvwmNoClutter 3600 Iconify 1
555 *FvwmNoClutter 86400 Delete
556 *FvwmNoCLutter 172800 Destroy
557
558 ########################## Window-Identifier ###############################
559 # Just choose colors and a fonts
560 *FvwmIdentBack MidnightBlue
561 *FvwmIdentFore Yellow
562 *FvwmIdentFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-*
563
564 ########################### Pager #########################################
565 *FvwmPagerBack Black
566 *FvwmPagerFore Orchid
567 *FvwmPagerFont none
568 *FvwmPagerHilight Black
569 *FvwmPagerSmallFont 5x8
570
571 ##########################FvwmWinList##################################
572 *FvwmWinListBack #908090
573 *FvwmWinListFore Black
574 *FvwmWinListFont -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
575 *FvwmWinListAction Click1 Iconify -1,Focus
576 *FvwmWinListAction Click2 Iconify
577 *FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent
578 *FvwmWinListUseSkipList
579 *FvwmWinListGeometry +0-1
580                                       
This page took 0.055967 seconds and 2 git commands to generate.