I edited the fvwm2rc and now I’m ready to reveal the code. Here is the new image of my updated version of my desktop:
http://img.photobucket.com/albums/v129/kciru/screen2.png
The updates are:
- Improved menu
- Added FvwmPager on the bottom right
- Organized (!) fvwm2rc
And here is the code:
#################################
## Kcirick's first FVWM theme! ##
## Version 0.1.2 ##
## Email: kcirick@gmail.com ##
#################################
##################
## Desktop Size ##
##################
# I only have one and I only need one =P
DeskTopSize 1x1
DestroyFunc InitFunction
AddToFunc InitFunction
+ I Module FvwmPager
+ I Module FvwmButtons FvwmDock
+ I Exec exec fvwm-root -r /home/kcirick/backgrounds/155.png
+ I Exec exec torsmo &
DestroyFunc RestartFunction
AddToFunc RestartFunction
+ I Module FvwmPager
+ I Module FvwmButtons FvwmDock
+ I Exec exec torsmo &
ImagePath /usr/share/pixmaps:/home/kcirick/.fvwm
###################
## Global Styles ##
###################
ButtonStyle Reset
DestroyDecor DefaultDecor
AddToDecor DefaultDecor
+ ButtonStyle 1 MiniIcon
+ ButtonStyle 2 Active Pixmap clear/close-active.png
+ ButtonStyle 2 AllUp Pixmap clear/close-active.png
+ ButtonStyle 2 Inactive Pixmap clear/close-inactive.png
+ ButtonStyle 4 Active Pixmap clear/maximize-active.png
+ ButtonStyle 4 AllUp Pixmap clear/maximize-active.png
+ ButtonStyle 4 Inactive Pixmap clear/maximize-inactive.png
+ ButtonStyle 6 Active Pixmap clear/minimize-active.png
+ ButtonStyle 6 AllUp Pixmap clear/minimize-active.png
+ ButtonStyle 6 Inactive Pixmap clear/minimize-inactive.png
+ ButtonStyle All -- flat usetitlestyle
+ TitleStyle ActiveUp (Solid rgb:6b/89/9e -- Flat)
+ TitleStyle ActiveDown (Solid rgb:6b/89/9e -- Flat)
+ TitleStyle Inactive (Solid rgb:CC/CC/CC -- Flat)
+ TitleStyle LeftJustified Height 21 -- flat
Style "Fvwm*" NoTitle, NoHandles, Sticky, WindowListSkip, CirculateSkipIcon
Style "*" BorderWidth 5, Handlewidth 1
Style "*" CascadePlacement
Style "*" MWMFunctions,HintOverride,MWMBorder,MWMbuttons
Style "*" ClickToFocus
Style "*" UseDecor DefaultDecor
Style "*" DecorateTransient, NoPPosition, IconBox 0 0 0 0
####################
## Mouse bindings ##
####################
# First, for the mouse in the root window
# Button 1 gives the Utilities menu
# Button 2 gives the Window Ops menu
# Button 3 gives the WindowList (like TwmWindows)
#Button Context Modifi Function
Mouse 1 R A Menu Menu Nop
Mouse 2 R A Menu "Window Ops" Nop
Mouse 3 R A WindowList
# Now the title bar buttons
#Button Context Modif Function
Mouse 0 6 A Thumbnail
Mouse 0 4 A Maximize 100 92
Mouse 0 2 A Close
Mouse 0 1 A Nop
# Now the rest of the frame
# Button 1 in the corner pieces, with any modifiers, gives resize or raise
Mouse 1 F A Function "Resize-or-Raise"
# Button 1 in the title, sides, or icon, w/ any modifiers, gives move or raise
Mouse 1 TS A Function "Move-or-Raise"
# Button 1 in an icons gives move for a drag, de-iconify for a double-click,
# nothing for a single click
# Button 2 in an icon, w/ any modifiers, gives de-iconify
Mouse 1 I A Function "Move-or-Iconify"
Mouse 2 I A Iconify
# Button 2 in the corners, sides, or title-bar gives the window ops menu
Mouse 2 FST A Function "window_ops_func"
# Button 3 anywhere in the decoration (except the title-bar buttons)
# does a raise-lower
Mouse 3 TSIF A RaiseLower
# Button 3 in the window, with the Modifier-1 key (usually alt or diamond)
# gives Raise-Lower. Used to use control here, but that interferes with xterm
Mouse 3 W M RaiseLower
# ----------------------------------------------------------------------- #
## From fvwm faq: ##
## Q: Why do NumLock, CapsLock and ScrollLock interfere with ##
## ClickToFocus and/or my mouse bindings? ##
## ##
## A: Because they are treated as modifiers. You can use the ##
## IgnoreModifiers command to turn individual modifiers off for ##
## bindings. With XFree86 and fvwm version 2.4.0 or above, the ##
## right command is: ##
## IgnoreModifiers L25 ##
# ----------------------------------------------------------------------- #
IgnoreModifiers L25
###################
## Dock Settings ##
###################
Style FvwmDock Sticky, NoTitle, NoHandles, WindowListSkip, Borderwidth 0
Colorset 17 RootTransparent
#The width of the dock is 450 and the 2nd line centers the dock.
SetEnv MyDock.width 450
PipeRead "echo SetEnv offset.MyDock $$(( ($[vp.width]-$[MyDock.width]) / 2))"
DestroyModuleConfig FvwmDock: *
*FvwmDock: Rows 1
*FvwmDock: Frame 0
*FvwmDock: Geometry $[MyDock.width]x64+$[offset.MyDock]+704
*FvwmDock: BoxSize fixed
*FvwmDock: Columns 6
*FvwmDock: Colorset 17
*FvwmDock: (1x1, Icon "icons/terminal.png", Action(Mouse 1) 'Exec exec xterm -sb -ls -fg white -bg black')
*FvwmDock: (1x1, Icon "icons/firefox.png", Action(Mouse 1) `Exec exec firefox`)
*FvwmDock: (1x1, Icon "icons/gimp.png", Action(Mouse 1) `Exec exec gimp`)
*FvwmDock: (1x1, Icon "icons/abiword.png", Action(Mouse 1) `Exec exec abiword`)
*FvwmDock: (1x1, Icon "icons/bluefish.png", Action(Mouse 1) `Exec exec bluefish`)
*FvwmDock: (1x1, Icon "icons/gxine.png", Action(Mouse 1) 'Exec exec gxine')
####################
## Pager Settings ##
####################
Style "FvwmPager" NoTitle, Sticky, WindowListSkip, CirculateSkip, BorderWidth 1
*FvwmPager: SloppyFocus
*FvwmPager: MiniIcons
*FvwmPager: UseSkipList
*FvwmPager: Back black
*FvwmPager: Fore #7bc8e4
*FvwmPager: Geometry 133x100+891+668
*FvwmPager: Balloons
*FvwmPager: BalloonFore black
*FvwmPager: BalloonBack white
###############
## Functions ##
###############
AddToFunc Move-or-Raise "I" Raise
+ "M" Move
+ "D" Lower
AddToFunc Move-or-Raise2 "M" Raise
+ "M" Move
+ "D" Lower
AddToFunc Maximize-Func "M" Maximize 100 100
+ "C" Maximize 100 100
+ "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 Resize-or-Raise2 "M" Raise
+ "M" Resize
+ "D" Lower
AddToFunc PrintFunction "I" Raise
+ "I" Exec xdpr -id $w
#########################
## Thumbnails function ##
#########################
#The code is taken right from the FVWM Manpage
DestroyFunc Thumbnail
AddToFunc Thumbnail
+ I Raise
+ I ThisWindow (!Shaded, Iconifiable, !Iconic) PipeRead \
"xwd -silent -id $[w.id] | convert -scale 72 -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
DestroyFunc DeThumbnail
AddToFunc DeThumbnail
+ I Exec rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png
+ I DestroyWindowStyle
*FvwmEvent: deiconify DeThumbnail
AddToFunc StartFunction I Module FvwmEvent
AddToFunc StartFunction I Test (Restart) All (Iconic) \
Test (f $[FVWM_USERDIR]/icon.tmp.$[w.id].png) WindowStyle \
IconOverride, Icon $[FVWM_USERDIR]/icon.tmp.$[w.id].png
AddToFunc ExitFunction I Test (!ToRestart) \
Exec rm -f $[FVWM_USERDIR]/icon.tmp.*
###########
## Menus ##
###########
Colorset 0 fg white, bg #0681ba, fgsh black, Transparent buffer, tint #ffffff 25
MenuStyle * Hilight3DThin, PopupOffset +0 100, PopupDelay 1400
MenuStyle * MenuColorset 0
MenuStyle * Font "Shadow=1"
MenuStyle * BorderWidth 1, TitleUnderlines 0, SeparatorsLong, TrianglesSolid, Animation
MenuStyle * ItemFormat "%.2|%.5i%.5l%.5i%10.3>%2|"
MenuStyle * AutomaticHotKeys
AddToMenu Menu "Menu" Title
+ "Xterm" Exec exec xterm -sb -ls -fg white -bg black
+ "Firefox" Exec exec firefox
+ "Abiword" Exec exec abiword
+ "Gimp" Exec exec gimp
+ "Bluefish" Exec exec bluefish
+ "Gxine" Exec exec gxine
+ "" Nop
+ "Restart" Restart
+ "Refresh screen" Refresh
+ "" Nop
+ "Quit" Quit