


FVWM(1)                                                   FVWM(1)


NAME
       fvwm - F(?) Virtual Window Manager (version 2.xx) for X11

SYNOPSIS
       fvwm [ options ]

DESCRIPTION
       Fvwm  is  a window manager for X11.  It is a derivative of
       twm, redesigned to minimize memory consumption, provide  a
       3-D  look  to  window frames, and provide a simple virtual
       desktop.  Version 2.xx uses only slightly more memory than
       1.xx,  mostly  due to some global options being able to be
       window specific now.

       Fvwm provides both a large virtual  desktop  and  multiple
       disjoint   desktops   which  can  be  used  separately  or
       together.  The virtual desktop allows you to pretend  that
       your  video  screen  is  really  quite  large, and you can
       scroll around within the desktop.  The  multiple  disjoint
       desktops allow you to pretend that you really have several
       screens to work at, but each screen  is  completely  unre-
       lated to the others.

       Fvwm  provides  keyboard  accelerators  which allow you to
       perform most window-manager  functions,  including  moving
       and  resizing  windows, and operating the window-manager's
       menus, using keyboard shortcuts.

       Fvwm has also blurred the distinction  between  configura-
       tion  commands and built-in commands that most window-man-
       agers make.  Configuration commands typically  set  fonts,
       colors,  menu  contents,  key and mouse function bindings,
       while built-in commands typically do things like raise and
       lower  windows.   Fvwm  makes  no  such  distinction,  and
       allows, to the extent that is practical,  anything  to  be
       changed at any time.

       Other  noteworthy  differences  between Fvwm and other X11
       window managers are the introduction  of  the  SloppyFocus
       and  per-window  focus methods.  SloppyFocus is focus-fol-
       lows-mouse, but focus is not removed from windows when the
       mouse  leaves  a  window and enters the root window.  When
       sloppy focus is used as the default  focus  style,  it  is
       nice  to  make  windows in which you do not typically type
       into (xmag, xman, xgraph, xclock,  xbiff,  etc)  click-to-
       focus,  so  that  your  terminal window doesn't lose focus
       unnecessarily.


COPYRIGHTS
       Since fvwm is derived from twm code it shares twm's  copy-
       rights.   Since  nearly  every  line  of twm code has been
       changed, the twm copyright has been removed from  most  of
       the  individual  code  files.   I  do  still recognize the



fvwm 2.xx               late 20th century                       1





FVWM(1)                                                   FVWM(1)


       influence of twm code in the overall  package,  so  fvwm's
       copyright is still considered to be the same as twm's.

       Please  consult  the  COPYING file that has come with your
       distribution for details.


ANATOMY OF A WINDOW
       Fvwm puts a decorative border around most  windows.   This
       border  consists  of  a  bar  on each side and a small "L"
       shaped section on each corner.  There is an additional top
       bar called the title bar which is used to display the name
       of the window.  In addition, there are up to 10  title-bar
       buttons.   The top, side, and bottom bars are collectively
       known as the side-bars.  The corner pieces are called  the
       frame.

       Unless  the standard defaults files are modified, pressing
       mouse button 1 in the title or side-bars will begin a move
       operation  on the window.  Pressing button 1 in the corner
       frame pieces will begin a resize operation.  Pressing but-
       ton  2  anywhere in the border brings up an extensive list
       of window operations.

       Up to ten title-bar buttons may exist.  Their use is  com-
       pletely  user  definable.  The default configuration has a
       title-bar button on each side of the title-bar.   The  one
       on  the left is used to bring up a list of window options,
       regardless of which mouse button is used.  The one on  the
       right is used to iconify the window.  The number of title-
       bar buttons used depends on which ones have mouse  actions
       bound  to them.  See the section on the "Mouse" configura-
       tion parameter below.



THE VIRTUAL DESKTOP
       Fvwm provides multiple virtual desktops for users who wish
       to  use  them.   The  screen  is a viewport onto a desktop
       which may be larger than  the  screen.   Several  distinct
       desktops  can  be  accessed (concept: one desktop for each
       project, or one desktop for each  application,  when  view
       applications  are  distinct).   Since  each desktop can be
       larger than the physical screen, divided into m by n pages
       which  are  each  the size of the physical screen, windows
       which are larger  than  the  screen  or  large  groups  of
       related windows can easily be viewed.

       The  (m  by  n) size (i.e. number of pages) of the virtual
       desktops can be changed any time, by using the DeskTopSize
       built-in  command.  All virtual desktops must be (are) the
       same size.  The total number of distinct desktops need not
       be  specified,  but  is limited to approximately 4 billion
       total.  All windows on a range of desktops can  be  viewed



fvwm 2.xx               late 20th century                       2





FVWM(1)                                                   FVWM(1)


       in the Pager, a miniature view of the desktops.  The pager
       is an accessory program, called a  module,  which  is  not
       essential  for the window manager to operate.  Windows may
       also be listed, along with their geometries, in  a  window
       list,  accessible  as a pop-up menu, or as a separate win-
       dow, called the FvwmWinList (another module).

       "Sticky" windows are windows which transcend  the  virtual
       desktop  by "Sticking to the screen's glass."  They always
       stay put on the screen.  This  is  convenient  for  things
       like  clocks and xbiff's, so you only need to run one such
       gadget and it always stays with you.  Icons  can  also  be
       made to stick to the glass, if desired.

       Window  geometries  are  specified relative to the current
       viewport.  That is:

            xterm -geometry +0+0

       will always show up in the upper-left hand corner  of  the
       visible portion of the screen.  It is permissible to spec-
       ify geometries which place windows on the virtual desktop,
       but off the screen.  For example, if the visible screen is
       1000 by 1000 pixels, and the desktop size is 3x3, and  the
       current  viewport  is at the upper left hand corner of the
       desktop, then invoking:

            xterm -geometry +1000+1000

       will place the window just off of  the  lower  right  hand
       corner of the screen.  It can be found by moving the mouse
       to the lower right hand corner of the screen  and  waiting
       for it to scroll into view.

       A geometry specified as something like:

            xterm -geometry -5-5

       will  generally place the window's lower right hand corner
       5 pixels from the lower right corner of the  visible  por-
       tion  of  the  screen. Not all applications support window
       geometries with negative offsets. Some will place the win-
       dow's  upper  right  hand corner 5 pixels above and to the
       left of the upper left hand corner of the  screen;  others
       may do just plain bizarre things.


       There  are  several  ways  to cause a window to map onto a
       desktop or page other than the currently active  one.  The
       geometry technique mentioned above (specifying x,y coordi-
       nates larger than the physical screen size), however, suf-
       fers  from the limitation of being interpreted relative to
       the current viewport: the  window  will  not  consistently
       appear  on  a  specific page, unless you always invoke the



fvwm 2.xx               late 20th century                       3





FVWM(1)                                                   FVWM(1)


       application from the same page.

       A better way to place windows on a different page or  desk
       from the currently mapped viewport is to use the StartsOn-
       Page style  specification  (the  successor  to  the  older
       StartsOnDesk style) in the .fvwmrc configuration file. The
       placement is consistent: it does not depend on  your  cur-
       rent location on the virtual desktop.

       Some applications that understand standard Xt command line
       arguments and X resources, like xterm and xfontsel,  allow
       the  user to specify the start-up desk or page on the com-
       mand line:

            xterm -xrm "*Desk:1"

       will start an xterm on desk number 1;

            xterm -xrm "*Page:3 2 1"

       will start an xterm two pages to the right  and  one  down
       from  the  upper  left hand page of desk number 3. Not all
       applications understand the use of these options, however.

       You  could  achieve  the  same  results with the following
       lines in your

            XTerm*Desk: 1

       or

            XTerm*Page: 3 2 1



INITIALIZATION
       During initialization, fvwm will search for  a  configura-
       tion  file  which describes key and button bindings, and a
       few other things.  The  format  of  these  files  will  be
       described later.  First, fvwm will search for a file named
       .fvwmrc  in   the   user's   home   directory,   then   in
       ${sysconfdir}  (typically /usr/X11R6/lib/X11/fvwm).  Fail-
       ing that, it will look for system.fvwmrc in  ${sysconfdir}
       for system-wide defaults.  If that file is not found, fvwm
       will be basically useless.

       Fvwm will set two  environment  variables  which  will  be
       inherited  by  its  children.   These  are  $DISPLAY which
       describes the display on which fvwm is running.   $DISPLAY
       may  be unix:0.0 or :0.0, which doesn't work too well when
       passed through rsh to  another  machine,  so  $HOSTDISPLAY
       will  also be set and will use a network-ready description
       of the display.  $HOSTDISPLAY will always use  the  TCP/IP
       transport  protocol  (even  for  a  local  connection)  so



fvwm 2.xx               late 20th century                       4





FVWM(1)                                                   FVWM(1)


       $DISPLAY should be used for local connections, as  it  may
       use Unix-domain sockets, which are faster.

       Fvwm  has  three  special  functions  for  initialization:
       StartFunction, which is executed on startups and restarts;
       InitFunction  and RestartFunction, which are executed dur-
       ing Initialization and Restarts (respectively) just  after
       StartFunction.   These  may  be  customized in a user's rc
       file via the AddToFunc facility (described later) to start
       up modules, xterms, or whatever you'd like to have started
       by fvwm.

       Fvwm also has a special exit function: ExitFunction,  exe-
       cuted  when exiting or restarting before actually quitting
       or anything else.  It could be  used  to  explicitly  kill
       modules, etc.


COMPILATION OPTIONS
       Fvwm has a number of compile-time options to reduce memory
       usage by limiting the use of  certain  features.   If  you
       have  trouble using a certain command or feature, check to
       see if support  for  it  was  included  at  compile  time.
       Optional features are described in the config.h file.


ICONS
       The basic Fvwm configuration uses monochrome bitmap icons,
       similar to twm.  If XPM extensions are compiled  in,  then
       color  icons similar to ctwm, MS-Windows, or the Macintosh
       icons can be used.  In order to use these options you will
       need  the  XPM  package,  as described in the INSTALL.fvwm
       file.

       If both the SHAPE and XPM options are compiled in you will
       get shaped color icons, which are very spiffy.


MODULES
       A  module  is  a separate program which runs as a separate
       Unix process but transmits commands to  fvwm  to  execute.
       Users  can  write  their  own  modules  to do any weird or
       bizarre manipulations without bloating  or  affecting  the
       integrity of fvwm itself.

       Modules  MUST be spawned by fvwm so that it can set up two
       pipes for fvwm and the module to  communicate  with.   The
       pipes  will  already be open for the module when it starts
       and the file descriptors for the  pipes  are  provided  as
       command line arguments.

       Modules  can be spawned during fvwm at any time during the
       X session by use of the Module built-in command.   Modules
       can  exist  for  the  duration  of  the  X session, or can



fvwm 2.xx               late 20th century                       5





FVWM(1)                                                   FVWM(1)


       perform a single task and exit.  If the  module  is  still
       active when fvwm is told to quit, then fvwm will close the
       communication pipes and wait to receive a SIGCHLD from the
       module,  indicating  that it has detected the pipe closure
       and has exited.  If modules fail to detect the  pipe  clo-
       sure fvwm will exit after approximately 30 seconds anyway.
       The number of simultaneously executing modules is  limited
       by the operating system's maximum number of simultaneously
       open files, usually between 60 and 256.

       Modules simply transmit text commands to the fvwm built-in
       command  engine.   Text  commands are formatted just as in
       the case of a mouse binding in  the  .fvwmrc  setup  file.
       Certain  auxiliary  information is also transmitted, as in
       the sample module FvwmButtons.  The FvwmButtons module  is
       documented in its own man page.


ICCCM COMPLIANCE
       Fvwm  attempts  to  be  ICCCM 1.1 compliant.  In addition,
       ICCCM states that it should be possible  for  applications
       to receive ANY keystroke, which is not consistent with the
       keyboard shortcut approach used in  fvwm  and  most  other
       window  managers.  In  particular you cannot have the same
       keyboard shortcuts working with  your  fvwm2  and  another
       fvwm2  running  within Xnest (a nested X server). The same
       problem exists with mouse bindings.

       The ICCCM states that windows possessing the property

            WM_HINTS(WM_HINTS):
                Client accepts input or input focus: False

       should not be given the keyboard input focus by the window
       manager.   These windows can take the input focus by them-
       selves, however.  A number of applications set this  prop-
       erty,  and  yet expect the window-manager to give them the
       keyboard focus anyway, so fvwm  provides  a  window-style,
       "Lenience",  which  will allow fvwm to overlook this ICCCM
       rule.



M4 PREPROCESSING
       M4 pre-processing is handled by a module in fvwm-2.0.   To
       get  more  details, try man FvwmM4.  In short, if you want
       fvwm to parse your files with m4, then  replace  the  word
       "Read"  with  "FvwmM4" in your .fvwmrc file (if it appears
       at all), and start fvwm with the command

            fvwm -cmd "FvwmM4 .fvwmrc"






fvwm 2.xx               late 20th century                       6





FVWM(1)                                                   FVWM(1)


CPP PREPROCESSING
       Cpp is the C-language pre-processor.  fvwm-2.0 offers  cpp
       processing  which  mirrors the m4 pre-processing.  To find
       out about it, re-read the M4 section  above,  but  replace
       "m4" with "cpp".


AUTO-RAISE
       Windows  can  be  automatically  raised  when  it receives
       focus, or some number of milliseconds  after  it  receives
       focus, by using the auto-raise module, FvwmAuto.


OPTIONS
       These  are the command line options that are recognized by
       fvwm:

       -blackout
              The screen is blacked out during window  recaptures
              and  startup. This option is provided for backwards
              compatibility only.

       -cmd config_command
              Causes fvwm to use config_command instead of  "Read
              .fvwmrc" as its initialization command.  (Note that
              up to 10 -f and -cmd parameters can be  given,  and
              they are executed in the order specified.)

       -d displayname
              Manage  the display called "displayname" instead of
              the name obtained  from  the  environment  variable
              $DISPLAY.

       -debug Puts X transactions in synchronous mode, which dra-
              matically slows things down,  but  guarantees  that
              fvwm's  internal  error messages are correct.  Also
              causes fvwm to output debug messages while running.

       -f config_file
              Causes   fvwm   to   Read  config_file  instead  of
              ".fvwmrc" as  its  initialization  file.   This  is
              equivalent to -cmd "Read config_file".

       -h     A short usage description is printed.

       -s     On  a  multi-screen  display,  run fvwm only on the
              screen named in the $DISPLAY  environment  variable
              or  provided  through the -d option. Normally, fvwm
              will attempt to start up on all screens of a multi-
              screen display.

       -version
              Print the version of fvwm to stderr.




fvwm 2.xx               late 20th century                       7





FVWM(1)                                                   FVWM(1)


CONFIGURATION FILES
       The  configuration file is used to describe mouse and but-
       ton  bindings,  colors,  the  virtual  display  size,  and
       related  items.   The initialization configuration file is
       typically called ".fvwmrc".  By using the "Read" built-in,
       it is easy to read in new configuration files as you go.

       Lines  beginning  with '#' will be ignored by fvwm.  Lines
       starting with '*' are expected to contain module  configu-
       ration  commands  (rather  than configuration commands for
       fvwm itself).

       Fvwm makes no distinction between  configuration  commands
       and built-in commands, so anything mentioned in the built-
       in commands section  can be placed on a line by itself for
       fvwm  to execute as it reads the configuration file, or it
       can be placed as an executable command in a menu or  bound
       to  a  mouse  button  or a keyboard key.  It is left as an
       exercise for the user to decide which function make  sense
       for initialization and which ones make sense for run-time.


