Provided by: fvwm_2.6.5.ds-3_amd64 bug

NAME

       FvwmForm - input form module for Fvwm

SYNOPSIS

       Module FvwmForm [ Alias ]

       FvwmForm  must  be spawned by Fvwm.  If invoked from the command line, FvwmForm prints its
       version number and exits.

DESCRIPTION

       FvwmForm provides a mechanism to get user input and act accordingly.  This is achieved  by
       means  of a form that the user can fill out, and from which the user can select actions he
       wants Fvwm to take.  A form consists of five types of items: text labels, single-line text
       inputs,  mutually-exclusive  selections,  multiple-choice  selections, and action buttons.
       These items are arranged into several lines, with a very flexible layout.

       A text label only serves the purpose of explanation.  It cannot accept any input.

       A timeout entry provides a mechanism for timing out the  form  and  performing  a  certain
       action when the timeout occurs.  The countdown is displayed similar to a text label except
       that it updates with the amount of time left.

       A text input field can be used to edit a single-line string.  FvwmForm accepts Emacs-style
       cursor  movement  keys.   See FvwmFormInput for details.  Mouse copy is not supported, but
       you can paste.

       A selection consists of several choices.

       The selection itself is a logical entity that doesn't have any display feature.

       Each choice is displayed as a push-button followed by  a  explanatory  text  label.   When
       selected,  an exclusive choice shows a circle in the middle, while a multiple choice shows
       a check.

       An action button, when activated sends one or more commands  to  Fvwm  or  executes  shell
       commands.   The shell commands can contain the content of the input fields on the form and
       reflect the setting of choices on the form.

       The action buttons can be activated thru keyboard or mouse.

INITIALIZATION

       FvwmForm invoked without an alias uses configuration commands  starting with "*FvwmForm".

       Normally you would invoke FvwmForm with an alias representing the  name  of  a  form,  its
       configuration  commands and configuration file.  For example, the command "Module FvwmForm
       Rlogin" uses configuration commands  starting  with  "*Rlogin",  and  reads  the  optional
       configuration file "Rlogin".

       All  forms,  regardless  of  alias,  scan first for configuration commands that start with
       "*FvwmFormDefault".   These  commands  normally come from the builtin form "FvwmForm-Form"
       which saves commands to the file ".FvwmForm".

       The  physical reading of the optional input file, ".FvwmForm", is done only the first time
       FvwmForm is invoked, or after "FvwmForm-Form" updates the file.

       When the file ".FvwmForm" is read,  it is done  by sending  the  command  "Read  .FvwmForm
       Quiet"    to  fvwm.  Because of  the   way the  "read" command works, the file can  reside
       in your personal fvwm user  directory,  or  be  in  the  fvwm  data  directory.   See  the
       description  of  the  read  command  in  the  fvwm man page for more information about the
       environment variable $FVWM_USERDIR.

       Then FvwmForm reads the rest of  the  configuration  fvwm  has  stored  up.   Fvwm  stores
       configuration  on  an  ongoing  basis.   The initial configuration comes from the .fvwm2rc
       file.  Other sources, including "Read" commands can define a form.

       When letting  FvwmForm and fvwm  read files, remember that these  files  contain  commands
       that  can  execute shell commands,  so  you should be careful about setting permissions on
       these files.

       When FvwmForm is invoked with a window context, e.g. from a window menu, all  commands  it
       sends  to  Fvwm  will  have that window context.  This would allow FvwmForm to control the
       window it is invoked from.

       After all the configuration commands have been read, FvwmForm displays the form defined by
       the commands.

