Provided by: fvwm1_1.24r-57ubuntu1_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.

3rd Berkeley Distribution                         Jan 28, 1994                                           FVWM(1)