BUILT IN FUNCTIONS
       Fvwm supports a set of built-in  functions  which  can  be
       bound  to  keyboard  or mouse buttons.  If fvwm expects to
       find a built-in function in a command, but fails, it  will
       check  to  see  if  the specified command should have been
       "Function (rest of command)"  or  "Module  (rest  of  com-
       mand)".   This  allows  complex functions or modules to be
       invoked in a manner which is  fairly  transparent  to  the
       configuration file.

       Example:  the  .fvwmrc  file  contains  the line "HelpMe".
       Fvwm will look for a built-in command called "HelpMe", and
       will  fail.  Next  it will look for a user-defined complex
       function called "HelpMe".  If no such user  defined  func-
       tion  exists,  Fvwm  will  try  to execute a module called
       "HelpMe".

       In previous versions of fvwm,  quoting  was  critical  and
       irrational  in  the  .fvwmrc  file.  As of fvwm-2, most of
       this has been cleared up.  Quotes are required  only  when
       needed  to  make  fvwm  consider two or more words to be a
       single argument.  Unnecessary quoting is allowed.  If  you
       want a quote character in your text, you must escape it by
       using the backslash character.  For example, if you have a
       pop-up menu called Window-Ops, then you don't need quotes:
       Popup Window-Ops, but if  you  replace  the  dash  with  a
       space, then you need quotes: Popup "Window Ops".



       AddButtonStyle button [ state ] [ style ] [-- [!]flag ...]
              Adds a button style to button.   button  can  be  a



fvwm 2.xx               late 20th century                       8





FVWM(1)                                                   FVWM(1)


              button number, or one of "All," "Left," or "Right."
              state can be  "ActiveUp,"  "ActiveDown"  or  "Inac-
              tive."   If  state  is  omitted,  then the style is
              added to every state.   If  the  button  style  and
              flags  are  enclosed  in parentheses, then multiple
              state definitions can be placed on a  single  line.
              Flags   for  additional  button  styles  cannot  be
              changed after definition.

              Buttons are  drawn  in  the  order  of  definition,
              beginning  with  the  most recent ButtonStyle, fol-
              lowed by those added with AddButtonStyle.  To clear
              the  button style stack, change style flags, or for
              descriptions of available styles and flags, see the
              ButtonStyle command.  Examples:

                   ButtonStyle 1 Pixmap led.xpm -- Top Left
                   ButtonStyle 1 ActiveDown HGradient 8 grey \
                     black
                   ButtonStyle All --  UseTitleStyle
                   AddButtonStyle 1 ActiveUp (Pixmap a.xpm)  \
                     ActiveDown (Pixmap b.xpm -- Top)
                   AddButtonStyle 1 Vector 4 50x30@1 70x70@0 \
                     30x70@0 50x30@1

              Initially  for  this  example all button states are
              set to a pixmap.   The  second  line  replaces  the
              ActiveDown  state with a gradient (it overrides the
              pixmap assigned to it in  the  line  before,  which
              assigned the same style to every state).  Then, the
              UseTitleStyle flag is set for  all  buttons,  which
              causes  fvwm to draw any styles set with TitleStyle
              before drawing the  buttons.   Finally,  AddButton-
              Style  is used to place additional pixmaps for both
              ActiveUp and ActiveDown states and a Vector  button
              style is drawn on top of all state.



       AddTitleStyle [ state ] [ style ] [ -- [!]flag ... ]
              Adds  a title style to the title bar.  state should
              be one of "ActiveUp," "ActiveDown," or  "Inactive."
              If  state  is  omitted,  then the style is added to
              every state.  If the style and flags  are  enclosed
              in parentheses, then multiple state definitions can
              be placed on a single line.  This command is  quite
              similar  to the AddButtonStyle command (see above).

              Title bars are drawn in the  order  of  definition,
              beginning with the most recent TitleStyle, followed
              by those added with AddTitleStyle.   To  clear  the
              title  style  stack, change style flags, or for the
              descriptions of available styles and flags, see the
              TitleStyle and ButtonStyle commands.



fvwm 2.xx               late 20th century                       9





FVWM(1)                                                   FVWM(1)


       AddToDecor decor
              Add or divert commands to the decor named decor.  A
              decor is a name given to the set of commands  which
              affect  button  styles,  title-bar  styles,  border
              styles, hilight colors, and window fonts.  If decor
              does  not exist it is created; otherwise the exist-
              ing decor is modified.

              Created decors start out exactly like  the  default
              fvwm  decor without any style definitions.  A given
              decor may be applied to a set of windows  with  the
              UseDecor option of the Style command.  Modifying an
              existing decor will affect windows which  are  cur-
              rently assigned to it.

              AddToDecor is similar in usage to the AddToMenu and
              AddToFunc commands, except that menus and functions
              are   replaced   by   ButtonStyle,  AddButtonStyle,
              TitleStyle,  AddTitleStyle,  BorderStyle,  Hilight-
              Color and WindowFont commands.  Decors created with
              AddToDecor can  be  manipulated  with  ChangeDecor,
              DestroyDecor,  UpdateDecor,  and the UseDecor Style
              option.

              The following example creates a  decor  and  style,
              both  named  "flatness."   Despite  having the same
              name, they are distinct entities:

                   AddToDecor flatness
                    + ButtonStyle All ActiveUp (-- flat) \
                      Inactive (-- flat)
                    + TitleStyle -- flat
                    + BorderStyle -- HiddenHandles NoInset
                    + HilightColor white navy
                   Style "flatness" UseDecor flatness, \
                     Color white/grey40,HandleWidth 4

                   Style "xterm" UseStyle flatness

              An existing window's decor may be  reassigned  with
              ChangeDecor,  or  a  Style  command  followed  by a
              Recapture.  The decorations of all windows or of  a
              specific  decor  can  be  updated  with UpdateDecor
              (useful after decorations  are  modified;  changing
              Style  options  requires  a  Recapture instead).  A
              decor can be destroyed with DestroyDecor.



       AddToFunc [ name [ trigger action] ]
              Begins or add to a function definition.  Here's  an






fvwm 2.xx               late 20th century                      10





FVWM(1)                                                   FVWM(1)


              example:

                   AddToFunc Move-or-Raise "I" Raise
                    + "M" Move
                    + "D" Lower

              The  function  name  is Move-or-Raise, and could be
              invoked from a menu or a mouse binding or key bind-
              ing:

                   Mouse 1 TS A Move-or-Raise

              The  quoted portion of the function tells what kind
              of action will trigger the  command  which  follows
              it.   "I"  stands for Immediate, and is executed as
              soon as the function is invoked.   "M"  stands  for
              Motion,  i.e.  if the user starts moving the mouse.
              "C" stands for Click, i.e., if the user presses and
              releases  the  mouse  in  a  short  period  of time
              (ClickTime milliseconds).  "D" stands  for  double-
              click.   The  action "I" will cause an action to be
              performed on the button-press, if the  function  is
              invoked with prior knowledge of which window to act
              on.

              The special symbols $d, $w and $0  through  $9  are
              available  in  the  ComplexFunctions  or Macros, or
              whatever you want to call them.  Within a macro, $w
              is  expanded  to  the  window-id (expressed in hex,
              i.e. 0x10023c) of the window for  which  the  macro
              was  called  and $d is expanded to the current desk
              number. $0 through $9  are  the  arguments  to  the
              macro, so if you call

                   Key F10 R A Function MailFunction \
                     xmh "-font fixed"

              and MailFunction is


                   AddToFunc MailFunction
                    + "I" Next ($0) Iconify -1
                    + "I" Next ($0) focus
                    + "I" None ($0) Exec exec $0 $1

              Then the last line of the function becomes

                    + "I" None (xmh) Exec exec xmh -font fixed

              The  expansion is performed as the function is exe-
              cuted, so you can use the same  function  with  all






fvwm 2.xx               late 20th century                      11





FVWM(1)                                                   FVWM(1)


              sorts of different arguments.  I could use

                   Key F11 R A Function MailFunction \
                     zmail "-bg pink"

              in  the  same  .fvwmrc, if I wanted.  An example of
              using $w is:

                   AddToFunc PrintFunction
                    + "I" Raise
                    + "I" Exec xdpr -id $w

              Note that $$ is expanded to $.



       AddToMenu menu-name [ menu-label action ]
              Begins or adds to a menu definition.   Typically  a
              menu definition looks like this:

                   AddToMenu Utilities "Utilities" Title
                    + "Xterm"         Exec  exec xterm -e tcsh
                    + "Rxvt"          Exec  exec rxvt
                    + "Remote Logins" Popup Remote-Logins
                    + "Top"           Exec  exec rxvt -T Top -n \
                                      Top -e top
                    + "Calculator"    Exec  exec xcalc
                    + "Xman"          Exec  exec xman
                    + "Xmag"          Exec  exec xmag
                    + "emacs"         Exec  exec xemacs
                    + "Mail"          MailFunction \
                                      xmh "-font fixed"
                    + ""              Nop
                    + "Modules"       Popup Module-Popup
                    + ""              Nop
                    + "Exit Fvwm"     Popup Quit-Verify

              The menu could be invoked via

                   Mouse 1 R A Menu Utilities Nop

              or

                   Mouse 1 R A Popup Utilities

              There  is no end-of-menu symbol.  Menus do not have
              to be defined in a contiguous region of the .fvwmrc
              file.   The quoted portion in the above examples is
              the menu-label, which will appear in the menu  when
              the  user  pops  it up.  The remaining portion is a
              built-in command which should be  executed  if  the
              user  selects  that menu item.  An empty menu-label
              ("") and the Nop function can be used to  insert  a
              separator into the menu.



fvwm 2.xx               late 20th century                      12





FVWM(1)                                                   FVWM(1)


              Titles  can be used within the menu. If you add the
              option "top" behind the keyword "Title", the  title
              will be added to the top of the menu.  If there was
              a title already, it is overwritten.


                   AddToMenu Utilities "Tools" Title top


              All text up to the first TAB in the menu  label  is
              aligned  to  the  left  side  of the menu, all text
              right of the first TAB  is  aligned  to  the  right
              side. All other TABs are replaced by spaces.

              If  the menu-label contains an ampersand ('&'), the
              next character is taken as a hotkey  for  the  menu
              item. Hotkeys are underlined in the label. To get a
              literal '&', insert '&&'.

              If the menu-label contains a  sub-string  which  is
              set  off  by stars, then the text between the stars
              is expected to  be  the  name  of  an  xpm-icon  or
              bitmap-file  to  insert in the menu.  To get a lit-
              eral '*', insert '**'.For example

                    + "Calculator*xcalc.xpm*" Exec exec xcalc

              inserts a menu item  labeled  "calculator"  with  a
              picture of a calculator above it.  The following:

                    + "*xcalc.xpm*"           Exec exec xcalc

              Omits  the  "Calculator" label, but leaves the pic-
              ture.

              If the menu-label contains a  sub-string  which  is
              set off by percent signs, then the text between the
              percent signs is expected to be the name of an xpm-
              icon  or  bitmap-file  to insert to the left of the
              menu label.  To get a literal '%', insert '%%'. For
              example

                    + "Calculator%xcalc.xpm%" Exec exec xcalc

              inserts  a  menu  item  labeled "calculator" with a
              picture of a calculator to the left.   The  follow-
              ing:

                    + "%xcalc.xpm%"           Exec exec xcalc

              Omits  the  "Calculator" label, but leaves the pic-
              ture.  The pictures used with this  feature  should
              be small (perhaps 16x16).




fvwm 2.xx               late 20th century                      13





FVWM(1)                                                   FVWM(1)


              If  the  menu-name  (not the label) contains a sub-
              string which is set off by at signs ("@"), then the
              text  between them is expected to be the name of an
              xpm or bitmap file to draw along the left  side  of
              the  menu (a "side pixmap"). You will probably want
              to use the SidePic option of the MenuStyle  command
              instead.   To  get a literal '@', insert '@@'.  For
              example

                   AddToMenu "StartMenu@linux-menu.xpm@"

              creates a menu with a picture in  its  bottom  left
              corner.

              If  the menu-name contains also a sub-string set of
              by '^'s, then the text between '^'s is expected  to
              be  the name a of X11 color and the column contain-
              ing the side picture will be  colorized  with  that
              color.  You  can  set  this  color for a menu style
              using the SideColor option of  the  MenuStyle  com-
              mand.  To get a literal '^', insert

                   AddToMenu "StartMenu@linux-menu.xpm@^blue^"

              creates  a  menu  with a picture in its bottom left
              corner and colorizes with blue the  region  of  the
              menu containing the picture.

              In  all  the above cases, the name of the resulting
              menu is name specified, stripped of the  substrings
              between the various delimiters.



       AnimatedMove x y [ Warp ]

              Move  a  window in an animated way. Similar to Move
              command, below.  Options are the same, except  they
              are required, since it doesn't make sense to have a
              user move the window interactively and  animatedly.
              If  the  optional  argument  Warp  is specified the
              pointer is warped with the window.



       Beep   As might be expected, this makes the terminal beep.



       BorderStyle [ state ] [ style ] [ -- [!]flag ... ]
              Defines  a  border style for windows.  state can be
              either "Active" or "Inactive."  If state  is  omit-
              ted, then the style is set for both states.  If the
              style and flags are enclosed in  parentheses,  then



fvwm 2.xx               late 20th century                      14





FVWM(1)                                                   FVWM(1)


              multiple  state  definitions  can  be specified per
              line.

              style is a subset of  the  available  ButtonStyles,
              and  can only be TiledPixmap (uniform pixmaps which
              match the bevel colors work best this way).  If  an
              "!"   is  prefixed  to  any  flag, flag behavior is
              negated.  If style is not specified, then  one  can
              change flags without resetting the style.

              The  "HiddenHandles"  flag  hides the corner handle
              dividing lines on windows with handles (this option
              has  no  effect for NoHandle windows).  By default,
              HiddenHandles is disabled.

              The "NoInset" flag supplements  HiddenHandles.   If
              given,  the  inner bevel around the window frame is
              not drawn.  If HiddenHandles is not specified, this
              flag has no effect.

              To  decorate the active and inactive window borders
              with a textured pixmap, one might specify:

                   BorderStyle Active TiledPixmap marble.xpm
                   BorderStyle Inactive TiledPixmap granite.xpm
                   BorderStyle Active -- HiddenHandles NoInset

              To clear the style for both states:

                   BorderStyle Simple

              To clear for a single state:

                   BorderStyle Active Simple

              To unset a flag for a given state:

                   BorderStyle Inactive -- !NoInset

              Title-bar buttons can inherit the border style with
              the UseBorderStyle flag (see ButtonStyle).



       ButtonStyle button [ state ] [ style ] [ -- [!]flag ... ]
              Sets the button style for a title-bar button.  but-
              ton is the title-bar button number between 0 and 9,
              or one of "All," "Left," "Right," or "Reset."  But-
              ton numbering is described  in  the  Mouse  section
              (see  below).   If the style and flags are enclosed
              in parentheses, then multiple state definitions can
              be specified per line.

              state  refers  to which button state should be set.



fvwm 2.xx               late 20th century                      15





