FlyZhy.Org logo Projects - Configuring FVWM

Before
Screenshots
HowTo
Beginning
Global Settings
Colorsets
Functions
Bindings
Decor
Menu
Modules
After
References

I also have used GNOME, KDE or Xfce before, but I cannot bear the speed they start up and run because of my computer until I find FVWM. At last, I have FVWM only and always, if you did not know how to install FVWM, just follow my FvwmInstall. If you want to know how to have your real own Window Manager with FVWM, you are right to be here.

Before

Screenshots

Enter here to see more.

top

HowTo

All of my FVWM is configured by a single file which is located at $HOME/.fvwm/.fvwm2rc. Though by the use of the Read command, one could split the config file up into smaller config files. For here I just put everything into one config file. For sake of argument lets put everything in the $HOME/.fvwm directory, so for the first step create the $HOME/.fvwm directory and create an empty .fvwm2rc file. If you run fvwm, Don't be surprised if you think the default setup is quite ugly, cause many will agree with you, but that is a good place to start.

The images I used in my configuration can all be downloaded here. If you are interested in my configuration through the above screenshots, download that file, then untar it in your $HOME directory. It will create a .fvwm folder with all the icons and decors I use in my configuration. Next open the file $HOME/.fvwm/.fvwm2rc file with your favorite text editor. This file is parsed by FVWM when it starts up (or is restarted) and fvwm uses the info in here to set up the look and feel of your desktop1.

I organized all my FVWM stuffs according to FVWM Beginners Guide written by Jaimos F Skriletz, I really appreciate this guide, it gives me the entry when I was confused how to get the real world of FVWM. If you are a real newbie, just follow this guide as your beginning and you will get a not bad FVWM interface after a couple of hours, then make it by yourself with your own art to get the best FVWM you want.

Besides, FVWM MANPAGES would be a very best friend during the configuration. The man page is quite long, but once you have key words, it should be easy to search for how that is used in the configuration. All of the configurations I present I will skim or skip over and expect you to read FVWM Beginners Guide and use the man page to fill any any details I miss.

Beginning

At the top of my $HOME/.fvwm/.fvwm2rc file, I put the following stuff:

###########
#  ____________________________
# (   _________________________)
#  ) (__  _  _  _    _
# (   __)( \/ )( \/\/ )/\/\
#  ) (    \  /  \    //    \
# (___)    \/    \/\/(_/\/\_) 2.5.16
#
# My personal fvwm2rc file
#
#######################

Global Settings

###################
# Global Settings #
###################

top

Environment Variables

code:

#####
# Set Environment Variables
##########
SetEnv fvwm_home $[HOME]/.fvwm
SetEnv fvwm_img $[fvwm_home]/images
SetEnv fvwm_icon $[fvwm_home]/icons
SetEnv fvwm_script $[fvwm_home]/scripts
SetEnv fvwm_wallpaper $[fvwm_home]/wallpapers
SetEnv fvwm_tmp $[fvwm_home]/tmp
# Default programs
SetEnv fvwm_term /usr/local/bin/urxvt
SetEnv fvwm_webbrowser /usr/local/bin/firefox
SetEnv fvwm_media_player /usr/bin/xmms
SetEnv fvwm_video_player /usr/local/bin/mplayer
SetEnv fvwm_chat /usr/local/bin/gaim
SetEnv fvwm_qq /usr/local/bin/lumaqq
SetEnv fvwm_ftp /usr/bin/gftp
SetEnv fvwm_dict /usr/bin/stardict

up

Image Path

code:

The ";.png" followed by the second $[fvwm_icon] says that it will be able to use either .xpm files (the default) or .png files for the icons interchangeably.

#####
# Set the Image Path
##########
ImagePath $[fvwm_icon]:$[fvwm_icon];.png:+

up

Virtual Desktops

code:

I then set up 4 Virtual Desktops with 2x2 pages of each, namely Main, Work, Ruth and Game (numbered 0, 1, 2, and 3).

#####
# Virtual Desktops
##########
DesktopSize 2x2
DesktopName 0 Main
DesktopName 1 Work
DesktopName 2 Ruth
DesktopName 3 Game
EdgeScroll 100 100
EdgeResistance 150 150
EdgeThickness 1

up

Mouse and Focus Behavior

code:

#####
# Mouse and Focus Behavior
##########
ClickTime 350
#DoubleClickTime 500
MoveThreshold 3
Style * SloppyFocus, MouseFocusClickRaises
#
# set up 'usable' screen area:
# EwmhBaseStruts left right top bottom
EwmhBaseStruts 50 80 0 48
# Ignore the 'Num Lock'
IgnoreModifiers L25

up

Global Styles and Options

code:

#####
# Global Styles and Options
##########
Style * TileCascadePlacement, GrabFocusOff
Style * NoPPosition, ResizeOpaque
OpaqueMoveSize -1
Emulate MWM
HideGeometryWindow Never
SnapAttraction 5 SameType Screen
SnapGrid 3 3
XorValue 55555
Style * DecorateTransient, DontRaiseTransient
Style * DontLowerTransient, StackTransientParent
Style * GrabFocusTransientOff
Style * WindowShadeSteps 20, WindowShadeScrolls
SetAnimation  10  -.01 0 .01 .03 .08 .18 .3 .45 .6 .75 .85 .90 .94 .97 .99 1.0
Style * MwmDecor, SlipperyIcon
Style * IconBox screen w 15 15 -165 -15, IconGrid 3 3, IconFill right top
Style * Font "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
Style * IconFont "-*-bitstream vera sans-medium-r-normal-*-12-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-12-*-*-*-*-*-*-*"

up

Program Styles

code:

#####
# Program Styles
##########
Style "*"       Icon 48x48/x.png, MiniIcon mini/x.png
Style "XTerm"   Icon 48x48/xterm.xpm, NoActiveIconOverride, MiniIcon mini/xterm.xpm
Style "urxvt"   Icon 48x48/urxvt.xpm, NoActiveIconOverride, MiniIcon mini/urxvt.xpm
Style "gvim"    Icon 48x48/gvim.png, IconOverride, MiniIcon mini/gvim.png, EWMHMiniIconOverride
Style "firefox" Icon 48x48/firefox.png, MiniIcon mini/firefox.png, EWMHMiniIconOverride
Style "opera"   Icon 48x48/opera.png, MiniIcon mini/opera.png, EWMHMiniIconOverride
Style "gaim"    Icon 48x48/gaim.png, MiniIcon mini/gaim.png
Style "MPlayer" Icon 48x48/mplayer.png, MiniIcon mini/mplayer.png
Style "gFTP"    Icon 48x48/gftp.png, MiniIcon mini/gftp.png
Style "emacs"   Icon 48x48/emacs.png, MiniIcon mini/emacs.png
Style "lumaqq"  Icon 48x48/lumaqq.png, MiniIcon mini/lumaqq.png
Style "gv"      Icon 48x48/gv.png, MiniIcon mini/gv.png
Style "xv"      Icon 48x48/xv.xpm, MiniIcon mini/xv.xpm
Style "matlab"  Icon 48x48/matlab7.png, MiniIcon mini/matlab7.png
Style "adobe"   Icon 48x48/adobereader.png, MiniIcon mini/adobereader.png
Style "Xpdf"    Icon 48x48/xpdf.png, MiniIcon mini/xpdf.png
Style "fcitx"   Layer 7, NoTitle, HandleWidth 1, Sticky, WindowListSkip
Style "xmms"    WindowListSkip, CirculateSkip

up

Colorsets

#############
# Colorsets #
#############

#####
#
# Colorset Number fg #rgb bg #rgb hi #rgb sh #rgb
# fg - foreground
# bg - background
# hi - hilight
# sh - shade
# rgb - /etc/X11/rgb.txt
#
##########

top

Menu Colorsets

code:

#####
# Menu Colorsets
##########
Colorset 1 RootTransparent, fg Black, bg average, sh Black, \
  hi #202070, Tint White 60, bgTint White 60
Colorset 2 fg Purple, bg #e6e7d7, sh Black, hi #202070

up

Modules Colorsets

code:

#####
# Module Colorsets
##########
Colorset 3 fg rgb:00/00/00, hi rgb:00/00/00, sh rgb:00/00/00, bg rgb:e9/e9/d9
Colorset 4 fg rgb:00/00/00, hi rgb:dd/00/00, sh rgb:dd/00/00, bg rgb:fb/fc/ec

up

Transparent Colorsets

code:

#####
# Transparent Colorsets
##########
Colorset 5 RootTransparent, fg black, bg average, \
       Tint cyan 15, bgTint cyan 15  # tint is optional
Colorset 6 RootTransparent, fg black, bg average, \
       Tint red  15, bgTint red  15  # tint is optional
Colorset 7 RootTransparent, fg rgb:ff/ff/c4, bg average, \
       Tint black 20, bgTint black 20

up

Functions

#####
#
# 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')
# Usage:
# FuncName $0 $1 $2 $3 $4
#
##########

Basic Functions

code:

#####
# Basic Functions
##########
DestroyFunc     FvwmDeleteOrDestroy
AddToFunc       FvwmDeleteOrDestroy
+ H Nop
+ M Nop
+ C Delete
+ D Destroy
#
DestroyFunc     FvwmIconifyOrShade
AddToFunc       FvwmIconifyOrShade
+ C Iconify
+ D WindowShade
#
DestroyFunc     FvwmMaximize
AddToFunc       FvwmMaximize
+ H Nop
+ M Nop
+ C Maximize $0 $1
#
DestroyFunc     FvwmMoveOrIconify
AddToFunc       FvwmMoveOrIconify
+ M Move
+ D Iconify
#
DestroyFunc     FvwmWindowShade
AddToFunc       FvwmWindowShade
+ D WindowShade $0

up

Program Launching Functions

code:

#####
# Program Launching Functions
##########
DestroyFunc     FvwmRox
AddToFunc       FvwmRox
+ I Exec exec rox
#
DestroyFunc     FvwmXTerm
AddToFunc       FvwmXTerm
+ I Exec exec xterm
#
DestroyFunc     FvwmUrxvt
AddToFunc       FvwmUrxvt
+ I Exec exec urxvt -geometry 80x10
#
DestroyFunc     FvwmGVim
AddToFunc       FvwmGVim
+ I Exec exec gvim
#
DestroyFunc     FvwmEmacs
AddToFunc       FvwmEmacs
+ I Exec exec emacs
#
DestroyFunc     FvwmMatlab
AddToFunc       FvwmMatlab
+ I Exec exec xterm -e matlab
#
DestroyFunc     FvwmXV
AddToFunc       FvwmXV
+ I Exec exec xv
#
DestroyFunc     FvwmGimp
AddToFunc       FvwmGimp
+ I Exec exec gimp
#
DestroyFunc     FvwmStardict
AddToFunc       FvwmStardict
+ I Exec exec stardict
#
DestroyFunc     FvwmOffice
AddToFunc       FvwmOffice
+ I Exec exec soffice
#
DestroyFunc     FvwmFirefox
AddToFunc       FvwmFirefox
+ I Exec exec firefox
#
DestroyFunc     FvwmOpera
AddToFunc       FvwmOpera
+ I Exec exec opera
#
DestroyFunc     FvwmQterm
AddToFunc       FvwmQterm
+ I Exec exec qterm
#
DestroyFunc     FvwmGaim
AddToFunc       FvwmGaim
+ I Exec exec gaim
#
DestroyFunc     FvwmLumaQQ
AddToFunc       FvwmLumaQQ
+ I Exec exec lumaqq
#
DestroyFunc     FvwmSkype
AddToFunc       FvwmSkype
+ I Exec exec skype
#
DestroyFunc     FvwmXmms
AddToFunc       FvwmXmms
+ I Exec exec xmms
#
DestroyFunc     FvwmGMPlayer
AddToFunc       FvwmGMPlayer
+ I Exec exec gmplayer -vo x11
#
DestroyFunc     FvwmGftp
AddToFunc       FvwmGftp
+ I Exec exec gftp
#
DestroyFunc     FvwmGV
AddToFunc       FvwmGV
+ I Exec exec gv
#
DestroyFunc     FvwmXpdf
AddToFunc       FvwmXpdf
+ I Exec exec xpdf
#
DestroyFunc     FvwmAdobeReader
AddToFunc       FvwmAdobeReader
+ I Exec exec acroread
#
DestroyFunc     FvwmTorsmo
AddToFunc       FvwmTorsmo
+ I Exec exec torsmo
#
DestroyFunc     FvwmLlk
AddToFunc       FvwmLlk
+ I Exec exec llk_linux
#
DestroyFunc     FvwmMonsterz
AddToFunc       FvwmMonsterz
+ I Exec exec monsterz
#
DestroyFunc     FvwmViewManPage
AddToFunc       FvwmViewManPage
+ I Exec exec xterm -fg White -bg DarkBlue -g 80x40 -fn 7x14 -fb 7x14bold \
  -n "Manual Page - $0" -T "Manual Page - $0" -e man "$0"