DEFAULTS

       FvwmForm  creates  a  built-in  form  named  "FvwmForm-Form"  that  creates  a file called
       ".FvwmForm".  This file contains saved default form colors and  fonts.   Other  forms  use
       these defaults unless they are overridden within the form.

       The default creating form would normally be invoked from a "module menu".  For example, if
       you call your module menu "Module-Popup", you would add the line:
       AddToMenu "Module-Popup" "FvwmForm Defaults" FvwmForm FvwmForm-Form
       When you select "FvwmForm Defaults" from your module menu, a form is displayed that  shows
       the current defaults and allows you to change them.  If you activate the "Save Restart Me"
       button, the ".FvwmForm" file is written and "FvwmForm-Form" exits and restarts to show the
       new defaults.

       An example of what this file might contain after a save is:
         # This file last created by FvwmForm-Form on Sun Nov 28 11:18:26 EST 1999.
         *FvwmFormDefault: Font 10x20
         *FvwmFormDefault: InputFont 8x13bold
         *FvwmFormDefault: ButtonFont 10x20
         *FvwmFormDefault: TimeoutFont 10x20
         *FvwmFormDefault: Fore white
         *FvwmFormDefault: Back cornflowerblue
         *FvwmFormDefault: Colorset -1
         *FvwmFormDefault: ItemFore green
         *FvwmFormDefault: ItemBack gray40
         *FvwmFormDefault: ItemColorset -1
         *FvwmFormDefault: ButtonPointer hand2
         *FvwmFormDefault: ButtonInPointer star
         *FvwmFormDefault: InputPointer gumby
         *FvwmFormDefault: ButtonPointerFore blue
         *FvwmFormDefault: ButtonPointerBack gray
         *FvwmFormDefault: ButtonInPointerFore gray
         *FvwmFormDefault: ButtonInPointerBack blue
         *FvwmFormDefault: InputPointerFore
         *FvwmFormDefault: InputPointerBack
       The  commands in this file are just like any other FvwmForm command except that they start
       with "*FvwmFormDefault".

       FvwmForm only reads the file ".FvwmForm" the first time it is started or after the file is
       changed by "FvwmForm-Form".  It does so by sending the command "*FvwmFormDefault: Read x".
       With "x" set to "y" or "n".  "n" makes FvwmForm send a "read .FvwmForm quiet"  command  to
       fvwm.

VARIABLE SUBSTITUTION

       If you supply variables and values on the command line used to start FvwmForm (like this):

       Module FvwmForm MyForm ACTION=Browse "TITLE=Browse Form"

       Then  all  FvwmForm  input commands undergo variable substitution.  The variables from the
       command line are exported.  Then every command gets expanded using the variables from  the
       environment.   For  example,  assuming the above invocation of "MyForm", commands would be
       changed like this:

       Before  *MyForm: Text "$TITLE, Home $HOME, Going to $ACTION"
       After   *MyForm: TEXT "Browse Form, Home /home/me, Going to Browse"

       Using this facility should make it possible for one form to be used for different sets  of
       input data.

