[FONT="Courier New"]
# file: ~/.fvwm/config
# date: February 2006
# description: This file was created for a screen with a resolution
# of 1920x1200 pixels.
#
# You need the translucency patch for FVWM, you can
# get more informations at:
# - http://www.zensites.net/fvwm/guide/install.html
#
# The windowdecor is from 'link_'
# - http://fvwm.lair.be/viewtopic.php?t=1127
#
# Icons are the 'GNANT' icon pack from 'scourge':
# - http://www.gnome-look.org/content/show.php?content=15764
#
# The wallpaper is from 'sooperman', you can get it here:
# - http://www.deviantart.com/deviation/28646580/
#
# Get the mouse theme 'jaguarx' by 'ineo' from:
# - http://www.gnome-look.org/content/show.php?content=14775
#
# I use fast thumbnails for FVWM with Imlib2.
# You can get it from:
# - http://pemarchandet.free.fr/fvwm.html <- *works*
# - http://fvwm.lair.be/viewtopic.php?p=1018#1018O
# - http://www.headthirst.com/fvwm.shtml
# - http://www.fvwm.org/documentation/faq/#7.18
#
# Install: You have to compile the 'thumb' util by fireing this
# line up:
# $ gcc -Wall -Werror -o thumb thumb.c `imlib2-config --cflags` `imlib2-config --libs`
#
# Variables {{{
# Set image path
ImagePath ${HOME}/.fvwm/images:+
# Set the wallpaper utility and wallpapers directory
SetEnv fvwm_root "fvwm-root -r "
SetEnv fvwm_wallpaper_dir $[HOME]/Pictures/Wallpapers/
SetEnv fvwm_wallpaper $[FVWM_USERDIR]/wallpaper # just a link to the real wallpaper
# Set scripts path
SetEnv fvwm_script_path $[FVWM_USERDIR]/scripts/
# Set default applications
SetEnv browser firefox
SetEnv music_player beep-media-player
#SetEnv xterm "xterm +ai -ls -bg black -fg white"
SetEnv xterm "aterm"
#SetEnv fvwm_icon_size 128
SetEnv fvwm_icon_size 160
# }}}
# Settings {{{
DeskTopSize 3x1
IgnoreModifiers L25
SnapAttraction 5
EdgeScroll 0 0
EdgeResistance 1000 20
EdgeThickness 1
ClickTime 150
MoveThreshold 3
OpaqueMoveSize unlimited
HideGeometryWindow Always
BugOpts FlickeringMoveWorkaround Off
SnapGrid 5 5
# Prevents maximized windows from covering the dock.
# left, right, top, bottom
EwmhBaseStruts 0 0 0 55
ColormapFocus FollowsFocus
# }}}
# Coursers {{{
CursorStyle root left_ptr
CursorStyle default left_ptr
#CursorStyle position left_ptr
#CursorStyle sys left_ptr
#CursorStyle menu left_ptr
#CursorStyle title left_ptr
#CursorStyle resize fleur
#CursorStyle stroke cross
#CursorStyle select draped_box
# }}}
# Global Colorsets {{{
Colorset 4 fg #777777, bg #ffffff, fgsh #bbbbbb, RootTransparent, Tint #283e5e 70, IconAlpha 60
Colorset 3 fg #000000, bg #ffffff, fgsh #bbbbbb, RootTransparent, Tint #101f36 70, IconAlpha 100
Colorset 5 fg #ffffff, bg #000000
Colorset 6 fg #ffffff, bg #000000, RootTransparent
# }}}
# Init, Start and Exit {{{
AddtoFunc InitFunction
+ I Module FvwmBanner
+ I Exec fvwm-root -r $[fvwm_wallpaper]
+ I Exec root-tail -g 1000x200+20+800 -font "-artwiz-anorexia.de-*-*-*-*-*-*-*-*-*-*-ISO8859-1" /var/log/messages,\#524825
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
+ I Module FvwmProxy
+ I Module FvwmButtons FvwmDock
#+ I Module FvwmAnimate
+ I Module FvwmEvent
+ I Module FvwmCommandS
# Exit Function
AddToFunc ExitFunction
+ I Test (!ToRestart) Exec exec rm -f $[FVWM_USERDIR]/icon.tmp.*
# }}}
# Menu {{{
# Menu Style {{{
MenuStyle * Hilight3DOff, PopupOffset +0 100, PopupDelay 200
MenuStyle * Font "Shadow=0 1 SE:xft:Concielian:pixelsize=12"
MenuStyle * MenuColorset 0, HilightBack, ActiveColorset 1
MenuStyle * BorderWidth 1, TitleUnderlines0, SeparatorsLong, Animation, TrianglesSolid
MenuStyle * ItemFormat "%.2|%.5i%.5l%.5i%2.3>%2|"
MenuStyle * AutomaticHotKeys
# Menu Colorset
Colorset 0 fg #dedede, bg #ffffff, sh #474b4c, hi #474b4c, Translucent #474b4c 70
Colorset 1 fg #ffffff, bg #333333, sh #cccccc, hi #cccccc
# }}}
# Root Menu {{{
DestroyMenu MenuFvwmRoot
AddToMenu MenuFvwmRoot
+ "&Terminal"%menu/gnant/console.png% Exec exec $[xterm]
+ "" Nop
+ "Mozilla &Firefox"%menu/gnant/internet.png% Exec exec firefox
+ "&Opera"%menu/gnant/opera.png% Exec exec opera
+ "B Media Player"%menu/gnant/audio.png% Exec exec $[music_player]
+ "Mplayer"%menu/gnant/multimedia.png% Exec exec mplayer
+ "Vim"%menu/gnant/edit.png% Exec exec gvim -geom 115x46
+ "" Nop
+ "Fvwm Config"%menu/gnant/prefs.png% Popup MenuFvwmConfig
+ "" Nop
+ "Quit"%menu/gnant/exit.png% Popup MenuQuit
DestroyMenu MenuQuit
AddToMenu MenuQuit
+ "Quit"%menu/gnant/exit.png% Quit
+ "Restart"%menu/gnant/reload.png% Restart
DestroyMenu MenuFvwmConfig
AddToMenu MenuFvwmConfig
+ MissingSubmenuFunction WallpaperBrowser
+ "Wallpapers"%menu/gnant/prefs.png% Popup $[fvwm_wallpaper_dir]
+ "" Nop
+ "&Screenshot"%menu/gnant/photo.png% Exec exec $[FVWM_USERDIR]/scripts/screenshot.sh
+ "FvwmConsole"%menu/gnant/console.png% Module FvwmConsole -terminal $[xterm]
+ "Edit fvwm2rc"%menu/gnant/edit.png% Exec exec gvim -geom 115x46 ~/.fvwm/config
+ "Refresh"%menu/gnant/reload.png% Refresh
+ "Kill"%menu/gnant/bomb.png% Pick Destroy
# }}}
# Window Menu {{{
DestroyMenu MenuFvwmWindowOps
AddToMenu MenuFvwmWindowOps
+ "Resize" Pick Resize
+ "Shade" Pick WindowShade Toggle
+ "S&tick" Pick Stick
+ "Ra&frash" Pick RefreshWindow
+ "" Nop
+ "Identification" Pick Module FvwmIdent
+ "" Nop
+ "Send To" Popup MenuFvwmSendTo
+ "" Nop
+ "Close" Close
+ "Destroy" Destroy
DestroyMenu MenuFvwmSendTo
AddToMenu MenuFvwmSendTo
+ "Page &1" MoveToPage 0 0
+ "Page &2" MoveToPage 1 0
+ "Page &3" MoveToPage 2 0
# }}}
# }}}
# Module: Animate {{{
DestroyModuleConfig FvwmAnimate: *
*FvwmAnimate: Color white
*FvwmAnimate: Effect Twist # Effects: Frame, Lines, Flip, Turn, Zoom3D, Twist Random, and None.
*FvwmAnimate: Delay 3
*FvwmAnimate: Iterations 50
*FvwmAnimate: Width 3
# }}}
# Module: Proxy {{{
DestroyModuleConfig FvwmProxy: *
*FvwmProxy: Colorset 5
*FvwmProxy: Font "xft:sans:bold:pixelsize=10:minspace=True"
*FvwmProxy: ProxyMove true
# }}}
# Module: Ident {{{
DestroyModuleConfig FvwmIdent: *
*FvwmIdent: Back #474b4c
*FvwmIdent: Fore #ffffff
*FvwmIdent: Font "xft:sans:bold:pixelsize=10:minspace=True"
# }}}
# Module: Buttons: Dock {{{
DestroyModuleConfig FvwmDock: *
*FvwmDock: Geometry 900x60+540-0
*FvwmDock: Rows 1
*FvwmDock: Columns 16
*FvwmDock: Frame 0
*FvwmDock: Colorset 30
*FvwmDock: (1x1, Icon dock/gnant/terminal.png,ActionOnPress, \
Action(Mouse 1) `Exec $[xterm]`)
*FvwmDock: (1x1, Icon dock/gnant/filemanager.png, ActionOnPress, \
Action(Mouse 1) `Exec $[xterm]`)
*FvwmDock: (1x1, Icon dock/gnant/browser.png, ActionOnPress, \
Action(Mouse 1) `DockLaunch firefox Firefox-bin $left $top`, Action(Mouse 3) `Next (Firefox-bin) Popup MenuFvwmWindowOps Rectangle +$left+$top -100m 0`)
*FvwmDock: (1x1, Icon dock/gnant/mail.png, ActionOnPress, \
Action(Mouse 1) `Exec $[xterm] -e mutt`,)
*FvwmDock: (1x1, Icon dock/gnant/audio.png, ActionOnPress, \
Action(Mouse 1) `DockLaunch beep-media-player $left $top`)
*FvwmDock: (1x1, Icon dock/gnant/mediaplayer.png, ActionOnPress, \
Action(Mouse 1) `Exec gmplayer`)
*FvwmDock: (1x1, Icon dock/gnant/edit.png, ActionOnPress, \
Action(Mouse 1) `DockLaunch gvim gvim $left $top`, \
Action(Mouse 3) `Next (gvim) Popup MenuFvwmWindowOps Rectangle +$left+$top -100m 0`)
*FvwmDock: (1x1, Icon dock/gnant/paint.png, ActionOnPress, \
Action(Mouse 1) `DockLaunch gimp gimp $left $top`, \
Action(Mouse 3) `Next (gimp) Popup MenuFvwmWindowOps Rectangle +$left+$top -100m 0`)
*FvwmDock: (1x1, Icon dock/gnant/settings.png, ActionOnPress, \
Action(Mouse 1) `Exec gvim -geom 115x46 ~/.fvwm/config`)
*FvwmDock: (6x1, Swallow(UseOld) "FvwmPager" "Module FvwmPager 0 0")
*FvwmDock: (1x1, Swallow "oclock" "Exec exec oclock -transparent -bd white -hour white -minute white")
# Styles:
Style FvwmDock Sticky, NoTitle, NoHandles, Borderwidth 0
Style FvwmDock WindowListSkip, StaysOnTop
# Colorset:
Colorset 30 fg #474b4c, bg #474b4c, hi #474b4c, sh #474b4c RootTransparent, Tint #474b4c 65
# }}}
# Module: Pager {{{
DestroyModuleConfig FvwmPager: *
#*FvwmPager: Geometry 0 0
*FvwmPager: MiniIcons
*FvwmPager: Colorset * 60
*FvwmPager: HilightColorset * 61
*FvwmPager: WindowColorsets 63 62
*FvwmPager: BalloonColorset * 63
*FvwmPager: Font none
*FvwmPager: SmallFont none
*FvwmPager: Balloons All
*FvwmPager: BalloonFont "Shadow=0 1 SE:xft:Concielian:pixelsize=12"
*FvwmPager: BalloonYOffset +2
*FvwmPager: BalloonBorderWidth 1
*FvwmPager: UseSkipList
*FvwmPager: MoveThreshold 0
*FvwmPager: SolidSeparators
*FvwmPager: WindowBorderWidth 1
# Colorsets:
Colorset 60 fg white, bg #ffffff, RootTransparent, Tint #474b4c 65
Colorset 61 fg white, bg #ffffff, Noshape, RootTransparent, Tint #474b4c 50
Colorset 62 fg white, bg #ffffff, RootTransparent, Tint #474b4c 90
Colorset 63 fg white, bg #ffffff, Noshape, RootTransparent, Tint #474b4c 60
# }}}
# Module: Banner {{{
*FvwmBanner: NoDecor
*FvwmBanner: Pixmap banner.png
*FvwmBanner: Timeout 3
# }}}
# Functions {{{
# Mail Popup {{{
# SOurce: http://fvwm.lair.be/viewtopic.php?t=474&highlight=mail
DestroyFunc MailPopup
AddToFunc MailPopup
+ I DestroyModuleConfig FvwmMail: *
+ I *FvwmMail: Geometry 350x60+30+30
+ I *FvwmMail: Columns 5
+ I *FvwmMail: Font "Shadow=0 1 SE:xft:Sans:pixelsize=11"
+ I *FvwmMail: Colorset 9
+ I *FvwmMail: Frame 0
+ I *FvwmMail: Padding 0 0
+ I *FvwmMail: Rows 3
+ I *FvwmMail: (1x3, Frame 0, Icon icons/gnant/mail.png, Action (Mouse 1) `Exec exec aterm -tr -bg black -fg white -trsb -sh 30 +sb -T '.: M u t t :.' -e mutt`, Action (Mouse 3) `Exec exec aterm -tr -bg black -fg white -trsb -sh 30 +sb -T '.: M u t t :.' -e mutt -y`)
+ I *FvwmMail: (4x1, Title(Side) $0)
+ I *FvwmMail: (4x1, Title(Side) $1)
+ I *FvwmMail: (4x1, Title(Side) $2)
+ I Module FvwmButtons FvwmMail
+ I Schedule 20000 KillModule FvwmButtons FvwmMail
# Colorset:
Colorset 9 fg #ffffff, fgsh #000000, bg #101F36, sh #101F36, hi #101F36, Translucent #ffffff 70
#Style:
Style FvwmMail Sticky, NoTitle, NoHandles, Borderwidth 0
Style FvwmMail WindowListSkip, StaysOnTop
# }}}
# Thumbnail {{{
# The (very) slow way to do it. Withe ImagaMagic's convert
#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 $[fvwm_icon_size] -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 TestRc (Match) Test (f $[HOME]/icons/$[w.miniiconfile]) PipeRead "composite -geometry +2+4 \
# $[HOME]/icons/$[w.miniiconfile] $[FVWM_USERDIR]/icon.tmp.$[w.id].png \
# $[FVWM_USERDIR]/icon.tmp.$[w.id].png && echo Nop \
# || echo Beep"
#+ I Iconify
# The faster way to do it!
DestroyFunc Thumbnail
AddToFunc Thumbnail
+ I Raise
+ I SetEnv Icon-$[w.id] $[w.IconFile]
+ I ThisWindow (!Shaded, Iconifiable, !Iconic) PipeRead \
"$[FVWM_USERDIR]/thumb $[w.id] $[fvwm_icon_size] $[FVWM_USERDIR]/icon.tmp.$[w.id].png $[w.IconFile]"
+ I Iconify
# }}}
# DeThumbnail {{{
DestroyFunc DeThumbnail
AddToFunc DeThumbnail
+ I PipeRead "echo WindowStyle IconOverride, Icon \\$\\[Icon-$[w.id]\\]"
+ I UnsetEnv Icon-$[w.id]
+ I Exec exec "rm -f $[FVWM_USERDIR]/icon.tmp.$[w.id].png"
*FvwmEvent: deiconify DeThumbnail
# }}}
# DockLaunch {{{
DestroyFunc DockLaunch
AddToFunc DockLaunch
+ C Any ($1) Next ($1) WindowListFunc
+ C TestRc (NoMatch) Exec $0
+ H Any ($1) WindowList ($1) Rectangle +$2+$3 0 -100m CurrentAtEnd UseListSkip SortByClass NoCurrentDeskTitle
+ D Exec $0
# }}}
# Browse Wallpaper Directory {{{
# TODO: Set the link ~/.fvwm/wallpaper
DestroyFunc WallpaperBrowser
AddToFunc WallpaperBrowser
+ I PipeRead 'test ! -d "$0/.thumbs" && mkdir "$0/.thumbs"; \
for i in "$0/"*; do \
test -f "$0/.thumbs/${i##*/}" \
-a "${i}" -ot "$0/.thumbs/${i##*/}" || { \
convert -quality 0 -scale 64 "${i}" "png:$0/.thumbs/${i##*/}" 2>/dev/null \
|| continue; \
}; \
done; \
fvwm-menu-directory --icon-title icons/globes/folder.png --icon-file __PIXMAP__ \
--icon-dir icons/globes/folder.png --dir $0 --exec-file "^fvwm-root -r" \
--exec-t="^eog *" | sed -e "s#FuncFvwmMenuDirectory#WallpaperBrowser#g" \
-e "s#__PIXMAP__\\(.*\\)\\"\\(.*/\\)\\(.*\\)\\"#\\2.thumbs/\\3\\1\\2\\3#g"'
# }}}
# }}} # Functions
# Bindings {{{
# Mouse {{{
# Root Menus
Mouse 1 R A -
Mouse 3 R A Menu MenuFvwmRoot
Mouse 2 R A WindowList NoCurrentDeskTitle
# Titlebar Buttons
Mouse 1 1 A Menu MenuFvwmWindowOps
Mouse 3 1 A Menu MenuFvwmwindowOps
Mouse 1 6 A Thumbnail
Mouse 1 4 A Maximize
Mouse 1 2 A Close
# Window, Frame, Side, Others
Mouse 1 FS A ResizeFunc
Mouse 2 W C ResizeFunc
Mouse 1 W M MoveFunc
Mouse 3 W M ResizeFunc
Mouse 3 TSIF A RaiseLower
Mouse 3 T A Menu MenuFvwmWindowOps
AddToFunc ResizeFunc "M" Resize
AddToFunc MoveFunc "M" Move
# Icons Binding
Mouse 1 I A Iconify
Mouse 2 I A Move
# Wheel Toggle Shade
Mouse 4 T N WindowShade True
Mouse 5 T N WindowShade False
Mouse 4 TW M WindowShade True
Mouse 5 TW M WindowShade False
# }}}
# Keys {{{
#Key Escape A M SendToModule FvwmProxy ShowToggle
#Key Tab A M Windowlist Root c c NoCurrentDeskTitle
#Key Tab A M Windowlist Root c c DeskSort
# Windows Key Root Menu
#Key Super_L A A Menu MenuFvwmRoot
#Key Super_R A A Menu MenuFvwmRoot
Key Super_L A A Exec $[xterm]
Key Super_R A A Exec $[xterm]
# Traditional Bindings
Key F4 A M Pick Close
Key X A M Pick Destroy
# Fvwm Special Bindings
Key F3 A M Module FvwmConsole -terminal $[xterm]
#Key I A M Pick Module FvwmIdent
Key R A CM Restart
Key F4 A CM Quit
# Pager Bindings
Key Right A CM GoToPage +1p 0p
Key Left A CM GoToPage -1p 0p
Key Up A CM GoToPage 0p -1p
Key Down A CM GoToPage 0p +1p
# Move the current window withe the strg and arrow keys
Key Up A C Scroll +0 -100
Key Down A C Scroll +0 +100
Key Left A C Scroll -100 0
Key Right A C Scroll +100 +0
# FvwmProxy
Key Escape A M SendToModule FvwmProxy ShowToggle
# }}}
# }}}
# Styles {{{
Style * EWMHMiniIconOverride
Style * Icon icons/gnant/console.png
Style * MiniIcon icons/gnant/console.png
Style * UseDecor MyDecor
Style * MWMBorder, FirmBorder
Style * Colorset 4
Style * HilightColorset 3
Style * Font "xft:Concielian:pixelsize=12"
#Style * Button 1, Button 2, Button 4, Button 6, GrabFocusOff
#Style * FvwmButtons
#Style * !Borders, NoHandles
Style * BorderWidth 1, HandleWidth 1
Style Fvwm* !Borders, NoHandles
Style Firefox-bin MiniIcon icons/gnant/internet.png
Style Opera MiniIcon icons/gnant/opera.png
Style Thunderbird-bin MiniIcon icons/gnant/mail.png
Style gvim MiniIcon icons/gnant/edit.png
Style gnome-terminal MiniIcon icons/gnant/console.png
Style xterm MiniIcon icons/gnant/console.png
Style aterm !Borders, MiniIcon icons/gnant/console.png
Style xchat-2 MiniIcon icons/gnant/chat.png
Style gimp MiniIcon icons/gnant/paint.png
Style gaim MiniIcon icons/gnant/chat.png
Style nautilus MiniIcon icons/gnant/folder.png
Style gFTP MiniIcon icons/gnant/ftp.png
Style Gkrellm2 NoTitle, Sticky, WindowListSkip, StaysOnBottom, NeverFocus
Style xmms NoTitle, NoTitle MiniIcon icons/gnant/audio.png
Style beep-media-player NoTitle, MiniIcon icons/gnant/audio.png
Style Gdesklets NoTitle, NoHandles, Borderwidth 0
Style MPlayer MiniIcon icons/gnant/multimedia.png
Style MPlayer NoTitle, Sticky, WindowListSkip
Style Untitled NoTitle
#Style * SmartPlacement, WindowShadeSteps 0, ResizeOpaque
Style * MinOverlapPercentPlacement
Style * DecorateTransient, WindowShadeLazy
# Determines where iconfied apps will appear on the desktop
Style * IconBox 15 37 235 -60
#Style * MouseFocusClickRaises
Style * SloppyFocus
Style * NoIcon, NoIconTitle
# }}} # Style
# Window Decor {{{
DestroyDecor MyDecor
AddToDecor MyDecor
+ ButtonStyle All - Clear
+ ButtonStyle 1 MiniIcon
+ ButtonStyle 2 \
Active (Pixmap decoration/close-right-active.png) \
Inactive (Pixmap decoration/close-right-inactive.png) ActiveDown (Pixmap themes/$[ThemeColor]/close-right-down.png)
+ ButtonStyle 4 \
Active (Pixmap decoration/maximize-active.png) \
Inactive (Pixmap decoration/maximize-inactive.png) ActiveDown (Pixmap themes/$[ThemeColor]/maximize-down.png)
+ ButtonStyle 6 \
Active (Pixmap decoration/iconify-active.png) \
Inactive (Pixmap decoration/iconify-inactive.png) \
ActiveDown (Pixmap decoration/iconify-down.png)
+ ButtonStyle All -- flat usetitlestyle
+ TitleStyle AllActive (Colorset 7) AllInactive (Colorset 7) -- Flat
+ TitleStyle AllActive TiledPixmap decoration/title-active.png -- Flat
+ TitleStyle AllInActive TiledPixmap decoration/title-inactive.png -- Flat
+ TitleStyle LeftJustified Height 22 -- Flat
# }}}
[/FONT]