Provided by: fvwm1_1.24r-56ubuntu2_amd64 bug

NAME

       fvwm1 - F(?) Virtual Window Manager for X11, version 1.x

SYNOPSIS

       fvwm1 [ 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.   Memory  consumption  is
       estimated  at  about  one-half to one-third the memory consumption of twm, due primarily to a redesign of
       twm's method of storing mouse bindings. In addition, many of the configurable options of  twm  have  been
       removed.

       The  name  "FVWM"  used  to  stand  for something, but I forgot what. (Feeble, famous, foobar? It doesn't
       really matter, this is an acronym based society anyway.)

STATUS OF THIS SOFTWARE

       Since the release of FVWM 2.2 in March  1999,  this  release  is  officially  deprecated  and  no  longer
       supported.   Please do not report any bugs in this software.  Also, for Debian users, the module manpages
       for this release of FVWM will be found as FvwmAudio1(1x) etc.

SPECIAL NOTE FOR XFREE86 USERS

       XFree86 provides a virtual screen whose operation can be confusing when used in  conjunction  with  fvwm.
       With XFree86 all windows which appear on the virtual screen actually get drawn into video memory (whether
       or not they appear on the physical screen), so the virtual screen size  is  limited  by  available  video
       memory.

       With  fvwm's  virtual  desktop,  windows which do not appear on the screen do not actually get drawn into
       video RAM. The size of the virtual desktop is limited to  about  32,000  by  32,000  pixels,  but  it  is
       probably  impractical  to  use  a  virtual  desktop  more  than  about 5 times the visible screen in each
       direction.  Note that memory usage is a function of the number of windows which exist - the size  of  the
       desktop makes no difference.

       When  becoming  familiar with fvwm it is recommended that you disable XFree86's virtual screen by setting
       the virtual screen size to the physical screen size. After you become familiar with fvwm you may want  to
       re-enable XFree86's virtual screen.

COPYRIGHTS

       Since fvwm is derived from twm code it shares twm's copyrights.

       fvwm  is  copyright  1988 by Evans and Sutherland Computer Corporation, Salt Lake City, Utah, and 1989 by
       the Massachusetts Institute of Technology, Cambridge, Massachusetts, All  rights  reserved.  It  is  also
       copyright 1993 and 1994 by Robert Nation.

       Permission  to  use, copy, modify, and distribute this software and its documentation for any purpose and
       without fee is hereby granted, provided that the above copyright notice appear in  all  copies  and  that
       both  that  copyright  notice and this permission notice appear in supporting documentation, and that the
       names of Evans & Sutherland and M.I.T. not be used in advertising in publicity pertaining to distribution
       of the software without specific, written prior permission.

       ROBERT  NATION,  EVANS  &  SUTHERLAND,  AND  M.I.T. DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
       INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL EVANS & SUTHERLAND  OR
       M.I.T.  BE  LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
       FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,
       ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

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 button 2 anywhere in the border brings up an extensive list of window operations.

       Up to ten title-bar buttons may exist. Their use is completely 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" configuration 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, windows which are larger than the screen or
       large groups of related windows can easily be viewed.

       The size of the virtual desktops can be specified at start-up.  All virtual desktops  must  be  the  same
       size.  The  total  number  of  distinct desktops need not be specified, but is limited to approximately 4
       billion total. All windows on the current desktop can be displayed in a Pager, a miniature  view  of  the
       current desktop. Windows which are not on the current desktop can be listed, along with their geometries,
       in a window list, accessible as a pop-up menu.

       "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.

       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 specify 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.  There  is
       currently no way to cause a window to map onto a desktop other than the currently active desk.

       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 portion of the screen. Not all applications support window geometries with negative offsets.

       Some applications, like xterm and xfontsel, allow the user to specify the start-up desk  on  the  command
       line:
       xterm -xrm "*Desk:1"
       will start an xterm on desk number 1. Not all applications understand this option, however.

INITIALIZATION

       During initialization, fvwm will search for a configuration 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   users   home   directory.   Failing   that,   it   will   look   for
       /etc/X11/fvwm/system.fvwmrc for system-wide defaults. If that file is not found, fvwm will exit.

       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 $DISPLAY should be used for local connections, as it may  use  Unix-domain  sockets,
       which are faster.

SHAPED WINDOWS

       If  you typically use shaped windows such as xeyes or oclock, you have several options. You can make them
       all undecorated  (NoBorder  oclock  and  NoTitle  oclock,  for  example)  or  you  can  use  the  default
       configuration  and leave them decorated, in which case a decorative border and a solid-color backdrop are
       shown. Alternately, you can compile in the SHAPE extensions by changing a flag in the Makefile, in  which
       case  you  get  the  shaped  window with no backdrop, and a title bar floats above the window. The shaped
       window extensions increase the window manager's memory consumption by about  60  Kbytes  when  no  shaped
       windows are present but have little effect when shaped windows are present.

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 Makefile.noImake and the Imakefile.

       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. Future releases are expected to provide a means for these modules to extract window  information
       from  fvwm.  Users can write their own modules to do any weird or bizarre manipulations without 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 initialization via the Module option, or at  any  time  during  the  X
       session  by  use  of  the  Module  built-in.  Modules can exist for the duration of the X session, or can
       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 closure 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 GoodStuff. The GoodStuff module is documented in its own man page.

ICCCM COMPLIANCE

       Fvwm attempts to be ICCCM 1.1 compliant. As of this (1.20l) colormap handling  is  not  completely  ICCCM
       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.

M4 PREPROCESSING

       If  fvwm  is  compiled  with the M4 option, fvwm uses m4(1) to preprocess its setup files before parsing.
       This way you can use m4 macros to perform operations at runtime.  This makes it very easy  to  work  with
       different displays with different characteristics.

       For example, depending on your mood, you might want different color schemes.  One way of doing this is by
       using the -m4opt to specify your mood.  For a sunny mood use -m4opt -DSunny; for a dark mood  use  -m4opt
       -DDark.  Your .fvwmrc file might then contain:
       ifdef(`Sunny',`
       StdForeColor        Black
       StdBackColor        LightSkyBlue
       HiForeColor         yellow
       HiBackColor         PeachPuff1
       PagerBackColor      BlanchedAlmond ')

       ifdef(`Dark',`
       StdForeColor        Black
       StdBackColor        #60a0c0
       HiForeColor         black
       HiBackColor         #c06077
       PagerBackColor      #5c54c0
       PagerForeColor      orchid
       StickyForeColor          Black
       StickyBackColor          #60c0a0 ')

       The following m4 symbols are predefined by fvwm:

       BITS_PER_RGB            The  number  of  significant  bits in an RGB color.  (log base 2 of the number of
                               distinct colors that can be created.  This is often different from the number  of
                               colors that can be displayed at once.)

       CLASS                   Your  visual  class.   Will  return  one  of  StaticGray, GrayScale, StaticColor,
                               PseudoColor, TrueColor, DirectColor, or, if it cannot determine  what  you  have,
                               NonStandard.

       CLIENTHOST              The machine that is running the clients.

       COLOR                   This  will  be  either  'Yes'  or  'No'.  This is just a wrapper around the CLASS
                               definition.  Returns 'Yes' on *Color and 'No' on StaticGray and GrayScale.

       FVWMDIR                 This is set to the path where the modules were configured to be installed.

       FVWM_VERSION            This is a string containing the version of fvwm.

       HEIGHT                  The height of your display in pixels.

       HOME                    The user's home directory.  Obtained from the environment.

       HOSTNAME                The canonical hostname running the clients  (ie.  a  fully-qualified  version  of
                               CLIENTHOST).

       OPTIONS                 This is a string of compile time options used.  Each option is separated from the
                               other by a space.

       PLANES                  The number of bit planes your display supports in the default root window.

       RELEASE                 The release number of your X server.  For MIT X11R5 this is 5.

       REVISION                The X minor protocol revision.  As seen by ProtocolRevision(3).

       SERVERHOST              This variable is set to the name of the machine that is running the X server.

       TWM_TYPE                Tells which twm offshoot is running.  It will always be set to the string  "fvwm"
                               in  this  program.   This is useful for protecting parts of your .twmrc file that
                               fvwm proper won't understand (like WorkSpaces) so that it is  still  usable  with
                               other twm programs.

       USER                    The name of the user running the program.  Obtained from the environment.

       VENDOR                  The vendor of your X server.  For example: MIT X Consortium.

       VERSION                 The X major protocol version.  As seen by ProtocolVersion(3).

       WIDTH                   The width of your display in pixels.

       X_RESOLUTION            The X resolution of your display in pixels per meter.

       Y_RESOLUTION            The Y resolution of your display in pixels per meter.

       You may well find that if you research the m4(1) manual well and understand the power of m4, this will be
       a very useful and powerful tool.  But if you use any of the symbols which are predefined by m4,  you  are
       in severe danger!  For example, Sun's m4 predefines include, so if you use that name in your .fvwmrc, you
       are out of luck.  The correct solution to this problem is to put a set of quotes around  the  troublesome
       word:  `include'.

       To  help  alleviate  this problem, the following options may be useful.  To change the quoting characters
       used by m4, use the options -m4-squote and -m4-equote.  Be sure to specify both options otherwise m4 will
       be  confused.   When  these  are  given,  a  changequote  macro  is given before the users fvwmrc file is
       processed.

       NOTE: Some versions of m4 are broken with respect to changing  quoting  characters  and  included  files.
       When  the  quoting  strings  are longer than one character, the macro "include(<<file>>)", where "<<" and
       ">>" are the quoting characters, contains extra characters around the  contents  of  the  included  file.
       This will confuse fvwm.  SunOS 4.1.3 is known to have this problem.

       If  you are using GNU m4 an additional option is available.  By specifying -m4-prefix when starting fvwm,
       m4 is instructed to prefix all builtin macros with m4_.  Thus, include becomes m4_include.

       The availability of the m4 preprocessing is subject to the compilation define M4.

OPTIONS

       These are the command line options that are recoginzed by fvwm:

       -f config_file
              Causes fvwm to use config_file in the user's home directory  instead  of  .fvwmrc  as  the  window
              manager configuration file.

       -debug Puts X transactions in synchronous mode, which dramatically slows things down, but guarantees that
              fvwm's internal error messages are correct.

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

       -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.

       The following options are available only if fvwm is compiled with the M4 option.

       -no-m4 Do  not  use  m4  to  preprocess the .fvwmrc.  The default is to preprocess the startup file using
              m4(1).

       -m4-prefix
              If GNU m4 is available, cause m4 to prefix all builtin commands with m4_.

       -m4opt option
              Pass this option to m4.  The option can be any string of characters without spaces.   This  option
              can occur multiple times.  If GNU m4 is available, DO NOT pass the -P option here.  Use -m4-prefix
              instead.

       -m4-squote string
              Use this given string as the starting quote characters.  You must also specify -m4-equote.

       -m4-equote string
              Use this given string as the ending quote characters.  You must also specify -m4-squote.

       -m4prog path
              Use path as the location of the desired m4 processor.  By default, m4prog is  set  to  "m4"  which
              must  exist  somewhere  on  the user's path.  This option allows the user to explicitly choose the
              version of m4 to use.

CONFIGURATION FILES

       The configuration file is used to describe mouse and button bindings, colors, the virtual  display  size,
       and  related  items.  This  section describes the configuration options. Lines beginning with '#' will be
       ignored by fvwm. Lines starting with '*' are expected to contain module  configuration  commands  (rather
       than configuration commands for fvwm itself).

       AppsBackingStore
              Causes  application windows to request backing store. This option compromises the ICCCM compliance
              of the window manager. While this option can speed things up in an X-terminal,  where  redraws  of
              windows are expensive, it may not help much on regular workstations.

       AutoRaise delay
              Enables  auto-raising  of  windows  and  specifies the time delay (in milliseconds) between when a
              window acquires the input focus and when it is automatically raised. This option works  in  focus-
              follows-mouse  mode,  and  in  click-to-focus  mode  if  the  focus  is changed by clicking in the
              application window instead of a decoration window. In click-to-focus mode, you  can  suppress  the
              raise-on-focus behavior by specifying a negative delay value.

       BackingStore
              Causes fvwm decorations to request backing store. See the discussion on AppsBackingStore.

       BoundaryWidth Width
              Changes the boundary width on decorated windows to the specified value.  The default is 6 pixels.

              The Style command provides another (more general) method for specifying BoundaryWidth.

       ButtonStyle button# WidthxHeight
              Defines  the rectangular decoration shape to be used in a title-bar button.  button# is the title-
              bar button number, and is between 0 and 9.  A description of title-bar button numbers is given  in
              the  Mouse  section  below.  Width is the percentage of the full button width which is to be used.
              Height is the percentage of the full height to be used. Negative numbers cause the shading  to  be
              inverted.

              And that's not all! If you use a line like:
              ButtonStyle : 2 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 confusing? See the sample system.fvwmrc.

       CenterOnCirculate
              When  circulating,  the  desktop  page  containing  the  window  which the pointer is moving to is
              automatically selected. If CenterOnCirculate is selected then fvwm will do its best to center  the
              target window in the desktop viewport, rather than just lining up to the closest page.

       CirculateSkip windowname
              Causes  windows with the indicated name to be skipped over when the circulate-up or circulate-down
              functions are invoked. windowname can be a window's name or its class.

              The Style command provides another (more general) method for specifying CirculateSkip.

       CirculateSkipIcons
              Causes circulate and warp operations to skip over iconified windows.

       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.

       ClickToFocus
              Normally  keyboard  input  goes  to  the window the mouse pointer is in. If this option is set the
              keyboard input stays with one window until the mouse is clicked with the pointer positioned  in  a
              new window.

       Cursor  cursor_num cursor_type
              This  provides a very awkward way of changing cursor styles. Cursor_num tells which cursor you are
              changing, and is a number between 0 and 12, as follows:

                 0 POSITION     - used when initially placing windows.
                 1 TITLE        - used in a window title-bar.
                 2 DEFAULT      - used in windows that don't set their cursor.
                 3 SYS          - used in one of the title-bar buttons.
                 4 MOVE         - used when moving or resizing windows.
                 5 WAIT         - used during an EXEC builtin command.
                 6 MENU         - used in menus.
                 7 SELECT       - used for various builtin commands such as iconify.
                 8 DESTROY      - used for DESTROY and DELETE built-ins.
                 9 TOP          - used in the top side-bar of a window.
                10 RIGHT        - used in the right side-bar of a window.
                11 BOTTOM       - used in the bottom side-bar of a window.
                12 LEFT         - used in the left side-bar of a window.
                13 TOP_LEFT     - used in the top left corner of a window.
                14 TOP_RIGHT    - used in the top right corner of a window.
                15 BOTTOM_LEFT  - used in the bottom left corner of a window.
                16 BOTTOM_RIGHT - used in the bottom right corner of a window.

              The cursor_type argument is a number which tells the cursor shape to use.  The  available  numbers
              can be found in /usr/include/X11/cursorfont.h and are currently even numbers between 0 and 152. At
              the current time, the following cursor types are available:

                0   X_cursor                  2   arrow
                4   based_arrow_down          6   based_arrow_up
                8   boat                      10  bogosity
                12  bottom_left_corner        14  bottom_right_corner
                16  bottom_side               18  bottom_tee
                20  box_spiral                22  center_ptr
                24  circle                    26  clock
                28  coffee_mug                30  cross
                32  cross_reverse             34  crosshair
                36  diamond_cross             38  dot
                40  dotbox                    42  double_arrow
                44  draft_large               46  draft_small
                48  draped_box                50  exchange
                52  fleur                     54  gobbler
                56  gumby                     58  hand1
                60  hand2                     62  heart
                64  icon                      66  iron_cross
                68  left_ptr                  70  left_side
                72  left_tee                  74  leftbutton
                76  ll_angle                  78  lr_angle
                80  man                       82  middlebutton
                84  mouse                     86  pencil
                88  pirate                    90  plus
                92  question_arrow            94  right_ptr
                96  right_side                98  right_tee
                100 rightbutton               102 rtl_logo
                104 sailboat                  106 sb_down_arrow
                108 sb_h_double_arrow              110 sb_left_arrow
                112 sb_right_arrow            114 sb_up_arrow
                116 sb_v_double_arrow              118 shuttle
                120 sizing                    122 spider
                124 spraycan                  126 star
                128 target                    130 tcross
                132 top_left_arrow            134 top_left_corner
                136 top_right_corner               138 top_side
                140 top_tee                   142 trek
                144 ul_angle                  146 umbrella
                148 ur_angle                  150 watch
                152 xterm

       DecorateTransients
              Causes transient windows, which are  normally  left  undecorated,  to  be  given  the  usual  fvwm
              decorations. Note that some pop-up windows, such as the xterm menus, are not managed by the window
              manager and still do not receive decorations.

       DeskTopScale Scale
              Defines the virtual desktop scale with respect to the screen.

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

       DontMoveOff
              Prevents windows from being moved off or initially placed off of the desktop.  A few programs will
              not  work correctly if you use this option. This only keeps windows from being completely lost off
              the edge of the desktop. It insists on keeping 16 pixels on the desktop but  doesn't  care  a  bit
              about  keeping  the  whole window on the desk. See EdgeResistance if you don't like having windows
              partially off the screen.

       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  people  who  use  "EdgeScroll  100  100"  but  find
              themselves 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.

              Note that, with "EdgeScroll 0 0", it is still possible to move or resize windows across  the  edge
              of  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
              difficult but not impossible.

       EdgeScroll horizontal vertical
              Specifies the percentage of a page to scroll when the cursor hits the edge of a page. 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.  If  you  want  whole pages, use "EdgeScroll 100 100". Both horizontal and vertical
              should be positive numbers.

              If the horizontal and vertical percentages are multiplied 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.

       Font fontname
              Makes fvwm use font fontname instead of "fixed" for menus, the resize indicators, and icon  labels
              (if IconFont is not specified).

       Function FunctionName
              Starts  the  definition of a complex function, composed of the fvwm built-in functions, which will
              later be bound to a mouse button or key.  FunctionName  must  be  enclosed  in  quotes.   Function
              entries  are  included  on  lines following the Function keyword. The definition ends with the key
              word EndFunction. Function entries are specified as shown in the following example. The first word
              on  each  line  is the built-in function which will be performed, followed the type of event which
              should trigger the action (enclosed in quotes), followed by any additional arguments needed by the
              built-in  function.  Menus  can  be  specified by using the Popup built-in as long as the menu was
              defined earlier in the configuration file.

              The trigger actions which are recognized are Immediate, Motion, Click, and DoubleClick.  Immediate
              actions are executed as soon as the function is activated, even if a window has not been selected.
              If there are actions other than immediate ones, fvwm will wait to see if  the  user  is  clicking,
              double-clicking,  or  dragging  the  mouse. After the decision is made, fvwm will execute only the
              built-ins from the function definition whose trigger action matches the action  performed  by  the
              user.

              If  the  following  example  were  bound to button 1 in a window title-bar, then, when button 1 is
              pressed, fvwm would wait 150 msec to see if the button is released. If the button is not  released
              fvwm  will  start  a move operation. When the move operation is complete a raise operation will be
              performed. If a button release is detected then fvwm will wait  another  150  msec  for  a  second
              click.  If  only  one click is detected then the window will be raised. If two clicks are detected
              the window will be alternately raised and lowered. The 150 msec wait duration can be altered using
              the ClickTime option.
              Function "Move-or-Raise"
                  Move            "Motion"
                  Raise           "Motion"
                  Raise           "Click"
                  RaiseLower      "DoubleClick"
              EndFunction
              The clicking and double clicking concepts do not carry through to using keyboard shortcuts.

              Two  special  functions  exist:  InitFunction and RestartFunction. The InitFunction will be called
              when fvwm is started for the first time in any X session and can be used  to  start  modules,  set
              background  patterns,  and  begin  programs.  The  restart  function  will  be called when fvwm is
              restarted. It can be used to start modules and set background patterns but probably should not  be
              used to start programs.

       HiBackColor colorname
              Sets the background color of the selected window to colorname. When using a monochrome screen this
              option is ignored and white is used.

       HiForeColor colorname
              Sets the color of the selected window's title to colorname. When using a  monochrome  screen  this
              option is ignored and black is used.

       Icon windowname bitmap-file
              Specifies  the  bitmap  to  be  used  for a window when it is iconified.  The windowname can be an
              application's window name or class name and must be enclosed in quotes. The bitmap-file is  either
              the  full  path  name  to  a standard X11 bitmap file or a file in the IconPath or PixmapPath. The
              specified bitmap/pixmap is used in preference to any icon supplied by the window itself.

              If fvwm is compiled with XPM support for color icons then bitmap can be an XPM pixmap file.

              windowname should be enclosed in double quotes but bitmap-file should not.  Environment  variables
              should not be used in the bitmap-file specification.

              If  windowname is an empty string then the specified file is the default icon, and will be used if
              no other icon bitmap or pixmap can be found:
              Icon "" my-favorite-icon

              The Style command provides another (more general) method for specifying Icon.

       IconBox left top right bottom
              Defines regions of the screen in which to place icons. Up to four icon boxes can be defined. If an
              IconBox line is provided then icons will automatically be placed in them, if possible. Each time a
              window is iconified a new place is found for it. Icon boxes are searched for space going  left  to
              right,  then  top  to  bottom. Icons will not be auto-placed on top of other icons but they may be
              placed underneath application windows. If left or right is negative, then fvwm will add the screen
              width to it. If top or bottom is negative, then fvwm will add the screen height to it. NOTE: -0 is
              not parsed as the right or bottom pixel on the screen. You have to use -1 instead.

              If no IconBox line is provided or all icon boxes are full, then fvwm will  place  icons  near  the
              current pointer location.

       IconFont fontname
              Makes  fvwm  use  font  fontname for icon labels. If omitted, the menu font (specified by the Font
              configuration parameter) will be used instead.

       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. Note: if the M4 patches are included when fvwm
              is built, then m4 will want to mangle the word "include" which will  frequently  show  up  in  the
              IconPath or PixmapPath command. To fix this add undefine(`include') prior to the IconPath command.

       Key keyname Context Modifiers Function
              Binds a keyboard key to a specified fvwm built-in function.  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/include/X11/keysymdef.h, with the leading XK_ omitted. The Context and Modifiers
              fields are defined as in the mouse binding.

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

       Lenience
              The  ICCCM  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.

              If this parameter is set then fvwm will ignore this ICCCM convention.

       MenuBackColor colorname
              Sets the menu background color. When using monochrome this option is ignored. This option is  only
              available if fvwm is compiled with MENUCOLOR defined.

       MenuForeColor colorname
              Sets  the menu foreground color. When using monochrome this option is ignored. This option is only
              available if fvwm is compiled with MENUCOLOR defined.

       MenuStippleColor colorname
              Sets the color for shaded out entries in menus  (for  functions  which  are  not  allowed  on  the
              currently  selected window). When using monochrome this option is ignored and a stipple pattern is
              used.  This option is only available if fvwm is compiled with MENUCOLOR defined.

       Module ModuleName
              Specifies a module which should  be  spawned  during  initialization.  At  the  current  time  the
              available  modules  are  FvwmAudio,  FvwmBacker,  FvwmBanner,  FvwmClean,  FvwmDebug, FvwmIconBox,
              FvwmIdent, FvwmPager,  FvwmSave,  FvwmSaveDesk,  FvwmScroll,  FvwmWinList,  and  GoodStuff.  These
              modules  have  their  own  man pages.  Module can also be used as a built-in. Modules can be short
              lived transient programs or, like GoodStuff, can remain for the duration of the X session. Modules
              will  be  terminated  by  the  window  manager  prior  to restarts and quits, if possible. See the
              introductory section on modules.

       ModulePath
              Specifies a colon separated list of paths for fvwm to search when looking for a  module  to  load.
              Individual directories do not need trailing slashes.

       Mouse Button Context Modifiers Function
              Defines a mouse binding. Button is the mouse button number. If Button 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 numbered buttons on the left side of the title bar and
              even numbers on the right. Smaller-numbered buttons 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
              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.

       MWMBorders
              Substitutes MWM style 1 pixel wide relief lines instead of fvwm's 2 pixel borders.

       MWMButtons
              Disables button press feedback for all decorations except the title bar and title-bar buttons,  as
              in MWM.

       MWMDecorHints
              Causes  fvwm  to read the MOTIF_WM_HINTS atom from application windows and to parse and attempt to
              replicate the Motif behavior with regard to window decorations.  Note  that  mwm  allows  function
              hints to affect window decorations but these effects are not replicated by this option.

       MWMFunctionHints
              Causes  fvwm  to read the MOTIF_WM_HINTS atom from application windows and to parse and attempt to
              replicate the Motif behavior with regard to allowed window functions.  Unlike  mwm,  which  simply
              removes  prohibited  functions  from  the  window's  menus,  fvwm simply shades out the prohibited
              functions. Also, because fvwm implements some functions in user defined macros that mwm implements
              internally, the mapping of prohibited functions is partially based on the menu item label.

       MWMHintOverride
              If  MWMFunctionHints  is  used  then  maximization and iconfication are prohibited for transients.
              Also, windows can specify that the window manager should not destroy or delete them.  Since  these
              MWM  rules  are  kind  of  stupid, especially with regard to the transient windows, I provide this
              MWMHintOverride option. When it is used menu items will be shaded out if MWM would prohibit  their
              use, but the user can go ahead and select that item and it will operate as expected.

              The  override should be used cautiously because some applications will break if you override their
              mwm hints.

       MWMMenus
              Substitutes MWM look and feel menus in place of the standard  fvwm  versions.   This  option  also
              triggers  a  few  other mwm-style options, such as centering the size/resize window on the screen,
              instead of leaving it in the upper left,  and  switches  the  resize-on-initial-placement  trigger
              action to shift-button-1 instead of the twm style press-button-2

       NoBorder windowname
              Keeps fvwm from putting decorative borders on windows named windowname. This command has no effect
              on the title-bar.  This is handy for clocks and similar gadgets that you don't want to take up too
              much space. windowname can be a window's name or its class.

              If you specify both NoBorder windowname and NoTitle windowname for the same window in your .fvwmrc
              file the window will be completely undecorated.

              Windowname can contain the wildcards "*" and "?" which match  window  names  in  the  normal  Unix
              filename  matching  manner. Actual "*", "?", and "\" characters in a window name can be entered by
              preceding the character with a "\".

              The Style command provides another (more general) method for specifying NoBorder.

       NoBoundaryWidth Width
              Changes the width of the decorations for windows with no titles and no borders.  The default is 1.
              Any positive or zero value is acceptable.  Decorations for these undecorated windows have the same
              context as the side-bars on normally decorated windows.

              The Style command provides another (more general) method for specifying NoBoundaryWidth.

       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.

       NoTitle windowname
              Keeps fvwm from putting a title-bar in the decorations for windows named windowname. This is handy
              for clocks and similar gadgets that you don't want to take up too much space. windowname can be  a
              window's name or its class.

              Windowname  can  contain  the  wildcards  "*"  and "?" which match window names in the normal Unix
              filename matching manner. Actual "*", "?", and "\" characters in a window name can be  entered  by
              preceding the character with a "\".

              The Style command provides another (more general) method for specifying NoTitle.

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

       OpaqueResize
              Causes resize operations to be done with the window itself instead of an outline.

       Pager  X_Location Y_Location
              Enables  a paging style of moving across the desktop. A Pager window (not a pop-up) will appear at
              (X_Location, Y_Location). Miniature versions of all the non-sticky windows on the virtual  desktop
              are  shown in the pager.  The color of the miniature version is the same as the color of the full-
              size window's border.

              In the Pager window, pressing mouse button 1 will move the desktop viewport to the  selected  page
              (in  click-to-focus  mode;  it will also move the keyboard focus to the window whose miniature you
              click on).  Pressing button 2 on a window in the  pager  will  begin  a  window  move,  using  the
              miniature  to  quickly  move  the window anywhere on the desktop.  Pressing button 3 will move the
              top-left corner of the viewport to the location of the button press, even if it does not  line  up
              with  a  page.   Dragging  button  3  will  cause  the selected viewport to scroll as you move the
              pointer. The Pager is automatically sticky but does not automatically stay on top.

       PagerForeColor colorname
              Causes the pager foreground color to be colorname instead of black.  This is  the  color  used  to
              highlight  the  current  viewport  in  the  pager  window.   On a monochrome screen this option is
              ignored. If the NO_PAGER option is set when building fvwm this option is unavailable.

       PagerBackColor colorname
              Causes the pager background color to be colorname instead of white.  On a monochrome  screen  this
              option is ignored. If the NO_PAGER option is set when building fvwm this option is unavailable.

       PagerFont fontname
              Makes  fvwm  use font fontname for writing window icon names in the window's representation in the
              pager. If this option is omitted no names are written in the pager windows.

       PagingDefault pagingdefaultvalue
              Tells fvwm if it should start up with paging enabled or disabled.  "PagingDefault  0"  will  start
              fvwm with paging disabled; "PagingDefault 1" will start fvwm with paging enabled by default.

       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.

       Popup PopupName
              Starts the definition of a pop-up menu which will later  be  bound  to  a  mouse  button  or  key.
              PopupName  must  be  enclosed  in  quotes.  Menu entries are included on lines following the Popup
              keyword. The menu definition ends with the key word EndPopup. Menu entries are specified as  shown
              in  the  following  example.   The  first word on each line is the built-in function which will be
              performed, followed by the caption (enclosed in quotes) which will be shown in the menu,  followed
              by  any  additional arguments needed by the built-in function. Sub-menus can be specified by using
              the Popup built-in as long as the sub-menu was defined earlier in the configuration file.
              Popup "Window Ops"
                  Title   "Window Ops"
                  Move    "Move"
                  Resize  "Resize"
                  Raise   "Raise"
                  Lower   "Lower"
                  Iconify "(De)Iconify"
                  Nop     " "
                  Destroy "Destroy"
                  Title   "HARDCOPY"
                  Exec    "Hardcopy"  exec xdpr &
                  Exec    "Hardcopy RV"  exec xdpr -rv &
              EndMenu
              Note that if a tab character is embedded in the caption of a menu entry then  the  text  following
              the  tab  will  be  entered  into  a  second  column in the menu and the entire menu will be left-
              adjusted. This is intended for shortcut labeling. The tab character must really be a tab. If it is
              expanded into spaces it will not work! For example:
              Popup "Window Ops"
                  Title   "Window Ops  Alt-F1"
                  .
                  .
                  .
              Is the start of a left adjusted menu. Alt-F1 will be placed toward the right side of the menu.

              Shortcut  keys  may  be  specified  in  the  menu  definition  by  preceding the character with an
              ampersand.  The ampersand will not be displayed but the  character  after  it  will  be  displayed
              underlined,  and  if the user presses the corresponding key then that item will be activated as if
              the user had clicked on it with the mouse.  Only alphabetic and numeric characters may be used  as
              shortcut  keys.   The shift state of the keyboard is ignored when testing shortcut characters. For
              example:
              Popup "Window Ops"
                  Maximize "Ma&ximise" 100 100
              EndMenu
              When this menu is popped up the 'x' will be underlined and pressing the 'x'  key  will  cause  the
              current  window  to  be maximized. Shortcut keys are not operative unless MENU_HOTKEYS was defined
              when building fvwm.  If WINDOWLIST_HOTKEYS was also defined then hot keys are automatically  added
              to the WindowList when it is displayed.

       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.

       SaveUnders
              Causes  the  fvwm  decoration  frames  to  request save-unders. This can significantly improve the
              performance during opaque moves but it causes a significant increase in memory usage.

       SloppyFocus
              This focusing mode is like focus-follows-mouse (the default) except that the  focus  will  not  be
              removed  from  a  window  until your mouse enters a new window. Exiting a window to enter the root
              window will leave the focus unchanged.

       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 will be used as a fall-back method.   For
              the best of all possible worlds use both RandomPlacement and SmartPlacement.

       StartsOnDesk windowname desk-number
              This  command  causes  windows whose name or class is windowname to be initially placed on desktop
              number desk-number.  windowname should be enclosed  in  double  quotes.  If  the  window  requires
              interactive placement, an outline will be displayed on the current desk but the window will appear
              on the specified desk.

              Windowname can contain the wildcards "*" and "?" which match  window  names  in  the  normal  Unix
              filename  matching  manner. Actual "*", "?", and "\" characters in a window name can be entered by
              preceding the character with a "\".

              The Style command provides another (more general) method for specifying StartsOnDesk.

       StaysOnTop windowname
              These  windows 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.  windowname  can  be  a
              window's name or its class.

              Windowname  can  contain  the  wildcards  "*"  and "?" which match window names in the normal Unix
              filename matching manner. Actual "*", "?", and "\" characters in a window name can be  entered  by
              preceding the character with a "\".

              The Style command provides another (more general) method for specifying StaysOnTop.

       StdBackColor colorname
              Sets the background color for menus and non-selected windows to colorname. When using a monochrome
              screen this option is ignored and white is used.

              The Style command provides another (more general) method for specifying StdBackColor.

       StdForeColor colorname
              Sets the foreground color for menus and non-selected window titles  to  colorname.  When  using  a
              monochrome screen this option is ignored and black is used.

              The Style command provides another (more general) method for specifying StdForeColor.

       StickyBackColor colorname
              Sets  the  background  color for non-selected sticky windows to colorname. When using a monochrome
              screen this option is ignored and white is used. Only available  if  -DMORE_COLORS  is  used  when
              compiling.

       StickyForeColor colorname
              Sets  the  foreground  color  for  non-selected  sticky  window  titles to colorname. When using a
              monochrome screen this option is ignored and black is used. Only  available  if  -DMORE_COLORS  is
              used when compiling.

       Sticky windowname
              Sticky  windows  "stick to the screen's glass." That is, they don't move the the viewport into the
              virtual desktop changes.  windowname can be a window's name or its class.

              Windowname can contain the wildcards "*" and "?" which match  window  names  in  the  normal  Unix
              filename  matching  manner. Actual "*", "?", and "\" characters in a window name can be entered by
              preceding the character with a "\".

              The Style command provides another (more general) method for specifying Sticky.

       StickyIcons
              Causes icons to always stick to the screen's glass. That is, icons always follow  you  around  the
              desktop.  When  a  window  is de-iconified it gets un-stuck. Some people find this a useful way of
              moving windows around.

       StubbornIcons
              Changes de-iconification behavior a bit. Instead of having windows always de-iconify themselves on
              the current page they de-iconify into their original position.

       StubbornIconPlacement
              When used with IconBoxes, causes icons to avoid placing themselves underneath existing windows.

       StubbornPlacement
              When using SmartPlacement, causes new windows to avoid placing themselves over icons.

       Style windowname options
              This  command  is  intended  to  replace  the  commands  NoBorder,  NoTitle, StartsOnDesk, Sticky,
              StaysOnTop, Icon, WindowListSkip, CirculateSkip,  SuppressIcons,  BoundaryWidth,  NoBoundaryWidth,
              StdForeColor,  and StdBackColor with a single flexible and comprehensive 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 filename manner.

              options  is  a  comma  separated  list  containing  some  or  all  of  the  keywords  BorderWidth,
              HandleWidth,NoIcon/Icon,     NoTitle/Title,    NoHandles/Handles,    WindowListSkip/WindowListHit,
              CirculateSkip/CirculateHit, StaysOnTop/StaysPut, Sticky/Slippery, StartIconic/StartNormal,  Color,
              ForeColor, BackColor, StartsOnDesk/StartsAnyWhere, IconTitle/NoIconTitle, and NoButton/Button.

              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.

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

              StartsOnDesk  takes  a  numeric argument which is the desktop number on which the window should be
              initially placed.

              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.

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

              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 "GoodStuff" 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, StartsOnDesk 3
              Style "xmag"      Icon magnifying_glass2.xpm
              Style "xgraph"    Icon graphs.xpm
              Style "GoodStuff" Icon toolbox.xpm

              Style "Maker"     StartsOnDesk 1
              Style "signal"    StartsOnDesk 3
              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
              WindowListSkip  by  a  match  to  "Fvwm*".  It  will  get  NoTitle by virtue of a match to "*". If
              conflicting 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 specified. An example which  allows  only  the
              FvwmPager module icon to exist:
              Style "*" NoIcon
              Style "Fvwm Pager" Icon

       SuppressIcons
              Prevents  icon windows from being created or drawn. When used with the window-list this provides a
              sort of icon manager.

              The Style command provides another (more general) method for specifying SuppressIcons.

       WindowFont fontname
              Makes fvwm use font fontname instead of "fixed" for the window title bar.

       WindowListSkip windowname
              Causes windows with the indicated name to be left out of the window list.

              Windowname can contain the wildcards "*" and "?" which match  window  names  in  the  normal  Unix
              filename  matching  manner. Actual "*", "?", and "\" characters in a window name can be entered by
              preceding the character with a "\".

              The Style command provides another (more general) method for specifying WindowListSkip.

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

BUILT IN FUNCTIONS

       Fvwm supports a set of built-in functions which can be bound to keyboard or mouse buttons:

       Beep   Makes the computer beep.

       CirculateDown [ name window_name ]
              Causes  the  pointer to move to the next window in the list of windows for which CirculateSkip has
              not not been specified.

              If the optional arguments are supplied then the focus will move to the first window whose name (or
              icon name or class) matches window_name.  The optional argument name is required if window_name is
              supplied and is enclosed in quotes. This argument is the  name  which  appears  in  menus  if  the
              function is called from a menu, but serves no purpose if the function is not called from a menu.

       CirculateUp [ name window_name ]
              Causes  the  pointer to move to the previous window in the list of windows for which CirculateSkip
              has not not been specified.

              If the optional arguments are supplied then the focus will move to the first window whose name (or
              icon name or class) matches window_name.  The optional argument name is required if window_name is
              supplied and is enclosed in quotes. This argument is the  name  which  appears  in  menus  if  the
              function is called from a menu, but serves no purpose if the function is not called from a menu

              Here's an example that move the focus to an xterm window when Alt-F1 is pressed:
              Key F1 A M CirculateUp "whatever" xterm

       Close  If  the  window  accepts  the  delete window protocol a message is sent to the window asking it to
              gracefully remove itself. If the window does not understand the delete window  protocol  then  the
              window is destroyed.

       CursorMove horizonal 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  horizontal  and  vertical  values  are
              expressed  in  percent  of  pages, so "CursorMove 100 100" means to move down and left by one full
              page. "CursorMove 50 25" means to move left half a  page  and  down  a  quarter  of  a  page.  The
              CursorMove function should not be called from pop-up menus.

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

       Desk arg1 arg2
              Changes to another desktop (workspace, room).

              If arg1 is non zero then the next desktop number will be the current  desktop  number  plus  arg1.
              Desktop numbers can be negative.

              If arg1 is zero then the new desktop number will be arg2.

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

       Destroy
              Destroys  a  window. Guaranteed to get rid of the window, but is a fairly violent way to terminate
              an application.

       Exec name command
              Executes command. command is not quoted but name is.  name is the name that appears in a menu,  if
              that  is  where  the  function is called from. name is required even if the function is not called
              from a menu.

              The following example binds function key F1 in the root window, with no  modifiers,  to  the  exec
              function. The program rxvt will be started with an assortment of options.
              Key F1 R N Exec "rxvt" exec rxvt -fg yellow -bg blue -e /bin/tcsh &

       Focus  Moves  the  viewport  or  window as needed to make the selected window visible.  Sets the keyboard
              focus to the selected window.  Raises the window if needed to make it visible. Warps  the  pointer
              into  the  selected  window  in  focus-follows-mouse  mode.  Does not de-iconify. This function is
              primarily for use with a module such as  FvwmWinList.

       Function
              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
              execute to move-or-raise function whenever button 1 is pressed in a window title-bar.
              Mouse 1 T A Function "Move-or-Raise"

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

       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 the only iconification will be allowed. It the optional
              argument is negative only de-iconification will be allowed.

       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 vertical, 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 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.

       Module name ModuleName
              Specifies a module which should be spawned. Modules can be short lived transient programs  or  can
              remain  for  the duration of the X session. Modules will be terminated by the window manager prior
              to restarts and quits, if possible.  name is  a  double-qouted  string  which  has  absolutely  no
              significance, but must exist.

       Move [ x y ]
              Allows  the  user  to move a window. If called from somewhere in a window or its border, then that
              window will be moved. If called from the root window then the user will be allowed to  select  the
              target window.

              If  the  optional  arguments x and y are provided, then the window will be moved so that its upper
              left corner is at  location (x,y). The units of x and y are percent-of-screen, unless a letter "p"
              is appended to each coordinate, in which case the location is specified in pixels.

              Examples:
              Mouse 1 T A Move
              Mouse 2 T A Move 10 10
              Mouse 3 T A Move 10p 10p
              In  the first example, an interactive move is indicated. In the second, the window whose title-bar
              is selected will be moved so that its upper left hand corner is 10 percent of the screen width  in
              from  the left of the screen, and 10 percent down from the top. The final example moves the window
              to coordinate (10,10) pixels.

       Nop    Does nothing. This is used to insert a blank line or  separator  in  a  menu.  If  the  menu  item
              specification is Nop " ", then a blank line is inserted. If it looks like Nop "", then a separator
              line is inserted.

       Popup  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.

              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", whose
                definition was provided as an example earlier in this man page.  The menu will  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  modifier.  Pop-ups  can  be  operated
                without using the mouse by binding to keys and operating 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
                "Utilities":
                Popup "Quit-Verify"
                    Title   "Really Quit Fvwm?"
                    Quit    "Yes, Really Quit"
                    Restart "Restart Fvwm" fvwm
                    Nop     ""
                    Nop     "No, Don't Quit"
                EndPopup

                Popup "Utilities"
                    Title   "Utilities"
                    Exec    "Xterm"         exec xterm &
                    Exec    "Rxvt"          exec rxvt &
                    Exec    "Top"           exec rxvt -T Top -n Top -e top &
                    Exec    "Calculator"    exec xcalc &
                    Exec    "Xman"          exec xman &
                    Exec    "Xmag"          exec xmag &
                    Nop     ""
                    Popup   "Exit Fvwm"     Quit-Verify
                EndPopup
                Sub-menus  must be defined prior to the main menu in which they are bound.  Sub-menu nesting can
                be arbitrarily deep.

       Quit   Exits fvwm, generally causing X to exit too.

       Raise  Allows the user to raise a window.

       RaiseLower
              Alternately raises and lowers a window.

       Refresh
              Causes all windows on the screen to redraw themselves.

       Resize [ x y ]
              Allows the user to resize a window.

              If the optional arguments x and y are provided, then the window will be moved so  that  its  upper
              left corner is at  location (x,y). The units of x and y are percent-of-screen, unless a letter "p"
              is appended to each coordinate, in which case the location is specified in pixels.

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

              WindowManagerName  is not quoted but name is.  name is the name that appears in a menu, if that is
              where  the  function  is  called  from. name is required even if the function is not called from a
              menu.

              This command should not have a trailing ampersand or any command line  arguments  and  should  not
              make  use  of  any  environmental  variables.  Of the following examples, the first three 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 " " twm -f .mystartupfile
              Key F1 R N Restart " " /home/nation/bin/fvwm

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

       Scroll horizonal vertical
              Scrolls the virtual desktop's viewport by horizontal 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 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 multiplied 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.

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

       TogglePage
              Temporarily disables edge scrolling. Edge scrolling can be re-enabled by calling this again.

       Wait name
              This  built-in is intended to be used in fvwm functions 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:
              Function "InitFunction"
                   Exec "I"  exec xterm -geometry 80x64+0+0
                   Wait "I"  xterm
                   Desk "I"  0 2
                   Exec "I"  exec xmh -font fixed -geometry 507x750+0+0 &
                   Wait "I"  xmh
                   Desk      "I"  0 0
              EndFunction
              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.

       Warp [ name window_name ]
              Same as CirculateDown but de-iconifies any iconified windows as it focuses on them.

       WindowsDesk new_desk
              Moves the selected window the the desktop specified as new_desk.

       WindowList arg1 arg2
              Generates a pop-up menu (and pops it up) in which the title and geometry of each  of  the  windows
              currently  on  the  desk  top  are  shown. The geometry of iconified windows is shown in brackets.
              Selecting an item from the window list pop-up menu will cause that window to  be  moved  onto  the
              desktop  if  it  is currently not on it, will move the desktop viewport to the page containing the
              upper left hand corner of the window, will de-iconify the window if  it  is  iconified,  and  will
              raise the window.

              If  arg1  is  an  even number then the windows will be listed using the window name (the name that
              shows up in the title-bar). If it is odd then the window's icon name is used.

              If arg1 is less than 2 then all windows on all desktops (except  those  listed  in  WindowListSkip
              directives) will be shown.

              If arg1 is 2 or 3 then only windows on the current desktop will be shown.

              If arg1 is 4 or 5 then only windows on desktop number arg2 will be shown.

KEYBOARD SHORTCUTS

       All  (I think) window manager operations can be performed from the keyboard so mouseless operation should
       be possible. In addition to scrolling around the virtual  desktop  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.
       Standard  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, system.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 independently. Restarts of fvwm  need  to  be
       performed  separately  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.

       Multi-screen support is only available if fvwm is compiled with -DMULTIPLE_SCREENS

BUGS

       As of fvwm 0.99 there were exactly 39.342 unidentified bugs. Identified  bugs  have  mostly  been  fixed,
       though.  Since then 9.34 bugs have been fixed.  Assuming that there are at least 10 unidentified bugs for
       every identified one, that leaves us with 39.342 - 9.32 + 10 * 9.34 = 123.402 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 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 3.37e+27 years. I guess I better plan on  passing
       this thing on to my children....

       Binding  a  key  to a window decoration but not to the window itself is discouraged because when the key-
       press event finally gets to the window it will be marked  as  SYNTHETIC  and  will  be  ignored  by  many
       applications.

       Bug reports can be sent to fvwm@wonderland.org.

AUTHOR

       Robert Nation with help from many people, based on twm code, which was written by Thomas LaStrange.