CONFIGURATION

       The  following commands can be set in the .fvwm2rc file or thru any of the other ways that
       fvwm can accept commands.  The simplest technique is to create a  file  in  the  read-only
       architecture-independent   data  directory,  [PREFIX/share/fvwm]  or  your  personal  fvwm
       directory [$HOME/.fvwm], that matches the form alias.

       In the following paragraphs the string "FvwmForm" would normally be the form alias.

       FvwmForm reads commands before the form is ever displayed, and while  the  form  is  being
       displayed.

       The following commands are accepted before the form is displayed:
       Back
       Button
       ButtonFont
       ButtonInPointer
       ButtonInPointerFore
       ButtonInPointerBack
       ButtonPointer
       ButtonPointerFore
       ButtonPointerBack
       Choice
       Command
       Colorset
       Font
       Fore
       GrabServer
       Input
       InputFont
       InputPointer
       ItemBack
       ItemColorset
       ItemFore
       InputPointerFore
       InputPointerBack
       Line
       Message
       PadVText
       Position
       Selection
       Text
       Timeout
       TimeoutFont
       Title
       UseData
       WarpPointer

       The following commands are accepted while the form is displayed:
       Map
       Stop
       UnMap

       The "Map", "UnMap" and "Stop" facility is under development and is currently not explained
       in this document, since it is likely to change.

       The order of the options DOES matter.  The first background text  color,  "*FvwmFormBack",
       encountered  before  a  displayable  item sets the default background color for the entire
       form.

       Other than that, colors, fonts, text, choices and buttons can be intermixed in any  order.
       The  are  no builtin limits on form size, number of items on a form, or number of fonts or
       colors used.

       *FvwmForm: GrabServer
           This option makes FvwmForm grab the mouse pointer on startup.  This feature is  useful
           for things like logout verification.

       *FvwmForm: WarpPointer
           This  option  makes  FvwmForm  warp  the mouse pointer into its window on startup.  It
           saves the user some mouse-travelling.

       *FvwmForm: Geometry geometry
           Specifies the FvwmForm window location.  This is similar to what the  Position  option
           does but is more flexible.

       *FvwmForm: Position x y
           Puts  the FvwmForm window at location (x, y) on the screen.  By convention, a negative
           x (y) value measures distance from the right (bottom) of the screen.

           If this option is omitted, FvwmForm starts at the center of the screen.

       *FvwmForm: Colorset n
           Tells the module to use colorset n. See FvwmTheme.

       *FvwmForm: Back color
           Specifies the background color of the FvwmForm window and any text in the window.  The
           first  background color FvwmForm reads determines the overall screen background color.
           Switches off the Colorset option.  See DEFAULTS.

       *FvwmForm: Fore color
           Specifies the foreground color for displaying text labels.  Switches off the  Colorset
           option.  See DEFAULTS.

       *FvwmForm: ItemColorset n
           Tells the module to use colorset n for items. See FvwmTheme.

       *FvwmForm: ItemBack color
           Specifies  the  background color for the text input windows, and the buttons.  Buttons
           are displayed as 3D depressable buttons.  Inputs are displayed as 3D indented  fields.
           Medium  shade background colors work best.  Switches off the ItemColorset option.  See
           DEFAULTS.

       *FvwmForm: ItemFore color
           Specifies the foreground color for the text input strings and  button  text.  Switches
           off the ItemColorset option.  See DEFAULTS.

       *FvwmForm: Font font
           Specifies the font for displaying plain text.  See DEFAULTS.

       *FvwmForm: ButtonFont font
           Specifies the font for text in the action buttons.  See DEFAULTS.

       *FvwmForm: InputFont font
           Specifies the font for text input.  See DEFAULTS.

       *FvwmForm: TimeoutFont font
           Specifies the font for display the timeout counter and related text.  See DEFAULTS.

       *FvwmForm: Line justification
           Starts  a  new line.  A line can contain any number of text, input, buttons and choice
           items.  A FvwmForm window can have any number of lines.  The width of  the  window  is
           that of the longest line.

           Justification  of items in the line is specified by justification, which can be one of
           the following:

       left            Items are justified to the left of the window.

       right           Items are justified to the right of the window.

       center          Items are placed in the center of the window.

       expand          If there is only one item in the line, the item is centered in the window.
                       If  two or more items are present, they are spread to fill the whole width
                       of the window.

       *FvwmForm: Message
           Defines a text area on the form that contains the last error message from  fvwm.   For
           purposes of determining form size, the message area is considered to be 80 bytes long.
           Its actual length is the same as the message received.   If  the  message  exceeds  80
           bytes, you can see the rest of the message by resizing the form.

           You should not attempt to put any text, buttons or input fields on the same line after
           a message field.  Messages greater than 80 bytes will overlay  the  remainder  of  the
           line.

       *FvwmForm: PadVText Pixels
           The  number  of pixels used as vertical padding between text items, line to line.  The
           default is 6 which looks good on lines containing text intermixed  with  input  boxes,
           choices or buttons.

           For straight text, such as might appear on a help form, padding of zero looks better.

           (There  are  lots of other padding values used in form layout which can't currently be
           changed with commands.)

       *FvwmForm: Text string
           Displays string as plain text.  Line breaks must be achieved  by  multiple  *FvwmForm:
           Line and *FvwmForm: Text options.  Blanks may be used to provide extra padding between
           items.

       *FvwmForm: Title string
           Displays string as the window's title.  The string must be enclosed in double  quotes.
           Using  this  command  with  anything  other than a string enclosed in quotes creates a
           blank title.  If this command is not used, the window title is the form alias.

       *FvwmForm: Input name size init_string
           Specifies a text input item with name name.  A sub window of size characters in  width
           is  used  for  editing.   If  init_string  is  present,  it is the initial string when
           FvwmForm starts or resets itself.  The default initial string is "".

           You can mouse paste into an input field using button 2.  Buttons  1  and  3  move  the
           cursor in an input field.

           Input fields are always in insert mode, overtyping is not supported.

           Emacs type keystrokes are supported.

           Control-a, Home and Begin move to the front of an input field.  Control-e and End move
           to the end of an input field.  Control-b  and  Left  move  left  in  an  input  field.
           Control-f  and  Right move right in an input field.  Control-p, Up, and Shift-Tab move
           to a previous input field if any, if the form has one  input  field,  recall  previous
           value.   Control-n,  Down,  Return,  Line-feed and Tab move to the next input field if
           any, if the form has one input field, for control-n and Down, restore  previous  input
           value.  Control-h moves backward in an input field erasing a character.  Control-d and
           Delete delete the next character in an input field.  Control-k erases for  the  cursor
           to the end of an input field.  Control-u erases the entire input field.

           When  a  form  executes  a  command, all the input values are saved in a ring of input
           history 50 items deep.

           Meta(mod2)-"<" retrieves  the  previous  value  of  an  input  field.   Meta(mod2)-">"
           retrieves the next value of an input field.

           (For forms with one input field, use the much easier arrow keys.)

       *FvwmForm: Selection name type
           This  option  starts  a  selection  item with name name.  Its choices are specified in
           following configuration commands.  The option type is one of the following:

       single          The selections are mutually exclusive.

       multiple        This is a multiple-choice selection.

       *FvwmForm: Choice name value on | off string
           Specifies a choice for a proceeding selection.  The choice item has a name and a value
           these  are  used in commands.  See *FvwmForm: Command.  The string is displayed to the
           right of the choice button as a label.

           The choice assumes the specified initial state ("on"  means  selected)  when  FvwmForm
           starts  or resets.  If the selections are mutually exclusive, FvwmForm does NOT detect
           inconsistencies in the initial states of the choices, i.e. two or none of the  choices
           can  be selected.  However, once the user selects a choice, FvwmForm  assures only one
           is selected.

       *FvwmForm: Button type string [key]
           This option specifies an action button.   The  button  has  string  as  a  label,  and
           executes  a  set of Fvwm command when it is activated.  The commands are the following
           *FvwmForm: Commands.

           The optional key specifies a keyboard shortcut that activates the button.   It  is  in
           either a control character, specified as ^@, ^A, ..., ^_, or a function key, specified
           as F1, F2, ..., F35.  Control keys that are used for cursor  movement  in  text  input
           fields  cannot  activate  any  buttons,  with  the exception of TAB (^I), RETURN (^M),
           LINEFEED (^J), which can activate a button when the cursor is in the last  text  input
           field.

           The behavior of the button is determined by type:

       continue        FvwmForm continues execution after sending the commands.

       restart         After  sending the commands, FvwmForm resets all the values to the initial
                       ones, and then continues execution.

       quit            FvwmForm quits after sending the commands.

       *FvwmForm: Command command
           This option specifies an Fvwm command associated with the current button.   There  can
           be  more  than  one  command  attached  to  a button.  Commands that appear before any
           *FvwmForm: Button option are executed at start-up time.  This is usually a  beep  that
           gets the user's attention.

           Commands  starting  with  an  exclamation mark (!) are executed by FvwmForm, all other
           commands are sent to Fvwm  for  execution.   Before  sending  each  command  to  Fvwm,
           FvwmForm recognizes variables of the following forms, and supply values to them.

       $(name)         If  name corresponds to a text input field, the result is the user's input
                       string.  The special chars single-quote, double-quote  and  backslash  are
                       preceded by a backslash.

                       If name corresponds to a choice, the result is the value of the choice (as
                       specified in *FvwmForm: Choice) if the choice is selected.  If the  choice
                       is not selected, the result is a blank string.

                       If  name  corresponds  to  a  selection,  the result will be a list of the
                       selected values of all its choices separated by spaces.

       $(name?string)  If name is a text input field and its value is not an  empty  string,  the
                       result  is  string,  with recursive variable substitution applied.  If the
                       input value is empty, the result is empty.

                       If name is a choice and  it  is  selected,  the  result  is  string,  with
                       recursive  variable  substitution applied.  If the choice is not selected,
                       the result is empty.

       $(name!string)  The same as the above, except that the converse conditions are taken.

                       When using the "?" and "!" forms to pass a string, the string is delimited
                       by  a  right  parenthesis.   If  you  need to put a right parenthesis in a
                       string, precede the right parenthesis with a backslash.

       *FvwmForm: UseData datafile leading
           Tells FvwmForm to read a data file and extract data from module  commands  that  match
           the "leading" argument and an input, choice, or selection variable in a form.

           This  lets  a  form display current fvwm module configuration data.  For an example of
           how this works, examine the file "FvwmForm-Rlogin" which  is  installed  in  read-only
           architecture-independent data directory, [PREFIX/share/fvwm] and shown below.

           For  choices,  the  setting  of the button is represented as the word "on",  all other
           values for a setting are treated as off.

           For selections, the setting of each  choice  button  is  determined  by  matching  the
           current  value  of  the  selection  against  each  choice.  Currently, this only works
           correctly for selections that allow a single choice.

       *FvwmForm: ButtonPointer pointername
           Change the default mouse pointer (hand2)  used  when  hovering  over  a  button.   The
           pointername  must  be  one  of  the names defined in the include file X11/cursorfont.h
           (without the XC_ prefix).  See DEFAULTS.

       *FvwmForm: ButtonInPointer pointername
           Change the default mouse pointer (hand1) used while  a  button  is  pressed  in.   The
           pointername  must  be  one  of  the names defined in the include file X11/cursorfont.h
           (without the XC_ prefix).  See DEFAULTS.

       *FvwmForm: InputPointer pointername
           Change the default mouse pointer (xterm) used while the pointer is over a text  field.
           The  pointername must be one of the names defined in the include file X11/cursorfont.h
           (without the XC_ prefix).  See DEFAULTS.

       *FvwmForm: ButtonPointerFore|Back color
           Change the default mouse pointer foreground and background colors used  when  hovering
           over a button.  See DEFAULTS.

       *FvwmForm: ButtonInPointerFore|Back color
           Change  the default mouse pointer foreground and background colors used while a button
           is pressed in.  See DEFAULTS.

       *FvwmForm: InputPointerFore|Back color
           Change the default mouse pointer foreground  and  background  colors  used  while  the
           pointer is over a text field.  See DEFAULTS.

       *FvwmForm: Timeout seconds command "text"
           Set  up  FvwmForm  to  time out after the amount of seconds specified.  When the timer
           hits zero, command executes.  The text field is displayed  much  like  a  Text  field,
           except that a '%%' in the line is replaced automatically by the amount of time left on
           the timer.  The value gets updated every second as the timer counts down.   There  can
           only be one timeout field per form.

