## Fred says: ## ## This file contains settings for FVWM2, the default window manager on CSL ## Linux machines. A lot of people dislike it because it's kind of ugly and ## window focus follows the mouse cursor (which I love, but is a bit of an ## adjustment from Windows or Mac OS), but they come to love it, given enough ## time to accept its beauty. ## ## Most of the file is just the defaults provided by the CSL. My additions are ## marked by "Fred says:" ## ## I especially recommend the section on enabling multiple desktop pages. ## ## Note that your copy of .fvwm2rc might be located at ~/.fvwm/.fvwm2rc rather ## than just ~/.fvwm2rc # This is the default CSL .fvwm2rc # # $Id: .fvwm2rc,v 1.9 2002/01/13 21:45:33 nejedlo Exp $ # # It is important that you do not try to simply cut and paste from your # old .fvwmrc file (if you have one), as the formats are largely # incompatible. # # There does not appear to be any importance to what order settings are # placed in in the .fvwm2rc file. See the fvwm2 man page for more # information regarding customization of this file. # # This file is arranged as follows: # # 1. Search Paths (ModulePath, PixmapPath, IconPath) # 2. Fonts and colors # 3. Assorted Parameters # 4. Style settings # 5. Mouse and Key Bindings # 6. Startup Functions # 7. Menu Definitions # 8. Sample Functions ##################################################################### # Assorted paths to important files # ModulePath is a colon-separated list, just like regular unix PATH # DO NOT CHANGE THIS UNLESS YOU KNOW WHAT YOU ARE DOING! ModulePath /s/fvwm2/lib/X11/fvwm2 # Pixmap and icon paths are also colon separated lists # NOTE: Pixmaps are an unsupported feature. # PixmapPath /unsup/std//X11/include/pixmaps IconPath /s/X11/include/X11/bitmaps WindowFont -adobe-helvetica-bold-r-normal-*-*-120-*-*-*-*-*-* IconFont -adobe-helvetica-bold-r-normal--*-100-*-*-* # this sets the colors for the window which currently holds the window # focus. They can either be set with symbolic names or RGB bitmap format # ie. #RRGGBB so that #FF0000 is red, #00FF00 is green, and #0000FF is # blue. The command syntax is: # HilightColor # the default is off white text with blue window decorations. HilightColor #B7DBE5 #114B99 # to change the virtual desktop size # DeskTopSize x # DeskTopSize is set in units of physical screen size # e.g., DeskTopSize 2x1 is a desktop that is 2 screens wide and one long. # ## Fred says: ## ## This is the first line you need to get multiple desktop pages. It's as good ## a place as any for me to explain: This expands your desktop beyond the ## confines of your monitor. You get to other (not currently displayed) regions ## of the desktop by moving your cursor off the edge of the screen in the ## direction you want to go. This is somewhat alarming to people who don't ## expect it, and never fails to amuse me when one of my students is showing me ## some code and suddenly all their windows disappear because the mouse went off ## the edge of the sreen onto a different desktop page. ## ## Anyway, that description might have been somewhat confusing, but, trust me, ## this is an incredibly useful feature once you're used to it -- it allows you ## to separate different tasks onto different sections of your desktop: I ## usually have one for Firefox, one for Thunderbird, one for programming, and ## several blank ones to use whenever I need to switch to some new task. It ## results in a very neatly organized computing experience and very little ## digging through windows trying to find the right one. ## ## To bring this joy into your life, just go through this file and find all the ## pieces that I say you need, and put them in your own copy of .fvwm2rc. DeskTopSize 4x2 ## for virtual desktops ## Fred says: ## Here's the next section needed to get multiple desktop pages. My comments ## begin with "##", versus the "#" for the CSL's comments. ## # how hard fvwm resists changing the view of the desktop ## This setting means the screen will jump to the next desktop page as soon as ## your mouse pushes against the edge of the screen. Increasing the values will ## introduce some delay before the screen jumps. This means you'll do less ## accidental screen-jumping, but when you do want to get to another screen ## quickly, you'll have to wait a little bit. I recommend getting used to ## what's here. EdgeResistance 1 60 # # how large a chunk of the visible screen to scroll when the edge is # reached. This setup will move a whole viewable screen at a time. ## Decreasing these values will jump you less than one whole screen at a time. ## That seems like it would be disorienting and would make it harder to organize ## your tasks onto separate screens, so I recommend keeping this setting as is. EdgeScroll 100 100 # maximum time (in ms) that can pass between when the mouse button is # pressed and released for the action to be considered a "click" anything # longer will be considered a click and hold. ClickTime 150 # Menu appearance # MenuStyle forecolor backcolor shadecolor font style MenuStyle black lightgrey darkgrey -adobe-times-bold-r-*-*-14-*-*-*-*-*-*-* fvwm # to determine which colormap to use ColormapFocus FollowsMouse #styles Style "*" Icon xlogo32, BorderWidth 2, SloppyFocus Style "*" DecorateTransient, IconBox -132 110 -8 -8 Style "Fvwm*" NoHandles, NoIcon, NoTitle, Sticky Style "Fvwm*" WindowListSkip, BorderWidth 0 Style "Fvwm Pager" StaysOnTop Style "FvwmPager" StaysOnTop Style "xbiff" NoHandles, NoTitle, NoIcon, Sticky Style "xbiff" WindowListSkip, BorderWidth 1, ClickToFocus Style "*clock" NoHandles, NoTitle, NoIcon, Sticky Style "*clock" WindowListSkip, BorderWidth 1, ClickToFocus Style "xconsole" NoIcon, Sticky, BorderWidth 1 Style "xlogout" NoHandles, NoTitle, NoIcon, Sticky Style "xlogout" WindowListSkip, BorderWidth 1 Style "Xmsgs" Icon, StaysOnTop, BorderWidth 2 Style "*lock" NoTitle, Sticky, WindowListSkip # some simple default mouse bindings: # for the root window: Mouse 1 R A Menu Programs Nop Mouse 2 R A Menu Utilities Nop Mouse 3 R A WindowList # for the title bar buttons: Mouse 0 1 A Menu Window-Ops2 Close Mouse 0 2 A Maximize-Func Mouse 0 4 A Iconify # for other parts of the window/borders/icons: Mouse 1 FS A Resize-or-Raise Mouse 1 T A Move-or-Raise Mouse 1 I A Move-or-Iconify Mouse 2 I A Iconify Mouse 2 FST A Menu Window-Ops2 Nop Mouse 3 TSIF A RaiseLower # now some key bindings. # These key bindings for the function keyse are all bound to +Fx # which means alt on a x86, but the meta key on sparcs (diamond on a sun # keyboard) Key F1 A M Popup "Utilities" Key F2 A M Popup "Programs" Key F3 A M Lower Key F4 A M Close Key F5 A M CirculateUp Key F6 A M CirculateDown Key F7 A M Move Key F8 A M Resize Key F9 A M Iconify Key F10 A M Maximize 0 100 # Useful olwm type things for Sun keyboards. Key L5 IW N RaiseLower Key L5 IW S Lower Key L5 IW C Raise Key L7 IW A Iconify ##################################################################### # Startup Functions # These don't currently do anything. ## Fred says: ## I guess these don't do anything. AddToFunc InitFunction # "I" Module GoodStuff # uncomment the following line to start the fvwm pager with 4 desktops + "I" Module FvwmPager 0 0 AddToFunc RestartFunction # "I" Module GoodStuff # uncomment the following line to start the fvwm pager with 4 desktops + "I" Module FvwmPager 0 0 ##################################################################### # Menus # Menu for the left corner of windows AddToMenu Window-Ops2 "&Move Alt+F7" Move + "&Size Alt+F8" Resize + "&Iconify Alt+F9" Iconify + "&Zoom Alt+F10" Maximize 0 100 + "Full Zoom" Maximize 100 100 + "&Lower Alt+F3" Lower + "" Nop + "&Close Alt+F4" Close # Middle mouse button in the root window AddToMenu Utilities "Window Utilities" Title + "Refresh" Refresh + "Iconify" Iconify + "Resize" Resize + "Move" Move + "Raise" Raise + "Lower" Lower + "Zoom" Maximize 0 100 + "Full Zoom" Maximize 100 100 + "" Nop + "Delete" Delete + "Destroy" Destroy + "" Nop + "Restart Window Manager" Restart /s/fvwm2/bin/fvwm2 #+ "Kill Window Manager" Quit # Left root-menu sub-menus AddToMenu Xterms "xterm" Exec xterm + "Xterm-small" Exec xterm -name SmallXTerm -title xterm + "Xterm-big" Exec xterm -name BigXTerm -title xterm AddToMenu Math "XCalc" Exec xcalc + "GnuPlot" Exec xterm -geometry 80x40 -e gnuplot + "Maple" Exec /s/maple/bin/xmaple + "Matlab" Exec xterm -geometry 80x40 -e /s/matlab/bin/matlab # Menu for left mouse button in root window ## Fred says: ## ## When you left-click on the desktop, you get a menu with a variety of ## applications to run. Some of the ones in your menu will probably be obsolete ## (like Mozilla), and some things you use a lot (like Firefox), will be absent, ## but you can add and remove (comment out or delete altogether) as I have done: AddToMenu Programs "Programs" Title + "xterm" Exec xterm #+ "mozilla" Exec mozilla + "firefox" Exec firefox + "thunderbird" Exec thunderbird + "xmms" Exec xmms + "pine" Exec xterm -bg \#FAFFFA -e pine + "emacs" Exec emacs + "xemacs" Exec xemacs + "xfig" Exec xfig + "xv" Exec xv + "ggv (postscript viewer)" Exec ggv + "xpostit" Exec xpostit -sv + "Message of the Day" Exec Xstats #+ "Xterms" Popup Xterms + "Math" Popup Math ######################## Sample Functions ########################## # These functions are used for window and icon manipulation AddToFunc Move-or-Raise "I" Raise + "M" Move + "D" Lower AddToFunc Maximize-Func "M" Maximize 0 100 + "C" Maximize 0 80 + "D" Maximize 100 100 AddToFunc Move-or-Iconify "I" Raise + "M" Move + "D" Iconify AddToFunc Resize-or-Raise "I" Raise + "M" Resize + "D" Lower AddToFunc Iconify-and-Raise "M" Iconify + "M" Raise AddToFunc Move-or-Lower "M" Move + "C" Lower + "D" RaiseLower AddToFunc Resize-or-Lower "M" Resize + "C" Lower + "D" RaiseLower ############################################################################ ## Module Configuration ########################### Pager ######################################### # set the number of rows in your pager #*FvwmPagerRows 2 # set the starting location of the pager box #*FvwmPagerGeometry -152+8 # factor of the screen size to use for the pager boxes. a pager window # will be 1/X of the physical screen size #*FvwmPagerDeskTopScale 96 # set the labels for the pager windows #*FvwmPagerLabel 0 Mail #*FvwmPagerLabel 1 News #*FvwmPagerLabel 2 Net #*FvwmPagerLabel 3 Class ## Fred says: ## Here's the last piece you need for multiple desktop pages. The pager is a ## (preferably) small doodad that sits somewhere (preferably in the corner) on ## your desktop and presents a summary of all your desktop pages. It helps you ## remember where you are. ## ## These settings make a small black/blue/gray-themed pager in the lower-right ## corner. I'll try to explain the rows I understand. (This part was copied ## from a friend, so I don't know what all of the settings mean.) ## *FvwmPagerRows 1 ## Put pager in lower (y = -1) right (x = -1) corner: *FvwmPagerGeometry -1-1 ## I forget what units this is in, but the size of the pager is proportional (or ## maybe inversely proportional) to this number: *FvwmPagerDeskTopScale 60 ## I didn't want any labels for my pager frames, so this disables such a ## feature. If you want labels, see the comments above about "FvwmPagerLabel ## blah blah blah." *FvwmPagerFont "none" ## Makes the borders of the pager frames gray: *FvwmPager: Fore rgb:3/3/3 #desktop borders ## Makes the background of the pager black: *FvwmPager: Back black ## Sets the colors of the little mini-window things in the pager: Windows are a ## dark blue, window borders are black, and the currently active window is a ## brighter blue. *FvwmPager: WindowColors black rgb:1/1/6 black rgb:1/1/a ## Makes the current desktop a different shade of gray: *FvwmPager: Hilight rgb:2/2/2 *FvwmPager: SolidSeparators *FvwmPager: SmallFont "6x10" *FvwmPager: WindowLabelFormat "" ## Fred says: ## ## This stuff controls opaque window movement (as opposed to the default, which ## just represents a window with an empty grid while it's being moved). OpaqueMoveSize unlimited Style * ResizeOpaque