Richard's Wedgewood Blue fvwm2 settings

Index

  1. General Look and Feel
    1. The General Settings
    2. The Files
    3. Program Specific Style Assignments
  2. The Button Console
    1. The Button Functions
    2. The Button Definitions
    3. The (uncommon) programs and pixmaps called from the buttons
  3. The Menus
  4. Icons

I use Debian as my Linux distribution. They do a really nice method of creating the menus and splitting the fvwm configuration, so some of these settings won't apply automatically to other distributions - modify to suit your environment. These basic idea is here.

General Look and Feel

The General Settings

I have a small 14" monitor, so the fonts tend to be large. It's also fairly cramped at 1024x768. Some of the colors may be out of whack on your computer - they're tuned for mine. Here's a look at the whole desktop: (click for full-size image)


And a closeup of the window title detail, the settings are in "TitleStyle" and "ButtonStyle" below.

#=======================================================================
#   Look and Feel
#
DeskTopSize 2x2
EdgeScroll 100 100
EdgeResistance 500 100
# I'm too lazy to click the mouse, just feebly bat it into a window
# and wait for it to raise itself
Module FvwmAuto 1000

MenuStyle black grey white -adobe-helvetica-bold-r-*-*-14-* fvwm

#----------
# Decors & Styles
#----------
AddToDecor default-decor
+ WindowFont	-b&h-lucida-bold-i-*-*-18-*
+ IconFont	-*-helvetica-bold-r-*-*-12-*
+ TitleStyle ActiveUp HGradient 64 "#005577" steelblue
+ TitleStyle LeftJustified
  #----------
  # Window Buttons
  #----------
+ ButtonStyle Reset
+ ButtonStyle All - Clear
+ ButtonStyle 1 MiniIcon
+ ButtonStyle 1 - MWMDecorMenu
+ ButtonStyle 2 Vector 16 20x20@1 30x20@1 50x40@1 70x20@1 80x20@1 80x30@0 60x50@0 80x80@0 70x80@0 50x60@0 30x80@0 20x80@0 20x70@0 40x50@1 20x30@0 20x20@1
+ ButtonStyle 4 Vector 5 20x20@1 20x80@1 80x80@0 80x20@0 20x20@1
+ ButtonStyle 4 - MWMDecorMax
+ ButtonStyle 6 Vector 2 80x76@0 20x76@1
+ ButtonStyle 6 - MWMDecorMin

DestroyDecor minimal-decor
AddToDecor minimal-decor
+ BorderStyle -- HiddenHandles NoInset
Style "minimal-style" UseDecor minimal-decor, NoTitle, HandleWidth 3, CirculateSkip, WindowListSkip

#----------
# Window Button Mouse Bindings
#----------
Mouse 0 2 A Close
Mouse 0 4 A Maximize 0 100
Mouse 0 6 A Iconify

The Files

Program Specific Style Assignments

#----------
# Program Style Assignments
#----------
Style "XClock" UseStyle minimal-style, Sticky
Style "X*Biff" UseStyle minimal-style, Sticky
Style "XLoad" UseStyle minimal-style
Style "XPostitPlus" UseStyle minimal-style, Sticky
Style "FvwmPager" UseStyle minimal-style

*FvwmPagerGeometry -0-0
*FvwmPagerDeskTopScale 32

Style "elm"	Icon mail1.xpm
Style "xconsole" NoIcon

Style "*"          MiniIcon mini-bx2.xpm
Style "xterm"      MiniIcon mini-term.xpm
Style "Emacs"      MiniIcon mini.emacs.xpm
etc...

Button Console

I use an FvwmButtons console, containing all my regularly used programs (the stuff I use every day), plus load graphs for my two Linux boxes, and the fvwm pager. Everything is packed in to provide maximum functionality in the minimal amount of pixels. The three buttons on the left will check to see if the program has been started and if so warp to it, otherwise start the program. The mail icon is empty if there's no mail. The xload buttons start an xterm on their respective machines (you have to click on the labels at the bottom though). Here's what they look like:

The Button Functions

These are the basic functions the buttons use. The comments and code should be self-explanatory.

#=======================================================================
#   Functions
#

#----------
# Function:	goto-or-exec
# Description:	Tries to find a window, if it does goes there (same as
#		the window list does), if not starts a program.
# Parameters:	$0 name of window to look for
#		$1 command to execute if window not found
#----------
DestroyFunc goto-or-exec
AddToFunc   goto-or-exec
+ "I" Next [$0] Iconify -1
+ "I" Next [$0] Focus
+ "I" Next [$0] Raise
+ "I" Next [$0] WarpToWindow 5p 5p
+ "I" None [$0] Exec $1

