Module Module-Name [Alias] [Parameter] *ModuleNameOption [value] *AliasOption [value]
*FvwmAnimateColor color, or none *FvwmAnimateDelay msecs *FvwmAnimateIterations iterations *FvwmAnimateTwist twist *FvwmAnimateWidth width, default: 0 *FvwmAnimateEffect mode mode: Frame, Lines, Flip, Turn, Zoom3D, Twist Random, None *FvwmAnimateStop *FvwmAnimateSave
*FvwmAudioPlayCmd /usr/bin/X11/demos/auplay, or builtin-rplay *FvwmAudioDir /usr/lib/sounds *FvwmAudioDelay 5, default 0 *FvwmAudioRplayHost hostname *FvwmAudioRplayPriority 0 *FvwmAudioRplayVolume 127 *FvwmAudio window-manager-action audio-filename defaults: *FvwmAudio startup TaDa.au *FvwmAudio shutdown Elvis_Left.au *FvwmAudio unknown doh.au *FvwmAudio add_window drip.au *FvwmAudio raise_window swoosh.au *FvwmAudio lower_window swoosh.au *FvwmAudio focus_change boing.au *FvwmAudio destroy_window explosion.au *FvwmAudio iconify ploop.au *FvwmAudio deiconify ploop.au *FvwmAudio toggle_paging fwop.au *FvwmAudio new_page beam_trek.au *FvwmAudio new_desk beam_trek.au *FvwmAudio configure_window huh.au *FvwmAudio window_name beep.au *FvwmAudio icon_name beep.au *FvwmAudio res_class beep.au *FvwmAudio res_name beep.au *FvwmAudio end_windowlist twang.au
*FvwmBackerDesk DeskNumber command, or -solid color
*FvwmBackerDesk 2 -solid yellow *FvwmBackerDesk 3 Exec xpmroot /usr/include/X11/pixmaps/background.xpm
*FvwmBannerPixmap file *FvwmBannerTimeout sec, default 3
*FvwmButtonsBack color *FvwmButtonsBoxSize algorithm algorithm: dump, fixed, smart *FvwmButtonsColumns columns *FvwmButtonsFile filename *FvwmButtonsFont font *FvwmButtonsFore color *FvwmButtonsFrame width *FvwmButtonsGeometry geometry *FvwmButtonsPadding width height *FvwmButtonsPanel title *FvwmButtonsPixmap pixmapfile *FvwmButtonsRows rows *FvwmButtons(options) [title icon command] options: geometry (width x hight + x + y) Action [(Mouse n)] command Back color Center, Left, Right Container [(options)] options: Back color Font font Fore color Frame width Padding width height Title(flags) Swallow(flags) Columns n Rows n End Font fontname Fore color Frame width Icon file Left NoSize Padding width height Panel [(direction)] name direction: up (default), left, down, right Right Size width height Swallow [(flags)] name-to-match command flags: NoClose/Close (default) NoHints/Hints (default) Kill/NoKill (default) Respawn/NoRespawn (default) UseOld/NoOld (default) UseTitle/NoTitle (default) Title [(options)] name options: Center, Left, Right, Side Legacy fields [title icon command] title: see Title, or - icon: see Icon, or - command: see command command: Exec [name-to-match] command
*FvwmButtons(Swallow XClock 'Exec xclock &') *FvwmButtons(Swallow "FvwmPager" "FvwmPager 0 0") *FvwmButtons(Swallow (UseOld) "Console" Nop, Action `Exec "Console" console &`) *FvwmButtons(Swallow "xload" `Exec xload -bg gray60 &`) # Make sure FvwmButtons is always there AddToFunc InitFunction "I" Module FvwmButtons AddToFunc RestartFunction "I" Module FvwmButtons # Make it titlebar-less, sticky, and give it an icon Style "FvwmButtons" Icon toolbox.xpm, NoTitle, Sticky # Make the menu/panel look like CDE Style "FvwmButtonsPanel" Title, NoHandles, BorderWidth 0 Style "FvwmButtonsPanel" NoButton 2, NoButton 4, Sticky *FvwmButtonsFore Black *FvwmButtonsBack rgb:90/80/90 *FvwmButtonsGeometry -135-5 *FvwmButtonsRows 1 *FvwmButtonsBoxSize smart *FvwmButtonsFont -*-helvetica-medium-r-*-*-12-* *FvwmButtonsPadding 2 2 *FvwmButtons(Title WinOps,Panel WinOps) *FvwmButtons(Title Tools ,Panel Tools) *FvwmButtons(Title Resize,Icon resize.xpm ,Action Resize) *FvwmButtons(Title Move ,Icon arrows2.xpm,Action Move ) *FvwmButtons(Title Lower ,Icon Down ,Action Lower ) *FvwmButtons(Title Raise ,Icon Up ,Action Raise ) *FvwmButtons(Title Kill ,Icon bomb.xpm ,Action Destroy) *FvwmButtons(1x1,Container(Rows 3,Frame 1)) *FvwmButtons(Title Dopey ,Action \ `Exec "big_win" xterm -T big_win -geometry 80x50 &`) *FvwmButtons(Title Snoopy, Font fixed, Action \ `Exec "small_win" xterm -T small_win &`) *FvwmButtons(Title Smokin') *FvwmButtons(End) *FvwmButtons(Title Xcalc, Icon rcalc.xpm, \ Action `Exec "Calculator" xcalc &`) *FvwmButtons(Title XMag, Icon magnifying_glass2.xpm, \ Action `Exec "xmag" xmag &`) *FvwmButtons(Title Mail, Icon mail2.xpm, \ Action `Exec "xmh" xmh &`) *FvwmButtons(4x1, Swallow "FvwmPager" `FvwmPager 0 3` \ Frame 3) *FvwmButtons(Swallow(UseOld,NoKill) "xload15" `Exec xload \ -title xload15 -nolabel -bg rgb:90/80/90 -update 15 &`) The last lines are a little tricky - one spawns an FvwmPager module, and captures it to display in a quadruple width but- ton. is used, the Pager will be as big as possible within the button's relief The final line is even more magic. Note the combination of UseOld and NoKill, which will try to swallow an existing window with the name "xload15" when starting up (if failing: starting one with the specified command), which is unswal- lowed when ending FvwmButtons The other panels are specified after the root panel: *FvwmButtonsPanel WinOps *FvwmButtonsBack bisque2 *FvwmButtonsGeometry -3-3 *FvwmButtonsColumns 1 *FvwmButtons(Title Resize,Icon resize.xpm ,Action Resize) *FvwmButtons(Title Move ,Icon arrows2.xpm,Action Move ) *FvwmButtons(Title Lower ,Icon Down ,Action Lower ) *FvwmButtons(Title Raise ,Icon Up ,Action Raise ) *FvwmButtonsPanel Tools *FvwmButtonsBack bisque2 *FvwmButtonsGeometry -1-1 *FvwmButtonsColumns 1 *FvwmButtons(Title Kill ,Icon bomb.xpm ,Action Destroy) The color specification rgb:90/80/90 is actually the most correct way of specifying independent colors in X, and should be used instead of the older #908090. If the latter specification is used in your configuration file, you should be sure to escape the hash in any of the commands which will be executed, or fvwm will consider the rest of the line a comment Note that with the x/y geometry specs you can easily build button windows with gaps. Here is another example. You can not accomplish this without geometry specs for the buttons: # Make it titlebar-less, sticky, and give it an icon Style "FvwmButtons" Icon toolbox.xpm, NoTitle, Sticky *FvwmButtonsFont 5x7 *FvwmButtonsBack rgb:90/80/90 *FvwmButtonsFore black *FvwmButtonsFrame 1 # 9x11 pixels per button, 4x4 pixels for the frame *FvwmButtonsGeometry 580x59+0-0 *FvwmButtonsRows 5 *FvwmButtonsColumns 64 *FvwmButtonsBoxSize fixed *FvwmButtonsPadding 1 1 # Menu Popups *FvwmButtons(9x1+3+0, Padding 0, Title "Modules", \ Action `Menu Modulepopup mouse c -8p Nop`) # first row of buttons from left to right: *FvwmButtons(3x2+0+1, Icon my_lock.xpm, Action `Exec xlock`) *FvwmButtons(3x2+3+1, Icon my_recapture.xpm, Action Recapture) *FvwmButtons(3x2+6+1, Icon my_resize.xpm, Action Resize) *FvwmButtons(3x2+9+1, Icon my_move.xpm, Action Move) *FvwmButtons(3x2+12+1, Icon my_fvwmconsole.xpm, \ Action 'Module FvwmConsole') # second row of buttons from left to right: *FvwmButtons(3x2+0+3, Icon my_exit.xpm, Action QuitSave) *FvwmButtons(3x2+3+3, Icon my_restart.xpm, Action Restart) *FvwmButtons(3x2+6+3, Icon my_kill.xpm, Action Destroy) *FvwmButtons(3x2+9+3, Icon my_shell.xpm, Action 'Exec rxvt') # big items *FvwmButtons(10x5, Swallow (NoKill, NoCLose) \ "FvwmPager" 'FvwmPager * * -geometry 40x40-1024-1024') *FvwmButtons(6x5, Swallow "FvwmXclock" `Exec xclock \ -name FvwmXclock -geometry 40x40+0-0 -padding 1 \ -analog -chime -bg rgb:90/80/90`) *FvwmButtons(13x5, Left, Swallow (NoClose) \ "FvwmIconMan" 'Module FvwmIconMan') *FvwmButtons(20x5, Padding 0, Swallow "xosview" \ `Exec /usr/X11R6/bin/xosview -cpu -int -page -net \ -geometry 100x50+0-0 -font 5x7`)
FvwmCommand lets you monitor fvwm2 transaction and issue fvwm2 command from a shell command line or scripts.
arguments -F level: 0, 2 -f name: name of FIFO -i level: 0, 1, 2, 3 -m: monitor -r: wait for reply -s name: name of server -w micro-seconds -v: version
. FvwmCommand.sh DesktopSize 5x5FvwmCommand.pm is for perl in order to keep the syntax similar to fvwm2 configuration file. Commas can be used to separate Fvwm2 commands' arguments.
use FvwmCommand; if( $ARGV[0] eq 'home' ) { Desk 0,0; GotoPage '1 1'; }elsif( $ARGV[0] eq 'jump' ) { Desk "0 2"; GotoPage 0, 1; }Although arguments in FvwmCommand are not case sensitive as fvwm2, the functions defined in FvwmCommand.sh and FvwmCommand.pl are case sensitive.
Module FvwmConsole -g 40x10 -fg black -bg green3 Module FvwmConsole -e /usr/X11/lib/fvwm2/FvwmConsoleC.pl
FvwmCpp can be invoked by inserting the line 'FvwmCpp' in the .fvwm2rc file. It can also be called from a menu or mouse binding. If the user wants his entire .fvwm2rc file pre-processed with FvwmCpp, then fvwm should be invoked as:
fvwm2 -cmd "FvwmCpp .fvwm2rc" Some options can be specified on the command line: -cppopt option Lets you pass an option to the cpp program. Not really needed as any unknown options will be passed on automatically. -cppprog name Instead of invoking "/usr/lib/cpp", fvwm will invoke name. -outfile filename Instead of creating a random unique name for the temporary file for the preprocessed rc file, this option will let you specify the name of the temporary file it will create. -debug Causes the temporary file create by Cpp to be retained. This file is usually called "/tmp/fvwmrcXXXXXX" FvwmCpp defines some values for use in the pre-processor file: TWM_TYPE Always set to "fvwm". SERVERHOST The name of the machine running the X Server. CLIENTHOST The name of the machine running fvwm. HOSTNAME The hostname of the machine running fvwm. Generally the same as CLIENTHOST. OSTYPE The operating system for CLIENTHOST. USER The name of the person running fvwm. VERSION The X11 version. REVISION The X11 revision number. VENDOR The X server vendor. RELEASE The X server release number. WIDTH The screen width in pixels. HEIGHT The screen height in pixels. X_RESOLUTION Some distance/pixel measurement for the horizontal direction, I think. Y_RESOLUTION Some distance/pixel measurement for the vertical direction, I think. PLANES Number of color planes for the X server display BITS_PER_RGB Number of bits in each rgb triplet. CLASS The X11 visual class, ie PsuedoColor. COLOR Yes or No, Yes if the display class is neither StaticGrey or GreyScale. FVWM_VERSION The fvwm version number, ie 2.0 OPTIONS Some combination of SHAPE, XPM, NO_SAVEUNDERS, and Cpp, as defined in configure.h at compile time. FVWM_MODULEDIR The directory where fvwm looks for .fvwmrc and modules by default, as determined at compile time. EXAMPLE PROLOG #define TWM_TYPE fvwm #define SERVERHOST spx20 #define CLIENTHOST grumpy #define HOSTNAME grumpy #define OSTYPE SunOS #define USER nation #define HOME /local/homes/dsp/nation #define VERSION 11 #define REVISION 0 #define VENDOR HDS human designed systems, inc. (2.1.2-D) #define RELEASE 4 #define WIDTH 1280 #define HEIGHT 1024 #define X_RESOLUTION 3938 #define Y_RESOLUTION 3938 #define PLANES 8 #define BITS_PER_RGB 8 #define CLASS PseudoColor #define COLOR Yes #define FVWM_VERSION 2.0 pl 1 #define OPTIONS SHAPE XPM Cpp #define FVWM_MODULEDIR /local/homes/dsp/nation/modules
*FvwmEventCmd command, or builtin-rplay command: fvwm-function exec external-command *FvwmEventDelay 5 *FvwmEventRplayHost hostname *FvwmEventRplayPriority 0 *FvwmEventRplayVolume 127 *FvwmEvent window-manager-event action-or-filename defaults: *FvwmEvent startup TaDa.au *FvwmEvent shutdown Elvis_Left.au *FvwmEvent unknown doh.au *FvwmEvent new_page beam_trek.au *FvwmEvent new_desk beam_trek.au *FvwmEvent add_window drip.au *FvwmEvent raise_window swoosh.au *FvwmEvent lower_window swoosh.au *FvwmEvent configure_window hammer.au *FvwmEvent focus_change boing.au *FvwmEvent destroy_window explosion.au *FvwmEvent iconify ploop.au *FvwmEvent deiconify ploop.au *FvwmEvent window_name huh.au *FvwmEvent icon_name beep.au *FvwmEvent res_class beep.au *FvwmEvent res_name beep.au *FvwmEvent end_windowlist twang.au *FvwmEvent icon_location beep.au *FvwmEvent map beep.au *FvwmEvent error beep.au *FvwmEvent config_info beep.au *FvwmEvent end_config_info beep.au *FvwmEvent icon_file beep.au *FvwmEvent default_icon beep.au *FvwmEvent string plapper.au *FvwmEvent mini_icon beep.au *FvwmEvent windowshade beep.au *FvwmEvent dewindowshade beep.au
*FvwmFormGrabServer *FvwmFormWarpPointer *FvwmFormPosition x y *FvwmFormBack color *FvwmFormFore color *FvwmFormItemBack color *FvwmFormItemFore color *FvwmFormFont font *FvwmFormButtonFont font *FvwmFormInputfont font *FvwmFormLine justification justification: left, right, center, expand *FvwmFormText string *FvwmFormInput name size init_string *FvwmFormSelection name type type: single, multiple *FvwmFormChoice name value on | off string *FvwmFormButton type string [key] type: continue, restart, quit *FvwmFormCommand command [parameter] parameter: $(name), $(name?string), $(name!string)
QuitVerify This example simulates the mwm way of confirming logout *QuitVerifyGrabServer *QuitVerifyWarpPointer *QuitVerifyFont *helvetica*m*r*n*14* *QuitVerifyButtonFont *helvetica*m*o*n*14* *QuitVerifyFore Black *QuitVerifyBack Light Gray *QuitVerifyItemFore Wheat *QuitVerifyItemBack Gray50 *QuitVerifyCommand Beep *QuitVerifyLine center *QuitVerifyText "Do you really want to logout?" *QuitVerifyLine expand *QuitVerifyButton quit "Logout" *QuitVerifyCommand Quit *QuitVerifyButton quit "Cancel" *QuitVerifyCommand Nop Remote Login This example lets the user type in a hostname, and optionally a user name on the remote machine, and opens an xterm window from the remote host *RloginWarpPointer *RloginFont *helvetica*m*r*n*14* *RloginButtonFont *helvetica*m*o*n*14* *RloginInputFont *cour*m*r*n*14* *RloginFore Black *RloginBack Light Gray *RloginItemFore Wheat *RloginItemBack Gray50 # begin items *RloginLine center *RloginText "Login to Remote Host" *RloginLine center *RloginText "Host:" *RloginInput HostName 20 "" *RloginLine center *RloginSelection UserSel single *RloginChoice Default Default on "same user" *RloginChoice Custom Custom off "user:" *RloginInput UserName 10 "" *RloginLine expand *RloginButton quit "Login" *RloginCommand Exec exec rsh $(Custom?-l $(UserName)) \ $(HostName) xterm -T xterm@$(HostName) -display $HOSTDISPLAY & *RloginButton restart "Clear" *RloginButton quit "Cancel" ^[ *RloginCommand Nop Capture Window This example provides a front-end to xwd, xwud, and xpr *CaptureFont *helvetica*m*r*n*14* *CaptureButtonFont *helvetica*m*o*n*14* *CaptureInputFont *cour*m*r*n*14* *CaptureLine center *CaptureText "Capture Window" *CaptureLine left *CaptureText "File: " *CaptureInput file 25 "/tmp/Capture" *CaptureLine left *CaptureText "Printer: " *CaptureInput printer 20 "ps1" *CaptureLine expand *CaptureSelection PtrType single *CaptureChoice PS ps on "PostScript" *CaptureChoice Ljet ljet off "HP LaserJet" *CaptureLine left *CaptureText "xwd options:" *CaptureLine expand *CaptureSelection Options multiple *CaptureChoice Brd -nobdrs off "No border" *CaptureChoice Frm -frame on "With frame" *CaptureChoice XYZ -xy off "XY format" *CaptureLine expand *CaptureButton continue "Capture" *CaptureCommand Exec exec xwd -out $(file) $(Options) & *CaptureButton continue "Preview" *CaptureCommand Exec exec xwud -in $(file) & *CaptureButton continue "Print" *CaptureCommand Exec xpr -device $(PtrType) $(file) | lpr -P $(printer) & *CaptureButton quit "Quit"
*FvwmGoodStuffGeometry geometry *FvwmGoodStuffFont font *FvwmGoodStuffRows rows *FvwmGoodStuffColumns columns *FvwmGoodStuffFore color *FvwmGoodStuffBack color *FvwmGoodStuff[(w x h)] label icon command
Module FvwmGoodStuff Style "FvwmGoodStuff" Sticky Style "FvwmGoodStuff" Icon toolbox.xpm *FvwmGoodStuffFore Black *FvwmGoodStuffBack #908090 *FvwmGoodStuffGeometry -135-5 *FvwmGoodStuffRows 1 *FvwmGoodStuffFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* *FvwmGoodStuff Resize resize.xpm Resize *FvwmGoodStuff Move arrows2.xpm Move *FvwmGoodStuff Lower Down Lower *FvwmGoodStuff Raise Up Raise *FvwmGoodStuff Kill bomb.xpm Destroy *FvwmGoodStuff Dopey rterm.xpm Exec "big_win" xterm -T big_win -geometry 80x50 *FvwmGoodStuff Snoopy rterm.xpm Exec "small_win" xterm -T small_wi *FvwmGoodStuff Xcalc rcalc.xpm Exec "Calculator" xcalc *FvwmGoodStuff XMag magnifying_glass2.xpm Exec "xmag" xmag *FvwmGoodStuff Mail mail2.xpm Exec "xmh" xmh *FvwmGoodStuff(4x1) - whatever SwallowModule "Fvwm Pager" FvwmPager 0 3
*FvwmIconBoxFore color *FvwmIconBoxBack color *FvwmIconBoxIconFore color *FvwmIconBoxIconBack color *FvwmIconBoxIconHiFore color *FvwmIconBoxIconHiBack color *FvwmIconBoxPixmap pixmap *FvwmIconBoxFont fontname *FvwmIconBoxSortIcons option option: IconName, ResClass, ResName, WindowName *FvwmIconBoxPadding number *FvwmIconBoxSBWidth number *FvwmIconBoxPlacement primary secondary Left Top Left Bottom Right Top Right Bottom Top Left Top Right Bottom Left Bottom Right *FvwmIconBoxLines n, default: 6 *FvwmIconBoxHideSC direction direction: horizontal, vertical *FvwmIconBoxGeometry width x height [+-]X [+-]Y *FvwmIconBoxMaxIconSize width x height *FvwmIconBoxMouse Button Action Response[, Response] *FvwmIconBoxKey Key Action[, Action] Action: command or Next, Prev, Left, Right, Up, Down *FvwmIconBox windowname bitmap-file *FvwmIconBoxSetWMIconSize *FvwmIconBoxHilightFocusWin *FvwmIconBoxResolution Desk *FvwmIconBoxFrameWidth width1 width2 *FvwmIconBoxUseSkipList
# Note that icons are shown in the module only if NoIcon attribute is applied Style "*" NoIcon *FvwmIconBoxIconBack #cfcfcf *FvwmIconBoxIconHiFore black *FvwmIconBoxIconHiBack LightSkyBlue *FvwmIconBoxBack #5f9ea0 #*FvwmIconBoxFore blue *FvwmIconBoxGeometry 5x1+0+0 *FvwmIconBoxMaxIconSize 64x38 *FvwmIconBoxFont -adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-*-* *FvwmIconBoxSortIcons IconName #*FvwmIconBoxSortIcons ResClass *FvwmIconBoxPadding 4 *FvwmIconBoxFrameWidth 9 7 *FvwmIconBoxLines 10 *FvwmIconBoxSBWidth 11 *FvwmIconBoxPlacement Left Top *FvwmIconBoxPixmap fvwm.xpm #*FvwmIconBoxHideSC Horizontal *FvwmIconBoxSetWMIconSize *FvwmIconBoxHilightFocusWin #*FvwmIconBoxResolution Desk # mouse bindings *FvwmIconBoxMouse 1 Click RaiseLower *FvwmIconBoxMouse 1 DoubleClick Iconify *FvwmIconBoxMouse 2 Click Iconify -1, Focus *FvwmIconBoxMouse 3 Click Module FvwmIdent # Key bindings *FvwmIconBoxKey r RaiseLower *FvwmIconBoxKey space Iconify *FvwmIconBoxKey d Close # FvwmIconBox built-in functions *FvwmIconBoxKey n Next *FvwmIconBoxKey p Prev *FvwmIconBoxKey h Left *FvwmIconBoxKey j Down *FvwmIconBoxKey k Up *FvwmIconBoxKey l Right # Icon file specifications # Mostly, you don't have to specify icon files, as FvwmIconBox now # reads icon files specified in Style commands *FvwmIconBox "Fvwm*" -
*FvwmIconMan*nummanagers num *FvwmIconMan*[id*] action type binding type: Key, Mouse, Select *FvwmIconMan*[id*]background color *FvwmIconMan*[id*]buttongeometry geometry *FvwmIconMan*[id*]drawicons value *FvwmIconMan*[id*]focusbutton style [forecolor backcolor] *FvwmIconMan*[id*]focusandselectbutton style [forecolor backcolor] *FvwmIconMan*[id*]font font *FvwmIconMan*[id*]foreground color *FvwmIconMan*[id*]format formatstring formatstring: %t = title %i = icon %c = class %r = resource *FvwmIconMan*[id*]IconButton *FvwmIconMan*[id*]iconname iconstring *FvwmIconMan*[id*]IconColorset n *FvwmIconMan*[id*]managergeometry geometry *FvwmIconMan*[id*]plainbutton style [forecolor backcolor] style: flat, up, down, raisededge, sunkedge *FvwmIconMan*[id*]resolution resolution *FvwmIconMan*[id*]selectbutton style [forecolor backcolor] *FvwmIconMan*[id*]shape boolean *FvwmIconMan*[id*]title titlestring *FvwmIconMan*[id*]titlebutton style [forecolor backcolor] *FvwmIconMan*[id*]show pattern list *FvwmIconMan*[id*]dontshow pattern list *FvwmIconMan*[id*]usewinlist boolean *FvwmIconMan*[id*]followfocus boolean *FvwmIconMan*[id*]sort value *FvwmIconMan*action Mouse Button Modifiers Functionlist Key Keysym Modifiers Functionlist Select Functionlist Function: bif Button Integer/String bifn Button Integer/String gotobutton Button gotomanager Manager jmp Integer/String label String print String quit ret select sendcommand String
This first example is of a the simplest invocation of FvwmIconMan, which only has one manager, and handles all windows: # Make FvwmIconMan title-bar-less, sticky, and give it an icon Style "Fvwm*" Icon toolbox.xpm,NoTitle,NoHandles,Sticky Style "FvwmIconMan" HandleWidth 5, Handles, BorderWidth 5 #Definitions used by the modules *FvwmIconMan*nummanagers 1 *FvwmIconMan*resolution global *FvwmIconMan*background slategrey *FvwmIconMan*foreground white *FvwmIconMan*font 7x13 *FvwmIconMan*buttongeometry 100x0 *FvwmIconMan*managergeometry 1x0-0+0 This example is the Reader's Digest version of my personal configuration. It has two managers, one for emacs and one for everything else, minus things with no icon title. Only windows on the current page are displayed. The use of the drawicons and shape options requires that fvwm and FvwmIcon- Man we compiled with the correct options. Note how the geometry and show options are specified per manager, and the others are common to all: Style "FvwmIconMan" NoTitle, Sticky, WindowListSkip, BorderWidth 0 Style "FvwmIconMan" HandleWidth 0 Key F8 A N SendToModule FvwmIconMan bif select Select,\ bif focus Focus,\ gotomanager 0, select,\ sendcommand WarpToWindow,\ ret, label Focus,\ gotobutton focus,\ select, sendcommand WarpToWindow,\ ret, label Select, gotobutton prev,\ select, sendcommand WarpToWindow Key F9 A N SendToModule FvwmIconMan bif select Select,\ bif focus Focus, gotomanager 0, select,\ sendcommand WarpToWindow, ret,\ label Focus, gotobutton focus,\ select, sendcommand WarpToWindow,\ ret, label Select, gotobutton next,\ select, sendcommand WarpToWindow *FvwmIconMan*numManagers 2 *FvwmIconMan*Resolution page *FvwmIconMan*background steelblue *FvwmIconMan*foreground white *FvwmIconMan*font 7x13 *FvwmIconMan*usewinlist true *FvwmIconMan*drawicons true *FvwmIconMan*shape true *FvwmIconMan*followfocus true *FvwmIconMan*sort name *FvwmIconMan*plainbutton up white steelblue *FvwmIconMan*selectbutton down white steelblue *FvwmIconMan*focusbutton up white brown *FvwmIconMan*focusandselectButton down white brown *FvwmIconMan*titleButton raisededge white steelblue *FvwmIconMan*1*title "Emacs windows" *FvwmIconMan*1*iconname "FvwmIconMan: Emacs" *FvwmIconMan*1*format "%i" *FvwmIconMan*1*show resource=emacs resource=gemacs *FvwmIconMan*1*managergeometry 1x0-400+0 *FvwmIconMan*1*buttongeometry 200x0 *FvwmIconMan*2*title "All windows" *FvwmIconMan*2*iconname "FvwmIconMan: all" *FvwmIconMan*2*format "%c: %i" *FvwmIconMan*2*dontshow icon=Untitled *FvwmIconMan*2*managergeometry 2x4-0+0 *FvwmIconMan*2*buttongeometry 200x0 *FvwmIconMan*transient*geometry 194x100 *FvwmIconMan*transient*dontshow icon=Untitled *FvwmIconMan*transient*action Mouse 0 A sendcommand select select Iconify *FvwmIconMan*action Mouse 1 N sendcommand Iconify *FvwmIconMan*action Mouse 2 N sendcommand WarpToWindow *FvwmIconMan*action Mouse 3 N sendcommand "Module FvwmIdent FvwmIdent" *FvwmIconMan*action Key Left N gotobutton Left, select *FvwmIconMan*action Key Right N gotobutton Right, select *FvwmIconMan*action Key Up N gotobutton Up, select *FvwmIconMan*action Key Down N gotobutton Down, select *FvwmIconMan*action Key q N quit
*FvwmIdentFore color *FvwmIdentBack color *FvwmIdentFont fontname
FvwmM4 can be invoked by inserting the line 'FvwmM4' in the .fvwm2rc file. It can also be called from a menu or mouse binding. If the user wants his entire .fvwm2rc file pre- processed with FvwmM4, then fvwm should be invoked as: fvwm2 -cmd "FvwmM4 .fvwm2rc" Note that the argument to the option "-cmd" should be enclosed in quotes, and no other quoting should be used. For example, a typical invocation might be: fvwm2 -cmd "FvwmM4 -m4-squote { -m4-equote } .fvwm2rc" Some options can be specified on the command line: -m4-prefix I think this makes all the m4 directives require the prefix "m4_". -m4opt option Lets you pass an option to the m4 program. Not really needed as any unknown options will be passed on automatically. -m4-squote character Lets you change the m4 start-of-quote character to character. -m4-equote character Lets you change the m4 end-of-quote character to character. -m4prog name Instead of invoking "m4", fvwm will invoke name. -outfile filename Instead of creating a random unique name for the tem- porary file for the preprocessed rc file, this option will let you specify the name of the temporary file it will create. -debug Causes the temporary file create by m4 to be retained. This file is usually called "/tmp/fvwmrcXXXXXX" FvwmM4 defines some values for use in the pre-processor file: TWM_TYPE Always set to "fvwm". SERVERHOST The name of the machine running the X Server. CLIENTHOST The name of the machine running fvwm. HOSTNAME The hostname of the machine running fvwm. Generally the same as CLIENTHOST. OSTYPE The operating system for CLIENTHOST. USER The name of the person running fvwm. VERSION The X11 version. REVISION The X11 revision number. VENDOR The X server vendor. RELEASE The X server release number. WIDTH The screen width in pixels. HEIGHT The screen height in pixels. X_RESOLUTION Some distance/pixel measurement for the horizontal direction, I think. Y_RESOLUTION Some distance/pixel measurement for the vertical direction, I think. PLANES Number of color planes for the X server display BITS_PER_RGB Number of bits in each rgb triplet. CLASS The X11 visual class, ie PsuedoColor. COLOR Yes or No, Yes if the display class is neither StaticGrey or GreyScale. FVWM_VERSION The fvwm version number, ie 2.0 OPTIONS Some combination of SHAPE, XPM, NO_SAVEUNDERS, and M4, as defined in configure.h at compile time. FVWM_MODULEDIR The directory where fvwm looks for .fvwmrc and modules by default, as determined at compile time. EXAMPLE PROLOG define(TWM_TYPE,``fvwm'')dnl define(SERVERHOST,``spx20'')dnl define(CLIENTHOST,``grumpy'')dnl define(HOSTNAME,``grumpy'')dnl define(OSTYPE,``SunOS'')dnl define(USER,``nation'')dnl define(HOME,``/local/homes/dsp/nation'')dnl define(VERSION,``11'')dnl define(REVISION,``0'')dnl define(VENDOR,``HDS human designed systems, inc. (2.1.2-D)'')dnl define(RELEASE,``4'')dnl define(WIDTH,``1280'')dnl define(HEIGHT,``1024'')dnl define(X_RESOLUTION,``3938'')dnl define(Y_RESOLUTION,``3938'')dnl define(PLANES,``8'')dnl define(BITS_PER_RGB,``8'')dnl define(CLASS,``PseudoColor'')dnl define(COLOR,``Yes'')dnl define(FVWM_VERSION,``1.24l'')dnl define(OPTIONS,``SHAPE XPM M4 '')dnl define(FVWM_MODULEDIR,``/local/homes/dsp/nation/modules'')dnl
*FvwmPagerGeometry geometry *FvwmPagerRows rows *FvwmPagerColumns columns *FvwmPagerIconGeometry geometry *FvwmPagerStartIconic *FvwmPagerNoStartIconic *FvwmPagerFont font *FvwmPagerSmallFont font *FvwmPagerFore color *FvwmPagerBack color *FvwmPagerHilight color *FvwmPagerWindowColors fore back hiFore hiBack *FvwmPagerLabel desk label *FvwmPagerDeskColor desk color *FvwmPagerDeskTopScale number *FvwmPagerMiniIcons *FvwmPagerBalloons [type] type: Pager, Icon *FvwmPagerBalloonFore color *FvwmPagerBalloonBack color *FvwmPagerBalloonFont font *FvwmPagerBalloonBorderWidth number *FvwmPagerBalloonBorderColor color *FvwmPagerBalloonYOffset number *FvwmPagerSolidSeparators *FvwmPagerNoSeparators
FvwmRearrange -tile -h 10 10 90 90 FvwmRearrange -cascade -resize 10 2 80 70 arguments: -a Causes all window styles to be affected, even ones with the WindowListSkip style. -cascade Cascade windows. This argument must be the first on the command line. This is the default. -desk Causes all windows on the desk to be cascaded/tiled instead of the current screen only. -flatx Inhibits border width increment. Only used when cascading. -flaty Inhibits border height increment. Only used when cascading. -h Tiles horizontally (default is to tile vertically). Used for tiling only. -incx arg Specifies a horizontal increment which is successively added to cascaded windows. arg is a percentage of screen width, or pixel value if a p is suffixed. Default is zero. Used only for cascading. -incy arg Specifies a vertical increment which is successively added to cascaded windows. arg is a percentage of screen height, or pixel value if a p is suffixed. Default is zero. Used only for cascading. -m Causes maximized windows to also be affected (implied by -all). -mn arg Tiles up to arg windows in tile direction. If more windows exist, a new direction row or column is created (in effect, a matrix is created). Used only when tiling windows. -noraise Inhibits window raising, leaving the depth ordering intact. -noresize Inhibits window resizing, leaving window sizes intact. This is the default when cascading windows. -nostretch If tiling: inhibits window growth to fit tile. Windows are shrunk to fit the tile but not expanded. If cascading: inhibits window expansion when using the -resize option. Windows will only shrink to fit the maximal width and height (if given). -r Reverses the window sequence. -resize Forces all windows to resize to the constrained width and height (if given). This is the default when tiling windows. -s Causes sticky windows to also be affected (implied by -all). -t Causes transient windows to also be affected (implied by -all). -tile Tile windows. This argument must be the first on the command line. -u Causes untitled windows to also be affected (implied by -all).
If the NoClutter executable is linked to another name, ie ln -s NoClutter OtherClutter, then another module called Other- Clutter can be started, with a completely different confi- guration than NoClutter, simply by changing the keyword NoClutter to OtherClutter. This way multiple clutter- reduction programs can be used.
NoClutter can be invoked by inserting the line 'Module NoClutter' in the .fvwmrc file. This can be placed on a line by itself, if NoClutter is to be spawned during fvwm's ini- tialization, or can be bound to a menu or mouse button or keystroke to invoke it later. Fvwm will search directory specified in the ModulePath configuration option to attempt to locate NoClutter.
NoClutter reads the same .fvwmrc file as fvwm reads when it starts up, and looks for lines similar to "*NoClutter 3600 Iconify". The format of these lines is
*NoClutter [time] [command]where command is any fvwm built-in command, and time is the time in seconds between when a window looses focus and when the command is executed. At most 3 actions can be specified.
The M4 Macro processor substitutes its macros even in the middle of a word. Because of that you may have problems with predefined macros such as include or define. To avoid this the GNU M4 has an extra option to prefix all builtins with 'm4_'. FvwmM4 can be called with option -m4-prefix and then will provide the option -P to M4. I personally use the FvwmM4 module this way.
fvwm2 -f "FvwmM4 -m4-prefix -m4opt -I$HOME $HOME/.fvwm2rc"Simply add the following line to the end of .fvwm2rc:
m4_include(`.fvwm2desk') .
You may have the problem that the preprocessor directives starts with the comment charakter '#' and will complain about unknown directives, if you have comments in your .fvwm2rc.
fvwm2 -f "FvwmCpp -C-I$HOME $HOME/.fvwm2rc"Simply add the following line to the end of .fvwm2rc:
#include ".fvwm2desk"
See the man page for the gory details.
*FvwmScrollFore color *FvwmScrollBack color
*FvwmTaskBarGeometry [+]X x [+]Y *FvwmTaskBarFont font *FvwmTaskBarSelFont font *FvwmTaskBarStatusFont font *FvwmTaskBarFore color *FvwmTaskBarBack color *FvwmTaskBarTipsFore color *FvwmTaskBarTipsBack color *FvwmTaskBarGeometry geometry *FvwmTaskBarAutoStick *FvwmTaskBarAutoHide *FvwmTaskBarUseSkipList *FvwmTaskBarUseIconNames *FvwmTaskBarShowTransients *FvwmTaskBarAction action response[,response...] *FvwmTaskBarButtonWidth width *FvwmTaskBarHighlightFocus *FvwmTaskBarShowTips *FvwmTaskBarClockFormat format-string *FvwmTaskBarUpdateInterval seconds *FvwmTaskBarBellVolume volume *FvwmTaskBarMailBox path, default: /var/spool/mail/$USER_LOGIN *FvwmTaskBarMailCommand command *FvwmTaskBarIgnoreOldMail *FvwmTaskBarStartName string *FvwmTaskBarStartMenu string *FvwmTaskBarStartIcon icon-name
The following are excepts from a .fvwm2rc file which describe FvwmTaskBar initialization commands: AddToFunc "InitFunction" "I" Module FvwmTaskBar AddToFunc "RestartFunction" "I" Module FvwmTaskBar Style "FvwmTaskBar" NoTitle,BorderWidth 4, HandleWidth 4, Sticky,\ StaysOnTop, WindowSkipList, CirculateSkip *FvwmTaskBarBack #c3c3c3 *FvwmTaskBarFore black *FvwmTaskBarTipsBack bisque *FvwmTaskBarTipsFore black *FvwmTaskBarGeometry 1 *FvwmTaskBarFont -adobe-helvetica-medium-r-*-*-14-*-*-*-*-*-*-* *FvwmTaskBarSelFont -adobe-helvetica-bold-r-*-*-14-*-*-*-*-*-*-* *FvwmTaskBarStatusFont fixed *FvwmTaskBarAction Click1 Iconify -1, Raise *FvwmTaskBarAction Click2 Iconify , Lower *FvwmTaskBarAction Click3 Iconify -1, Raise *FvwmTaskBarUseSkipList *FvwmTaskBarUseIconNames *FvwmTaskBarAutoStick *FvwmTaskBarShowTips *FvwmTaskBarButtonWidth 180 *FvwmTaskBarBellVolume 20 *FvwmTaskBarMailBox /var/spool/mail/ *FvwmTaskBarMailCommand Exec xterm -e mail *FvwmTaskBarClockFormat %I:%M %p *FvwmTaskBarStartName Start *FvwmTaskBarStartMenu StartMenu *FvwmTaskBarStartIcon mini-exp.xpm
*FvwmThemeColorset n options n: number of colorset options: fg, Fore, Foreground color bg, Back, Background color or Average hi, Hilite, Hilight color sh, Shade, Shadow color Pixmap, TiledPixmap, AspectPixmap file Transparent Shape, TiledShape, AspectShape file xGradient NoShape Plain
Below you can find a fvwm configuration file that demon- strates the use of the FvwmTheme module. The order in which FvwmTheme and the other modules are configured and started is important. # FvwmTheme # # The FvwmTheme setup must be first in the config file, # right after the paths are set. # # Instead of the *FvwmThemeColorset... lines below you # could read in a file with these commands. So to change # your color scheme you can simply copy a different file # over your palette file and restart fvwm: # # Read /home/my_user_name/.fvwm2_palette # 0 = Default colours # 1 = Inactive windows # 2 = Active windows # 3 = Inactive menu entry and menu background # 4 = Active menu entry # 5 = greyed out menu entry (only bg used) # 6 = module foreground and background # 7 = hilight colours *FvwmThemeColorset 0 fg black, bg rgb:b4/aa/94 *FvwmThemeColorset 1 fg black, bg rgb:a1/b2/c8, VGradient 100 dtcolour5 rgb:b4/aa/94 *FvwmThemeColorset 4 fg black, bg rgb:b4/aa/94 *FvwmThemeColorset 5 fg rgb:d2/bf/a8, bg rgb:b4/aa/94 *FvwmThemeColorset 6 fg black, bg rgb:b4/aa/94, VGradient 100 dtcolour5 rgb:b4/aa/94 *FvwmThemeColorset 7 fg black, bg rgb:94/ab/bf # run FvwmTheme before anything else is done ModuleSynchronous Timeout 5 FvwmTheme # general setup Style * ForeColor $[fg.cs1] Style * BackColor $[bg.cs1] Style * HilightFore $[fg.cs2] Style * HilightBack $[bg.cs2] MenuStyle * MenuColorset 3 MenuStyle * ActiveColorset 4 MenuStyle * GreyedColorset 5 # Applications AddToFunc InitFunction + I Exec exec xterm -fg $[fg.cs0] -bg $[bg.cs0] # module setup # ... more FvwmPager config lines ... *FvwmPagerColorset * 6 *FvwmPagerBalloonColorset * 6 *FvwmPagerHilightColorset * 7 *FvwmPagerWindowColorsets 1 2 # ... more FvwmIconMan config lines ... *FvwmIconMan*Colorset 6 *FvwmIconMan*FocusColorset 2 *FvwmIconMan*FocusAndSelectColorset 2 *FvwmIconMan*PlainColorset 6 *FvwmIconMan*SelectColorset 6 *FvwmIconMan*TitleColorset 6 # ... more FvwmButtons config lines ... *FvwmButtonsFore $[fg.cs6] *FvwmButtonsBack $[bg.cs6] *FvwmButtonsColorset 6 # sample button passing color to xterm *FvwmButtons (Title xterm, *FvwmWharfColorset 6) # ... more FvwmIdent config lines ... *FvwmIdentColorset 6 # ... more FvwmWinList config lines ... *FvwmWinListColorset 1 *FvwmWinListFocusColorset 2 *FvwmWinListIconColorset 1 # ... more FvwmTaskBar config lines ... *FvwmTaskBarColorset 6 *FvwmTaskBarIconColorset 6 *FvwmTaskBarTipsColorset 0
*FvwmWharfAnimate *FvwmWharfAnimateMain *FvwmWharfBgColor color *FvwmWharfColumns columns *FvwmWharfForceSize *FvwmWharfFullPush *FvwmWharfGeometry geometry *FvwmWharfMaxColors number *FvwmWharfNoBorder *FvwmWharfPixmap pixmap *FvwmWharfTextureColor from to *FvwmWharfTextureType type type: 0 - No texture use FvwmWharfBgColor to set the desired color 1 - Gradient from upper-left to lower right 2 - Horizontal one way gradient from top to bottom 3 - Horizontal cylindrical gradient from top/bottom to center 4 - Vertical one way gradient from left to right 5 - Vertical cylindrical gradient from left/right to center 128 - User specified pixmap The default is the builtin FvwmWharf texture pixmap *FvwmWharf label icon command command: Exec, Swallow, MaxSwallow files Folders.xpm Folder xftp 3DRings.xpm Exec xftp & xdir FolderDeposit.xpm Exec xdir & moxfm FilingCabinet.xpm Exec moxfm & ~Folders nil nil DropExec "program" program %s program iconname Exec "program" program
*FvwmWinListGeometry [+]X [+]Y *FvwmWinListFont font *FvwmWinListFore color *FvwmWinListBack color *FvwmWinListFocusFore color *FvwmWinListFocusBack color *FvwmWinListIconFore color *FvwmWinListIconBack color *FvwmWinListDontDepressFocus *FvwmWinListUseSkipList *FvwmWinListNoAnchor *FvwmWinListUseIconNames *FvwmWinListLeftJustify *FvwmWinListMinWidth width *FvwmWinListMaxWidth width *FvwmWinListTruncateLeft *FvwmWinListAction action response[,reponse...] action: Click1, Click2, Click3
# Pop up the window list in transient mode on button 3 press & hold Mouse 3 R A Module "FvwmWinList" FvwmWinList Transient *FvwmWinListBack DarkOliveGreen *FvwmWinListFore PaleGoldenRod *FvwmWinListFont -*-new century schoolbook-bold-r-*-*-*-120-*-*-*-*-*-* *FvwmWinListAction Click1 Iconify -1, Raise *FvwmWinListAction Click2 Iconify *FvwmWinListAction Click3 Module "FvwmIdent" FvwmIdent *FvwmWinListUseSkipList *FvwmWinListUseIconNames *FvwmWinListGeometry -50-85 *FvwmWinListMinWidth 70 *FvwmWinListMaxWidth 120 # I prefer the text centered #*FvwmWinListLeftJustify # I like it achored #*FvwmWinListNoAnchor