Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
# -*- fvwm -*-
#
# ~/.fvwm2rc window manager configuration file
#
# $Revision: 1.137 $
# $Date: 2005/10/21 11:57:59 $
#
# Author: Piotr Zielinski (http://www.cl.cam.ac.uk/~pz215/)
#
# Requirements (debian packages):
#
# * fvwm >= 2.5.11
# * imagemagick (for thumbnailed icons to work)
# * zenity (for the quit confirmation dialog)
# * python (for the scripts)
# * python-xdg (for automatic application menu)
# * gnome-menu (for automatic application menu)
# * hicolor-icon-theme (for menu icons)
# * gnome-icon-theme (for menu icons)
# * gnuserv (for better emacs integration)
# * fvwm-icons
#
# Recommended: firefox, rox, emacs, xterm
#
# Installation:
#
# * Copy all files to the directory ~/.fvwm
# + so that this file should be ~/.fvwm/config
#
# * Bind Super_L to Mod2 _before_ starting fvwm
# + execute xmodmap -e 'clear mod2' -e 'add mod2 = Super_L' or
# + add to ~/.Xmodmap
# clear mod2
# add mod2 = Super_L
# and execute "xmodmap ~/.Xmodmap"
# + to check whether everything is ok execute "xmodmap",
# Super_L should be listed in the mod2 line and _in_no_other_line_
#
# * Put xclock and xload to your .xsession
#
# Optional:
#
# * Make the current directory the title of xterm windows
# + add to bashrc: export PROMPT_COMMAND='echo -n -e "\033]2;$PWD\07"'
#
# * Install gnuserv, and add (gnuserv-start) to ~/.emacs
#
# * Add (recentf-mode t) to .emacs
# + fvwm will add recently edited directories to its menu
#
# Acknowledgments:
#
# * Tavis Ormandy (thumbnails as icons)
# * http://ikaro.homepage.dk/fvwm/ (button/ and decor/ pixmaps)
#
#
Style * EwmhIgnoreStrutHints
ClickTime 200
OpaqueMoveSize 100
EdgeScroll 0 0
EdgeResistance 10000 400
EdgeThickness 1
SnapAttraction 10 SameType Screen
DesktopSize 2x2
SetEnv ROXID 928372 # rox window id
Test (!EnvIsSet FVWM_TEMP) SetEnv FVWM_TEMP /tmp/fvwm.$[USER]
Test (!EnvIsSet FVWM_ICONS) SetEnv FVWM_ICONS $[FVWM_USERDIR]/icons
PipeRead "for file in `which x-www-browser mozilla firefox $[FVWM_BROWSER]`;do\
echo SetEnv FVWM_BROWSER $$file ; done"
PipeRead "for file in `which nautilus pcmanfm rox-filer rox $[FVWM_FILEMANAGER]` ; do \
echo SetEnv FVWM_FILEMANAGER $$file ; done"
PipeRead "for file in `which gnome-open rox-filer rox $[FVWM_OPENER]` ; do \
echo SetEnv FVWM_OPENER $$file ; done"
ImagePath $[FVWM_USERDIR]
ImagePath +:/usr/share/pixmaps:/usr/local/share/fvwm/icons:/usr/local/icons:/usr/share/icons:/usr/share/icons/mini:/usr/share/icons/wm-icons:/usr/X11R6/include/X11/pixmaps
ImagePath +:/usr/share/icons/gnome/24x24;.png
ImagePath +:/usr/share/icons/gnome/24x24/apps;.png
ImagePath +:/usr/share/icons/hicolor/24x24/apps;.png
ImagePath +:/usr/share/icons/hicolor/24x24/stock/generic;.png
ImagePath +:/usr/share/icons/wm-icons/32x32-kde2;.xpm
ImagePath +:/usr/share/pixmaps;.png;/usr/share/pixmaps;.xpm
AddToFunc RedefineFunc
+ I DestroyFunc $0
+ I AddToFunc $*
RedefineFunc StartFunction
+ I Exec exec mkdir -p $[FVWM_TEMP] $[FVWM_ICONS]
+ I Module FvwmPager
+ I Wait FvwmPager
+ I Module FvwmEvent
+ I Module FvwmCommandS
# + I Module FvwmButtons BaseButtons
+ I Module FvwmAuto 0 -menterleave OnEnter OnLeave
#+ I Wait BaseButtons
+ I Module FvwmPager
+ I Wait FvwmPager
+ I All (FvwmPager) Resize 160p 160p
+ I HidePager
+ I ShowNotifications
+ I A
RedefineFunc SessionInitFunction
+ I All (gnome-panel) Move keep w-1p
#
# ========== STYLES ==========
#
#---------- Colorsets ----------
CleanupColorsets
DefaultColorset -1
ColormapFocus FollowsFocus
Colorset 1 fg grey90, bg rgb:70/70/80 # inactive windows
Colorset 2 fg black, bg grey75 # active
Colorset 3 fg black, bg grey80 # inactive menu entries
Colorset 4 fg black, bg grey95 # active menu entries
Colorset 20 fg white, bg black # FvwmPager active
Colorset 21 fg black, bg white # FvwmPager inactive
Colorset 24 fg white, bg rgb:70/70/80 # FvwmPager ?
Colorset 23 fg black, bg grey83 # FvwmPager ?
# ---------- Cursors ----------
CursorStyle TOP 132
CursorStyle RIGHT 132
CursorStyle BOTTOM 132
CursorStyle LEFT 132
CursorStyle TOP_LEFT 132
CursorStyle TOP_RIGHT 132
CursorStyle BOTTOM_LEFT 132
CursorStyle BOTTOM_RIGHT 132
# ---------- Menu styles ----------
MenuStyle * Font "xft:Bitstream Vera Sans:size=10"
MenuStyle * MenuColorset 3, ActiveColorset 4, HilightBack
MenuStyle * Hilight3DOff, PopupOffset +0 100, BorderWidth 0
MenuStyle * TitleUnderlines1, SeparatorsLong, TrianglesSolid
MenuStyle * AutomaticHotKeysOff, TitleWarp
MenuStyle * VerticalItemSpacing 2 10
MenuStyle * VerticalTitleSpacing 1 4
MenuStyle * PopupAsRootMenu, HoldSubmenus, PopupImmediately
# ---------- Titles ----------
TitleStyle AllInactive TiledPixmap decor/title-inactive.png -- Flat
TitleStyle AllActive TiledPixmap decor/title-active.png -- Flat
TitleStyle Height 20
# ---------- Buttons ----------
BorderStyle Simple -- HiddenHandles NoInset
ButtonStyle All Simple -- UseTitleStyle
ButtonStyle All -- Flat
AddButtonStyle 1 \
ActiveUp (Pixmap button/options-activeup.png -- flat) \
ActiveDown (Pixmap button/options-activedown.xpm -- flat) \
Inactive (Pixmap button/1inactive.xpm -- flat)
AddButtonStyle 2 \
ActiveUp (Pixmap button/close-activeup.png -- flat) \
ActiveDown (Pixmap button/close-activedown.xpm -- flat) \
Inactive (Pixmap button/1inactive.xpm -- flat)
AddButtonStyle 4 \
ActiveUp (Pixmap button/iconify-activeup.png -- flat) \
ActiveDown (Pixmap button/iconify-activedown.xpm -- flat) \
Inactive (Pixmap button/1inactive.xpm -- flat)
AddButtonStyle 6 \
ActiveUp (Pixmap button/maximize-activeup.png -- flat) \
ActiveDown (Pixmap button/maximize-activedown.xpm -- flat) \
Inactive (Pixmap button/1inactive.xpm -- flat)
# ---------- Windows styles ----------
# Look
DefaultFont "xft:Bitstream Vera Sans:size=10"
Style * Font "xft:Bitstream Vera Sans:size=10:style=Bold"
Style * DecorateTransient
Style * Button 1, Button 2, Button 4, Button 6
Style * BorderWidth 1, HandleWidth 1, Handles
# Focus
Style * SloppyFocus, GrabFocusOff
Style * MWMFunctions, HintOverride, MWMDecor
Style * RaiseTransient
Style * GrabFocusTransient
Style * FPClickRaisesFocused, FPPassRaiseClick, FPIgnoreRaiseClickMotion
# Placement / Moving / Resizing
# we have 0.01 for both "ontop" and "below" because all non-iconified
# windows with a different layer than the current (normal) window must
# be BaseButtons
Style * UsePPosition, UseTransientPPosition
Style * MinOverlapPercentPlacement
Style * MinOverlapPlacementPenalties 1 0.7 0.01 0.50 0.5 0.01
Style * MinOverlapPercentPlacementPenalties 0.012 0.006 0.003 0.001
Style * ResizeOutLine
Style * WindowShadeSteps 0
Style zenity CenterPlacement
# Icons
Style * IconBox 900x500+340--1, IconGrid 120 120, IconFill Left Bottom
Style * IconSize 110 0 120 200
Style * IconTitle
Style * IconTitleRelief 1, IconBackgroundPadding 0, IconBackgroundRelief 0
Style * IconTitleColorset 1, HilightIconTitleColorset 2
Style * Icon window.xpm
# Special windows
Style FvwmButtons NeverFocus, NoTitle, StaysOnBottom, WindowListSkip, \
FixedPosition, FixedSize, Sticky, Borders
Style FvwmPager NoTitle, Sticky, WindowListSkip, CirculateSkipIcon, \
CirculateSkip, StaysOnBottom, !Borders
Style FvwmNotify NeverFocus, NoTitle, Sticky, WindowListSkip, State 6
Style gnome-panel State 6
# ---------- Windows (specific) ----------
# Style "xclock" NoTitle, Sticky, CirculateSkip
# Style "xload" NoTitle, Sticky, CirculateSkip
# dialogs that are really transient but don't claim to be
Style "Prompt" GrabFocus, State 6
Style "Delete" GrabFocus, State 6
Style "Create" GrabFocus, State 6
Style "Rename" GrabFocus, State 6
Style "del.icio.us posts" GrabFocus
Style "Glade" State 6
Style "NoClass" State 6
Style "RoxTracker" FixedPSize, FixedPPosition, CirculateSkip
Style "Speedbar*" CirculateSkip, CirculateSkipIcon
Style "*SPEEDBAR" CirculateSkip, CirculateSkipIcon
# application-specific
Style "gaim" Sticky
Style "xmms" NoTitle, Borders
Style "xwrits" Sticky
Style "best" FixedPPosition, FixedPSize
Style "vncviewer" NoTitle, !Borders
Style "Xpdf" NoPPosition
Style "*Firefox" EwmhUseStrutHints
Style "*Firefox Beta 2" EwmhUseStrutHints
Style "*Bon Echo*" EwmhUseStrutHints
#
# ========== FUNCTIONS ==========
#
RedefineFunc Hide
+ I Move -10000p -10000p
RedefineFunc GotoAndFollow
+ I Raise
+ I ThisWindow (!Sticky) MoveToPage $0 $1
+ I GotoPage $0 $1
RedefineFunc MoveAndFollow
+ I Raise
+ I Move $0 $1
+ I WarpToWindow 5 5
RedefineFunc AndWarp
+ I $*
+ I WarpToWindow 5p 5p
RedefineFunc SelectWindowNoWarp
+ I Deiconify
+ I FlipFocus
RedefineFunc WindowListFunc
+ I SelectWindowNoWarp
+ I WarpToWindow 5p 5p
RedefineFunc OpenOrExec
+ I Next ($0, Iconic, CurrentPage) ThisWindow (!"*SPEEDBAR") SelectWindowNoWarp
+ I TestRc (NoMatch) $1
RedefineFunc ThisOrCurrent
+ I ThisWindow $*
+ I TestRc (!Match) Current $*
RedefineFunc InCurrentDirectory
+ I ThisOrCurrent (Rox|ROX-Filer|Pcmanfm) \
Exec eval cd `echo '$[w.name]' | sed -e 's/ (.*) $$//'`; $*
+ I TestRc (!Match) ThisOrCurrent (xterm) ThisWindow ("*/*") \
Exec eval cd `echo '$[w.name]' | sed -e 's/.* //'`; $*
+ I TestRc (!Match) \
Exec cd `gnuclient -batch -eval "(let ((filename (buffer-file-name))) \
(and filename (file-name-directory filename)))"` ; $*
RedefineFunc RecreateMenu
+ I DestroyMenu "$0"
+ I PipeRead "$1" # recreate data
+ I PipeRead "sed -ne '\\!AddToMenu\\s\\s*$0!,/^\\s*$$/p' $[FVWM_USERDIR]/config" # incorporate it
RedefineFunc Recent
+ I $*
+ I RecreateMenu RecentMenu "$./scripts/add-recent-app $./recent.menu Recent '$*' > /dev/null"
# ---------- Iconification ----------
RedefineFunc LowerAndDeiconify
+ I OnDeiconify3
+ I Lower
+ I Iconify Off
RedefineFunc AutoDeiconify
+ I All (CurrentPage, Iconic, State 5) LowerAndDeiconify
RedefineFunc IconifyPointer
+ I Current (!Iconic, Layer 4) MyIconify
+ I Current (!Iconic, Layer 3) MyIconify
RedefineFunc ClosePointer
+ I Current (Layer 4) Close
+ I Current (Layer 3) Close
RedefineFunc MyIconify
+ I Iconify On
+ I State 4 false
+ I Layer 0 2
+ I Any (gnome-panel, Layer 8) All (Iconic) Layer 0 8
+ I EnsureFocus
RedefineFunc AutoIconify
+ I ThisWindow (opengazer) Break
+ I State 5 true # mark window as autoiconified
+ I MyIconify
RedefineFunc PutOnStandardLayer
+ I Layer 0 4
+ I WindowStyle MinOverlapPercentPlacement
RedefineFunc OnDeiconify
+ I ThisWindow (Layer 2) PutOnStandardLayer
+ I ThisWindow (Layer 8) PutOnStandardLayer
+ I State 5 false # no longer autoiconified
RedefineFunc OnDeiconify3
+ I Layer 0 3
+ I State 5 false # no longer autoiconified
RedefineFunc DeiconifyRaw
+ I OnDeiconify
+ I Iconify Off
+ I PlaceAgain
+ I RearrangeWindows
RedefineFunc Deiconify
+ I ThisWindow (Iconic) DeiconifyRaw
+ I Raise
+ I PointerWindow OnEnter
# ---------- Others ----------
RedefineFunc Unsuppress
+ I RedefineFunc IfNotSuppressed I $$$$*
+ I RedefineFunc IfSuppressed I KeepRc Nop
RedefineFunc Suppress
+ I RedefineFunc IfSuppressed I $$$$*
+ I RedefineFunc IfNotSuppressed I KeepRc Nop
RedefineFunc TestSuppressed
+ I Any (!Iconic) Nop
+ I IfNotSuppressed None (!Iconic) Nop
Unsuppress
RedefineFunc TempSuppress
+ I Suppress
+ I Deschedule 40
+ I NoWindow Schedule $0 40 Unsuppress
# ---------- Maximization
RedefineFunc NoXMoveMaximize1
+ I Maximize $1 $2
+ I Move $0p w0
RedefineFunc NoXMoveMaximize
+ I NoXMoveMaximize1 $[w.x] $0 $1
RedefineFunc BackToScreen
+ I Piperead "expr $[w.x] + $[w.width] \\> $[vp.width] > /dev/null && echo 'Move $0p w0' || echo Nop"
RedefineFunc CustomMaximize
+ I ThisWindow ("*Deer Park|*Firefox|*Iceweasel|*Firefox Beta 2|Bon Echo Beta 2|*- Bon Echo*") NoXMoveMaximize 1006p 100
+ I TestRc (NoMatch) NoXMoveMaximize 0 100
+ I Schedule 50 ThisWindow (!Raised) Move -0 w0
RedefineFunc CustomUnmaximize
+ I ThisWindow ("emacs") Exec exec gnuclient -batch -f delete-other-windows
+ I Maximize off
RedefineFunc CustomFullMaximize
+ I ThisWindow ("emacs") Exec exec gnuclient -batch -eval "(when (one-window-p) (split-window-horizontally) (display-buffer (other-buffer) t))"
+ I Maximize on $*
RedefineFunc MyMaximize
+ I ThisWindow (CurrentPage, !Maximized, !Iconic) All (CurrentPage, Overlapped, Maximized, !Focused, !Iconic) IfNotSuppressed CustomUnmaximize
+ I ThisWindow (Maximized) KeepRc IfNotSuppressed CustomUnmaximize
+ I TestRc (Match) KeepRc IfNotSuppressed AutoDeiconify
+ I TestRc (Match) KeepRc IfSuppressed CustomFullMaximize
+ I TestRc (!Match) CustomMaximize
+ I TestSuppressed
+ I TestRc (!Match) KeepRc TempSuppress 1000
+ I TestRc (Match) KeepRc Unsuppress
+ I RearrangeWindows
RedefineFunc VerticalGrow
+ I Maximize growonwindowlayer 0 grow
RedefineFunc VerticalMaximize
+ C MyMaximize
+ D VerticalGrow
RedefineFunc BothGrow
+ I Maximize growonwindowlayer grow grow
RedefineFunc BothMaximize
+ C CustomFullMaximize 100 100
+ D BothGrow
RedefineFunc HorizontalGrow
+ I Maximize growonwindowlayer grow 0
RedefineFunc HorizontalMaximize
+ C CustomFullMaximize 100 0
+ D HorizontalGrow
# ---------- Standard click handling functions
RedefineFunc LeftClick
+ I HidePager
+ I RaiseLower
+ I Schedule 20 ThisWindow (Layer 3) PutOnStandardLayer
+ I Schedule 20 ThisWindow (Layer 4, Overlapped) All (CurrentPage, Layer 3) PutOnStandardLayer
# + I Any (Layer 8) Raise
# + I TestRc (Match) LowerBar
+ M Raise
+ M Move
+ M RearrangeWindows
+ D Raise
+ D MyMaximize
RedefineFunc CornerLeftClick
+ I HidePager
+ I RaiseLower
+ M Raise
+ M Move
+ M RearrangeWindows
+ D Raise
+ D CustomFullMaximize 100 100
+ D All (CurrentPage, Layer 4, !Maximized) AutoIconify
+ D All (CurrentPage, Layer 3, !Maximized) AutoIconify
RedefineFunc LeftClickRoot
+ I HidePager
+ I LowerBar
+ M Current (CurrentPage) Raise
+ M Current (CurrentPage) Move
+ M Current (CurrentPage) RearrangeWindows
+ I Current (CurrentPage) RaiseLower
#+ C Current (CurrentPage, Iconic) Deiconify
+ D Current (CurrentPage) Raise
+ D Current (CurrentPage) MyMaximize
RedefineFunc RightClick
+ I HidePager
+ M Raise
+ M ThisWindow (!Iconic) Resize
+ M ThisWindow (!Iconic) RearrangeWindows
+ H Raise
+ H ThisWindow (!Iconic) Resize
+ C Menu $*
RedefineFunc RightClickRoot
+ M Current (CurrentPage, !Iconic) Raise
+ M Current (CurrentPage, !Iconic) Resize
+ M RearrangeWindows
+ H Current (CurrentPage, !Iconic) Raise
+ H Current (CurrentPage, !Iconic) Resize
+ H RearrangeWindows
+ C WindowId root Menu $*
RedefineFunc SuperLeftClick
+ I PointerWindow (FvwmPager) FakeClick modifiers -2 press 1
+ I TestRc (Match) Break
+ I HidePager
+ I PointerWindow (gnome-panel) FakeClick modifiers -2 press 1
+ I TestRc (Match) Break
+ I LeftClick
# ---------- Switching between windows ----------
RedefineFunc NextWindow
+ I HideTrackers
+ I Next (CurrentPage, AcceptsFocus) Focus
+ I Current (Layer 3) PutOnStandardLayer
+ I Current Raise
+ I Current WarpToWindow 5 5
RedefineFunc PrevWindow
+ I HideTrackers
+ I Prev (CurrentPage, AcceptsFocus) Focus
+ I Current (Layer 3) PutOnStandardLayer
+ I Current Raise
+ I Current WarpToWindow 5 5
# ---------- Bar functions
RedefineFunc RaiseBarRaw
+ I All (gnome-panel) Layer 0 8
+ I All (Iconic) Layer 0 8
+ I BusyTime
RedefineFunc RaiseBar
+ I RaiseBarRaw
+ I All (gnome-panel) State 0 true
RedefineFunc FocusBar
+ I All (Iconic) Layer 0 2
+ I All ("Top Panel") Focus
+ I Deschedule 10
RedefineFunc LowerBarRaw
+ I All (Iconic) Layer 0 2
+ I All (gnome-panel) Layer 0 2
RedefineFunc LowerBar
+ I LowerBarRaw
+ I All (gnome-panel) State 0 false
RedefineFunc RaiseLowerBar
+ I All (gnome-panel, State 0) LowerBarRaw
+ I All (gnome-panel) State 0
+ I All (gnome-panel, State 0) RaiseBarRaw
RedefineFunc SuperPress
+ I All State 8 off
+ I RearrangeWindows
+ I NoWindow Schedule 50 Maintenance
+ I RaiseBar
+ I ShowPager 50 50
+ I All (FvwmPager) Move w-80p w-80p
#+ I Schedule 1000 PointerWindow (FvwmPager) ShowPager w+0 w+200p
+ I SuperTest
RedefineFunc ChangeFocus
+ I All (State 8) FlipFocus
+ I ThisWindow WindowListFunc
RedefineFunc RestoreFocus I Nop
RedefineFunc SaveFocus
+ I None (State 8) Current State 8 on
+ I RedefineFunc RestoreFocus I Current ChangeFocus
+ I $*
RedefineFunc SuperDepress
+ I LowerBar
+ I HidePager
+ I Deschedule 10
+ I RestoreFocus
+ I RedefineFunc RestoreFocus I Nop
+ I All State 8 off
RedefineFunc SuperTest
+ I NoWindow FakeKeypress depth 1 press F12
+ I Deschedule 10
+ I NoWindow Schedule 50 10 SuperTest
RedefineFunc BusyTime
+ I Deschedule 14 # taking snapshots
+ I NoWindow Schedule 10000 14 LongFocused
RedefineFunc LightMaintenance
+ I All (CurrentPage, Raised, !State 1, !Iconic, Layer 4, !XTermAuto, !FvwmNotify) CaptureWindow
# $0 = x, $1 = y $2 = size y
RedefineFunc HideTrackers
+ I All ("RoxTracker|Speedbar 1*") Layer 0 3
+ I All ("RoxTracker|Speedbar 1*") Lower
+ I All ("RoxTracker|Speedbar 1*") Myiconify
RedefineFunc ShowTracker
+ I Next ($0, CirculateHit, CirculateHitIcon) ShowTrackerReal $1 $2 $3
+ I Raise
+ I All State 9 off # tracked window
+ I ThisWindow State 9 on
RedefineFunc ShowTrackerReal
+ I OnDeiconify
+ I Iconify Off
+ I Raise
+ I ResizeMove keep $2p $0p $1p
+ I ThisWindow ("SpeedBar*") Resize 280p keep
+ I Layer 0 5
+ I Raise
RedefineFunc EdgeMaintenance
# + I PointerWindow ("Speedbar*") Nop
# + I TestRc (!Match) Any ("SpeedBar*", CurrentPage, !Iconic) HideSpeedbar
+ I All (!Iconic, !State 6, AcceptsFocus, Layer 2) PutOnStandardLayer
+ I All (!Iconic, !State 6, AcceptsFocus, Layer 8) PutOnStandardLayer
+ I All (Iconic) PlaceAgain Icon
+ I RearrangeWindows
+ I None (CurrentPage, Layer 4, !FvwmNotify, !Iconic) None (CurrentPage, Layer 3, !FvwmNotify, !Iconic) AutoDeiconify
RedefineFunc Maintenance
+ I EdgeMaintenance
RedefineFunc LongFocused
+ I Current (Layer 4) LowerBar
+ I HidePager
All (CurrentPage, Raised, !Iconic) CaptureWindow
+ I All (!Visible, CurrentPage, !Iconic, !Sticky, !Focused) AutoIconify
+ I RearrangeWindows
+ I BusyTime
RedefineFunc CaptureWindow
+ I Any ("Gtk Gaze Tracker*") Break
+ I ThisWindow State 1 true
+ I Exec nice -19 xwd -silent -id $[w.id] > $[FVWM_TEMP]/icon.tmp.$[w.id].xwd && nice -19 convert -scale 110 -frame 1x1 -mattecolor black -quality 0 xwd:$[FVWM_TEMP]/icon.tmp.$[w.id].xwd png:$[FVWM_TEMP]/icon.tmp.$[w.id].png && FvwmCommand "WindowId $[w.id] WindowStyle IconOverride, Icon $[FVWM_TEMP]/icon.tmp.$[w.id].png, StaysOnBottom"
# ---------- focus magic ----------
RedefineFunc EnsureFocus
+ I None (Focused, CurrentPage, !Iconic) Direction FromPointer Center (Layer 4, AcceptsFocus, CurrentPage, !Iconic) FlipFocus
+ I None (Focused, CurrentPage) Next (CurrentPage) FlipFocus
RedefineFunc IconOpenOrMove
+ M Move
+ C Deiconify
RedefineFunc IconClick
+ I Next (State 4) IfSuppressed RaiseLower
+ C IfNotSuppressed Deiconify
+ D Next (State 4) Raise
+ D Next (State 4) MyMaximize
+ M LowerBar
+ M Next (State 4) Raise
+ M Next (State 4) Move
RedefineFunc LowerIconWindowResize
+ I LowerBar
+ D Next (State 4) MyIconify
+ M Next (State 4) Raise
+ M WindowId root WarpToWindow $[pointer.x]p 100 # warp back to the
# edge to start resizing
+ M Next (State 4) Resize
+ H Next (State 4) Raise
+ H Next (State 4) Resize
# ---------- event functions
RedefineFunc OnEnter
+ I ThisWindow (gnome-panel) Deschedule 12
+ I ThisWindow (FvwmPager) Deschedule 12
+ I ThisWindow (Iconic) Deschedule 12
+ I ThisWindow (gnome-panel) RaiseBarRaw
+ I ThisWindow (Iconic) RaiseBarRaw
+ I ThisWindow (!gnome-panel, !FvwmPager, !Iconic) Schedule 500 12 SuperTest
# + I Deschedule 21
# + I ThisWindow (!FvwmPager) NoWindow Schedule 2000 21 PointerWindow (!FvwmPager, Layer 4) HidePager
+ I LightMaintenance
+ I BusyTime
+ I ThisWindow (State 9) Nop
+ I TestRc (!Match) Current (Layer 4, HasPointer) HideTrackers
+ I ThisWindow (!Iconic) All State 4 false
+ I ThisWindow (!Iconic) State 4 true
+ I Deschedule $[w.id]
+ I NoWindow Schedule 200 30 PreSetEdges
RedefineFunc QuarantineWindowAlways
+ I ThisWindow (opengazer) Break
+ I Layer 0 3
+ I WindowStyle MinOverlapPlacement
+ I Raise
RedefineFunc QuarantineWindow
+ I None (CurrentPage, Layer 3)
+ I TestRc (!Match) KeepRc All (CurrentPage, !Raised, !Focused, Layer 4) OnLeave
+ I TestRc (Match) ThisWindow (CurrentPage, !Maximized, !Raised, !Focused, Layer 4) QuarantineWindowAlways
# + I ThisWindow (CurrentPage, Maximized, !Raised, !Focused, Layer 4) CustomUnmaximize
RedefineFunc OnLeave
+ I ThisWindow (FvwmPager) NoWindow Schedule 200 21 PointerWindow (!FvwmPager) HidePager
+ I Deschedule $[w.id]
+ I Schedule 60000 $[w.id] QuarantineWindow
RedefineFunc NewPageFunction
+ I All (!Iconic, Layer 4, Sticky, !FvwmNotify) PlaceAgain
+ I All (!Iconic, Layer 3, Sticky, !FvwmNotify) PlaceAgain
+ I RearrangeWindows
+ I EnsureFocus
RedefineFunc AddToList
+ I Exec exec addtobuffer $[HOME]/myfiles/org/$0.org "$1"
+ I AddToListErr
RedefineFunc UserNewWindowFunction
+ I ThisWindow (RoxTracker) Resize 100p keep
+ I ThisWindow ("\*Remember\*") WindowListFunc
+ I ThisWindow ("Opening *") AddToList downloads "$[w.name]"
+ I ThisWindow ("Buddy List") MyIconify
+ I ThisWindow ("*Deer Park") Resize 62 65
+ I ThisWindow (opengazer) Layer 0 6
+ I ThisWindow ("Reminder") SwallowWindow
+ I ThisWindow ("*Firefox|*Iceweasel") ThisWindow (!"*Downloads") Resize 800p 800p
#+ I ThisWindow ("*Firefox Beta 2") ThisWindow (!"*Downloads") Resize 60 70
+ I ThisWindow ("*- Bon Echo*") ThisWindow (!"*Downloads") Resize 60 70
+ I ThisWindow ("Bon Echo Beta 2") ThisWindow (!"*Downloads") Resize 60 70
+ I ThisWindow (gnome-panel) Move keep w-1p
RedefineFunc NewWindowFunction
+ I ThisWindow (!FvwmNotify,!Transient) RedefineFunc MaybeQuit I Nop
+ I UserNewWindowFunction
+ I ThisWindow (FvwmNotify) AddNotification
+ I None (Focused, CurrentPage, !Iconic) WindowId $0 FlipFocus
RedefineFunc OnDestroyWindow
+ I AutoDeiconify
+ I MaybeQuit
RedefineFunc OnRaiseWindow
+ I ThisWindow (Focused, Layer 3) PutOnStandardLayer
RedefineFunc OnTitleChange
+ I ThisWindow ("NOTIFY*", Iconic) Exec exec $./utils/notify "Window: $[w.name]" orange "WindowId $[w.id] SelectWindowNoWarp"
# + I ThisWindow (Emacs, !Overlapped) ThisWindow (!"Speedbar*") \
# Exec exec $[FVWM_USERDIR]/scripts/rox-tracker $[ROXID] \
# `gnuclient -batch -eval "(let ((filename (buffer-file-name))) \
# (and filename (file-name-directory filename)))"`
+ I ThisWindow (xterm, !Overlapped) \
Exec exec $[FVWM_USERDIR]/scripts/rox-tracker $[ROXID] $[w.name]
# + I ThisWindow (RoxTracker) \
# Exec exec echo $[w.name] | sed 's/ (.*//' > $[HOME]/trackdir
# ---------- autopositioning ----------
RedefineFunc RearrangeWindows
+ I None (CurrentPage, !Iconic, Transient) \
None (CurrentPage, !Iconic, State 6) \
Current (Raised, !State 6, !Iconic) RearrangeWindowsAlways
RedefineFunc RearrangeWindowsAlways
# + I All (!State 6, Maximized, CurrentPage, Overlapped, !Iconic, !Focused, !Transient, Layer 4) PlaceAgain
# + I All (!State 6, !Maximized, CurrentPage, Overlapped, !Iconic, !Focused, Layer 4, !Transient) PlaceAgain
+ I All (CurrentPage, !State 6, !Transient, !Visible, !Iconic, Layer 4) PlaceAgain
# + I All (!State 6, Maximized, CurrentPage, !Raised, !Iconic, !Focused, !Transient, Layer 3) PlaceAgain
# + I All (!State 6, !Maximized, CurrentPage, !Raised, !Iconic, !Focused, Layer 3, !Transient) PlaceAgain
+ I All (CurrentPage, !State 6, !Transient, !Visible, !Iconic, Layer 3) PlaceAgain
#+ I NoWindow Schedule 1000 All (!Visible, CurrentPage, !Iconic, !Sticky, !Focused) AutoIconify
RedefineFunc PlaceAgainAll
+ I All (Visible, CurrentPage, !Iconic, !gnome-panel, Layer 4, !FvwmNotify) PlaceAgain
+ I All (Visible, CurrentPage, !Iconic, !gnome-panel, Layer 3, !FvwmNotify) PlaceAgain
RedefineFunc MoveToPageAndPlaceAgain
+ I MoveToPage $*
+ I EnsureFocus
+ C Raise # (C)lick prevents the pager from
# receiving the key depress event and
# going to that page
# ---------- application specific ----------
RedefineFunc RemoteShell
+ I Exec exec xterm -ai -geometry 80x30 -bg rgb:e8/e8/e8 -T "$*" -e ssh -X $*
RedefineFunc OpenFvwmConsole
+ I OpenOrExec FvwmConsole "Module FvwmConsole -terminal xterm -g 80x20 -fg black -bg white"
RedefineFunc OpenBrowser
+ I OpenOrExec "Firefox-bin" \
"Exec $[FVWM_BROWSER] -remote 'openURL(about:blank, new-window)' || \
exec $[FVWM_BROWSER]"
RedefineFunc XTermFunction
+ I InCurrentDirectory exec xterm -geometry 80x30
RedefineFunc OpenFile
+ I InCurrentDirectory if [ -d $* ] ; \
then exec $[FVWM_FILEMANAGER] $* ; \
else exec $[FVWM_OPENER] $* ; fi
# ------------------ edge commands: schedule 30 - nop, 31 - normal
RedefineFunc ShowSpeedbarTracker
#+ I WindowId $[TRACKEDID] (!Focused)
+ I ThisWindow (!State 9) Exec gnuclient -batch -f local-speedbar-reattach-to-current-frame
+ I ShowTracker "*SPEEDBAR|Speedbar*" $0$[w.width] $[w.y] $[cw.height]
RedefineFunc ShowRoxTracker
+ I Exec exec $[FVWM_USERDIR]/scripts/rox-tracker $[ROXID] $[w.name]
+ I ShowTracker "RoxTracker" $0$[w.width] $[w.y] $[cw.height]
# RedefineFunc ShowEmacsRoxTracker
# + I Exec exec $[FVWM_USERDIR]/scripts/rox-tracker $[ROXID] \
# `gnuclient -batch -eval "(let ((filename (buffer-file-name))) \
# (and filename (file-name-directory filename)))"`
# + I ShowTracker "RoxTracker" $0$[w.width] $[w.y] $[cw.height]
RedefineFunc EdgeFunctionLeft
+ I EdgeFunction $*
+ I Current (Emacs, !Overlapped) ThisWindow (!"Speedbar*") ShowSpeedbarTracker
#+ I None ("*SPEEDBAR|Speedbar*", CirculateHit) Current (Emacs, !Overlapped) ShowEmacsRoxTracker
+ I Current (xterm, !Overlapped) ShowRoxTracker
RedefineFunc EdgeFunctionRight
+ I EdgeFunction $*
+ I Current (Emacs, !Overlapped) ThisWindow (!"Speedbar*") ShowSpeedbarTracker -
+ I None ("*SPEEDBAR|Speedbar*", CurrentPage, CirculateHit) Current (Emacs, !Overlapped) ShowEmacsRoxTracker -
+ I Current (xterm, !Overlapped) ShowRoxTracker -
RedefineFunc EdgeFunction
+ I Deschedule 30
+ I Deschedule 31
+ I NoWindow Schedule 200 30 PreSetEdges
+ I EdgeClear
+ I EdgeMaintenance
+ I RearrangeWindows
+ I $*
RedefineFunc SetEdges
+ I Deschedule 30
+ I Deschedule 31
+ I EdgeCommand South EdgeFunction EdgeBar
+ I EdgeCommand North EdgeFunction ShowPager m-80p m40p
+ I EdgeCommand West EdgeFunctionLeft ShowPager m40p m-80p
+ I EdgeCommand East EdgeFunctionRight ShowPager m-200p m-80p
SetEdges
RedefineFunc EdgeClear
+ I EdgeCommand South
+ I EdgeCommand North
+ I EdgeCommand West
+ I EdgeCommand East
RedefineFunc PreSetEdges
+ I Deschedule 30
+ I Deschedule 31
# + I PointerWindow (Iconic) NoWindow Schedule 200 30 PreSetEdges
# + I TestRc (Match) Break
+ I EdgeCommand South EdgeFunction Nop
+ I EdgeCommand North EdgeFunction Nop
+ I EdgeCommand West EdgeFunctionLeft Nop
+ I EdgeCommand East EdgeFunctionRight Nop
+ I NoWindow Schedule 200 31 SetEdges
RedefineFunc EdgeBar
+ I Deschedule 12
+ I PointerWindow OnEnter
+ I TempSuppress 200
+ I RaiseBarRaw
# ---------- pager ----------
RedefineFunc HidePager
+ I All (FvwmPager) Hide
+ I All (FvwmPager) Layer 0 2
RedefineFunc SchedulePager
+ I Deschedule 21
+ I NoWindow Schedule 2000 21 PointerWindow (!FvwmPager) HidePager
RedefineFunc RaisePager
+ I All (FvwmPager) Layer 0 8
+ I SchedulePager
+ I BusyTime
RedefineFunc ShowPager
+ I All (FvwmPager) Move $0 $1
+ I RaisePager
RedefineFunc HideShowPager
+ I HidePager
+ I ShowPager $0 $1
# ---------- notificiations (rewrite to use layers 3 and 5) ----------
RedefineFunc LeftClickNotification
+ I Any (FvwmNotify, Overlapped) All (FvwmNotify) Raise
+ I TestRc (NoMatch) HideNotifications
RedefineFunc NotificationDown
+ I Move keep w+102p
+ I Direction North (FvwmNotify) NotificationDown
RedefineFunc RemoveNotification
+ I NotificationDown
+ I Close
RedefineFunc AddNotification
+ I Beep
+ I All (FvwmNotify) Move keep w-102p
+ I Move -0 -0
+ I Raise
RedefineFunc ActivateNotification
+ I All (FvwmNotify, !Overlapped) State 31 true
+ I $[w.name]
+ I All (FvwmNotify, State 31) Raise
+ I All (FvwmNotify) State 31 false
RedefineFunc ActivateAndRemoveNotification
+ I ActivateNotification
+ I RemoveNotification
RedefineFunc ShowNotifications
+ I All (FvwmNotify) Raise
+ I All (FvwmNotify, !Visible) AddNotification
RedefineFunc HideNotifications
#+ I All (FvwmNotify) Layer 0 4
+ I All (FvwmNotify) Lower
RedefineFunc SwallowWindow
+ I Lower
+ I Exec exec $./utils/notify "Swallowed: $[w.name]" orange "WindowId $[w.id] SelectWindowNoWarp"
# ---------- quit (rewrite) ----------
RedefineFunc ConditionalQuitNow
+ I None (Iconic) None (Layer 4, !FvwmNotify) None (Iconic) None (Layer 3, !FvwmNotify) Quit
RedefineFunc MaybeQuit I Nop
RedefineFunc ConditionalQuit
+ I All (Iconic) Close
+ I All (Layer 4) Close
+ I All (Layer 3) Close
+ I RedefineFunc MaybeQuit I ConditionalQuitNow
+ I MaybeQuit
# + I NoWindow Schedule 500 ConditionalQuitNow
# + I NoWindow Schedule 1000 ConditionalQuitNow
# + I NoWindow Schedule 2000 ConditionalQuitNow
#change it to include raising invisible windows
#
# ========== BINDINGS ==========
#
# ---------- Mouse ----------
# root
Mouse (FvwmNotify) 1 W N ActivateAndRemoveNotification
Mouse (FvwmNotify) 1 TSF N LeftClickNotification
Mouse (FvwmNotify) 1 W 2 LeftClickNotification
Mouse (FvwmNotify) 2 W N ActivateNotification
Mouse (FvwmPager) 2 W N PipeRead "echo Current MoveToPageAndPlaceAgain $(expr $[pointer.wx] \\* 2 / $[w.width]) $(expr $[pointer.wy] \\* 2 / $[w.height])"
Mouse (FvwmNotify) 3 W N RemoveNotification
Mouse (FvwmPager) 3 W N HidePager
# Mouse (gnome-panel) 3 TSF N Menu RootMenu
# Mouse (gnome-panel) 3 W N LowerBar
# window handling
Mouse 1 R A LeftClickRoot
Mouse 1 TS A LeftClick
Mouse 1 F A CornerLeftClick
Mouse 1 W 2 SuperLeftClick
Mouse 1 I A IconClick
Mouse 1 I 2 IconOpenOrMove
Mouse 2 RF A PlaceAgainAll
Mouse 2 TS A PlaceAgain
Mouse 2 W 2 PlaceAgain
Mouse 3 TS A RightClick RootMenu IconifyPointer
Mouse 3 F A RightClick RootMenu ClosePointer
Mouse 3 R A RightClickRoot RootMenu IconifyPointer
Mouse 3 W 2 RightClick RootMenu IconifyPointer
Mouse 3 I A LowerIconWindowResize
Mouse 4 RTSF N Scroll 0 -100
Mouse 5 RTSF N Scroll 0 +100
Mouse 4 A 2 Scroll 0 -100
Mouse 5 A 2 Scroll 0 +100
# maximize button (rewrite)
Mouse 1 4 A VerticalMaximize
Mouse 2 4 A HorizontalMaximize
Mouse 3 4 A BothMaximize
Mouse 1 W 2S VerticalMaximize
Mouse 2 W 2S HorizontalMaximize
Mouse 3 W 2S BothMaximize
# other buttons
Mouse 1 6 A MyIconify
Mouse 1 2 A Delete
Mouse 1 1 A Menu WindowMenu
# ---------- keyboard ----------
Key Tab A M -
# Super + arrow keys switch pages
Key Left A 2 Scroll -100 0
Key Right A 2 Scroll +100 0
Key Up A 2 Scroll 0 -100
Key Down A 2 Scroll 0 +100
Key Left A 2S MoveAndFollow 0 w0
Key Right A 2S MoveAndFollow -0 w0
Key Up A 2S MoveAndFollow w0 0
Key Down A 2S MoveAndFollow w0 -0
Key KP_Home A 2 MoveAndFollow 0 0
Key KP_End A 2 MoveAndFollow 0 -0
Key KP_Prior A 2 MoveAndFollow -0 0
Key KP_Next A 2 MoveAndFollow -0 -0
Key KP_Up A 2 MoveAndFollow w0 0
Key KP_Down A 2 MoveAndFollow w0 -0
Key KP_Right A 2 MoveAndFollow -0 w0
Key KP_Left A 2 MoveAndFollow 0 w0
# Super + Control + arrow keys move the window to another page
Key Left A 2C PointerWindow (AcceptsFocus) GotoAndFollow -1p 0p
Key Right A 2C PointerWindow (AcceptsFocus) GotoAndFollow +1p 0p
Key Up A 2C PointerWindow (AcceptsFocus) GotoAndFollow 0p -1p
Key Down A 2C PointerWindow (AcceptsFocus) GotoAndFollow 0p +1p
# left hand binding (edit-mode and typing-mode)
Key Super_L A A SuperPress
Key 1 WFST 2 PlaceAgain
Key grave A 2 Current RaiseLower
Key Escape A 2 Popup RootMenu
Key Tab A 2 WindowList (CurrentPage) Root c c CurrentAtEnd, IconifiedAtEnd, SelectOnRelease Super_L
Key space A 2 RaiseLower
Key L A 2 FocusBar
Key Control_R A 2 FocusBar
# rewrite maximization ...
Key End A 2 MyMaximize
Key Delete A 2 CustomFullMaximize 100 100
Key Next A 2 CustomFullMaximize 100 0
Key End A 2S VerticalGrow
Key Delete A 2S BothGrow
Key Next A 2S HorizontalGrow
Key Return A 2 MyIconify
# Lock after Ctrl+Alt+Del
Key Delete A CM Exec exec xlock -mode random
# Fake keys to handle Super press / release (do not remove)
Key F12 A 2 Nop
Key F12 A 2C Nop
Key F12 A 2M Nop
Key F12 A 2S Nop
Key F12 A N SuperDepress
Key F12 A C SuperDepress
Key F12 A M SuperDepress
# Applications
Key m A 2 Menu KeybRootMenu
Key w A 2 Menu WindowMenu
Read $[FVWM_USERDIR]/qwerty.fvwm
#
# ========== MENUS ==========
#
# ---------- Root Menu ----------
DestroyMenu RootMenu
AddToMenu RootMenu
+ DynamicPopupAction HidePager
+ "Root Menu%gnome-status%" Popup RecentMenu
+ "" Nop
+ "&Terminal%gnome-terminal%" XTermFunction
+ "&Emacs%text-editor%" OpenOrExec emacs "InCurrentDirectory exec $./utils/emacs-window-dir"
+ "&Web Browser%icons/24x24-firefox.png%" OpenBrowser
+ "&File Manager%gdm%" \
OpenOrExec $[FVWM_FILEMANAGER] "InCurrentDirectory exec $[FVWM_FILEMANAGER] ."
+ "Beagle &Search%image-viewer%" Exec exec beagle-search
+ "" Nop
+ "Open File%gnome-searchtool%" OpenFile `xclip -o`
+ "Fvwm&Console%gnome-terminal%" OpenFvwmConsole
+ "&Windows%gnome-window-manager%" Popup WindowMenu
+ "" Nop
+ "Re&start FVWM%actions/stock_refresh%" Restart
+ "Quit%gnome-logout%" Exec zenity --question --title=Quit? "--text=Do you really want to quit?" && exec FvwmCommand ConditionalQuit
# ---------- Keyboard Root Menu (after pressing Super-M) ----------
DestroyMenu KeybRootMenu
AddToMenu KeybRootMenu
+ DynamicPopupAction HidePager
+ "Keyboard Root Menu%gnome-status%" Title
+ "x&term%gnome-terminal%" XTermFunction
+ "&Emacs%text-editor%" InCurrentDirectory exec $./utils/emacs-window-dir
+ "&File Manager%gdm%" \
OpenOrExec rox "InCurrentDirectory exec [FVWM_FILEMANAGER]"
+ "&Web Browser%24x24-firefox.png" OpenBrowser
+ "Beagle &Search%image-viewer%" Exec exec beagle-search
+ "" Nop
+ "&Reflect X" AndWarp All (CurrentPage, Layer 4) Move -$[w.x]p keep
# ---------- Recently visited directories Menu ----------
DestroyMenu RecentDirMenu
AddToMenu RecentDirMenu
+ "Recent Dirs%gnome-status%" Popup /Applications
+ "" Nop
PipeRead "$[FVWM_USERDIR]/scripts/build-recentdir-menu --separator --exec 'OpenFile \"%s/\"' gnome-favorites gnome-globe gnome-monitor shares evolution-mail gnome-eyes"
# ---------- Recently used applications Menu ----------
DestroyMenu RecentMenu
AddToMenu RecentMenu
+ DynamicPopupAction RecreateMenu RecentMenu true
+ "Recent Applications%gnome-status%" Popup RecentDirMenu
+ "" Nop
PipeRead "head -n 8 $[FVWM_USERDIR]/recent.menu"
+ "" Nop
+ "Remind in 5 min%gnome-panel-clock%" Exec exec $[FVWM_USERDIR]/utils/remindin 5m "5 minutes"
+ "Remind in 10 min%gnome-panel-clock%" Exec exec $[FVWM_USERDIR]/utils/remindin 10m "10 minutes"
+ "Remind in 15 min%gnome-panel-clock%" Exec exec $[FVWM_USERDIR]/utils/remindin 15m "15 minutes"
+ "Remind in 30 min%gnome-panel-clock%" Exec exec $[FVWM_USERDIR]/utils/remindin 30m "30 minutes"
+ "Remind in 60 min%gnome-panel-clock%" Exec exec $[FVWM_USERDIR]/utils/remindin 60m "60 minutes"
+ "" Nop
# ---------- Applications Menu ----------
RedefineFunc UpdateMenu
+ I AddToMenu $0 "Update in progress ...%gnome-status%" Beep
+ I Exec $1; FvwmCommand "RecreateMenu $0 true"
DestroyMenu /Applications
AddToMenu /Applications
+ "Applications%gnome-status%" Popup RemoteMenu
+ "" Nop
+ "Preferences%gnome-settings%" Popup "Preferences"
+ "Administration%gnome-settings%" Popup "Administration"
Read $./app.menu
AddToMenu /Applications
+ "" Nop
+ "Update%stock_refresh%" UpdateMenu /Applications "$[FVWM_USERDIR]/scripts/build-xdg-menu --force --exec 'Recent InCurrentDirectory exec' > $[FVWM_USERDIR]/app.menu"
# ---------- Remote connections Menu ----------
DestroyMenu RemoteMenu
AddToMenu RemoteMenu
+ "Remote hosts%gnome-status%" Title
PipeRead "$[FVWM_USERDIR]/scripts/build-remote-menu gnome-terminal gnome-netstatus-rx | tee $./remote.menu"
+ "" Nop
+ "something.example.org%gnome-terminal%" Recent RemoteShell something.example.org
+ "other.example.com%gnome-terminal%" Recent RemoteShell other.example.com
# ---------- Window Menu ----------
DestroyMenu WindowMenu
AddToMenu WindowMenu
+ "Window Menu%gnome-status%" Title
+ "Fvwm&Console%mini.xterm.xpm%" OpenFvwmConsole
+ "Reflect X" All (CurrentPage, Layer 4) Move -$[w.x]p keep
+ "Re&display All%mini.ray.xpm%" Refresh
+ "Move to screen" All MoveToScreen
+ "" Nop
+ "I&dentify%mini.question.xpm%" Module FvwmIdent
+ "Switch Root" SwitchDecor
+ "&Standard Layer%mini.gball.xpm%" PutOnStandardLayer
+ "&Capture Icon%mini.gball.xpm%" CaptureWindow
+ "&Iconify%mini.gball.xpm%" MyIconify
+ "" Nop
+ "&Move%mini.move.xpm%" Function LeftClick
+ "&Resize%mini.resize.xpm%" Function RightClick
+ "R&aise%mini.raise.xpm%" Raise
+ "&Lower%mini.lower.xpm%" Lower
+ "Stick%mini.hammer.xpm%" Stick
+ "Shade%mini.shade1.xpm%" WindowShade
+ "Ma&ximize%mini.maximize-vert.xpm" Popup MaximizeMenu
+ "Tab%mini.windowshade.xpm%" Function SelectTabber
+ "" Nop
+ "Kill%mini.bomb.xpm%" Destroy
+ "&Close%mini.cross.xpm%" Delete
+ "Re&start%mini.turn.xpm%" Restart
DestroyMenu MaximizeMenu
AddToMenu MaximizeMenu
+ "Vertically" Maximize 0 100
+ "Horizontally" Maximize 100 0
+ "Full screen" Maximize 100 100
+ "" Nop
+ "Vertically (non-obstructive)" VerticalGrow
+ "Horizontally (non-obstructive)" HorizontalGrow
+ "Full (non-obstructive)" BothGrow
#
# ========== MODULES ==========
#
# ---------- FvwmIdent ----------
DestroyModuleConfig FvwmIdent: *
# ---------- FvwmPager ----------
DestroyModuleConfig FvwmPager: *
*FvwmPager: Colorset * 20
*FvwmPager: HilightColorset * 21
*FvwmPager: WindowColorsets 24 23
*FvwmPager: BalloonColorset * 24
*FvwmPager: Font none
*FvwmPager: SmallFont 5x8
*FvwmPager: Balloons All
*FvwmPager: BalloonYOffset +2
*FvwmPager: BalloonBorderWidth 2
*FvwmPager: UseSkipList
*FvwmPager: MoveThreshold 3
*FvwmPager: WindowLabelFormat "%i"
*FvwmPager: WindowBorderWidth 1
*FvwmPager: MiniIcons
*FvwmPager: NoShapeLabels
*FvwmPager: NoSeparators
*FvwmPager: Geometry 80x80+180-0
*FvwmPager: Rows 1
*FvwmPager: Columns 1
# ---------- BaseButtons ----------
DestroyModuleConfig BaseButtons: *
*BaseButtons: Back black
*BaseButtons: Frame 0
*BaseButtons: Padding 0 0
*BaseButtons: Rows 2
*BaseButtons: Columns 3
*BaseButtons: BoxSize smart
*BaseButtons: ButtonGeometry 90x90+2-2
*BaseButtons: (1x1+0-0, Swallow (UseOld, NoClose) xload Nop)
*BaseButtons: (1x1+0+0, Swallow (UseOld, NoClose) xclock Nop)
*BaseButtons: (2x2+1+0, Swallow (UseOld, NoClose) FvwmPager Nop)
# ---------- FvwmWinList module ----------
DestroyModuleConfig FvwmWinList
*FvwmWinList: Back #c0c0c0
*FvwmWinList: Fore Black
*FvwmWinList: Font -adobe-helvetica-bold-r-*-*-10-*-*-*-*-*-*-*
*FvwmWinList: Action Click1 Iconify -1,Focus
*FvwmWinList: Action Click2 MyIconify
*FvwmWinList: Action Click3 Module "FvwmIdent" FvwmIdent
*FvwmWinList: UseSkipList
*FvwmWinList: Geometry +0-1
*FvwmWinList: ShowCurrentDesk
DestroyModuleConfig FvwmProxy
*FvwmProxy: Action Click1 RaiseLower
*FvwmProxy: Font xft:Verdana:pixelsize=12
DestroyModuleConfig FvwmEvent
*FvwmEvent: Cmd Function
*FvwmEvent: PassId Function
*FvwmEvent: new_page NewPageFunction
*FvwmEvent: add_window NewWindowFunction
*FvwmEvent: deiconify OnDeiconify
*FvwmEvent: window_name OnTitleChange
*FvwmEvent: icon_name OnTitleChange
*FvwmEvent: raise_window OnRaiseWindow
*FvwmEvent: destroy_window OnDestroyWindow
Read $./user.fvwm