#----------
# Function:	Start-mailer
# Decription:	Use this to start our mailer so we can change it when
#		we get something better than xterm/elm.
# Parameters:	none
#----------
DestroyFunc Start-mailer
AddToFunc   Start-mailer
+ "I" goto-or-exec "elm" "xterm -e elm &"

#----------
# Function:	Start-term
# Decription:	Use this to start a remote xterm on a specified host
# Parameters:	$0 hostname
#----------
DestroyFunc Start-term
AddToFunc   Start-term
+ "I" Exec ~/bin/xrsh -auth none $0 xterm -ls

The Button Definitions

This gets a little hairier than it should be, simply because FvwmButtons doesn't have many facilities for sizing - everything is relative to some other button.

#=======================================================================
#   FvwmButtons
#
*rcpFvwmButtonsFore White
*rcpFvwmButtonsBack #005577
*rcpFvwmButtonsGeometry -0-0
*rcpFvwmButtonsRows 1

#----------
# Three small buttons on the left for going to or starting often-used
# programs
#----------
*rcpFvwmButtons(Container(Rows 3,Frame 1))

  *rcpFvwmButtons(Icon mini-nscape.xpm, Action `goto-or-exec \
         "Netscape" /usr/bin/X11/netscape`)

  *rcpFvwmButtons(Icon mini.emacs.xpm, Action `goto-or-exec \
         "Emacs" /usr/bin/emacs`)

  #----------
  # this one is our hacked up xpmbiff
  #----------
  *rcpFvwmButtons(Title mail, Swallow(UseOld,NoKill) "xpmbiff" `Exec \
          ~/.fvwm2/xpmbiff ~/.fvwm2/mini-nomail.xpm \
          ~/.fvwm2/mini-mail.xpm 10 &` , Action `Start-mailer`) 

*rcpFvwmButtons(End)

#----------
# Container the whole thing to try and get the right sizes, this is
# butt-ugly, but fvwm always wants to even out the buttons.
#----------
*rcpFvwmButtons(6x1, Container(Rows 1,Frame 1))

  #----------
  # Two xloads for our favorite hosts, clicking on them has been
  # redefined above to start xterm logins to them.
  #----------
  *rcpFvwmButtons(Container(Rows 1,Frame 1))

    *rcpFvwmButtons(Title prop, Swallow(UseOld,NoKill) "xload-prop" \
            `Exec ~/bin/xrsh -auth none prop xload -title xload-prop \
            -bg SlateGrey -fg SlateBlue4 -nolabel -update 15 &` , \
            Action `Start-term prop`)

    *rcpFvwmButtons(Title flanker, Swallow(UseOld,NoKill) \
            "xload-flanker" `Exec ~/bin/xrsh -auth none flanker xload \
            -title xload-flanker -bg SlateGrey -fg SlateBlue4 -nolabel \
            -update 15 &` , Action `Start-term flanker`)

  *rcpFvwmButtons(End)

  #----------
  # Finally our pager
  #----------
  *rcpFvwmButtons(Size 102 76, Swallow(UseOld,NoKill) "FvwmPager")

*rcpFvwmButtons(End)

Module FvwmButtons rcpFvwmButtons
Style "*rcpFvwmButtons" UseStyle minimal-style

The (uncommon) programs and pixmaps called from the buttons

The Menus

These are add-ons to the menus Debian creates. They reside in ~/.fvwm2/menudefs.hook. See above for the xrsh program.

AddToMenu "/Debian/Hosts" "Hosts" Title
+ "&flanker"	Exec    ~/bin/xrsh -auth none flanker xterm -ls
#+ "&flanker-rlogin"	Exec    xterm -T flanker -e rlogin flanker
+ "&prop"	Start-term prop
+ "&hercules"	Exec    xterm -fg orange -tn xterm -T hercules -e telnet hercules.cs.uregina.ca
+ "&Netwinder"	Exec    xterm -fg orange -tn xterm -T Netwinder -e telnet javaapp2.corelcomputer.com

Style "hercules"	Icon xterm-sgi.xpm
Style "Netwinder"	Icon xterm-corel.xpm

AddToMenu "/Debian"
+ "&Hosts" PopUp /Debian/Hosts

AddToMenu "/Debian/Apps/Sound"
+ "X&Mix"	Exec    xmix -l

Icons

[an error occurred while processing this directive]