FVWM(1)                                                   FVWM(1)


              Button states are defined  as  follows:  "ActiveUp"
              and "ActiveDown" refer to the unpressed and pressed
              states for buttons on  active  windows;  while  the
              "Inactive"  state  denotes buttons on inactive win-
              dows.

              If state is ActiveUp, ActiveDown, or Inactive, that
              particular  button state is set.  If state is omit-
              ted,  every  state  is  set.   Specifying  a  style
              destroys  the  current style (use AddButtonStyle to
              avoid this).

              If style is omitted, then state-dependent flags can
              be   set  for  the  primary  button  style  without
              destroying the current style.  Examples (each  line
              should be considered independent):

                   ButtonStyle Left -- flat
                   ButtonStyle All ActiveUp (-- flat) \
                     Inactive (-- flat)

              The first line sets every state of the left buttons
              to flat, while the second sets  only  the  ActiveUp
              and  Inactive  states of every button to flat (only
              flags are changed; the buttons'  individual  styles
              are not changed).

              If you want to reset all buttons to their defaults:

                   ButtonStyle Reset

              To reset the ActiveUp button state of button  1  to
              the default:

                   ButtonStyle 1 ActiveUp Default

              To  reset  all  button  states  of  button 1 to the
              default of button number 2:

                   ButtonStyle 1 Default 2


              For any given button,  multiple  state  definitions
              can be given on one line by enclosing the style and
              flags in parentheses.  If only one  definition  per
              line is given the parentheses can be omitted.

              flags  affect  the  specified  state.  If an "!" is
              prefixed to any flag, its behavior is negated.  The
              available  state-dependent flags for all styles are
              described here (the next  ButtonStyle  entry  deals
              with state-independent flags).

              "Raised"  causes  a  raised  relief  pattern  to be



fvwm 2.xx               late 20th century                      16





FVWM(1)                                                   FVWM(1)


              drawn.

              "Sunk" causes a sunken relief pattern to be  drawn.

              "Flat"  inhibits  the  relief  pattern  from  being
              drawn.

              "UseTitleStyle" causes the given  button  state  to
              render the current title style before rendering the
              button's own styles.  The Raised,  Flat,  and  Sunk
              TitleStyle  flags are ignored since they are redun-
              dant in this context.

              "UseBorderStyle" causes the button to  inherit  the
              decorated BorderStyle options.

              Raised,  Sunk, and Flat are mutually exclusive, and
              can be specified for the initial ButtonStyle  only.
              UseTitleStyle  and UseBorderStyle are also mutually
              exclusive (both can be off however).   The  default
              is  Raised  with  both  UseBorderStyle  and  UseTi-
              tleStyle left unset.

              There is  an  important  note  for  the  ActiveDown
              state.   When  a  button  is pressed, the relief is
              inverted.  Because of  this,  to  obtain  a  sunken
              ActiveDown  state  you must specify the opposite of
              the desired relief (i.e.  to  obtain  a  pressed-in
              look which is raised, specify Sunk for ActiveDown).
              This behavior is consistent, but may seem confusing
              at first.

              Button  styles  are  classified as non-destructive,
              partially destructive, or fully destructive.   Non-
              destructive  styles  do not affect the image.  Par-
              tially destructive styles can obscure some  or  all
              parts of the underlying image (i.e. Pixmap).  Fully
              destructive styles obscure  the  entire  underlying
              image  (i.e.  Solid or one of the gradient styles).
              Thus, if stacking styles  with  AddButtonStyle  (or
              AddTitleStyle for title bars), use care in sequenc-
              ing styles to minimize redraw.

              The available styles and their arguments now follow
              (depending  on  compilation  options,  some  button
              styles may be unavailable).

              The "Simple" style  does  nothing.   There  are  no
              arguments,  and  this style is an example of a non-
              destructive button style.

              The "Default" style conditionally accepts one argu-
              ment:  a  number which specifies the default button
              number to load.  If  the  style  command  given  is



fvwm 2.xx               late 20th century                      17





FVWM(1)                                                   FVWM(1)


              ButtonStyle  or  AddButtonStyle,  the  argument  is
              optional (if given, will override the current  but-
              ton).   If  a  command  other  than  ButtonStyle or
              AddButtonStyle is used, the number must  be  speci-
              fied.

              The  "Solid"  style  fills  the button with a solid
              color.  The relief border color  is  not  affected.
              The color should be specified as a single argument.
              This style is fully destructive.

              The "Vector" style draws  a  line  pattern.   Since
              this  is a standard button style, the keyword "Vec-
              tor" is optional.  The specification  is  a  little
              cumbersome:

                   ButtonStyle 2 Vector 4 50x30@1 70x70@0 \
                     30x70@0 50x30@1

              then  the  button  2  decoration will use a 4-point
              pattern consisting of a line  from  (x=50,y=30)  to
              (70,70)  in  the  shadow  color  (@0),  and then to
              (30,70) in the shadow color, and finally to (50,30)
              in  the  highlight color (@1).  Is that too confus-
              ing? See the sample .fvwmrc  for  a  few  examples.
              This style is partially destructive.

              The  "VGradient" and "HGradient" styles denote gra-
              dient styles.  The H and  V  prefixes  denote  both
              horizontal and vertical directions.

              This style has two forms:

                The  first  form  specifies  a  linear  gradient.
                Arguments: total number  of  colors  to  allocate
                (between  2  and 128), the initial color, and the
                final color.

                The second form specifies a  nonlinear  gradient.
                Arguments:  total  number  of  colors to allocate
                (between 2 and 128), then the number of segments.
                For  each  segment,  specify  the starting color,
                percentage to increment, then ending color.  Each
                subsequent  segment  begins with the color of the
                last segment.  All of the percentages must add up
                to 100.

              Example:

                   TitleStyle VGradient 16 3 Red 20 Blue 30 \
                     Black 50 Grey

              The gradient styles are fully destructive.




fvwm 2.xx               late 20th century                      18





FVWM(1)                                                   FVWM(1)


              The  "Pixmap"  style  displays  a pixmap.  A pixmap
              should be specified as an argument.   For  example,
              the  following  would give button 2 the same pixmap
              for both states, and button 4 different pixmaps for
              the up, down and inactive states.

                   ButtonStyle 2 Pixmap my_pixmap.xpm
                   ButtonStyle 4 ActiveUp (Pixmap up.xpm) \
                     ActiveDown (Pixmap down.xpm)
                   ButtonStyle 4 Inactive Pixmap inactive.xpm

              The  pixmap  specification can be given as an abso-
              lute or relative pathname (see PixmapPath).  If the
              pixmap cannot be found, the button style reverts to
              Simple.  Flags specific to  the  Pixmap  style  are
              "Left," "Right," "Top," and "Bottom."  These can be
              used to justify the pixmap (default is centered for
              both  directions).  Pixmap transparency is used for
              the color "None."  This style is partially destruc-
              tive.

              The  "MiniIcon"  style draws the window's miniature
              icon in the button, which  is  specified  with  the
              MiniIcon  option  of the Style command. This button
              style accepts no arguments.  Example:

                   Style "*"     MiniIcon mini-bx2.xpm
                   Style "xterm" MiniIcon mini-term.xpm
                   Style "Emacs" MiniIcon mini-doc.xpm

                   ButtonStyle 1 MiniIcon


              The "TiledPixmap" style  accepts  a  pixmap  to  be
              tiled  as  the  button  background.   One pixmap is
              specified as an argument.  Pixmap  transparency  is
              not used.  This style is fully destructive.



       ButtonStyle button - [!]flag ...
              Sets state-independent flags for the specified but-
              ton.  State-independent flags affect button  behav-
              ior.  Each flag is separated by a space.  If an "!"
              is prefixed to the flag then the flag  behavior  is
              negated.   The  special  flag  "Clear"  clears  any
              existing flags.

              The following flags are usually used to  tell  fvwm
              which  buttons  should  be affected by MWM function
              hints.  This is not done  automatically  since  you
              might  have buttons bound to complex functions, for
              instance.




fvwm 2.xx               late 20th century                      19





FVWM(1)                                                   FVWM(1)


              "MWMDecorMenu" should be assigned to title bar but-
              tons  which display a menu.  The default assignment
              is the leftmost button.  When  a  window  with  the
              MWMFunctions Style option requests not to show this
              button, it will be hidden.

              "MWMDecorMin" should be assigned to title bar  but-
              tons  which  minimize  or  iconify the window.  The
              default assignment is the second button  over  from
              the  rightmost button.  When a window with the MWM-
              Functions Style option requests not  to  show  this
              button, it will be hidden.

              "MWMDecorMax"  should be assigned to title bar but-
              tons  which  maximize  the  window.   The   default
              assignment  is the rightmost button.  When a window
              with the MWMFunctions Style option requests not  to
              show this button, it will be hidden.



       ChangeDecor decor
              Changes  the  decor of a window to decor.  decor is
              "Default," or the name  of  a  decor  defined  with
              AddToDecor.   If  decor is invalid, nothing occurs.
              If called from somewhere in a window or its border,
              then  that  window is affected.  If called from the
              root window the user will be allowed to select  the
              target window.  ChangeDecor only affects attributes
              which can be set using the AddToDecor command.

                   ChangeDecor "CustomDecor1"



       ChangeMenuStyle menustyle menu ...
              Changes the menu style of  "menu"  to  "menustyle",
              you  may  specified  more  than  one  menu  in each
              ChangeMenuStyle.

                   ChangeMenuStyle  pixmap1 Screensavers ScreenLock



       ClickTime [ delay ]
              Specifies  the  maximum  delay  (in   milliseconds)
              between a button press and a button release for the
              Function built-in to consider the  action  a  mouse
              click.   The  default  delay  is  150 milliseconds.
              Omitting the delay value resets  the  ClickTime  to
              the default.






fvwm 2.xx               late 20th century                      20





FVWM(1)                                                   FVWM(1)


       Close  If  the window accepts the delete window protocol a
              message is sent to the window asking it  to  grace-
              fully remove itself.  If the window does not under-
              stand the delete window protocol then the window is
              destroyed.



       ColorLimit limit
              Specifies  a  limit  on the colors used in  pixmaps
              used  by  fvwm.   Zero  (the    default)   sets  no
              limit.    Fvwm  uses   pixmaps   for   icons, mini-
              icons, and pixmap borders and titles.  This command
              limits  pixmap  colors   to  a  set  of colors that
              starts out with  common colors.  The current   list
              contains  about  60 colors  and  starts with white,
              black, grey,   green,  blue,  red,  cyan,   yellow,
              and    magenta.   The  command "ColorLimit 9" would
              limit pixmaps to these 9 colors.

              It makes the most sense to put this command at  the
              front of the definitions that contain mini-icons.

              Solid frame and title colors (including shadows and
              gradients) are not controlled by this command.



       ColormapFocus FollowsMouse|FollowsFocus
              By default, fvwm installs the colormap of the  win-
              dow  that the cursor is in.  If you use ColormapFo-
              cus FollowsFocus, then the installed colormap  will
              be  the  one  for the window that currently has the
              keyboard focus.



       Current (conditions) command
              Performs command on the current window if it satis-
              fies  all conditions.  Conditions include "Iconic",
              "!Iconic",   "Visible",    "!Visible",    "Sticky",
              "!Sticky",  "Maximized", "!Maximized", "Transient",
              "!Transient", "Raised",  "!Raised",  "CurrentDesk",
              "CurrentPage",  and "CurrentPageAnyDesk".  In addi-
              tion, the condition may include a  window  name  to
              match  to.   The  window name may include the wild-
              cards * and ?.  The window name, icon name,  class,
              and  resource will be considered when attempting to
              find a match.  The window name  can  begin  with  !
              which  will  prevent  command  if any of the window
              name, icon name, class or resource match.

              Note that earlier versions of  fvwm2  required  the
              conditions  to  be  enclosed in brackets instead of



fvwm 2.xx               late 20th century                      21





FVWM(1)                                                   FVWM(1)


              parentheses (this is still supported for  backwards
              compatibility).



       CursorMove horizontal vertical
              Moves  the mouse pointer by horizontal pages in the
              X direction and vertical pages in the Y  direction.
              Either or both entries may be negative.  Both hori-
              zontal and vertical values are expressed in percent
              of  pages,  so  "CursorMove  100 100" means to move
              down and right by one full  page.   "CursorMove  50
              25"  means  to  move  right  half a page and down a
              quarter of a page.  Alternatively, the distance can
              be  specified  in  pixels by appending a 'p' to the
              horizontal  and/or  vertical  specification.    For
              example  "CursorMove -10p -10p" means move ten pix-
              els up and ten pixels left.  The  CursorMove  func-
              tion should not be called from pop-up menus.


       CursorStyle context cursornum
              Defines  a  new  cursor  for the specified context.
              The various contexts are:

                   POSITION (XC_top_left_corner)
                      used when initially placing windows

                   TITLE (XC_top_left_arrow)
                      used in a window title-bar

                   DEFAULT (XC_top_left_arrow)
                      used in windows that don't set their cursor

                   SYS (XC_hand2)
                      used in one of the title-bar buttons

                   MOVE (XC_fleur)
                      used when moving or resizing windows

                   WAIT (XC_watch)
                      used during an EXEC builtin command

                   MENU (XC_sb_left_arrow)
                      used in menus

                   SELECT (XC_dot)
                      used  for  various builtin commands such as
                      iconify

                   DESTROY (XC_pirate)
                      used for DESTROY, CLOSE, and DELETE  built-
                      ins




fvwm 2.xx               late 20th century                      22





FVWM(1)                                                   FVWM(1)


                   TOP (XC_top_side)
                      used in the top side-bar of a window

                   RIGHT (XC_right_side)
                      used in the right side-bar of a window

                   BOTTOM (XC_bottom_side)
                      used in the bottom side-bar of a window

                   LEFT (XC_left_side)
                      used in the left side-bar of a window

                   TOP_LEFT (XC_top_left_corner)
                      used in the top left corner of a window

                   TOP_RIGHT (XC_top_right_corner)
                      used in the top right corner of a window

                   BOTTOM_LEFT (XC_bottom_left_corner)
                      used in the bottom left corner of a window

                   BOTTOM_RIGHT (XC_bottom_right_corner)
                      used in the bottom right corner of a window

              And the cursornum is the numeric value of the  cur-
              sor  as  defined  in  the  include file X11/cursor-
              font.h.  An example:

                   # make the kill cursor be XC_gumby:
                   CursorStyle DESTROY 56

              The defaults are shown in parenthesis above.



       DefaultColors [  foreground background ]
              DefaultColors sets the default forground and  back-
              ground colors used in miscellaneous windows created
              by fvwm, for example in the geometry feedback  win-
              dows  during  a  move  or resize operation.  If you
              don't want to change one color or the other, use  -
              as its color name. To revert to the builtin default
              colors omit both color names. Note that the default
              colors are not used in menus, window titles or icon
              titles.



       DefaultFont [ fontname ]
              DefaultFont sets the default font to font fontname.
              The default font is used by fvwm2 whenever no other
              font has been specified. To reset the default  font
              to  the  built  in  default, omit the argument. The
              default font is used for menus, window titles, icon



fvwm 2.xx               late 20th century                      23