EXAMPLES

       All  of  the  following "examples" are installed in the read-only architecture-independent
       data directory, [PREFIX/share/fvwm], during fvwm installation.

       The following commands create a menu to invoke the examples:

       DestroyMenu Forms
       AddToMenu Forms "&Q. QuitVerify" Module FvwmForm FvwmForm-QuitVerify
       AddToMenu Forms "&C. Capture"    Module FvwmForm FvwmForm-Capture
       AddToMenu Forms "&R. Rlogin"     Module FvwmForm FvwmForm-Rlogin
       AddToMenu Forms "&T. Talk"       Module FvwmForm FvwmForm-Talk

EXAMPLE 1 - Quit Verify

       This example simulates the mwm way of confirming logout.  Return does the  logout,  Escape
       cancels logout.  It times out after 20 seconds and performs the equivalent of the 'Logout'
       button.
       DestroyModuleConfig  FvwmForm-QuitVerify: *
       *FvwmForm-QuitVerify: GrabServer
       *FvwmForm-QuitVerify: WarpPointer
       *FvwmForm-QuitVerify: Command     Beep
       *FvwmForm-QuitVerify: Line        center
       *FvwmForm-QuitVerify: Text        "Do you really want to logout?"
       *FvwmForm-QuitVerify: Line        expand
       *FvwmForm-QuitVerify: Button      quit "Logout" ^M
       *FvwmForm-QuitVerify: Command     Quit
       *FvwmForm-QuitVerify: Button      restart   "Restart" ^R
       *FvwmForm-QuitVerify: Command     Restart
       *FvwmForm-QuitVerify: Button      quit "Cancel" ^[
       *FvwmForm-QuitVerify: Command     Nop
       *FvwmForm-QuitVerify: Timeout     20 Quit "Automatic logout will occur in %% seconds."

EXAMPLE 2 - Remote Login

       This example lets the user type in a host name, an optional user name, and opens an  xterm
       window from the remote host.
       DestroyModuleConfig  FvwmForm-Rlogin: *
       *FvwmForm-Rlogin: WarpPointer
       *FvwmForm-Rlogin: Line         center
       *FvwmForm-Rlogin: Text         "Login to Remote Host"
       *FvwmForm-Rlogin: Line         center
       *FvwmForm-Rlogin: Text         "Host:"
       *FvwmForm-Rlogin: Input        HostName        20      ""
       *FvwmForm-Rlogin: Line         center
       *FvwmForm-Rlogin: Selection    UserSel single
       *FvwmForm-Rlogin: Choice       Default Default on      "same user"
       *FvwmForm-Rlogin: Choice       Custom  Custom  off     "user:"
       *FvwmForm-Rlogin: Input        UserName        10      ""
       *FvwmForm-Rlogin: Line         expand
       *FvwmForm-Rlogin: Button       quit    "Login"         ^M
       *FvwmForm-Rlogin: Command      Exec exec ssh $(Custom?-l $(UserName)) $(HostName) xterm -T xterm@$(HostName) -display $HOSTDISPLAY &
       # Before saving the data, remove any previously saved data:
       *FvwmForm-Rlogin: Command DestroyModuleConfig FvwmForm-RloginDefault: *
       # The "Login" button causes a login and a saving of the current data:
       *FvwmForm-Rlogin: Command !(                        /bin/echo \
         "# Created by FvwmForm-Rlogin on: `/bin/date`.";  /bin/echo \
         '*FvwmForm-RloginDefault: HostName $(HostName)';  /bin/echo \
         '*FvwmForm-RloginDefault: UserName $(UserName)';  /bin/echo \
         '*FvwmForm-RloginDefault: Default $(Default?on)'; /bin/echo \
         '*FvwmForm-RloginDefault: Custom $(Custom?on)' \
       ) > ${FVWM_USERDIR}/.FvwmForm-Rlogin
       *FvwmForm-Rlogin: Button       restart "Reset"
       *FvwmForm-Rlogin: Button       quit    "Cancel"        ^[
       *FvwmForm-Rlogin: Command      Nop
       # Tell FvwmForm to read vars from the .FvwmForm-RloginDefault file:
       *FvwmForm-Rlogin: UseData .FvwmForm-Rlogin *FvwmForm-RloginDefault

EXAMPLE 3 - Capture Window

       This example provides a front-end to xwd, xwud, and xpr.
       DestroyModuleConfig  FvwmForm-Capture: *
       *FvwmForm-Capture: Line       center
       *FvwmForm-Capture: Text       "Capture Window"
       *FvwmForm-Capture: Line       left
       *FvwmForm-Capture: Text       "File: "
       *FvwmForm-Capture: Input      file            25      "/tmp/Capture"
       *FvwmForm-Capture: Line       left
       *FvwmForm-Capture: Text       "Printer: "
       *FvwmForm-Capture: Input      printer         20      "$PRINTER"
       *FvwmForm-Capture: Line       expand
       *FvwmForm-Capture: Selection  PtrType single
       *FvwmForm-Capture: Choice     PS      ps      on      "PostScript"
       *FvwmForm-Capture: Choice     Ljet    ljet    off     "HP LaserJet"
       *FvwmForm-Capture: Line       left
       *FvwmForm-Capture: Text       "xwd options:"
       *FvwmForm-Capture: Line       expand
       *FvwmForm-Capture: Selection  Options multiple
       *FvwmForm-Capture: Choice     Brd     -nobdrs off     "No border"
       *FvwmForm-Capture: Choice     Frm     -frame  on      "With frame"
       *FvwmForm-Capture: Choice     XYZ     -xy     off     "XY format"
       *FvwmForm-Capture: Line       expand
       *FvwmForm-Capture: Button     continue        "Capture"       ^M
       *FvwmForm-Capture: Command    Exec exec xwd -out $(file) $(Options) &
       *FvwmForm-Capture: Button     continue        "Preview"
       *FvwmForm-Capture: Command    Exec exec xwud -in $(file) &
       *FvwmForm-Capture: Button     continue        "Print"
       *FvwmForm-Capture: Command    Exec exec xpr -device $(PtrType) $(file) | lpr -P $(printer) &
       *FvwmForm-Capture: Button     quit            "Quit"

EXAMPLE 4 - Talk Form

       This  example  provides  a  replacement  for  the  module  FvwmTalk.   There  are 2 forms,
       "FvwmForm-Talk." which executes commands, or sends commands to  fvwm  for  execution,  and
       "FvwmForm-TalkHelp."  which is a help form.

       In  the  help  form,  notice  how  vertical line spacing is changed.  Normal FvwmForm line
       spacing assumes text is intermixed with buttons, help forms require different spacing.

       # FvwmForm-Talk - Basic replacement for FvwmTalk
       DestroyModuleConfig  FvwmForm-Talk: *
       *FvwmForm-Talk: WarpPointer
       # Layout
       *FvwmForm-Talk: Line         center
       *FvwmForm-Talk: Text         "Talk to Fvwm"
       *FvwmForm-Talk: Line         left
       *FvwmForm-Talk: Text         "Command:"
       *FvwmForm-Talk: Input        Command 80 ""
       *FvwmForm-Talk: Line         left
       *FvwmForm-Talk: Text         "Msg:"
       *FvwmForm-Talk: Message
       *FvwmForm-Talk: Line         center
       # Buttons
       *FvwmForm-Talk: Button       restart    "Return - Execute"         ^M
       *FvwmForm-Talk: Command        $(Command)
       *FvwmForm-Talk: Button       continue    "F1 - Help" F1
       *FvwmForm-Talk: Command        Module FvwmForm FvwmForm-TalkHelp
       *FvwmForm-Talk: Button       restart     "F3 - Reset input" F3
       *FvwmForm-Talk: Command        Nop
       *FvwmForm-Talk: Button       quit        "F4 - Dismiss"  F4
       *FvwmForm-Talk: Command        Nop

       # FvwmForm-TalkHelp - Help Text for FvwmForm-Talk
       DestroyModuleConfig  FvwmForm-TalkHelp: *
       *FvwmForm-TalkHelp: WarpPointer
       # Layout
       *FvwmForm-TalkHelp: Line    center
       *FvwmForm-TalkHelp: Text    "Talk to Fvwm - Help"
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    " "
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: PadVText 0
       *FvwmForm-TalkHelp: Text    "Enter commands in the
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "Commands beginning with
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "shell as a sub-process of the form."
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "All other commands are sent to fvwm for execution."
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    ""
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    "Fvwm error messages are shown on the
       *FvwmForm-TalkHelp: Line    left
       *FvwmForm-TalkHelp: Text    ""
       # Buttons
       *FvwmForm-TalkHelp: Line    center
       *FvwmForm-TalkHelp: Button  quit    "Return - Dismiss"         ^M
       *FvwmForm-TalkHelp: Command   Nop

BUGS AND LIMITATIONS

       FvwmForm is a fairly simple method of providing  input.   There  is  no  input  validation
       facility.  FvwmForm has no way of dealing with lists.

       Report bugs to the fvwm-workers list.

COPYRIGHTS

       FvwmForm is original work of Thomas Zuwei Feng (ztfeng@math.princeton.edu).

       Copyright  Feb  1995,  Thomas  Zuwei  Feng.   No  guarantees or warranties are provided or
       implied in any way whatsoever.  Use this program at your own  risk.   Permission  to  use,
       modify,  and  redistribute  this  program is hereby given, provided that this copyright is
       kept intact.

CHANGES

       During the fall of 1998, Dan Espen removed all form size limits, added unlimited font  and
       color  changing,  form  spacing  control,  configuration  file  reading, global control of
       appearance, synchronous command execution, Error message display,  variable  substitution,
       configurable pointers, and lots of other damage.  No additional copyright is imposed.