[img=http://img220.imageshack.us/img220/5255/screenshot200801231343mt7.th.jpg]
This shows Emacs 23 with Dejavu Sans Mono fonts and emacs-w3m, conky in the upper right corner, an iconbox with thumbnail icons (all of these are sticky, indicated by the SteelBlue title), xonclock in the lower right corner; FvwmButtons in the center and the pager in the lower left corner. The buttons on the upper right corner of the decor are custom-drawn pixmaps. The wallpaper is “Vespers” from Digital Blasphemy.
Here’s the config, much of it based on a tutorial I found and haven’t found again, but heavily modified. Comments welcome.
Set Environment variables
###########
SetEnv fvwm_home $[FVWM_USERDIR]
SetEnv fvwm_img $[FVWM_USERDIR]/images
SetEnv fvwm_icon /home/joel/.icons
#SetEnv fvwm_scrpt $./scripts
SetEnv fvwm_wallpapers /home/joel/.kde/share/wallpapers
SetEnv fvwm_webbrowser /usr/bin/firefox
SetEnv fvwm_term /usr/bin/xterm
#SetEnv fvwm_mail /usr/bin/mutt
SetEnv fvwm_media_player /usr/bin/audacious
SetEnv fvwm_video_player /usr/bin/xine
fvwm gtk rcfile:
#*FvwmGtk: RCFile /home/joel/.gtkrc-2.0
Set the image path
###########
ImagePath /usr/share/pixmaps:/usr/share/icons/hicolor:/usr/share/icons/Locolor:/home/joel/.fvwm/images:/home/joel/.icons
Virtual Desktops
###########
DesktopSize 2x2
DesktopName 0 Desk
DesktopName 1 Couch
EdgeScroll 100 100
EdgeResistance 150 150
EdgeThickness 1
Mouse and Focus Behavior
###########
ClickTime 350
MoveThreshold 3
Style * MouseFocusClickRaises
Style * SloppyFocus
Global Styles and options
###########
Style * TileCascadePlacement, GrabFocusOff
Style * ResizeOutline
#OpaqueMoveSize -1
Emulate Fvwm
HideGeometryWindow Never
SnapAttraction 5 SameType Screen
SnapGrid 3 3
XorValue 0
Style * DecorateTransient
Style * DontLowerTransient, StackTransientParent
Style * GrabFocusTransient
Style * WindowShadeSteps 30, WindowShadeScrolls
Style * MwmDecor, SlipperyIcon
Style * IconTitle,
IconTitleColorset 11,
HilightIconTitleColorset 16,
IconTitleRelief 0,
IconBackgroundColorset 14,
IconBackgroundPadding 10,
IconBackgroundRelief -1,
HighlightIconTitleColorset 14,
IconFont “Shadow=2 4:xft:Verdana:Normal:Roman:size=12”
Style * IconBox 697x327+741+414, IconGrid 112x112, IconFill right top
DestroyFunc FuncName
AddToFunc FuncName
+ I (Action to happen immediately)
+ C (Action to happen on a mouse 'click)
+ D (Action to happen on a mouse ‘double click’)
+ H (Action to happen on a mouse ‘hold’)
+ M (Action to happen on a mouse ‘motion’)
###########
Basic Functions
###########
DestroyFunc FvwmDeleteOrDestroy
AddToFunc FvwmDeleteOrDestroy
- H Nop
- M Nop
- C Delete
- D Destroy
DestroyFunc FvwmIconifyOrShade
AddToFunc FvwmIconifyOrShade
- C Thumbnail
- D WindowShade
DestroyFunc FvwmMaximize
AddToFunc FvwmMaximize
- H Nop
- M Nop
- C Maximize $0 $1
DestroyFunc FvwmMoveOrIconify
AddToFunc FvwmMoveOrIconify
- M Move
- C Iconify
DestroyFunc FvwmWindowShade
AddToFunc FvwmWindowShade
- D WindowShade $0
Program Launching Functions
###########
DestroyFunc FvwmXTerm
AddToFunc FvwmXTerm
- I Exec exec xterm
DestroyFunc FvwmTerminal
AddToFunc FvwmTerminal
- I Exec exec Terminal
DestroyFunc FvwmEmacs
AddToFunc FvwmEmacs
- I Exec exec emacs
DestroyFunc FvwmGimp
AddToFunc FvwmGimp
- I Exec exec gimp
DestroyFunc FvwmFireFox
AddToFunc FvwmFireFox
- I Exec exec firefox
DestroyFunc FvwmAudacious
AddToFunc FvwmAudacious
- I Exec exec audacious --headless
DestroyFunc FvwmMixer
AddToFunc FvwmMixer
- I Exec exec xterm -e alsamixer
DestroyFunc FvwmConky
AddToFunc FvwmConky
- I Exec exec conky
DestroyFunc FvwmClock
AddToFunc FvwmClock
- I Exec exec xonclock --movable
DestroyFunc FvwmLockScreen
AddToFunc FvwmLockScreen
- I Exec exec xscreensaver-command -activate
DestroyFunc FvwmViewManPage
AddToFunc FvwmViewManPage
- I Exec exec emacsclient --eval “(woman “$0”)” || exit 1
Startup Functions
###########
DestroyFunc StartFunction
AddToFunc StartFunction
- I Module FvwmPager 0 1
- I Module FvwmAnimate
- I Module FvwmButtons SteelBlueButtons -g +544+836
- I Test (Restart) All (Iconic)
Test (f $[FVWM_USERDIR]/icon.tmp.$[w.id].png) WindowStyle
IconOverride, Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png
DestroyFunc InitFunction
AddToFunc InitFunction
- I Exec exec xscreensaver
- I Exec exec fvwm-root -r /home/joel/docs/pictures/vespers1440.png
- I Exec exec xset m 1/2
- I Exec exec xbindkeys
- I FvwmConky
- I FvwmClock
- I FvwmCommandS
- I FvwmMixer
- I FvwmXTerm
- I Exec exec rox
DestroyFunc RestartFunction
AddToFunc RestartFunction
- I Nop
Screenshot Functions (uses ImageMagick)
###########
DestroyFunc FvwmWindowScreenshot
AddToFunc FvwmWindowScreenshot
- I ThisWindow (!Shaded !Iconic Iconifiable)
Exec import -window $[w.id] -quality 100 -silent
“$[fvwm_home]/images/screenshot-date +%F[%R]
.$[w.id].jpg”
DestroyFunc FvwmDesktopScreenshot
AddToFunc FvwmDesktopScreenshot
- I Exec sleep $0; import -window root -quality 100 -silent
“$[fvwm_home]/images/screenshot-date +%F[%R]
.jpg”
Basic Bindings
###########
Key F1 A M GotoDesk 1 1 0 1
Key F2 A M GotoPage wrapx +1p +0p
Key F3 A M GotoPage wrapy +0p +1p
Key F4 A M Thumbnail
Key F5 A M Move
Key F6 A M Resize
Key F7 A M WindowShade
Key F12 A M Restart
Key Up W M Raise
Key Down W M Lower
Key Space A MC Menu FvwmRootMenu
Key Tab A M WindowList Root -100m c+0 CurrentAtEnd, NoDeskSort,
Alphabetic, SelectOnRelease Meta_L
Key Space A M Menu FvwmWindowOpsMenu
Mouse 1 R A Menu FvwmRootMenu
Mouse 3 R A Menu WindowList Root -100m c+0 CurrentAtEnd, NoDeskSort,
Alphabetic, SelectOnRelease Meta_L
Mouse 1 1 A Menu FvwmWindowOpsMenu
Mouse 1 2 A FvwmDeleteOrDestroy
Mouse 1 4 A FvwmIconifyOrShade
Mouse 1 6 A FvwmMaximize 100 100
Mouse 2 6 A FvwmMaximize 0 100
Mouse 3 6 A FvwmMaximize 100 0
Mouse 1 W M FvwmMoveOrIconify
Mouse 1 I A FvwmMoveOrIconify
Mouse 2 R A Scroll
Window Colorsets
###########
Colorset 3 fg #101060, bg #cececa
Colorset 4 fg White, bg Black
Colorset 5 fg Black, bg #eeeeef
Colorset 6 fg White, bg #9b9b9c
Colorset 12 fg White, bg SteelBlue
Colorset 13 fg SteelBlue, bg Black, fgsh SlateGray
Window Decor
###########
DestroyDecor SteelBlueDecor
AddToDecor SteelBlueDecor
- Buttonstyle 6 ActiveUp Pixmap jicons/jmax.xpm
- Buttonstyle 6 ActiveDown SGradient 24 black white
- Buttonstyle 4 ActiveUp Pixmap jicons/jmin.xpm
- Buttonstyle 4 ActiveDown DGradient 24 black white
- Buttonstyle 2 ActiveUp Pixmap jicons/jclose.xpm
- Buttonstyle 2 ActiveDown YGradient 24 black white
- Buttonstyle 1 MiniIcon
- Buttonstyle 2 InActive (Colorset 16)
- Buttonstyle 4 InActive (Colorset 16)
- Buttonstyle 6 InActive (Colorset 16)
- TitleStyle LeftJustified Height 24
- TitleStyle InActive (Colorset 16)
- TitleStyle Active (Colorset 13)
- TitleStyle – Flat
- Buttonstyle All – UseTitleStyle Flat
- BorderStyle Active (Colorset 16) – HiddenHandles Flat
- BorderStyle Inactive (Colorset 16) – HiddenHandles Flat
transparent colorsets
ColorSet 11 RootTransparent buffer, fg SlateGray, bg average, fgsh Black
Colorset 14 Pixmap $[FVWM_USERDIR]/images/vespers106.png, Alpha 50
Colorset 15 AspectShape $[FVWM_USERDIR]/images/ellipse.png
Colorset 16 RootTransparent buffer,
fg SlateGray,
bg average,
fgsh Black,
Tint SteelBlue 30
Default colorset and font (for GeometryWindow)
DefaultColorSet 11
DefaultFont “Shadow=2 4:xft:Verdana:Normal:Roman:size=12:antialias=True”
Window Styles
###########
Style “" UseDecor SteelBlueDecor
Style "” Font “Shadow=2 2:xft:Verdana:Bold:size=12:minspace=False:antialias=True”
Style “" HandleWidth 4
Style "” MwmBorder
Style “" Colorset 16
Style "” HilightColorset 4
Style “" BorderColorset 4
Style "” HilightBorderColorset 5
Style “" ResizeHintOverride
Style "” !StickyStippledTitle, !StickyStippledIconTitle
MiniIcons for specific applications
Style StickyIcon
Style xterm MiniIcon fvwm_icons/Monitor_16.xpm,
StickyIcon, Sticky, IconTitleColorset 16
Style xdvi MiniIcon fvwm_icons/mini.cat.xpm
Style Xpdf MiniIcon PDF_16.xpm
Style alsamixer MiniIcon fvwm_icons/mini.audiovol.xpm
Style gimp* MiniIcon 16x16/apps/gimp.png
Style OpenOffice.org MiniIcon
/usr/share/icons/hicolor/16x16/apps/openofficeorg23-writer.png
Style Untitled MiniIcon fvwm_icons/mini.penguin.xpm
Style ROX-Filer Sticky,
StickyIcon,
IconTitleColorset 16
Menu Colorsets
###########
Colorset 7 fg Black, Translucent White 75, hi Black, sh Black
Colorset 8 fg DarkRed, bg #e6e7d7, sh Black, hi #202070
MenuStyles
###########
MenuStyle * PopupDelayed, PopupDelay 300, PopdownImmediately
MenuStyle * PopupOffset -5 100
MenuStyle * TitleUnderlines2, SeparatorsLong
MenuStyle * AutomaticHotkeys
MenuStyle * BorderWidth 1
MenuStyle * PopupAsSubmenu, HoldSubmenus, SubmenusRight
MenuStyle * ItemFormat “%|%5.5i%1.3l%2.3>%|”
MenuStyle * VerticalItemSpacing 1 1, VerticalTitleSpacing 2 2
MenuStyle * MenuColorset 16
MenuStyle * Hilight3D
MenuStyle * Font “Shadow=2 4:xft:Verdana:Bold:size=12:antialias=True”
FvwmRootMenu
###########
DestroyMenu FvwmRootMenu
AddToMenu FvwmRootMenu
- “Programs%tux_16.png%” Popup FvwmProgramsMenu
- “Terminal%fvwm_icons/Monitor_16.xpm%” FvwmXTerm
- “Help%16x16/actions/help.png%” Popup FvwmManPagesMenu
- “Restart%HandPointingLeft_16.xpm%” Restart
- “Quit%skull_16.xpm%” Quit
Programs Menu
###########
DestroyMenu FvwmProgramsMenu
AddToMenu FvwmProgramsMenu
- “Emacs%emacs_16.png%” FvwmEmacs
- “Gimp%16x16/apps/gimp.png%” FvwmGimp
- “FireFox%firefox_16.png%” FvwmFireFox
- “Xscreensaver Settings%xscreensaver_16.xpm%” Exec exec
xscreensaver-demo &
FVWM Help Menu
###########
DestroyMenu FvwmManPagesMenu
AddToMenu FvwmManPagesMenu
- “fvwm” FvwmViewManPage fvwm
- “FvwmAnimate” FvwmViewManPage FvwmAnimate
- “FvwmAuto” FvwmViewManPage FvwmAuto
- “FvwmBacker” FvwmViewManPage FvwmBacker
- “FvwmBanner” FvwmViewManPage FvwmBanner
- “FvwmButtons” FvwmViewManPage FvwmButtons
- “FvwmCommand” FvwmViewManPage FvwmCommand
- “FvwmConsole” FvwmViewManPage FvwmConsole
- “FvwmConsoleC.pl” FvwmViewManPage FvwmConsoleC.pl
- “FvwmCpp” FvwmViewManPage FvwmCpp
- “FvwmDebug” FvwmViewManPage FvwmDebug
- “FvwmDragWell” FvwmViewManPage FvwmDragWell
- “FvwmEvent” FvwmViewManPage FvwmEvent
- “FvwmForm” FvwmViewManPage FvwmForm
- “FvwmGtk” FvwmViewManPage FvwmGtk
- “FvwmGtkDebug” FvwmViewManPage FvwmGtkDebug
- “FvwmIconBox” FvwmViewManPage FvwmIconBox
- “FvwmIconMan” FvwmViewManPage FvwmIconMan
- “FvwmIdent” FvwmViewManPage FvwmIdent
- “FvwmM4” FvwmViewManPage FvwmM4
- “FvwmPager” FvwmViewManPage FvwmPager
- “FvwmPerl” FvwmViewManPage FvwmPerl
- “FvwmProxy” FvwmViewManPage FvwmProxy
- “FvwmRearrange” FvwmViewManPage FvwmRearrange
- “FvwmSave” FvwmViewManPage FvwmSave
- “FvwmSaveDesk” FvwmViewManPage FvwmSaveDesk
- “FvwmScript” FvwmViewManPage FvwmScript
- “FvwmScroll” FvwmViewManPage FvwmScroll
- “FvwmTaskBar” FvwmViewManPage FvwmTaskBar
- “FvwmTheme” FvwmViewManPage FvwmTheme
- “FvwmWharf” FvwmViewManPage FvwmWharf
- “FvwmWinList” FvwmViewManPage FvwmWinList
- “FvwmWindowMenu” FvwmViewManPage FvwmWindowMenu
- “fvwm-config” FvwmViewManPage fvwm-config
- “fvwm-perllib” FvwmViewManPage fvwm-perllib
- “fvwm-root” FvwmViewManPage fvwm-root
- “fvwm-bug” FvwmViewManPage fvwm-bug
- “fvwm-convert-2.2” FvwmViewManPage fvwm-convert-2.2
- “fvwm-convert-2.4” FvwmViewManPage fvwm-convert-2.4
- “fvwm-menu-desktop” FvwmViewManPage fvwm-menu-desktop
- “fvwm-menu-directory” FvwmViewManPage fvwm-menu-directory
- “fvwm-menu-headlines” FvwmViewManPage fvwm-menu-headlines
- “fvwm-menu-xlock” FvwmViewManPage fvwm-menu-xlock
fvwm Window Operation Menu
###########
DestroyMenu FvwmWindowOpsMenu
AddToMenu FvwmWindowOpsMenu
- “Thumbnail M-F4” Thumbnail
- “Shade M-F7” WindowShade
- “Move M-F5” Move
- “Verticize” FvwmMaximize 0 100
- “Resize M-F6” Resize
- “Desktops” Popup FvwmDeskMenu
- “Kill?” Popup FvwmWindowKillMenu
- “Screenshot” Popup FvwmScreenshotMenu
- “Identify” Module FvwmIdent
DestroyMenu FvwmDeskMenu
AddToMenu FvwmDeskMenu
- “Other Page” MovetoPage wrapx +1p +0p
- “Move to “Desk”” MoveToDesk 0 0
- “Move to “Couch”” MoveToDesk 0 1
DestroyMenu FvwmWindowKillMenu
AddToMenu FvwmWindowKillMenu
- “Close” Close
- “Delete” Delete
- “Destroy” Destroy
DestroyMenu FvwmScreenshotMenu
AddToMenu FvwmScreenshotMenu
- “Window Screenshot” Pick (CirculateHit) FvwmWindowScreenshot
- “Screenshot” FvwmDesktopScreenshot 5
Module Colorsets
###########
Colorset 9 fg rgb:00/00/00, hi rgb:00/00/00, sh rgb:00/00/00, bg rgb:e9/e9/d9
Colorset 10 fg rgb:00/00/00, hi rgb:dd/00/00, sh rgb:dd/00/00, bg rgb:fb/fc/ec
FvwmIdent
###########
DestroyModuleConfig FvwmIdent: *
*FvwmIdent: Colorset 11
*FvwmIdent: Font “xft:Verdana:Normal:size=12:antialias=True”
Mark off the bottom pager area
#EwmhBaseStruts 0 0 0 0
#EWMHPlacementUseWorkingArea
FvwmPager
###########
Style “FvwmPager” NoTitle, !Handles,
!Borders, Sticky, WindowListSkip,
CirculateSkip, StaysOnBottom, FixedPosition, FixedSize, !Iconifiable
DestroyModuleConfig FvwmPager: *
*FvwmPager: Geometry 300x100+0+800
*FvwmPager: Colorset * 16
*FvwmPager: HilightColorset * 16
*FvwmPager: BalloonColorset * 11
*FvwmPager: WindowColorsets 11 14
*FvwmPager: Font “Shadow=2 4:xft:Verdana:Normal:pixelsize=16:minspace=True:antialias=True”
*FvwmPager: Balloons All
*FvwmPager: BalloonFont “xft:Verdana:Normal:pixelsize=14:minspace=True:antialias=True”
*FvwmPager: BallonYOffset +2
*FvwmPager: Window3dBorders
*FvwmPager: MiniIcons
*FvwmPager: UseSkipList
*FvwmPager: Rows 1
SteelBlueButtons
###########
Style “SteelBlueButtons” NoTitle, Handles, Borders, Sticky, WindowListSkip,
CirculateSkip, StaysOnBottom, FixedPosition, FixedSize, !Iconifiable
DestroyModuleConfig SteelBlueButtons: *
*SteelBlueButtons: ButtonGeometry 64x64
*SteelBlueButtons: Colorset 16
*SteelBlueButtons: Rows 1
*SteelBlueButtons: Frame 0
*SteelBlueButtons: PressColorset 11
*SteelBlueButtons: ActiveColorset 14
*SteelBlueButtons: Font “Shadow=2 4:xft:Verdana:Bold:pixelsize=16:minspace=True:antialias=True”
TODO: make the Root menu pop up above the button bar
*SteelBlueButtons: (Frame 0, Icon tux_48.png, ActionOnPress,
Action(Mouse 1) Menu FvwmRootMenu)
*SteelBlueButtons: (Frame 0, Icon 48x48/apps/kfm.png,
Action(Mouse 1) Exec exec rox $[HOME])
*SteelBlueButtons: (Frame 0, Icon emacs_48.png,
Action(Mouse 1) “FvwmEmacs”)
*SteelBlueButtons: (Frame 0, Icon firefox_48.png,
Action(Mouse 1) “FvwmFireFox”)
*SteelBlueButtons: (Frame 0, Icon 48x48/apps/konsole.png,
Action(Mouse 1) Exec exec xterm)
*SteelBlueButtons: (Frame 0, Icon /usr/share/icons/slick/48x48/apps/gimp.png,
Action(Mouse 1) “FvwmGimp”)
*SteelBlueButtons: (Frame 0, Icon 48x48/apps/kgpg.png,
Action(Mouse 1) “FvwmLockScreen”)
The Thumbnail function should look like this:
DestroyFunc Thumbnail
AddToFunc Thumbnail
- I Raise
- I SetEnv Icon-$[w.id] $[w.iconfile]
- I ThisWindow (!Shaded, Iconifiable, !Iconic) PipeRead
“xwd -silent -id $[w.id] | convert -scale 96 -frame 1x1
-mattecolor black -quality 0 xwd:-
png:$[FVWM_USERDIR]/icon.tmp.$[w.id].png
&& echo WindowStyle IconOverride,
Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png
|| echo Nop” - I Iconify
And then the Icon is restored with this function:
DestroyFunc DeThumbnail
AddToFunc DeThumbnail
- I PipeRead “echo WindowStyle Icon \$\[Icon-$[w.id]\]”
- I UnsetEnv Icon-$[w.id]
- I Exec rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png
Animations are controlled by this module
You could also use Frame, Lines, Flip, Turn, Twist, Random and None.
DestroyModuleConfig FvwmAnimate: *
*FvwmAnimate: Effect Turn
*FvwmAnimate: Width 3
*FvwmAnimate: Delay 10
*FvwmAnimate: Iterations 25
DestroyFunc ExitFunction
AddToFunc ExitFunction I Test (!ToRestart)
Exec rm -f $[FVWM_USERDIR]/icon.tmp.*
#Test (f $[w.iconfile])