FVWM(1)                                                   FVWM(1)


              titles  as  well  as  the geometry feedback windows
              during a move or resize operation. To override  the
              default font in a specific context, use the Window-
              Font, IconFont or MenuStyle commands.



       Delete Sends a message to a window asking that  it  remove
              itself, frequently causing the application to exit.



       Desk arg1 [ arg2 ] [ min max ]
              Switches the current viewport  to  another  desktop
              (workspace, room).

              The command takes 1, 2, 3, or 4 arguments. A single
              argument is interpreted as a relative desk  number.
              Two  arguments  are understood as a relative and an
              absolute desk number.  Three  arguments  specify  a
              relative  desk  and  the minimum and maximum of the
              allowable range.  Four arguments specify the  rela-
              tive,  absolute, minimum and maximum values. (Desk-
              top numbers can be negative.)

              If arg1 is non zero then the  next  desktop  number
              will be the current desktop number plus arg1.

              If arg1 is zero then the new desktop number will be
              arg2.  (If arg2 is not present,  then  the  command
              has no effect.)

              If  min  and  max are given, the new desktop number
              will be no smaller than min and no bigger than max.
              Values out of this range are truncated (if you gave
              an absolute desk number) or wrapped around (if  you
              gave a relative desk number).

              The  syntax  is  the  same as for MoveToDesk, which
              moves a window to a different desktop.

              The number of active desktops is determined dynami-
              cally.   Only desktops which contain windows or are
              currently being displayed are active.  Desktop num-
              bers must be between 2147483647 and -2147483648 (is
              that enough?).



       DeskTopSize HorizontalxVertical
              Defines the virtual desktop size in  units  of  the
              physical screen size.





fvwm 2.xx               late 20th century                      24





FVWM(1)                                                   FVWM(1)


       Destroy
              Destroys   an  application  window,  which  usually
              causes the application to crash and burn.



       DestroyDecor decor
              Deletes the decor defined with AddToDecor, so  that
              subsequent  references  to  it are no longer valid.
              Windows using this decor revert to the default fvwm
              decor.    The   decor  named  "Default"  cannot  be
              destroyed.

                   DestroyDecor "CustomDecor1"




       DestroyFunc
              Deletes a function, so that  subsequent  references
              to  it  are  no  longer valid.  You can use this to
              change the contents of a function  during  an  fvwm
              session.   The function can be rebuilt using AddTo-
              Func.

                   DestroyFunc "PrintFunction"




       DestroyMenu
              Deletes a menu, so that subsequent references to it
              are  no  longer  valid.  You can use this to change
              the contents of a menu during an fvwm session.  The
              menu can be rebuilt using AddToMenu.

                   DestroyMenu "Utilities"



       DestroyMenuStyle menustyle
              Deletes   the  menu  style  named  "menustyle"  and
              changes all menus using this style to  the  default
              style, you cannot destroy the default menu.

                   DestroyMenuStyle pixamp1



       DestroyModuleConfig
              Deletes  module  configuration entries, so that new
              configuration lines may be  entered  instead.   You
              can  use  this  to change the the way a module runs
              during  an   fvwm   session   without   restarting.



fvwm 2.xx               late 20th century                      25





FVWM(1)                                                   FVWM(1)


              Wildcards  can  be used for portions of the name as
              well.

                   DestroyModuleConfig FvwmFormFore
                   DestroyModuleConfig FvwmButtons*




       Direction direction (conditions) command
              Performs command (typically Focus) on a  window  in
              the given direction which satisfies all conditions.
              Conditions are the same as for Current. The  direc-
              tion  may  be one of North, Northeast, East, South-
              east, South, Southwest, West and  Northwest.  Which
              window  Direction selects depends on angle and dis-
              tance between  the  centerpoints  of  the  windows.
              Closer  windows  are considered a better match than
              those farther away.



       Echo string
              Prints a message to stderr.  Potentially useful for
              debugging things in your .fvwmrc.

                   Echo Beginning style defs...




       EdgeResistance scrolling moving
              Tells  how  hard it should be to change the desktop
              viewport by moving the mouse over the edge  of  the
              screen  and  how hard it should be to move a window
              over the edge of the screen.

              The first  parameter  tells  how  milliseconds  the
              pointer  must  spend on the screen edge before fvwm
              will move the viewport.  This is intended for  peo-
              ple  who  use  "EdgeScroll  100 100" but find them-
              selves accidentally flipping pages when they  don't
              want to.

              The second parameter tells how many pixels over the
              edge of the screen a window's edge must move before
              it  actually  moves  partially  off  the screen. By
              default the viewport is moved a full  page  in  the
              requested direction, but if you used EdgeScroll and
              set any values other than zero they  will  be  used
              instead.

              Note  that, with "EdgeScroll 0 0", it is still pos-
              sible to move or resize windows across the edge  of



fvwm 2.xx               late 20th century                      26





FVWM(1)                                                   FVWM(1)


              the  current screen.  By making the first parameter
              to EdgeResistance 10000  this  type  of  motion  is
              impossible.   With  EdgeResistance  less than 10000
              but greater than 0 moving over pages becomes diffi-
              cult  but not impossible.  See also, EdgeThickness.


       EdgeScroll horizontal vertical
              Specifies the percentage of a page to  scroll  when
              the cursor hits the edge of a page.  A trailing "p"
              changes the interpretation to  mean  "pixels".   If
              you don't want any paging or scrolling when you hit
              the edge of a page include "EdgeScroll 0 0" in your
              .fvwmrc  file,  or possibly better, set the EdgeTh-
              ickness to zero.  See the EdgeThickness command. If
              you  want  whole  pages,  use "EdgeScroll 100 100".
              Both horizontal and  vertical  should  be  positive
              numbers.

              If the horizontal and vertical percentages are mul-
              tiplied by 1000 then scrolling will wrap around  at
              the  edge  of  the  desktop.  If "EdgeScroll 100000
              100000" is used fvwm will scroll  by  whole  pages,
              wrapping around at the edge of the desktop.


       EdgeThickness 0|1|2
              This is the width or height of the invisible window
              that fvwm2 creates on the edges of the screen  that
              are used for the edgescrolling feature.

              A  value  of   zero completely disables  mouse edge
              scrolling, even while dragging a window.

              1 gives the  smallest pan frames,   which  seem  to
              work best  except on some servers.

              2 is the default.

              Pan  frames  of 1 or 2 pixels can sometimes be con-
              fusing, for example, if you drag a window over  the
              edge  of  the  screen,  so  that it stradles aa pan
              frame, clicks on the window, near the edge  of  the
              screen are treated as clicks on the root window.



       Emulate fvwm|mwm|win
              This  command  affects how miscellaneous things are
              done by fvwm.  For example  where  the  move/resize
              feedback window appears depends on this command. To
              have more MWM- or WIN-like behavior  you  can  call
              Emulate with "MWM" or "WIN" as its argument.




fvwm 2.xx               late 20th century                      27





FVWM(1)                                                   FVWM(1)


       Exec command
              Executes  command.  You should not use an ampersand
              ``&'' at the end of the command.  You probably want
              to  use  an additional ``exec'' at the beginning of
              command.  Without that, the shell that fvwm invokes
              to  run  your  command  will stay until the command
              exits.  In effect, you'll have twice as  many  pro-
              cesses  running as you need.  Note that some shells
              are smart enough to avoid this, but it never  hurts
              to include the ``exec'' anyway.

              The  following example binds function key F1 in the
              root window, with no modifiers, to the  exec  func-
              tion.   The  program  rxvt  will be started with an
              assortment of options.

                   Key F1 R N Exec exec rxvt -fg yellow -bg blue \
                     -e /bin/tcsh


              Note that this function doesn't wait for command to
              complete, so things like:

                   Exec "echo AddToMenu ... > /tmp/file"
                   Read /tmp/file

              won't work reliably.


       ExecUseShell [ shell ]
              Makes  the Exec command use the specified shell, or
              the value of the $SHELL environment variable if  no
              shell  is  specified, instead of the default Bourne
              shell (/bin/sh).

                   ExecUseShell
                   ExecUseShell /usr/local/bin/tcsh




       FlipFocus
              Executes a Focus command as if the  user  had  used
              the  pointer  to  select  the window.  This command
              alters the order of the windowlist in the same  way
              as  clicking  in a window to focus, i.e. the target
              window is removed from the windowlist and placed at
              the start. This command is recommended for use with
              the Direction command and in the  function  invoked
              from WindowList.



       Focus  Moves  the viewport or window as needed to make the



fvwm 2.xx               late 20th century                      28





FVWM(1)                                                   FVWM(1)


              selected window visible.  Sets the  keyboard  focus
              to  the  selected  window.   Does not automatically
              raise the window.  Does not warp the  pointer  into
              the  selected  window  (see WarpToWindow function).
              Does not de-iconify.  This command does  not  alter
              the  order  of  the windowlist, it rotates the win-
              dowlist around so that the target window is at  the
              start.

              To  raise and warp a pointer together with Focus or
              FlipFocus, use a function:

                   AddToFunc SelectWindow
                   + I Focus
                   + I Raise
                   + I WarpToWindow 50 8p




       Function FunctionName
              Used to bind a previously defined function to a key
              or mouse button.

              The  following  example  binds  mouse button 1 to a
              function called "Move-or-Raise",  whose  definition
              was  provided  as  an  example  earlier in this man
              page.  After performing this binding fvwm will exe-
              cute to move-or-raise function whenever button 1 is
              pressed in a window title-bar.

                   Mouse 1 T A Function Move-or-Raise

              The keyword "Function" may be omitted if "Function-
              Name" does not coincide with an fvwm built-in func-
              tion name



       GlobalOpts [ options ]
              This is a TEMPORARY command used to set some global
              options  which will later be handled as Style parms
              (or options to Style parms).  It currently  handles
              the  following:  SmartPlacementIsReallySmart/Smart-
              PlacementIsNormal,          ClickToFocusDoesntPass-
              Click/ClickToFocusPassesClick,    ClickToFocusDoes-
              ntRaise/ClickToFocusRaises,    MouseFocusClickDoes-
              ntRaise/MouseFocusClickRaises,  CaptureHonorsStart-
              sOnPage/CaptureIgnoresStartsOnPage,      Recapture-
              HonorsStartsOnPage/RecaptureIgnoresStartsOnPage,
              ActivePlacementHonorsStartsOnPage/ActivePlace-
              mentIgnoresStartsOnPage, NoStipledTitles/StipledTi-
              tles




fvwm 2.xx               late 20th century                      29





FVWM(1)                                                   FVWM(1)


              Example:

                   GlobalOpts ClickToFocusDoesntPassClick, \
                     ClickToFocusDoesntRaise


              RecaptureHonorsStartsOnPage causes a window  to  be
              placed according to, or revert to, the StartsOnPage
              desk and page specification on  Restart  or  Recap-
              ture.  RecaptureIgnoresStartsOnPage  causes fvwm to
              respect the current window position on  Restart  or
              Recapture. The default is RecaptureIgnoresStartsOn-
              Page.

              CaptureHonorsStartsOnPage causes the  initial  cap-
              ture  (of an already existing window) at startup to
              place the window according to the StartsOnPage desk
              and  page specification. CaptureIgnoresStartsOnPage
              causes fvwm to  ignore  these  settings  (including
              StartsOnDesk)  on  initial  capture. The default is
              CaptureHonorsStartsOnPage.

              ActivePlacementIgnoresStartsOnPage       suppresses
              StartsOnPage or StartsOnDesk placement in the event
              that both ActivePlacement and  SkipMapping  are  in
              effect  when a window is created. This prevents you
              from interactively placing a window and  then  won-
              dering  where  it  disappeared  to,  because it got
              placed on a different desk or page. ActivePlacemen-
              tHonorsStartsOnPage  allows  this to happen anyway.
              The option has no effect if SkipMapping is  not  in
              effect,  because  fvwm  will  switch  to the proper
              desk/page to  perform  interactive  placement.  The
              default is ActivePlacementHonorsStartsOnPage, which
              matches the way StartsOnDesk handled the situation.


       GotoPage x y
              Moves  the  desktop  viewport  to  page (x,y).  The
              upper left page is (0,0), the upper right is (M,0),
              where M is one less than the current number of hor-
              izontal pages specified in the DeskTopSize command.
              The  lower  left page is (0,N), and the lower right
              page is (M,N), where N is  the  desktop's  vertical
              size  as specified in the DeskTopSize command.  The
              GotoPage function should not be used  in  a  pop-up
              menu.



       HilightColor textcolor backgroundcolor
              Specifies  the  text  and background colors for the
              decorations on the window which currently  has  the
              keyboard focus.



fvwm 2.xx               late 20th century                      30