up

Screenshot Functions

code:

#####
# Screenshot Functions (uses ImageMagick)
##########
DestroyFunc     FvwmWindowScreenshot
AddToFunc       FvwmWindowScreenshot
+ I ThisWindow (!Shaded !Iconic Iconifiable) \
  Exec import -window $[w.id] -quality 100 -silent \
  "$[fvwm_home]/screenshot/screenshot-`date +%F[%R]`.$[w.id].png"
#
DestroyFunc     FvwmDesktopScreenshot
AddToFunc       FvwmDesktopScreenshot
+ I Exec sleep $0; import -window root -quality 100 -silent \
  "$[fvwm_home]/screenshot/screenshot-`date +%F[%R]`.png"
#
#####
# Xroach Invasion
##########
DestroyFunc     XRoachInvasion
AddToFunc       XRoachInvasion
+ I Exec exec xroach -roaches 5 -rc Cyan -speed 17
+ I Exec exec xroach -roaches 3 -rc Red -speed 15
+ I Exec exec xroach -roaches 7 -rc Green -speed 10
+ I Exec exec xroach -roaches 3 -rc Blue -speed 20
+ I Exec exec xroach -roaches 1 -rc Black -speed 30
+ I Exec exec xroach -roaches 1 -rc White -speed 40
#
DestroyFunc     XRoachExterminate
AddToFunc       XRoachExterminate
+ I Exec killall xroach

up

Advanced Functions

code:

#####
# Advanced Functions
##########
DestroyFunc BuildWallPaperMenu
AddToFunc   BuildWallPaperMenu
+ I Exec rm $[fvwm_icon]/wallpaper/*.png
+ I PipeRead 'for i in $[fvwm_img]/wallpaper/*.png; \
  do convert -scale 64 $i \
  "$[fvwm_icon]/wallpaper/`basename $i`"; done && echo Nop'
+ I Exec rm $[fvwm_home]/WallpaperMenu
+ I Exec echo "DestroyMenu FvwmWallpaperMenu" > \
  $[fvwm_home]/WallpaperMenu
+ I Exec echo "AddToMenu FvwmWallpaperMenu \"Wallpapers\" Title" >> \
  $[fvwm_home]/WallpaperMenu
+ I PipeRead 'for i in $[fvwm_img]/wallpaper/*.png; \
  do echo "AddToMenu FvwmWallpaperMenu \
  \"`basename $i`%wallpaper/`basename $i`%\" \
  FvwmChangeBackground \"`basename $i`\"" \
  >> $[fvwm_home]/WallpaperMenu; done && echo Nop'
+ I Read $[fvwm_home]/WallpaperMenu
#
DestroyFunc FvwmChangeBackground
AddToFunc   FvwmChangeBackground
+ I Exec fvwm-root --retain-pixmap $[fvwm_img]/wallpaper/$0
+ I Exec echo "fvwm-root --retain-pixmap \
  $[fvwm_img]/wallpaper/$0" > $[fvwm_home]/cfg/background.cfg
#
DestroyFunc InitWallpaper
AddToFunc   InitWallpaper
+ I Exec source $[fvwm_home]/cfg/background.cfg
#
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 $$(($[w.width]/5)) -frame 1x1 \
    -mattecolor black -quality 0 xwd:- png:$[fvwm_tmp]/icon.tmp.$[w.id].png \
    && echo Nop"
+ I TestRc (Match) Test (f $[fvwm_icon]/$[w.iconfile], f $[fvwm_tmp]/icon.tmp.$[w.id].png) \
    PipeRead "composite -geometry +2+4 \
    $[fvwm_icon]/$[w.iconfile] $[fvwm_tmp]/icon.tmp.$[w.id].png \
    $[fvwm_tmp]/icon.tmp.$[w.id].png && \
    echo WindowStyle IconOverride, Icon $[fvwm_tmp]/icon.tmp.$[w.id].png || echo Nop"
+ I TestRc (NoMatch) WindowStyle IconOverride, Icon $[fvwm_tmp]/icon.tmp.$[w.id].png
+ I Iconify
#
DestroyFunc DeThumbnail
AddToFunc DeThumbnail
+ I PipeRead "echo WindowStyle Icon \\$\\[Icon-$[w.id]\\]"
+ I UnsetEnv Icon-$[w.id]
+ I Exec rm -f $[fvwm_tmp]/icon.tmp.$[w.id].png
#
#####
# FvwmEvent
##########
DestroyModuleConfig FvwmEvent: *
*FvwmEvent: deiconify DeThumbnail
#
DestroyFunc ReThumbnail
AddToFunc   ReThumbnail
+ I Iconify
+ I Thumbnail
#
#####
# FvwmExpose
###########
DestroyFunc FvwmExpose
AddToFunc FvwmExpose
+ I AddToMenu FvwmExposeMenu "e x p o s e" Title
+ I + DynamicPopDownAction DestroyMenu FvwmExposeMenu
+ I All (!Iconic !Shaded AcceptsFocus)\
    PipeRead "echo Raise; \
        xwd -silent -id $[w.id] | convert -scale $$(($[w.width]/10)) -quality 0 xwd:- \
        png:$[fvwm_home]/tmp/icon.exp.$[w.id].png \
    && echo AddToMenu FvwmExposeMenu \
    %$[fvwm_home]/tmp/icon.exp.$[w.id].png%\\\'\"$[w.name]\"\\\' WindowID $[w.id] WarpToWindow 50 50 \
        && echo AddToMenu FvwmExposeMenu \\\"\\\" Nop \
    || Nop"
+ I Popup FvwmExposeMenu
+ I Exec exec rm -f $[fvwm_home]/tmp/icon.exp.*

up

Startup Functions

code:

#####
# Startup Functions
##########
DestroyFunc     StartFunction
AddToFunc       StartFunction
+ I Module FvwmTaskBar
+ I Module FvwmPager 0 3
+ I Module FvwmButtons MyButtons
#+ I Module FvwmEvent
#
DestroyFunc     InitFunction
AddToFunc       InitFunction
+ I Exec exec xscreensaver -no-splash
#+ I Exec exec fvwm-root -r $[fvwm_wallpager]/background.png
#+ I Exec exec habak -hi $[fvwm_wallpaper]/background.png -hI int -mp 100,40 $[fvwm_wallpaper]/lover.jpg -mf $[HOME]/.fonts/VeraBd.ttf -ht "LOVE" -mp 100,-80 -hi -ht "LOVE" -mp 150,150 -mf $[HOME]/.fonts/VENETO__.TTF -mc 240,240,100,255 -ht "Happy New Year, Ruth!"
+ I Exec exec fvwm-root -r $[fvwm_wallpaper]/background.png
+ I FvwmUrxvt
+ I FvwmTorsmo
#
DestroyFunc     RestartFunction
AddToFunc       RestartFunction
#+ I All(Iconic) ReThumbnail
+ I Nop

up

Bindings

############
# Bindings #
############
#
#####
#
# Key Keyname Context Modifiers Function
# Mouse Button Context Modifiers Function
# Button #
# 1 --- click the left mouse button
# 2 --- click the middle mouse button
# 3 --- click the right mouse button
# 4 --- scroll up
# 5 --- scroll down
# Context #
# R - the root window  I - Icon  F - frame corners  S - frame sides,
# T - title bar  W - application window  0-9 - buttons
#  ___________________________________
# |                                   |
# |   R                       R       |
# |                                   |
# |     F___________________ F        |
# |     |13579 T  T  T 08642|         |
# |     |-------------------|         |
# |    S|                   |S        |
# |     |   W          W    |         |
# |    S|                   |S        |
# |     |                   |         |
# | R   |                   |   R     |
# |     |                   |         |
# |    S|                   |S        |
# |     |   W          W    |         |
# |    S|                   |S        |
# |     |                   |         |
# |    F|___________________|F        |
# |   R       S       S        R      |
# |               R                   |
# |___________________________________|
# Modifiers #
# C - Ctrl  M - Meta(Alt)  S - Shift  A - Any  N - None
#
##########

top

Basic Bindings

code:

#####
# Basic Bindings
##########
# Ctrl+F1
Key F1 A C Menu MenuFvwmRoot
# Alt+Tab
Key Tab A M WindowList Root c c NoDeskSort, SelectOnRelease Meta_L
# Launches a $[fvwm_term] when the left command key (windows key) his hit
Key Super_L A A $[fvwm_term]
# Alt+F3
Key F3 A A Module FvwmConsole -terminal xterm -geometry 45x5-0+0 -bg gold -fg midnightblue -fn "-adobe-courier-medium-r-*-*-14-*-*-*-*-*-*-*"
# Ctrl+F5
Key F5 A C Exec exec import -window root -quality 100 -silent "$[HOME]/screenshot-`date +%F[%R]`.png"
# Ctrl+F11
Key F11 A C Exec xscreensaver-command -lock
# Alt+F1|F2
Key F1 A M GotoDesk -1
Key F2 A M GotoDesk 1
# press arrow + Shift anywhere, and scroll by 1 page
Key Left  A S Scroll -100 0
Key Right A S Scroll +100 +0
Key Up    A S Scroll +0 -100
Key Down  A S Scroll +0 +100
#
Mouse 2 R M FvwmExpose
Mouse 1 R A Menu FvwmRootMenu
Mouse 2 R A Menu FvwmProgramsMenu
Mouse 2 R C Menu FvwmUtilitiesMenu
Mouse 2 R M Menu FvwmGamesMenu
Mouse 3 R A Menu FvwmWindowOpsMenu
Mouse 1 1 A FvwmDeleteOrDestroy
Mouse 1 3 A FvwmIconifyOrShade
Mouse 1 5 A FvwmMaximize 100 100
Mouse 2 5 A FvwmMaximize 0 100
Mouse 3 5 A FvwmMaximize 100 0
Mouse 1 W M FvwmMoveOrIconify
Mouse 1 I A FvwmMoveOrIconify
Mouse 4 T A FvwmWindowShade True
Mouse 5 T A FvwmWindowShade False

up

Decor

#########
# Decor #
#########

top

Window Decor

code:

#####
# Window Decor
##########
DestroyDecor MyDecor
AddToDecor   MyDecor
+ TitleStyle LeftJustified Height 18
+ ButtonStyle 1 ActiveUp Vector 4 30x30@3 60x60@3 60x30@4 30x60@3 -- Flat
+ ButtonStyle 1 ActiveDown Vector 4 30x30@3 60x60@3 60x30@4 30x60@3 -- Flat
+ ButtonStyle 1 Inactive Vector 4 30x30@3 60x60@3 60x30@4 30x60@3 -- Flat
+ ButtonStyle 3 ActiveUp Vector 5 30x60@3 60x60@3 60x50@3 30x50@3 30x60@3 -- Flat
+ ButtonStyle 3 ActiveDown Vector 5 30x60@3 60x60@3 60x50@3 30x50@3 30x60@3 -- Flat
+ ButtonStyle 3 Inactive Vector 5 30x60@3 60x60@3 60x50@3 30x50@3 30x60@3 -- Flat
+ ButtonStyle 5 ActiveUp Vector 7 30x30@3 30x60@3 60x60@3 60x30@3 30x30@3 30x35@3 60x35@3 -- Flat
+ ButtonStyle 5 ActiveDown Vector 7 30x30@3 30x60@3 60x60@3 60x30@3 30x30@3 30x35@3 60x35@3 -- Flat
+ ButtonStyle 5 Inactive Vector 7 30x30@3 30x60@3 60x60@3 60x30@3 30x30@3 30x35@3 60x35@3 -- Flat
+ TitleStyle -- Flat
+ BorderStyle Simple -- NoInset Flat
+ ButtonStyle All -- UseTitleStyle

up

Ukkosta Decor

code:

#####
# Ukkosta Decor
##########
DestroyDecor UkkostaDecor
AddToDecor   UkkostaDecor
+ TitleStyle LeftJustified Height 24
+ ButtonStyle 1 \
        ActiveUp     (Pixmap $[fvwm_img]/button/close-activeup.png -- Flat) \
        ActiveDown   (Pixmap $[fvwm_img]/button/close-activedown.png -- Flat) \
        Inactive     (Pixmap $[fvwm_img]/button/inactive.png -- Flat)
+ ButtonStyle 3 \
        ActiveUp     (Pixmap $[fvwm_img]/button/iconify-activeup.png -- Flat) \
        ActiveDown   (Pixmap $[fvwm_img]/button/iconify-activedown.png -- Flat) \
        Inactive     (Pixmap $[fvwm_img]/button/inactive.png -- Flat)
+ ButtonStyle 5 \
        ActiveUp     (Pixmap $[fvwm_img]/button/maximize-activeup.png -- Flat) \
        ActiveDown   (Pixmap $[fvwm_img]/button/maximize-activedown.png -- Flat) \
        Inactive     (Pixmap $[fvwm_img]/button/inactive.png -- Flat)
+ ButtonStyle 1 - Clear
+ ButtonStyle 3 - Clear MwmDecorMin
+ ButtonStyle 5 - Clear MwmDecorMax
+ TitleStyle AllActive MultiPixmap \
        Main AdjustedPixmap $[fvwm_img]/decor/title-main-active.xpm, \
        LeftEnd AdjustedPixmap $[fvwm_img]/decor/title-leftend-active.xpm, \
        RightEnd AdjustedPixmap $[fvwm_img]/decor/title-rightend-active.xpm, \
        UnderText AdjustedPixmap $[fvwm_img]/decor/title-undertext-active.xpm, \
        LeftOfText AdjustedPixmap $[fvwm_img]/decor/title-leftoftext-active.xpm, \
        RightOfext AdjustedPixmap $[fvwm_img]/decor/title-rightoftext-active.xpm
+ TitleStyle AllInactive MultiPixmap \
        Main AdjustedPixmap $[fvwm_img]/decor/title-main-inactive.xpm, \
        LeftEnd AdjustedPixmap $[fvwm_img]/decor/title-leftend-inactive.xpm, \
        RightEnd AdjustedPixmap $[fvwm_img]/decor/title-rightend-inactive.xpm, \
        UnderText AdjustedPixmap $[fvwm_img]/decor/title-undertext-inactive.xpm, \
        LeftOfText AdjustedPixmap $[fvwm_img]/decor/title-leftoftext-inactive.xpm, \
        RightOfext AdjustedPixmap $[fvwm_img]/decor/title-rightoftext-inactive.xpm
# Transparent
+ TitleStyle AllInactive Colorset 6 -- flat
+ TitleStyle AllActive   Colorset 5 -- flat
+ TitleStyle -- Flat
+ BorderStyle Simple -- NoInset Flat
# Transparent
+ BorderStyle Inactive Colorset 6 -- flat
+ BorderStyle Active   Colorset 5 -- flat
+ ButtonStyle All -- UseTitleStyle

up

Window Styles

code:

#####
# Window Styles
##########
#Style "*" UseDecor MyDecor
Style "*" UseDecor UkkostaDecor
Style "*" BorderWidth 1, HandleWidth 1
Style "*" MWMBorder, FirmBorder
# Transparent
Style * Colorset 5, HilightColorset 6  # to use fg and bg

up

Menu

Menu Styles

code:

#####
# MenuStyles
##########
MenuStyle * PopupDelayed, PopupDelay 300, PopdownImmediately
MenuStyle * PopupOffset -5 100, TitleWarpOff
MenuStyle * TitleUnderlines2, SeparatorsLong, TrianglesSolid
MenuStyle * AnimationOff, AutomaticHotkeysOff
MenuStyle * BorderWidth 2
MenuStyle * PopupAsSubmenu, HoldSubmenus, SubmenusRight
MenuStyle * ItemFormat "%|%5.5i%1.3l%2.3>%|"
MenuStyle * VerticalItemSpacing 1 1, VerticalTitleSpacing 2 2
MenuStyle * MenuFace TiledPixmap menu/menu.png
MenuStyle * ActiveFore, Hilight3DOff
MenuStyle * ActiveColorset 2
MenuStyle * Font "-*-bitstream vera sans-bold-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"

up

Fvwm Root Menu

code:

#####
# FvwmRootMenu
##########
DestroyMenu FvwmRootMenu
AddToMenu   FvwmRootMenu "Root Menu" Title
+ "Console%menu/urxvt.xpm%"  FvwmUrxvt
+ "Rox%menu/rox.png%"  FvwmRox
+ "FVWM Console%menu/terminal.png%"  Module FvwmConsole
+ "" Nop
+ "Programs%menu/programs.xpm%"  Popup FvwmProgramsMenu
+ "Utilities%menu/utils.xpm%"  Popup FvwmUtilitiesMenu
+ "Games%menu/games.xpm%"  Popup FvwmGamesMenu
+ "" Nop
+ "Refresh%menu/refresh.xpm%" Refresh
+ "Recapture%menu/recapture.xpm%" Recapture
+ "" Nop
+ "Help%menu/help.xpm%"  Popup FvwmManPagesMenu
+ "Restart FVWM%menu/restart.png%"  Restart
+ "Quit FVWM%menu/quit.png%"  Quit

up

Programs Menu

code:

#####
# Programs Menu
##########
DestroyMenu FvwmProgramsMenu
AddToMenu   FvwmProgramsMenu "Programs" Title
+ "XTerm%menu/xterm.xpm%" FvwmXTerm
+ "GVim%menu/vim.png%"  FvwmGVim
+ "Emacs%menu/emacs.png%" FvwmEmacs
+ "Matlab%menu/matlab7.png%" FvwmMatlab
+ "Office%menu/office.png%" FvwmOffice
+ "Stardict%menu/stardict.png%" FvwmStardict
+ "FireFox%menu/firefox.png%"  FvwmFireFox
+ "Opera%menu/opera.png%"  FvwmOpera
+ "gFTP%menu/gftp.png%"  FvwmGftp
+ "GV%menu/gv.png%"  FvwmGV
+ "AdobeReader%menu/adobereader.png%" FvwmAdobeReader
+ "Xpdf%menu/xpdf.png%"  FvwmXpdf
+ "Xv%menu/xv.xpm%"     FvwmXV
+ "Gimp%menu/gimp.png%"  FvwmGimp
+ "XRoach-Invasion%menu/xroach.png%"  XRoachInvasion
+ "XRoach-Exterminate%menu/xroach.png%"  XRoachExterminate

up

Utilities Menu

code:

#####
# Utilities Menu
##########
DestroyMenu FvwmUtilitiesMenu
AddToMenu   FvwmUtilitiesMenu "Utilities" Title
+ "Top%menu/top.xpm%" Exec exec xterm -fa Courier -T Top -n Top -e top
+ "Calculator%menu/xcalc.xpm%" Exec exec xcalc
+ "Xman%menu/xman.xpm%" Exec exec xman
+ "Xmag%menu/xmag.xpm%" Exec exec xmag
+ "" Nop
+ "Reset X defaults%menu/resetx.png%" Exec xrdb -load $[HOME]/.Xdefaults
+ "screenshot%menu/display.png%" Exec import -window root -quality 100 -silent "$[HOME]/screenshot-`date +%F[%R]`.png"

up

Games Menu

code:

#####
# Games Menu
##########
DestroyMenu FvwmGamesMenu
AddToMenu   FvwmGamesMenu "Games" Title
+ "Xmms%menu/xmms.png%"  FvwmXmms
+ "GMPlayer%menu/gmplayer.png%" FvwmGMPlayer
+ "Gaim%menu/gaim.png%"  FvwmGaim
+ "LumaQQ%menu/lumaqq.png%"  FvwmLumaQQ
+ "Skype%menu/skype.png%"  FvwmSkype
+ "LLKan%menu/llk_linux.png%" FvwmLlk
+ "Monsterz%menu/monsterz.png%" FvwmMonsterz

up

FVWM Help Menu

code:

#####
# FVWM Help Menu
###########
DestroyMenu FvwmManPagesMenu
AddToMenu   FvwmManPagesMenu "FVWM Man Pages" Title
+ "%menu/help.png%fvwm"                FvwmViewManPage fvwm
+ "%menu/help.png%FvwmAnimate"         FvwmViewManPage FvwmAnimate
+ "%menu/help.png%FvwmAuto"            FvwmViewManPage FvwmAuto
+ "%menu/help.png%FvwmBacker"          FvwmViewManPage FvwmBacker
+ "%menu/help.png%FvwmBanner"          FvwmViewManPage FvwmBanner
+ "%menu/help.png%FvwmButtons"         FvwmViewManPage FvwmButtons
+ "%menu/help.png%FvwmCommand"         FvwmViewManPage FvwmCommand
+ "%menu/help.png%FvwmConsole"         FvwmViewManPage FvwmConsole
+ "%menu/help.png%FvwmConsoleC.pl"     FvwmViewManPage FvwmConsoleC.pl
+ "%menu/help.png%FvwmCpp"             FvwmViewManPage FvwmCpp
+ "%menu/help.png%FvwmDebug"           FvwmViewManPage FvwmDebug
+ "%menu/help.png%FvwmDragWell"        FvwmViewManPage FvwmDragWell
+ "%menu/help.png%FvwmEvent"           FvwmViewManPage FvwmEvent
+ "%menu/help.png%FvwmForm"            FvwmViewManPage FvwmForm
+ "%menu/help.png%FvwmGtk"             FvwmViewManPage FvwmGtk
+ "%menu/help.png%FvwmGtkDebug"        FvwmViewManPage FvwmGtkDebug
+ "%menu/help.png%FvwmIconBox"         FvwmViewManPage FvwmIconBox
+ "%menu/help.png%FvwmIconMan"         FvwmViewManPage FvwmIconMan
+ "%menu/help.png%FvwmIdent"           FvwmViewManPage FvwmIdent
+ "%menu/help.png%FvwmM4"              FvwmViewManPage FvwmM4
+ "%menu/help.png%FvwmPager"           FvwmViewManPage FvwmPager
+ "%menu/help.png%FvwmPerl"            FvwmViewManPage FvwmPerl
+ "%menu/help.png%FvwmProxy"           FvwmViewManPage FvwmProxy
+ "%menu/help.png%FvwmRearrange"       FvwmViewManPage FvwmRearrange
+ "%menu/help.png%FvwmSave"            FvwmViewManPage FvwmSave
+ "%menu/help.png%FvwmSaveDesk"        FvwmViewManPage FvwmSaveDesk
+ "%menu/help.png%FvwmScript"          FvwmViewManPage FvwmScript
+ "%menu/help.png%FvwmScroll"          FvwmViewManPage FvwmScroll
+ "%menu/help.png%FvwmTaskBar"         FvwmViewManPage FvwmTaskBar
+ "%menu/help.png%FvwmTheme"           FvwmViewManPage FvwmTheme
+ "%menu/help.png%FvwmWharf"           FvwmViewManPage FvwmWharf
+ "%menu/help.png%FvwmWinList"         FvwmViewManPage FvwmWinList
+ "%menu/help.png%FvwmWindowMenu"      FvwmViewManPage FvwmWindowMenu
+ "" Nop
+ "%menu/help.png%fvwm-config"         FvwmViewManPage fvwm-config
+ "%menu/help.png%fvwm-perllib"        FvwmViewManPage fvwm-perllib
+ "%menu/help.png%fvwm-root"           FvwmViewManPage fvwm-root
+ "%menu/help.png%fvwm-bug"            FvwmViewManPage fvwm-bug
+ "%menu/help.png%fvwm-convert-2.2"    FvwmViewManPage fvwm-convert-2.2
+ "%menu/help.png%fvwm-convert-2.4"    FvwmViewManPage fvwm-convert-2.4
+ "" Nop
+ "%menu/help.png%fvwm-menu-desktop"   FvwmViewManPage fvwm-menu-desktop
+ "%menu/help.png%fvwm-menu-directory" FvwmViewManPage fvwm-menu-directory
+ "%menu/help.png%fvwm-menu-headlines" FvwmViewManPage fvwm-menu-headlines
+ "%menu/help.png%fvwm-menu-xlock"     FvwmViewManPage fvwm-menu-xlock

up

FVWM Window Operation Menu

code:

#####
# FVWM Window Operation Menu
###########
DestroyMenu FvwmWindowOpsMenu
AddToMenu   FvwmWindowOpsMenu "Window Operations" Title
+ "Move%menu/window-move.xpm%"  Move
+ "Resize%menu/window-resize.xpm%"  Resize
+ "(De)Iconify%menu/window-iconify.xpm%"  Iconify
+ "(Un)Maximize%menu/window-maximize.xpm%"  Maximize
+ "(Un)Shade%menu/window-shade.xpm%"  WindowShade
+ "(Un)Stick%menu/window-stick.xpm%"  Stick
+ "" Nop
+ "Close%menu/window-close.xpm%"  Close
+ "Delete%menu/window-delete.xpm%"  Delete
+ "Destroy%menu/window-destroy.xpm%"  Destroy
+ "" Nop
+ "StaysOnTop%menu/window-raise.xpm%"  Pick (CirculateHit) Layer 0 6
+ "Layer +1%menu/window-raise.xpm%"  Pick (CirculateHit) Layer +1
+ "StaysPut%menu/window.xpm%"  Pick (CirculateHit) Layer 0 4
+ "Layer -1%menu/window-lower.xpm%"  Pick (CirculateHit) Layer -1
+ "StaysOnBottom%menu/window-lower.xpm%"  Pick (CirculateHit) Layer 0 2
+ "" Nop
+ "%menu/window.xpm%Window Screenshot"  Pick (CirculateHit) FvwmWindowScreenshot
+ "%menu/display.xpm%Screenshot" FvwmDesktopScreenshot 5
+ "" Nop
+ "Identify%menu/window-identify.xpm%"  Module FvwmIdent

up

Modules

FvwmIdent

code:

#####
# FvwmIdent
###########
DestroyModuleConfig FvwmIdent: *
# Transparent
*FvwmIdent: Colorset 7
*FvwmIdent: Font "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"

up

FvwmTaskBar

code:

#####
# FvwmTaskBar
###########
Style "FvwmTaskBar" NoTitle, !Handles, !Borders, Sticky, WindowListSkip, \
  CirculateSkip, StaysOnBottom, FixedPosition, FixedSize, !Iconifiable
#
DestroyModuleConfig FvwmTaskBar: *
*FvwmTaskBar: Geometry +0-0
*FvwmTaskBar: Rows 2
*FvwmTaskBar: Font "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
*FvwmTaskBar: SelFont "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
*FvwmTaskBar: StatusFont "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
# Transparent
*FvwmTaskBar: Colorset 7
*FvwmTaskBar: IconColorset 4
*FvwmTaskBar: FocusColorset 3
*FvwmTaskBar: TipsColorset 3
*FvwmTaskBar: UseSkipList
*FvwmTaskBar: UseIconNames
*FvwmTaskBar: ShowTips
*FvwmTaskBar: StartName LOVE
*FvwmTaskBar: StartMenu FvwmRootMenu
*FvwmTaskBar: ClockFormat %R %m/%d
*FvwmTaskBar: Button Title Urxvt, Icon mini/urxvt.xpm, Action (Mouse 1) FvwmUrxvt
*FvwmTaskBar: Action Click3 Menu FvwmWindowOpsMenu
*FvwmTaskBar: StartIcon mini/start.png

up

FvwmPager

code:

#####
# FvwmPager
###########
Style "FvwmPager" NoTitle, !Handles, !Borders, Sticky, WindowListSkip, \
  CirculateSkip, StaysOnBottom, FixedPosition, FixedSize, !Iconifiable
#
DestroyModuleConfig FvwmPager: *
*FvwmPager: Geometry 80x352-4+0
# Transparent
*FvwmPager: Colorset * 7
*FvwmPager: HilightColorset * 6
*FvwmPager: WindowColorsets 5 6
*FvwmPager: BalloonColorset * 5
*FvwmPager: Font "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
*FvwmPager: Balloons All
*FvwmPager: BalloonFont "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
*FvwmPager: BallonYOffset +2
*FvwmPager: Window3dBorders
*FvwmPager: MiniIcons
*FvwmPager: UseSkipList
*FvwmPager: Rows 4
*FvwmPager: Columns 1

up

FvwmButtons

code:

#####
# MyButtons
###########
Style "MyButtons" NoTitle, !Handles, !Borders, Sticky, WindowListSkip, \
  CirculateSkip, StaysOnBottom, FixedPosition, FixedSize, !Iconifiable
#
DestroyModuleConfig MyButtons: *
*MyButtons: Geometry 50x690+0+0
*MyButtons: BoxSize smart
# Transparent
*MyButtons: Colorset 7
*MyButtons: ActiveColorset 4
*MyButtons: PressColorset 2
*MyButtons: Rows 64
*MyButtons: Columns 1
*MyButtons: Frame 0
*MyButtons: Font "-*-bitstream vera sans-medium-r-normal-*-14-*-*-*-*-*-iso8859-*,-*-stkaiti-medium-r-normal-*-14-*-*-*-*-*-*-*"
*MyButtons: (1x2, Frame 0, Title(Center) "Harry")
#*MyButtons: (1x5, Frame 0, Icon 48x48/terminal.png, \
#  Action (Mouse 1) "FvwmUrxvt", \
#  Action (Mouse 3) "FvwmXTerm")
#*MyButtons: (1x5, Frame 0, Icon 48x48/rox.png, \
#  Action (Mouse 1) "FvwmRox")
*MyButtons: (1x5, Frame 0, Icon 48x48/office.png, \
  Action (Mouse 1) "FvwmOffice")
*MyButtons: (1x5, Frame 0, Icon 48x48/xpdf.png, \
  Action (Mouse 1) "FvwmXpdf")
*MyButtons: (1x5, Frame 0, Icon 48x48/adobereader.png, \
  Action (Mouse 1) "FvwmAdobeReader")
*MyButtons: (1x5, Frame 0, Icon 48x48/emacs.png, \
  Action (Mouse 1) "FvwmEmacs")
*MyButtons: (1x5, Frame 0, Icon 48x48/matlab7.png, \
  Action (Mouse 1) "FvwmMatlab")
*MyButtons: (1x5, Frame 0, Icon 48x48/xmms.png, \
  Action (Mouse 1) "FvwmXmms")
#*MyButtons: (1x5, Frame 0, Icon 48x48/gmplayer.png, \
#  Action (Mouse 1) "FvwmGMPlayer")
#*MyButtons: (1x5, Frame 0, Icon 48x48/vim.png, \
#  Action (Mouse 1) "FvwmGvim")
*MyButtons: (1x5, Frame 0, Icon 48x48/xv.xpm, \
  Action (Mouse 1) "FvwmXV")
*MyButtons: (1x5, Frame 0, Icon 48x48/gimp.png, \
  Action (Mouse 1) "FvwmGimp")
*MyButtons: (1x5, Frame 0, Icon 48x48/stardict.png, \
  Action (Mouse 1) "FvwmStardict")
*MyButtons: (1x5, Frame 0, Icon 48x48/firefox.png, \
  Action (Mouse 1) "FvwmFireFox")
#*MyButtons: (1x5, Frame 0, Icon 48x48/opera.png, \
#  Action (Mouse 1) "FvwmOpera")
*MyButtons: (1x5, Frame 0, Icon 48x48/gftp.png, \
  Action (Mouse 1) "FvwmGftp")
#*MyButtons: (1x5, Frame 0, Icon 48x48/chat.png, \
#  Action (Mouse 1) "FvwmGaim")
*MyButtons: (1x5, Frame 0, Icon 48x48/lumaqq.png, \
  Action (Mouse 1) "FvwmLumaQQ")
#*MyButtons: (1x5, Frame 0, Icon 48x48/skype.png, \
#  Action (Mouse 1) "FvwmSkype")
*MyButtons: (1x1, Frame 0)

up

Modules Style

code:

Style FvwmPager ParentalRelativity
Style FvwmTaskBar ParentalRelativity
Style FvwmIdent ParentalRelativity
#Style FvwmButtons ParentalRelativity
Style MyButtons ParentalRelativity
Style FvwmIconMan ParentalRelativity

up

After

Put all together and you will get the last fvwm2rc. And make this file into $HOME/.fvwm/.fvwm2rc together with the first icons and images, you will get a good start here.

All the stuffs I used for my FVWM configuration are collected here (.tar.bz2). Untar it using the command #tar xvfj fvwm-flyzhy.tar.bz2 in your $HOME, restart FVWM to see what happens.

top

References


1. To comment out a line a "#" is used.