Man Linux: Main Page and Category List

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.