FVWM(1)                                                   FVWM(1)


       IconFont [ fontname ]
              Makes  fvwm  use  font fontname for icon labels. To
              reset this font to the default font  (see  Default-
              Font) you may omit fontname.



       Iconify [ value ]
              Iconifies  a  window if it is not already iconified
              or de-iconifies it if it is already iconified.   If
              the optional argument value is positive only iconi-
              fication will be allowed.  If the optional argument
              is  negative only de-iconification will be allowed.



       IconPath path
              Specifies a colon separated list of full path names
              of  directories where bitmap (monochrome) icons can
              be found.  Each path should  start  with  a  slash.
              Environment  variables  can  be  used  here as well
              (i.e.  $HOME or ${HOME}).

              Note: if the FvwmM4 is used to parse your rc files,
              then m4 may want to mangle the word "include" which
              will frequently show up in the IconPath or  Pixmap-
              Path  command.  To fix this add undefine(`include')
              prior to the IconPath command, or  better  use  the
              '-m4-prefix'  option  to force all m4 directives to
              have a prefix of "m4_" (see the FvwmM4 man page).



       ImagePath path
              Specifies a colon separated list of directories  in
              which  to  search  for  images (both monochrome and
              pixmap).

              NOTE: ImagePath makes obsolete IconPath and Pixmap-
              Path  commands  in  the next fvwm versions. In this
              version all of the three commands are allowed.

              The ImagePath  may  contain  environment  variables
              such  as $HOME (or ${HOME}).  Further, a '+' in the
              path is expanded to the previous value of the path,
              allowing  easy appending or prepending to the path.

              For example:

                   ImagePath $HOME/icons:+:/usr/X11R6/include/bitmaps







fvwm 2.xx               late 20th century                      31





FVWM(1)                                                   FVWM(1)


       Key keyname Context Modifiers Function
              Binds a keyboard key to a specified  fvwm  built-in
              function,  or  removes  the  binding if Function is
              '-'.  Definition is the same as for a mouse binding
              except  that  the  mouse  button number is replaced
              with a key name.  The keyname is one of the entries
              from  /usr/X11R6/include/X11/keysymdef.h,  with the
              leading XK_ omitted.   The  Context  and  Modifiers
              fields  are  defined  as in the Mouse binding. How-
              ever, when you press a key the  context  window  is
              the window that has the keyboard focus. That is not
              necessarily the same as the window the  pointer  is
              over (with SloppyFocus or ClickToFocus).

              The  following  example  binds  the built in window
              list to pop up when Alt-Ctrl-Shift-F11 is  hit,  no
              matter where the mouse pointer is:

                   Key F11 A SCM WindowList


              Binding  a key to a title-bar button will not cause
              that button to appear unless a mouse  binding  also
              exists.



       KillModule name
              Causes  the module which was invoked with name name
              to be killed.  name may include wild-cards.



       Lower  Allows the user to lower a window.



       Maximize [  horizontal vertical ]
              Without its optional arguments Maximize causes  the
              window  to  alternately  switch  from a full-screen
              size to its normal size.

              With the optional arguments horizontal  and  verti-
              cal,  which  are  expressed as percentage of a full
              screen, the user can control the new  size  of  the
              window.   If  horizontal is greater than 0 then the
              horizontal dimension of the window will be  set  to
              horizontal*screen_width/100.  The vertical resizing
              is similar.  For example, the following will add  a
              title-bar  button  to  switch  a window to the full







fvwm 2.xx               late 20th century                      32





FVWM(1)                                                   FVWM(1)


              vertical size of the screen:

                   Mouse 0 4 A Maximize 0 100

              The following causes windows to be stretched to the
              full width:

                   Mouse 0 4 A Maximize 100 0

              This makes a window that is half the screen size in
              each direction:

                   Mouse 0 4 A Maximize 50 50

              Values larger than 100 can be used with caution.

              If the letter "p" is appended  to  each  coordinate
              (horizontal   and/or  vertical),  then  the  scroll
              amount will be measured in pixels.



       Menu menu-name [ position ] [ double-click-action ]
              Causes a previously defined menu to be popped up in
              a  "sticky"  manner.   That is, if the user invokes
              the menu with a click  action  instead  of  a  drag
              action, the menu will stay up.  The command double-
              click-action will be invoked if  the  user  double-
              clicks  (or  hits the key rapidly twice if the menu
              is bound to a key) when bringing the menu up.

              Several other commands affect menu operation.   See
              MenuStyle  and  SetAnimation.  When in a menu, key-
              board   shortcuts   work   as   expected.    Cursor
              keystrokes are also allowed.  Specifically, Cursor-
              Down, Ctrl-N, and Ctrl-J all move to the next item;
              Cursor-Up, Ctrl-P, and Ctrl-K all move to the prior
              item; Cursor-Left and Ctrl-B return  to  the  prior
              menu;  Cursor-Right and Ctrl-F popup the next menu;
              Ctrl-Cursor-Up and  Ctrl-Cursor-Down  move  up  and
              down five items, respectively;  Shift-Cursor-Up and
              Shift-Cursor-Down move to the first and last items,
              respectively;  Enter  executes  the  current  item;
              Escape exits the current sequence of menus.

              The pointer will be warped to where it was when the
              menu  was invoked if it was both invoked and termi-
              nated with a keystroke.

              The position arguments  allow  to  place  the  menu
              somewhere  on  the  screen, for example centered on
              the visible screen or above a title bar.  Basically
              it works like this: you specify a context-rectangle
              and an offset to this rectangle by which the  upper



fvwm 2.xx               late 20th century                      33





FVWM(1)                                                   FVWM(1)


              left  corner  of  the  menu is moved from the upper
              left corner of the rectangle.  The  position  argu-
              ments consist of several parts:

                   [ [context-rectangle] x y ] [ special-options ]

              The context-rectangle can be one of:

                   Root
                      the root window.
                   Mouse
                      a 1x1 rectangle at the mouse position.
                   Window
                      the window with the focus.
                   Interior
                      the inside of the focused window.
                   Title
                      the title of the focused window or icon.
                   Button<n>
                      button #n of the focused window.
                   Icon
                      the focused icon.
                   Menu
                      the current menu.
                   Item
                      the current menu item.
                   Context
                      the current window, menu or icon.
                   This
                      whatever  widget  the pointer is on (e.g. a
                      corner of a window or the root window).
                   Rectangle <geometry>
                      the rectangle defined by  <geometry>  in  X
                      geometry  format.  Width and height default
                      to 1 if omitted.

              If the context-rectangle is omitted "Mouse" is  the
              default.   Note  that  not  all of these make sense
              under all circumstances (e.g. "Icon" if the pointer
              is on a menu).

              The  offset values x and y specify how far the menu
              is moved from it's default  position.  By  default,
              the  numeric  value  given is interpreted as a per-
              centage of the context rectangle's width  (height),
              but  with  a trailing "m" the menu's width (height)
              is  used  instead.   Furthermore  a  trailing   "p"
              changes the interpretation to mean "pixels".

              Instead  of  a  single  value you can use a list of
              values. All additional numbers after the first  one
              are  separated  from  threir  predecessor but their
              sign. Do not use any other separators.




fvwm 2.xx               late 20th century                      34





FVWM(1)                                                   FVWM(1)


              If x or y are prefixed with 'o<number>' where <num-
              ber> is an integer, the menu and the rectangle will
              be moved  to  overlap  at  the  specified  position
              before  any other offsets are applied. The menu and
              the rectangle will be placed so that the  pixel  at
              <number> percent of the rectangle's width/height is
              right over the pixel at  <number>  percent  of  the
              menu's   width/height.   So  'o0'  means  that  the
              top/left borders of  the  menu  and  the  rectangle
              overlap,  with 'o100' it's the bottom/right borders
              and if you use 'o50' they are  centered  upon  each
              other  (try  it and you will see it is much simpler
              than this description). The default  is  'o0'.  The
              prefix

              A prefix of 'c' is equivalent of 'o50'.  Examples:


                   # window list in the middle of the screen
                   WindowList Root c c

                   # menu to the left of a window
                   Menu name window -100m c+0

                   # popup menu 8 pixels above the mouse pointer
                   Popup name mouse c -100m-8p

                   # somewhere on the screen
                   Menu name rectangle 512x384+1+1 +0 +0

                   # centered vertially around a menu item
                   AddToMenu foobar-menu
                    + "first item" Nop
                    + "special item" Popup "another menu" item \
                                     +100 c
                    + "last item" Nop

                   # above the first menu item
                   AddToMenu foobar-menu
                    + "first item" Popup "another menu" item +0 -100m

              Note that you can put a submenu far off the current
              menu so you could not reach it with the mouse with-
              out  leaving  the  menu.  If the pointer leaves the
              current menu in the general direction of  the  sub-
              menu the menu will stay up.

              The special-options:

                   The  "animated" and "mwm" or "win" meny styles
                   may move a menu somewhere else on the  screen.
                   If  you  do not want this you can add Fixed as
                   an option. This might happen  for  example  if
                   you  want  the  menu  always  in the top right



fvwm 2.xx               late 20th century                      35





FVWM(1)                                                   FVWM(1)


                   corner of the screen.

                   Where do you want a submenu to appear when you
                   click  on  it's  menu item?  The default is to
                   place the title under the cursor, but  if  you
                   want  it where the position arguments say, use
                   the SelectInPlace option.   If  you  want  the
                   pointer  on the title of the menu, use Select-
                   Warp too.

                   The pointer is warped to the title of  a  sub-
                   menu  whenever the pointer would be on an item
                   when the submenu is  popped  up  ("fvwm"  menu
                   style)  or  never  warped  to  thetitle at all
                   ("mwm" or "win" menu styles).  You  can  force
                   (forbid)   warping  whenever  the  submenu  is
                   opened with the WarpTitle (NoWarp) option.

                   Note that the special-options do work  with  a
                   normal  menu  that has no other position argu-
                   ments.


       MenuStyle stylename options
              Sets a new  menu  style  or  changes  a  previously
              defined style.  The stylename is the style name; if
              it contains spaces or tabs it has to be quoted. The
              name  "*"  is  reserved for the default menu style.
              The default menu style is used for every  menu-like
              object  (e.g.  the window created by the WindowList
              command) that had not be assigned a style using the
              ChangeMenuStyle.  See  also DestroyMenuStyle.  When
              using monochrome color options are ignored.

              options is a comma separated list  containing  some
              of  the  keywords  FVWM/MWM/WIN,  Foreground, Back-
              ground, Greyed, HilightBack/HilightBackOff, Active-
              Fore/ActiveForeOff,
              Hilight3DThick/Hilight3DThin/Hilight3DOff,   Anima-
              tion/AnimationOff, Font, MenuFace, PopupDelay, Pop-
              upOffset,    TitleWarp/TitleWarpOff,    TitleUnder-
              lines0/TitleUnderlines1/TitleUnderlines2,   Separa-
              torsLong/SeparatorsShort,     TrianglesSolid/Trian-
              glesRelief,   PopupImmediately/PopupDelayed,   Dou-
              bleClickTime, SidePic, SideColor.

              In the above list some options are listed as option
              pairs or triples with a / in between. These options
              exclude each other.

              FVWM, MWM, WIN reset all options to the style  with
              the  same  name  in  former  versions of fvwm2. The
              default for new menu styles is  FVWM  style.  These
              options  override  all  others  except  Foreground,



fvwm 2.xx               late 20th century                      36





FVWM(1)                                                   FVWM(1)


              Background, Greyed,  HilightBack,  HilightFore  and
              PopupDelay,  so  they  should  be  used only as the
              first option specified for a menu style or to reset
              the style to defined bahavior.  The same effect can
              be created by setting all the other options one  by
              one.

              MWM  and  WIN style menus popup sub-menus automati-
              cally.  WIN menus indicate the current menu item by
              changing  the  background  to  dark. FVWM sub-menus
              overlap the parent menu, MWM and  WIN  style  menus
              never overlap the parent menu.

              FVWM   style   is   equivalent  to  HilightBackOff,
              Hilight3DThin, ActiveForeOff,  AnimationOff,  Font,
              MenuFace,  PopupOffset 0 67, TitleWarp, TitleUnder-
              lines1, SeparatorsShort,  TriangleRelief,  PopupDe-
              layed.

              MWM   style   is   equivalent   to  HilightBackOff,
              Hilight3DThick, ActiveForeOff, AnimationOff,  Font,
              MenuFace,  PopupOffset -3 100, TitleWarpOff, Title-
              Underlines2, SeparatorsLong,  TriangleRelief,  Pop-
              upImmediately.

              WIN    style    is   equivalent   to   HilightBack,
              Hilight3DOff,  ActiveForeOff,  AnimationOff,  Font,
              MenuFace,  PopupOffset -5 100, TitleWarpOff, Title-
              Underlines1, SeparatorsShort,  TriangleSolid,  Pop-
              upImmediately.

              Foreground  and Background may have a color name as
              an argument. This color is used for  menu  text  or
              the menu's background.  You can omit the color name
              to reset these colors to the built in default.

              Greyed may have a color name as an  argument.  This
              color  is  the  one  used  to draw a menu-selection
              which is prohibited (or  not  recommended)  by  the
              mwm-hints  which  an application has specified.  If
              the color is omitted the  color  of  "greyed"  menu
              entries  is  based  on  the background color of the
              menu.

              HilightBack and  HilightBackOff  switch  hilighting
              the  background  of  the  selected menu item on and
              off. A specific background color  may  be  used  by
              providing the color name as an argument to Hilight-
              Back. If you use this option  without  an  argument
              the  color is based on the menu's background color.

              ActiveFore and ActiveForeOff switch hilighting  the
              foreground  of the selected menu item on and off. A
              specific foreground color may be used by  providing



fvwm 2.xx               late 20th century                      37





FVWM(1)                                                   FVWM(1)


              the  color name as an argument to ActiveFore. Omit-
              ting the color name has the  same  effet  as  using
              ActiveForeOff.

              Hilight3DThick,   Hilight3DThin   and  Hilight3DOff
              determine if the selected menu  item  is  hilighted
              with  a  3D  relief.   Thick reliefs are two pixels
              wide, thin reliefs are one pixel wide.

              Animation and AnimationOff turn menu  animation  on
              or off.  When animation is on, sub-menus that don't
              fit on the screen  cause  the  parent  menu  to  be
              shifted to the left so the sub-menu can be seen.

              Font takes a font name as an argument. If a font by
              this name exists it is used for  the  text  of  all
              menu  items. If it does not exist or if the name is
              left blank the built in default is used.

              MenuFace  enforces  a  fancy  background  upon  the
              menus. You can use the same options for MenuFace as
              for ButtonStyle plus DGradient, (top-left to  down-
              right)  and BGradient (down-left to top-right). See
              ButtonStyle for more  info.  If  you  use  MenuFace
              without  arguments  the  style  is reverted back to
              normal.

              Some examples of MenuFaces are:


                   MenuFace DGradient 128 2 lightgrey 50 blue 50 white
                   MenuFace TiledPixmap texture10.xpm
                   MenuFace HGradient 128 2 Red 40 Maroon 60 White
                   MenuFace Solid Maroon


              If you encounter performance problems with gradient
              backgrounds  you  can try one or all of the follow-
              ing:

              Turn Hilighting of the active menu item other  than
              forground color off:


                   MenuStyle <stylename> Hilight3DOff, HilightBackOff
                   MenuStyle ActiveFore <preferred color>


              Make  sure submenus do not overlap the parent menu.
              This can prevent menus being redrawn every  time  a
              submenu pops up or down.






fvwm 2.xx               late 20th century                      38





FVWM(1)                                                   FVWM(1)


                   MenuStyle <stylename> PopupOffset 1 100


              Run  you  X  server  with  backing storage. If your
              Xserver is started with the  -bs  option,  turn  it
              off. If not try the -wm option.


                   startx -- -wm


              You  may  have to adapt this example to your system
              (e.g. if you use xinit to start X).

              PopupDelay  requires  one  numeric  argument.  This
              value  is  the  delay in milliseconds before a sub-
              menu is popped up when the  pointer  moves  over  a
              menu item that has a sub-menu. If the value is zero
              no automatical pop up is done. If the  argument  is
              omitted the built in default is used. Note that the
              popup delay has no effect if  the  PopupImmediately
              option  is  used since sub-menus pop up immediately
              then. The PopupDelay option should only be  applied
              to  the  default  style  ('*') since it is a global
              setting and affects all menus.

              PopupImmediately makes menu items  with  sub  menus
              pop  up  it  up  as  soon as the pointer enters the
              item. The PopupDelay is ignored then.  If  PopupDe-
              layed  is used fvwm2 looks at the PopupDelay option
              if or when this automatic popup happens.

              PopupOffset requires two  integer  arguments.  Both
              values  affect  where sub-menus are placed relative
              to the parent menu. If both values  are  zero,  the
              left edge of the sub-menu overlaps the left edge of
              the parent menu. If the first value is non-zero the
              sub-menu  is  shifted that many pixels to the right
              (or left if negative). If the second value is  non-
              zero  the menu is moved by that many percent of the
              parent menu's width to the right or left.

              TitleWarp and TitleWarpOff affect  if  the  pointer
              warps  to  the menu title when a sub-menu is opened
              or not. Not that regardless  of  this  setting  the
              pointer will not be warped if the menu does not pop
              up under the pointer.

              TitleUnderlines0, TitleUnderlines1 and  TitleUnder-
              lines2  specify  how  many  lines are drawn below a
              menu title.

              SeparatorsLong and SeparatorsShort set  the  length
              of  menu  separators.  Long separators run from the



fvwm 2.xx               late 20th century                      39





FVWM(1)                                                   FVWM(1)


              left edge all the way to the right edge. Short sep-
              arators  leave  a  few  pixels  to the edges of the
              menu.

              TrianglesSolid and TrianglesRelief affect  how  the
              small  triangles for sub-menus is drawn. Solid tri-
              angles are filled with a color while relief  trian-
              gles are hollow.

              DoubleClickTime requires one numeric argument. This
              value is the time in milliseconds between two mouse
              clicks  in  a  menu  to  be  considered as a double
              click. The default is  450  milliseconds.   If  the
              argument  is omitted the doucle click time is reset
              to this default. The DoubleClickTime option  should
              only be applied to the default style ('*') since it
              is a global setting and affects all menus.

              SidePic takes the name of an xpm or bitmap file  as
              an  argument.   The picture is drawn along the left
              side of the menu. The SidePic option can  be  over-
              ridden   by   a  menu  specific  side  pixmap  (see
              AddToMenu). If the file name is omitted an existing
              side pixmap is remove from the menu style.

              SideColor  takes  the  name  of  an X11 color as an
              argument. This color is used to colorize the column
              containing  the side picture (see above). The Side-
              Color option can be overridden by a  menu  specific
              side  color  (see  AddToMenu). If the color name is
              omitted the side color option is switched off.

              Examples:


                   MenuStyle * mwm
                   MenuStyle * Foreground Black, Background gray40
                   MenuStyle * Greyed gray70, ActiveFore White
                   MenuStyle * HilightBackOff, Hilight3DOff
                   MenuStyle * Font lucidasanstypewriter-14
                   MenuStyle * MenuFace DGradient 64 darkgray MidnightBlue

                   MenuStyle gred mwm
                   MenuStyle gred Foreground Yellow, Background Maroon
                   MenuStyle gred Greyed Red, ActiveFore Red
                   MenuStyle gred HilightBackOff, Hilight3DOff
                   MenuStyle gred Font lucidasanstypewriter-12
                   MenuStyle gred MenuFace DGradient 64 Red Black


              Note that all style options could be  placed  on  a
              single line for each style name.





fvwm 2.xx               late 20th century                      40





FVWM(1)                                                   FVWM(1)


       MenuStyle forecolor backcolor shadecolor font style [ anim
       ]
              This is the old syntax of the MenuStyle command. It
              is  obsolete  and  may  be  removed  in the future.
              Please use the new syntax as described above.

              Sets the menu style.   When  using  monochrome  the
              colors  are  ignored.   The  shade-color is the one
              used to draw a menu-selection which  is  prohibited
              (or  not  recommended)  by  the  mwm-hints which an
              application has specified.   The  style  option  is
              either  "fvwm"  "mwm"  or  "win", which changes the
              appearance and operation of the menus and where the
              feedback window appears during resizes and moves.

              "mwm"  and  "win" style menus popup sub-menus auto-
              matically.  "win" menus indicate the  current  menu
              item  by  changing the background to black.  "fvwm"
              sub-menus overlap the parent menu, "mwm" and  "win"
              style  menus  never overlap the parent menu.  "mwm"
              resize and move feedback windows are in the  center
              of the screen, instead of the upper left corner.

              The  "anim" option is either "anim" or blank.  When
              this option is "anim", sub-menus that don't fit  on
              the  screen  cause the parent menu to be shifted to
              the left so the sub-menu can be seen.

              See also SetAnimation command.


       Module ModuleName
              Specifies a module which should be  spawned  during
              initialization.   At the current time the available
              modules (included with fvwm) are FvwmAnimate (fancy
              animation  of  (de)iconification)  FvwmAudio (makes
              sounds to go with window manager actions), FvwmAuto
              (an  auto  raise module), FvwmBacker (to change the
              background when you  change  desktops),  FvwmBanner
              (to display a spiffy XPM), FvwmButtons (brings up a
              customizable tool bar), FvwmCpp (to preprocess your
              .fvwmrc   with  cpp),  FvwmEvent  (trigger  various
              actions by events), FvwmForm (to bring up dialogs),
              FvwmIconBox  (like  the  mwm  IconBox), FvwmIconMan
              (like the twm icon manager), FvwmIdent (to get win-
              dow  info), FvwmM4 (to preprocess your .fvwmrc with
              m4), FvwmPager (a mini  version  of  the  desktop),
              FvwmSave  (saves  the  desktop  state  in  .xinitrc
              style), FvwmSaveDesk (saves the  desktop  state  in
              fvwm  commands), FvwmScroll (puts scrollbars on any
              window), FvwmTalk (to interactively run  fvwm  com-
              mands),  and  FvwmWinList (a window list), FvwmAni-
              mate (produces animation effects when a  window  is
              iconified or deiconifed).  These modules have their



fvwm 2.xx               late 20th century                      41





FVWM(1)                                                   FVWM(1)


              own man pages.  There  are  other  modules  out  on
              there as well.

              Modules  can  be short lived transient programs or,
              like FvwmButtons, can remain for  the  duration  of
              the  X  session.  Modules will be terminated by the
              window manager prior to restarts and quits, if pos-
              sible.   See  the  introductory section on modules.
              The keyword "module" may be omitted  if  ModuleName
              is distinct from all built-in and function names.



       ModulePath
              Specifies  a colon separated list of paths for fvwm
              to search when looking for a module to load.  Indi-
              vidual  directories  do  not need trailing slashes.
              Environment variables can  be  used  here  as  well
              (i.e.   $HOME or ${HOME}).  The builtin module path
              is   available   via   the   environment   variable
              $FVWM_MODULEDIR.



       Mouse Button Context Modifiers Function
              Defines  a mouse binding, or removes the binding if
              Function is zero then any button will  perform  the
              specified  function.   Context  describes where the
              binding applies.  Valid contexts are R for the root
              window, W for an application window, T for a window
              title bar, S for a window side, top, or bottom bar,
              F  for  a window frame (the corners), I for an Icon
              window, or 0 through 9 for  title-bar  buttons,  or
              any  combination  of  these  letters.  A is for any
              context  except   for   title-bar   buttons.    For
              instance,  a  context  of  FST  will apply when the
              mouse is anywhere in a window's border  except  the
              title-bar buttons.

              Modifiers is any combination of N for no modifiers,
              C for control, S for shift, M for Meta,  or  A  for
              any  modifier.   For example, a modifier of SM will
              apply when both the Meta and Shift keys  are  down.
              X11  modifiers mod1 through mod5 are represented as
              the digits 1 through 5.

              Function is one of fvwm's built-in functions.

              The title bar buttons are numbered  with  odd  num-
              bered buttons on the left side of the title bar and
              even numbers on the right.   Smaller-numbered  but-
              tons are displayed toward the outside of the window
              while larger-numbered  buttons  appear  toward  the
              middle  of  the  window  (0  is  short for 10).  In



fvwm 2.xx               late 20th century                      42





FVWM(1)                                                   FVWM(1)


              summary, the buttons are numbered:

                   1 3 5 7 9    0 8 6 4 2

              The highest odd numbered button which has an action
              bound  to it determines the number of buttons drawn
              on the left side of the  title  bar.   The  highest
              even  number  determines  the  number or right side
              buttons which are drawn.  Actions can be  bound  to
              either mouse buttons or keyboard keys.



       Move [ x y [ Warp ] ]
              Allows  the  user to move a window.  If called from
              somewhere in a window or its border, then that win-
              dow  will be moved.  If called from the root window
              then the user will be allowed to select the  target
              window.  If the optional argument Warp is specified
              the pointer is warped with the window.

              The operation can be  aborted  with  Escape  or  by
              pressing  any  mouse  button (except button 1 which
              confirms the move).

              If the optional arguments x  and  y  are  provided,
              then  the  window will be moved immediately without
              user interaction.  Each  argument  can  specify  an
              absolute  or relative position from either the left
              (top) or right (bottom) of the screen.  By default,
              the  numeric  value  given is interpreted as a per-
              centage of the screen width (height), but a  trail-
              ing  "p"  changes  the interpretation to mean "pix-
              els".

              Simple Examples:

                   # Interactive move
                   Mouse 1 T A Move
                   # Move window so top left is at (10%,10%)
                   Mouse 2 T A Move 10 10
                   # Move top left to (10pixels,10pixels)
                   Mouse 3 T A Move 10p 10p


              More  complex  examples  (these  can  be  bound  as
              actions  to  keystrokes,  etc.; only the command is
              shown, though):

                   # Move window so bottom right is at bottom
                   # right of screen
                   Move -0 -0

                   # Move window 5% to the right, and to the



fvwm 2.xx               late 20th century                      43





FVWM(1)                                                   FVWM(1)


                   # middle vertically
                   Move w+5 50

                   # Move window up 10 pixels, and so left edge
                   # is at x=40 pixels
                   Move 40p w-10p


              See also the "AnimatedMove" command, above.



       MoveToDesk arg1 [ arg2 ] [ min max ]
              Moves  the  selected  window  to  another   desktop
              (workspace, room).

              The arguments are the same as for the Desk command.
              MoveToDesk is a replacement for the old WindowsDesk
              command, which can no longer be used.



       MoveToPage [ x y ]
              Moves  the  selected  window to another page (x,y).
              The upper left page is (0,0), the  upper  right  is
              (M,0),  where M is one less than the current number
              of horizontal pages specified  in  the  DeskTopSize
              command.   The  lower  left  page is (0,N), and the
              lower right page is (M,N), where N is the desktop's
              vertical  size as specified in the DeskTopSize com-
              mand. If x and y are not given, the window is moved
              to  the  current  page (a window that has the focus
              but is off-screen can be retrieved with this).



       Next (conditions) command
              Performs command (typically Focus) on the next win-
              dow which satisfies all conditions.  Conditions are
              the same as for Current with the addition of Circu-
              lateHit  which  overrides  the  CirculateSkip style
              attribute and CirculateHitIcon which overrides  the
              CirculateSkipIcon  style  attribute  for  iconified
              windows.



       None (conditions) command
              Performs command if no window which  satisfies  all
              conditions  exists.  Conditions are the same as for
              Next.






fvwm 2.xx               late 20th century                      44





FVWM(1)                                                   FVWM(1)


       Nop    Does nothing.  This is used to insert a blank  line
              or  separator in a menu.  If the menu item specifi-
              cation is Nop " ", then a blank line  is  inserted.
              If  it  looks like Nop "", then a separator line is
              inserted.  Can also be  used  as  the  double-click
              action for Menu.



       OpaqueMoveSize percentage
              Tells  fvwm  the  maximum  size  window  with which
              opaque window movement should be  used.   The  per-
              centage  is percent of the total screen area.  With
              "OpaqueMoveSize 0" all windows will be moved  using
              the traditional rubber-band outline.  With "Opaque-
              MoveSize 100" all windows will  be  move  as  solid
              windows.   The default is "OpaqueMoveSize 5", which
              allows small windows to be moved in an opaque  man-
              ner but large windows are moved as rubber-bands.



       PipeRead cmd option
              Causes  fvwm  to read commands output from the pro-
              gram named cmd.  Useful  for  building  up  dynamic
              menu  entries  based on a directories contents, for
              example.



       PixmapPath path
              Specifies a colon separated list of full path names
              of  directories  where  pixmap (color) icons can be
              found.  Each path should start with a slash.  Envi-
              ronment  variables  can  be used here as well (i.e.
              $HOME or ${HOME}).



       Popup PopupName [ position ] [ default-action ]
              This built-in has two purposes: to bind a menu to a
              key  or mouse button, and to bind a sub-menu into a
              menu.  The formats  for  the  two  purposes  differ
              slightly.   The  position arguments are the same as
              for  Menu.   The  command  default-action  will  be
              invoked  if  the user clicks a button to invoke the
              menu and releases it immediately again (or hits the
              key rapidly twice if the menu is bound to a key).

              To  bind  a previously defined pop-up menu to a key
              or mouse button:

                The following example binds mouse buttons 2 and 3
                to  a  pop-up called "Window Ops".  The menu will



fvwm 2.xx               late 20th century                      45





FVWM(1)                                                   FVWM(1)


                pop up if the buttons 2 or 3 are pressed  in  the
                window  frame,  side-bar,  or  title-bar, with no
                modifiers (none of shift, control, or meta).

                     Mouse 2 FST N Popup "Window Ops"
                     Mouse 3 FST N Popup "Window Ops"

                Pop-ups can be bound to keys through the  use  of
                the  Key built in.  Pop-ups can be operated with-
                out using the mouse by binding to keys and  oper-
                ating  via  the  up  arrow, down arrow, and enter
                keys.

              To bind a previously defined pop-up menu to another
              menu, for use as a sub-menu:

                The  following example defines a sub menu, "Quit-
                Verify" and binds it into  a  main  menu,  called
                "RootMenu":

                     AddToMenu Quit-Verify
                      + "Really Quit Fvwm?" Title
                      + "Yes, Really Quit"  Quit
                      + "Restart Fvwm2"     Restart fvwm2
                      + "Restart Fvwm 1.xx" Restart fvwm
                      + ""                  Nop
                      + "No, Don't Quit"    Nop

                     AddToMenu RootMenu "Root Menu" Title
                      + "Open XTerm Window" Popup NewWindowMenu
                      + "Login as Root"     Exec exec xterm \
                                                      -fg green -T Root \
                                                      -n Root -e su -
                      + "Login as Anyone"   Popup AnyoneMenu
                      + "Remote Hosts"      Popup HostMenu
                      + ""                  Nop
                      + "X utilities"       Popup Xutils
                      + ""                  Nop
                      + "Fvwm Modules"      Popup Module-Popup
                      + "Fvwm Window Ops"   Popup Window-Ops
                      + ""                  Nop
                      + "Previous Focus"    Prev (*) Focus
                      + "Next Focus"        Next (*) Focus
                      + ""                  Nop
                      + "Refresh screen"    Refresh
                      + "Recapture screen"  Recapture
                      + ""                  Nop
                      + "Reset X defaults"  Exec xrdb -load \
                                            $HOME/.Xdefaults
                      + ""                  Nop
                      + ""                  Nop
                      + "Quit"              Popup Quit-Verify





fvwm 2.xx               late 20th century                      46





FVWM(1)                                                   FVWM(1)


              Popup differs from Menu in that pop-ups do not stay
              up if the user simply clicks.  These are Twm  style
              popup-menus,  which are a little hard on the wrist.
              Menu  provides  Motif  or  Microsoft-Windows  style
              menus  which  will  stay up on a click action.  See
              menu  for  an  explanation   of   the   interactive
              behaviour of menus.



       Prev (conditions) command
              Performs  command (typically Focus) on the previous
              window which satisfies all conditions.   Conditions
              are the same as for Next.



       Quit   Exits fvwm, generally causing X to exit too.



       QuitScreen
              Causes  fvwm  to  stop managing the screen on which
              the command was issued.



       Raise  Allows the user to raise a window.



       RaiseLower
              Alternately raises and lowers a window.



       Read filename [ option ]
              Causes fvwm to read commands from  the  file  named
              filename.   If the option following the filename is
              "Quiet", no message is produced if the file is  not
              found.



       Recapture
              Causes  fvwm to recapture all of its windows.  This
              ensures that the latest style  parameters  will  be
              used.  The recapture operation is visually disturb-
              ing.



       Refresh
              Causes  all  windows  on  the  screen   to   redraw



fvwm 2.xx               late 20th century                      47





FVWM(1)                                                   FVWM(1)


              themselves.



       RefreshWindow
              Causes current (or chosen) window to redraw itself.



       Resize [ x y ]
              Allows the user to resize a window.  If called from
              somewhere in a window or its border, then that win-
              dow will be resized.  If called from the root  win-
              dow  then  the  user  will be allowed to select the
              target window.

              The operation can be  aborted  with  Escape  or  by
              pressing  any  mouse  button (except button 1 which
              confirms the resize).

              If the optional arguments x  and  y  are  provided,
              then  the window will be resized so that its dimen-
              sions are x by y).  The units of x and y  are  per-
              cent-of-screen,  unless a letter "p" is appended to
              each coordinate, in  which  case  the  location  is
              specified in pixels.



       Restart  WindowManagerName
              Causes  fvwm to restart itself if WindowManagerName
              is "fvwm2", or to switch  to  an  alternate  window
              manager if WindowManagerName is other than "fvwm2".
              If the window manager is not in your default search
              path,  then  you  should use the full path name for
              WindowManagerName.

              This command should not have a  trailing  ampersand
              or  any  command line arguments and should not make
              use of any environmental variables.  Of the follow-
              ing  examples,  the  first two are sure losers, but
              the third is OK:

                   Key F1 R N Restart fvwm &
                   Key F1 R N Restart $(HOME)/bin/fvwm
                   Key F1 R N Restart /home/nation/bin/fvwm



       Scroll horizonal vertical
              Scrolls the virtual desktop's viewport by  horizon-
              tal  pages in the x-direction and vertical pages in
              the y-direction.  Either or  both  entries  may  be
              negative.   Both horizontal and vertical values are



fvwm 2.xx               late 20th century                      48





FVWM(1)                                                   FVWM(1)


              expressed in percent of pages, so "Scroll 100  100"
              means  to  scroll  down  and left by one full page.
              "Scroll 50 25" means to scroll left half a page and
              down  a  quarter  of  a  page.  The scroll function
              should not be called from pop-up  menus.  Normally,
              scrolling stops at the edge of the desktop.

              If the horizontal and vertical percentages are mul-
              tiplied by 1000 then scrolling will wrap around  at
              the  edge  of the desktop.  If "Scroll 100000 0" is
              executed over and over fvwm will move to  the  next
              desktop page on each execution and will wrap around
              at the edge of the desktop, so that every  page  is
              hit in turn.

              If  the  letter  "p" is appended to each coordinate
              (horizontal  and/or  vertical),  then  the   scroll
              amount will be measured in pixels.


       SendToModule modulename string
              Sends  an  arbitrary string (no quotes required) to
              all modules matching modulename, which may  contain
              wildcards.   This only makes sense if the module is
              set up to understand and deal  with  these  strings
              though...   Can be used for module to module commu-
              nication, or implementation of  more  complex  com-
              mands in modules.


       SetAnimation milliseconds-delay [ fractions-to-move-list ]
              Sets the time between frames and the list of  frac-
              tional  offsets  to customize the animated moves of
              the AnimatedMove command and the animation of menus
              (if  the  menu  style  is set to animated).  If the
              fractions-to-move-list is omitted,  only  the  time
              between  frames is altered.  The fractions-to-move-
              list specifies how far the window should be  offset
              at  each successive frame as a fraction of the dif-
              ference between the starting location and the  end-
              ing location.  e.g.:

                   SetAnimation 10 -.01 0 .01 .03 .08 .18 .3 \
                     .45 .6 .75 .85 .90 .94 .97 .99 1.0


              Sets the delay between frames to 10ms, and sets the
              positions of the 16 frames of the animation motion.
              Notice  that  negative  values  are allowed, and in
              particular can be used to make  the  motion  appear
              more  cartoonish, by briefly moving slightly in the
              opposite direction of the main motion.   The  above
              settings are the default.




fvwm 2.xx               late 20th century                      49





FVWM(1)                                                   FVWM(1)


       SetEnv varname stringvalue
              Set an environment variable to a new value, similar
              to shell's export or setenv command.  The  variable
              and  its  value  are inherited by processes started
              directly by fvwm2.  This can be  especially  useful
              in   conjunction   with  the  FvwmM4  module;  e.g.
              "SetEnv height HEIGHT"  will  make  the  FvwmM4-set
              variable  "HEIGHT"  usable  by processes started by
              fvwm2 as the environment  variable  "$height".   If
              stringvalue includes whitespace, you should enclose
              it in quotes.



       SnapAttraction proximity [ behavior ]
              If during an interactive move the window (or  icon)
              comes within proximity pixels of another the window
              (or icon) will be moved to make the borders adjoin.
              The  default of -1 means that no snapping will hap-
              pen.  A setting of 0 does indeed snap when the dis-
              tance  is  zero  pixels.  This is relevant when the
              SnapGrid command is used.

              The behavior argument is optional and may be set to
              one of the four following values:

              With  All both icons and windows snap to other win-
              dows and other icons.

              SameType lets snap windows only  to  other  windows
              and icons only to other icons.

              With  Windows  windows  snap only to other windows.
              Icons do not snap.

              Similarly with Icons icons snap to only other icons
              and windows do not snap.

              The  default SnapAttraction setting for behavior is
              "All".


       SnapGrid x-grid-size y-grid-size
              During an interactive move a window (or icon)  will
              be positioned such that its location (top left cor-
              ner) will be  coincindent  with  the  nearest  grid
              point.   The  default  x-grid-size  and y-grid-size
              setting are both 1, which is  effectively  no  grid
              all.   An  interactive  move with both SnapGrid and
              SnapAttraction in effect will result in the  window
              being  moved  to  be adjacent to the nearest window
              border (if within snap proximity) or grid position.
              In  other  words, the window will move the shortest
              distance possible  to  satisfy  both  SnapGrid  and



fvwm 2.xx               late 20th century                      50





FVWM(1)                                                   FVWM(1)


              SnapAttraction.   Note that the X and Y coordinates
              are not coupled.  For example, a window may snap to
              another  window  on  the X axis while snapping to a
              grid point on the Y axis.


       Stick  Makes a window sticky if it is not already  sticky,
              or non-sticky if it is already sticky.


       Style windowname options
              This  command  is  intended to replace the old fvwm
              1.xx global commands NoBorder,  NoTitle,  StartsOn-
              Desk,  Sticky,  StaysOnTop,  Icon,  WindowListSkip,
              CirculateSkip,    SuppressIcons,     BoundaryWidth,
              NoBoundaryWidth,   StdForeColor,  and  StdBackColor
              with a single flexible and comprehensive  window(s)
              specific  command.   This  command  is  used to set
              attributes of a window to  values  other  than  the
              default  or  to  set  the  window  manager  default
              styles.

              windowname  can  be  a  window's  name,  class,  or
              resource  string.   It  can contain the wildcards *
              and/or ?, which are matched in the usual Unix file-
              name  manner.   They  are  searched  in the reverse
              order stated, so that Style commands based  on  the
              name  override or augment those based on the class,
              which  override  or  augment  those  based  on  the
              resource string.

              Note  -  windows  that  have  no name (WM_NAME) are
              given a name of "Untitled", and windows that  don't
              have  a class (WM_CLASS, res_class) are given Class
              = "NoClass" and those that don't  have  a  resource
              (WM_CLASS,  res_name)  are  given Resource = "NoRe-
              source".

              options is a comma separated list  containing  some
              or  all  of  the keywords BorderWidth, HandleWidth,
              NoIcon/Icon, MiniIcon, IconBox, IconGrid, IconFill,
              NoTitle/Title,    NoHandles/Handles,    WindowList-
              Skip/WindowListHit,     CirculateSkip/CirculateHit,
              StaysOnTop/StaysPut,    Sticky/Slippery,    StartI-
              conic/StartNormal,  Color,  ForeColor,   BackColor,
              StartsOnDesk/StartsOnPage/StartsAnyWhere,   IconTi-
              tle/NoIconTitle,  MWMButtons/FvwmButtons,   MWMBor-
              der/FvwmBorder,    MWMDecor/NoDecorHint,   MWMFunc-
              tions/NoFuncHint,  HintOverride/NoOverride,  NoBut-
              ton/Button, OLDecor/NoOLDecor, StickyIcon/Slippery-
              Icon,  SmartPlacement/DumbPlacement,   RandomPlace-
              ment/ActivePlacement,  DecorateTransient/NakedTran-
              sient, SkipMapping/ShowMapping, UseDecor, UseStyle,
              NoPPosition/UsePPosition,      Lenience/NoLenience,



fvwm 2.xx               late 20th century                      51





FVWM(1)                                                   FVWM(1)


              ClickToFocus/SloppyFocus/MouseFocus|FocusFollows-
              Mouse.

              In the above list some options are listed as style-
              option/opposite-style-option.  The  opposite-style-
              option  for  entries  that  have them describes the
              fvwm default behavior and can be used if  you  want
              to change the fvwm default behavior.

              DecorateTransient  causes  transient windows, which
              are normally left  undecorated,  to  be  given  the
              usual  fvwm decorations (title bar, buttons, etc.).
              Note that some pop-up windows, such  as  the  xterm
              menus,  are  not  managed by the window manager and
              still do not  receive  decorations.  NakedTransient
              (the  default)  causes  transient windows not to be
              given the standard decorations.

              Icon takes an (optional) unquoted  string  argument
              which is the icon bitmap or pixmap to use.

              IconBox  takes  four  numeric  arguments  or an X11
              geometry string:

                   IconBox l t r b

              or

                   IconBox geometry


              Where l is the left coordinate, t is the top, r  is
              right  and  b is bottom. Negative coordinates indi-
              cate distance from  the  right  or  bottom  of  the
              screen.   Perhaps  easier to use is an X11 Geometry
              string:

                   IconBox -80x200-1-1

              Which would place an 80 by 240 pixel iconbox in the
              lower right hand corner of the screen.  The iconbox
              is a region of the screen where  fvwm  attempts  to
              put  icons for any matching window, as long as they
              do not overlap other icons.   Multiple  icon  boxes
              can  be  defined as overflow areas.  When the first
              icon box is filled, the second one is filled.   All
              the icon boxes for one style must be defined in one
              command.  For example:

                   Style "*" IconBox -80x200-1-1, \
                             IconBox 1000x70-1-1


              IconGrid takes 2  numeric  arguments  greater  than



fvwm 2.xx               late 20th century                      52





FVWM(1)                                                   FVWM(1)


              zero.

                   IconGrid x y

              Icons  are  placed  in an icon box by stepping thru
              the icon box using the x and y values for the  icon
              grid,  looking  for a free space.  The default grid
              is 3 by 3  pixels  which  gives  a  tightly  packed
              appearance.  To get a more regular appearance use a
              grid larger  than  your  largest  icon.   Currently
              there  is no way to clip an icon to a maximum size.
              An IconGrid definition must follow the IconBox def-
              inition that it applies to:

                   Style "*" IconBox -80x240-1-1, IconGrid 90 90


              IconFill takes 2 arguments.

                   IconFill Bottom Right

              Icons  are  placed  in an icon box by stepping thru
              the icon box using these arguments to  control  the
              direction  the  box  is  filled in.  By default the
              direction is left to right,  then  top  to  bottom.
              This would be expressed as:

                   IconFill left bottom

              To  fill  an  icon  box in columns instead of rows,
              specify the  vertical  direction  (top  or  bottom)
              first.    The  directions  can  be  abbreviated  or
              spelled out as follows:  "t",  "top",  "b",  "bot",
              "bottom",  "l", "lft", "left", "r", "rgt", "right".
              An IconFill definition must follow the IconBox def-
              inition that it applies to:

                   Style "*" IconBox -80x240-1-1, IconFill b r


              MiniIcon specifies a pixmap to use as the miniature
              icon for the window.  This miniature  icon  can  be
              drawn  in a title-bar button (see ButtonStyle), and
              can be used by various fvwm  modules  (FvwmWinList,
              FvwmIconMan, and FvwmTaskBar). It takes the name of
              a pixmap as an argument.

              StartsOnDesk takes a numeric argument which is  the
              desktop  number  on which the window should be ini-
              tially placed.  Note that standard Xt programs  can
              also  specify  this  via  a  resource  (e.g.  "-xrm
              '*Desk: 1'").

              StartsOnPage takes 1, 2, or 3 numeric arguments. If



fvwm 2.xx               late 20th century                      53





FVWM(1)                                                   FVWM(1)


              one  or  three  arguments  are givem, the first (or
              only) argument is the  desktop  number.   If  three
              arguments  are  given,  the  2nd  and 3rd arguments
              identify the x,y page position on the virtual  win-
              dow.  If  two arguments are given, they specify the
              page position, and indicate no desk preference.  If
              only  one argument is given, StartsOnPage functions
              exactly like StartsOnDesk. For  those  standard  Xt
              programs  which understand this usage, the starting
              desk/page can also  be  specified  via  a  resource
              (e.g., "-xrm 'Fvwm.Page: 1 0 2'").

              StartsOnPage  in  conjunction with SkipMapping is a
              useful technique when you want to start an  app  on
              some  other  page  and  continue with what you were
              doing, rather than waiting for it to appear.

              StaysOnTop makes the window always try to  stay  on
              top  of the other windows.  This might be handy for
              clocks or mailboxes that you would always  like  to
              be visible.  If the window is explicitly lowered it
              will not try to force its way back to the top until
              it  is  explicitly  raised.  StaysPut (the default)
              allows the window to be obscured and stay that way.

              BorderWidth  takes  a numeric argument which is the
              width of the border to place the window if it  does
              not have resize-handles.

              HandleWidth  takes  a numeric argument which is the
              width of the border to place the window if it  does
              have resize-handles.

              Button  and  NoButton take a numeric argument which
              is the number of the title-bar button which  is  to
              be included/omitted.

              StickyIcon  makes the window sticky when its iconi-
              fied.  It will deiconify on top the active desktop.

              MWMButtons  makes the Maximize button look pressed-
              in when the window is maximized.  See the MWMButton
              flag in ButtonStyle for more information.

              MWMBorder  makes  the  3-D bevel more closely match
              mwm's.

              MWMDecor  makes  fvwm  attempt  to  recognize   and
              respect  the mwm decoration hints that applications
              occasionally use.

              MWMFunctions makes fvwm attempt  to  recognize  and
              respect  the  mwm  prohibited operations hints that
              applications occasionally use.  HintOverride  makes



fvwm 2.xx               late 20th century                      54





FVWM(1)                                                   FVWM(1)


              fvwm  shade out operations that mwm would prohibit,
              but it lets you perform the operation anyway.

              OLDecor makes fvwm attempt to recognize and respect
              the  olwm and olvwm hints that many older XView and
              OLIT applications use.

              Color takes two arguments.  The first is  the  win-
              dow-label  text  color and the second is the window
              decoration's normal background color.  The two col-
              ors  are  separated  with a slash.  If the use of a
              slash causes problems then the  separate  ForeColor
              and BackColor options can be used.

              UseDecor  accepts one argument: the name of a decor
              created with AddToDecor.  If UseDecor is not speci-
              fied,  the "Default" decor is used.  Windows do not
              actually contain decors, but are always assigned to
              one.    If   the   decor  is  later  modified  with
              AddToDecor, the changes will  be  visible  for  all
              windows  which are assigned to it.  The decor for a
              window can be reassigned with ChangeDecor.

              UseStyle takes  one  arg,  which  is  the  name  of
              another  style.   That  way  you can have unrelated
              window names easily inherit similar traits  without
              retyping.   For  example:  'Style  "rxvt"  UseStyle
              "XTerm"'.

              SkipMapping tells fvwm not to switch  to  the  desk
              the  window  is  on  when  it gets mapped initially
              (useful with StartsOnDesk or StartsOnPage).

              Lenience instructs fvwm to ignore the convention in
              the  ICCCM which states that if an application sets
              the input field of the wm_hints structure to False,
              then  it  never wants the window manager to give it
              the input focus.  The only application that I  know
              of  which  needs  this is sxpm, and that is a silly
              bug with a trivial fix and has no overall effect on
              the  program  anyway.   Rumor  is  that  some older
              applications have problems too.

              ClickToFocus instructs fvwm to give  the  focus  to
              the  window  when  it  is  clicked in.  The default
              MouseFocus (or its alias  FocusFollowsMouse)  tells
              fvwm  to  give  the window the focus as soon as the
              pointer enters the window, and take  it  away  when
              the pointer leaves the window. SloppyFocus is simi-
              lar, but doesn't give up the focus if  the  pointer
              leaves the window to pass over the root window or a
              ClickToFocus window (unless you click on  it,  that
              is),  which makes it possible to move the mouse out
              of the way without losing focus.



fvwm 2.xx               late 20th century                      55





FVWM(1)                                                   FVWM(1)


              NoPPosition instructs fvwm to ignore the  PPosition
              field  when  adding  new windows.  Adherence to the
              PPosition field is required for some  applications,
              but  if  you  don't  have  one  of those its a real
              headache.

              RandomPlacement causes windows which would normally
              require  user  placement to be automatically placed
              in ever-so-slightly random locations.  For the best
              of all possible worlds use both RandomPlacement and
              SmartPlacement.

              SmartPlacement causes windows which would  normally
              require  user  placement to be automatically placed
              in a smart location - a location in which  they  do
              not overlap any other windows on the screen.  If no
              such position can be found user placement or random
              placement  (if  specified)  will be used as a fall-
              back method.  For the best of all  possible  worlds
              use both RandomPlacement and SmartPlacement.

              An example:

                   # Change default fvwm behavior to no title-
                   # bars on windows! Also define a default icon.
                   Style "*"           NoTitle,                 \
                                       Icon unknown1.xpm,       \
                                       BorderWidth 4,           \
                                       HandleWidth 5

                   # now, window specific changes:
                   Style "Fvwm*"       NoHandles, Sticky,       \
                                       WindowListSkip,          \
                                       BorderWidth 0
                   Style "Fvwm Pager"  StaysOnTop, BorderWidth 0
                   Style "*lock"       NoHandles, Sticky,       \
                                       StaysOnTop, WindowListSkip
                   Style "xbiff"       Sticky, WindowListSkip
                   Style "FvwmButtons" NoHandles, Sticky,       \
                                       WindowListSkip
                   Style "sxpm"        NoHandles
                   Style "makerkit"

                   # Put title-bars back on xterms only!
                   Style "xterm"     Title, Color black/grey

                   Style "rxvt"        Icon term.xpm
                   Style "xterm"       Icon rterm.xpm
                   Style "xcalc"       Icon xcalc.xpm
                   Style "xbiff"       Icon mail1.xpm
                   Style "xmh"         Icon mail1.xpm,         \
                                       StartsOnDesk 2
                   Style "xman"        Icon xman.xpm
                   Style "matlab"      Icon math4.xpm,         \



fvwm 2.xx               late 20th century                      56





FVWM(1)                                                   FVWM(1)


                                       StartsOnDesk 3
                   Style "xmag"        Icon magnifying_glass2.xpm
                   Style "xgraph"      Icon graphs.xpm
                   Style "FvwmButtons" Icon toolbox.xpm
                   Style "Maker"       StartsOnDesk 1
                   Style "signal"      StartsOnDesk 3

                   # Fire up Netscape on the second desk, in the
                   # middle of my 3x3 virtual desktop, and don't
                   # bother me with it...
                   Style "Netscape*" SkipMapping,              \
                                     StartsOnPage 1 1 1

              Note that all properties for a window will be OR'ed
              together.  In the above  example  "FvwmPager"  gets
              the  property  StaysOnTop  via an exact window name
              match but also gets  NoHandles,  Sticky,  and  Win-
              dowListSkip  by  a  match  to "Fvwm*".  It will get
              NoTitle by virtue of a match to "*".  If  conflict-
              ing  styles  are  specified  for a window, then the
              last style specified will be used.

              If the NoIcon attribute is set then  the  specified
              window  will simply disappear when it is iconified.
              The window can be  recovered  through  the  window-
              list.   If Icon is set without an argument then the
              NoIcon attribute is cleared but no icon  is  speci-
              fied.   An  example which allows only the FvwmPager
              module icon to exist:

                   Style "*" NoIcon
                   Style "Fvwm Pager" Icon




       Title  Does nothing.  This is used to insert a title  line
              in a popup or menu.



       TitleStyle [ justification ] [ height num ]
              Sets  attributes for the title bar.  Justifications
              can be "Centered", "RightJustified," or "LeftJusti-
              fied."   height  sets  the title bar's height to an
              amount in pixels.  Defaults are Centered  and  Win-
              dowFont  height.   The height parameter must be set
              after a WindowFont command since WindowFont  resets
              the  height  to the default for the specified font.
              Example:

                   TitleStyle LeftJustified Height 24





fvwm 2.xx               late 20th century                      57





FVWM(1)                                                   FVWM(1)


       TitleStyle [ state ] [ style ] [ -- [!]flag ... ]
              Sets the style for the title bar.  state can be one
              of  "ActiveUp,"  "ActiveDown,"  or  "Inactive."  If
              state is omitted, then the style is added to  every
              state.   If parentheses are placed around the style
              and flags, then multiple state definitions  can  be
              given per line.  style can be omitted so that flags
              can be set while not destroying the current  style.

              If  an "!" is prefixed to any flag, its behavior is
              negated.   Valid  flags  for  each  state   include
              "Raised,"  "Flat,"  and  "Sunk" (these are mutually
              exclusive).  The default is Raised.  See  the  note
              in  ButtonStyle  regarding  the  ActiveDown  state.
              Examples:

                   TitleStyle ActiveUp HGradient 16 navy black
                   TitleStyle ActiveDown (Solid red -- flat) \
                     Inactive (TiledPixmap wood.xpm)
                   TitleStyle ActiveUp (-- Flat) ActiveDown  \
                     (-- Raised) Inactive (-- Flat)

              This sets the ActiveUp state to a horizontal gradi-
              ent,  the  ActiveDown  state  to solid red, and the
              Inactive state to a tiled  wood  pixmap.   Finally,
              ActiveUp  is set to look flat, while ActiveDown set
              to be sunk (the  Raised  flag  for  the  ActiveDown
              state causes it to appear Sunk due to relief inver-
              sion), and Inactive is set to  flat  as  well.   An
              example which sets flags for all states:

                   TitleStyle -- flat

              For a flattened look:

                   TitleStyle -- flat
                   ButtonStyle All ActiveUp (-- flat) Inactive \
                     (-- flat)




       UpdateDecor [ decor ]
              Updates  window  decorations.  decor is an optional
              argument which specifies the decor to  update.   If
              given, only windows which are assigned to that par-
              ticular decor will be  updated.   This  command  is
              useful,   for   instance,   after   a  ButtonStyle,
              TitleStyle or BorderStyle (possibly  used  in  con-
              junction  with  AddToDecor).  Specifying an invalid
              decor results in all windows being  updated.   This
              command is less disturbing than Recapture, but does
              not affect window style options as Recapture  does.




fvwm 2.xx               late 20th century                      58





FVWM(1)                                                   FVWM(1)


       Wait name
              This  built-in is intended to be used in fvwm func-
              tions only.  It causes execution of a  function  to
              pause  until  a  new window name name appears. Fvwm
              remains fully functional during a  wait.   This  is
              particularly  useful in the InitFunction if you are
              trying to start windows on specific desktops:

                   AddToFunc InitFunction
                    + "I" exec xterm -geometry 80x64+0+0
                    + "I" Wait xterm
                    + "I" Desk 0 2
                    + "I" Exec exec xmh -font fixed -geometry \
                          507x750+0+0
                    + "I" Wait xmh
                    + "I" Desk 0 0

              The above function starts an xterm on  the  current
              desk,  waits for it to map itself, then switches to
              desk 2 and starts an xmh.   After  the  xmh  window
              appears control moves to desk 0.



       WarpToWindow x y
              Warps  the  cursor  to  the associated window.  The
              parameters x and y default to percentage of  window
              down  and  in  from  the upper left hand corner (or
              number of pixels down and in if 'p' is appended  to
              the numbers).



       WindowFont [ fontname ]
              Makes fvwm use font fontname instead of "fixed" for
              window  title-bars.  To  reset  this  font  to  the
              default  font  (see DefaultFont) you may omit font-
              name.



       WindowId id func
              The WindowId function is similar to  the  Next  and
              Prev  funcs,  except  that  it looks for a specific
              window id and runs the specified func on it.

                   WindowId 0x34567890 Raise
                   WindowId 0x34567890 WarpToWindow 50 50

              Mostly this is useful for functions used  with  the
              WindowList builtin.






fvwm 2.xx               late 20th century                      59





FVWM(1)                                                   FVWM(1)


       WindowList [ position ] [ options ] [ double-click-action
       ]
              Generates a pop-up menu (and pops it up)  in  which
              the  title and geometry of each of the windows cur-
              rently on the desk top are shown.  The geometry  of
              iconified windows is shown in parenthesis.  Select-
              ing an item from the window list pop-up  menu  will
              by  default  cause  the  interpreted  function Win-
              dowListFunc to be run with the window  id  of  that
              window passed in as $0.  By default the WindowList-
              Func looks like this:

                   AddToFunc WindowListFunc
                    + "I" WindowId $0 Iconify -1
                    + "I" WindowId $0 FlipFocus
                    + "I" WindowId $0 Raise
                    + "I" WindowId $0 WarpToWindow 5p 5p

              You can Destroy the builtin WindowListFunc and cre-
              ate your own if these defaults do not suit you.

              The  position  arguments  are the same as for Menu.
              The command double-click-action will be invoked  if
              the  user  double-clicks  (or  hits the key rapidly
              twice if the menu is bound to a key) when  bringing
              the  window  list.  The double-click-action must be
              quoted if it consists of more than one word.

              The  double-click-action  is  useful  to  define  a
              default window if you have bound the window list to
              a key (or button) like this:

                   Key Tab A M WindowList "Prev FlipFocus"

              Hitting Alt-Tab once it brings up the window  list,
              if  you  hit  it twice the focus is flipped between
              the current and the last focused window.

              The options passed to WindowList can  be  "NoGeome-
              try",   "Function  <funcname>",  "Desk  <desknum>",
              "CurrentDesk",  "NoIcons",  "Icons",   "OnlyIcons",
              "NoNormal",   "Normal",  "OnlyNormal",  "NoSticky",
              "Sticky", "OnlySticky", "NoOnTop", "OnTop",  "Only-
              OnTop",  "NoDeskSort", "UseIconName", "Alphabetic",
              "NotAlphabetic".

              (Note - normal means not iconic, sticky, or ontop)

              If you pass in  a  function  via  "Function  <func-
              name>", $0 is the window id:

                   AddToFunc IFunc "I" WindowId $0 Iconify
                   WindowList Function IFunc, NoSticky, \
                     CurrentDesk, NoIcons



fvwm 2.xx               late 20th century                      60





FVWM(1)                                                   FVWM(1)


              If you wanted to use the WindowList as an icon man-
              ager, you could invoke the following:

                   WindowList OnlyIcons, Sticky, OnTop, Geometry

              (Note - the "Only" options essentially wipe out all
              other ones...)



       WindowsDesk arg1 [ arg2 ]
              Moves   the  selected  window  to  another  desktop
              (workspace, room).

              This command has been removed and must be  replaced
              by MoveToDesk, the arguments for which are the same
              as for the Desk command.  Note: You  cannot  simply
              change  the  name  of  the  command: the syntax has
              changed. If you used "WindowsDesk n" to move a win-
              dow to desk n, you will have to change it to "Move-
              ToDesk 0 n".



       WindowShade [ opt ]
              Toggles the window shade feature  for  titled  win-
              dows.   Windows  in the shaded state only display a
              title bar.  If opt is not given, the  window  shade
              state  is  toggled.   If  opt  is  1, the window is
              forced to the shaded state.  If opt is 2, then  the
              window  is  forced  to the non-shaded state.  Maxi-
              mized windows and windows without titles cannot  be
              shaded.



       XORvalue number
              Changes  the  value with which bits are XOR'ed when
              doing rubber-band window moving or resizing.   Set-
              ting this value is a trial-and-error process.



       +      Used  to  continue  adding  to  the  last specified
              decor, function or menu.  See  the  discussion  for
              AddToDecor, AddToFunc, and AddToMenu.




KEYBOARD SHORTCUTS
       All  (I  think) window manager operations can be performed
       from the keyboard so mouseless operation should be  possi-
       ble.   In addition to scrolling around the virtual desktop



fvwm 2.xx               late 20th century                      61





FVWM(1)                                                   FVWM(1)


       by binding the Scroll built-in to appropriate  keys,  pop-
       ups,  move,  resize, and most other built-ins can be bound
       to keys.  Once a built-in function is started the  pointer
       is  moved  by  using the up, down, left, and right arrows,
       and the action is terminated by pressing return.   Holding
       down  the  shift key will cause the pointer movement to go
       in larger steps and holding  down  the  control  key  will
       cause  the  cursor movement to go in smaller steps.  Stan-
       dard emacs and vi cursor movement controls  (^n,  ^p,  ^f,
       ^b,  and  ^j, ^k, ^h, ^l) can be used instead of the arrow
       keys.



SUPPLIED CONFIGURATION
       A sample configuration file, .fvwmrc, is supplied with the
       fvwm  distribution.   It is well commented and can be used
       as a source of examples for fvwm configuration.



USE ON MULTI-SCREEN DISPLAYS
       If the -s command line argument is not  given,  fvwm  will
       automatically  start  up  on every screen on the specified
       display.  After fvwm starts each screen is  treated  inde-
       pendently.   Restarts  of  fvwm need to be performed sepa-
       rately on each screen.  The  use  of  EdgeScroll  0  0  is
       strongly recommended for multi-screen displays.

       You  may  need  to  quit on each screen to quit from the X
       session completely.



ENVIRONMENT
       DISPLAY
              Fvwm starts on this  display  unless  the  -display
              option is given.

       FVWM_MODULEDIR
              Set  by  fvwm to the directory containing the stan-
              dard fvwm modules.



BUGS
       As of fvwm 2.2  there  were  exactly  46.144  unidentified
       bugs.   Identified  bugs  have  mostly been fixed, though.
       Since then 12.25 bugs  have  been  fixed.   Assuming  that
       there  are at least 10 unidentified bugs for every identi-
       fied one, that leaves us with 46.144 - 12.25 + 10 *  12.25
       =  156.395  unidentified  bugs.   If we follow this to its
       logical conclusion we will  have  an  infinite  number  of
       unidentified  bugs  before the number of bugs can start to



fvwm 2.xx               late 20th century                      62





FVWM(1)                                                   FVWM(1)


       diminish, at which point the  program  will  be  bug-free.
       Since  this is a computer program infinity = 3.4028e+38 if
       you don't insist on double-precision.  At the current rate
       of bug discovery we should expect to achieve this point in
       4.27e+27 years.  I guess I better  plan  on  passing  this
       thing on to my children....

       Known  bugs can be found in the BUGS file in the distribu-
       tion, in the fvwm bug tracking system (accessible from the
       fvwm home page) and in the TO-DO list.

       Bug  reports can be sent to the FVWM workers' mailing list
       (see the FAQ).


AUTHOR
       Robert Nation with help from many  people,  based  on  twm
       code,  which  was  written by Tom LaStrange.  After Robert
       Nation came Charles Hines, followed by Brady  Montz.  Cur-
       rently  fvwm  is  maintained  by a number of people on the
       fvwm-workers mailing list (Dan Espen, Steve Robbins,  Paul
       Smith, Jason Tibbitts, Dominik Vogt, Bob Woodside and oth-
       ers).

       The official FVWM homepage is http://www.fvwm.org/.
































fvwm 2.xx               late 20th century                      63


