FvwmM4 - the fvwm M4 pre-processor
Module FvwmM4 [options] filename
The FvwmM4 module can only be invoked by fvwm. Command line invocation of the
FvwmM4 module will not work.
When fvwm executes the FvwmM4 module, FvwmM4 invokes the M4 pre-processor on the
file specified in its invocation, then FvwmM4 causes fvwm to execute the
commands in the resulting file.
FvwmM4 can be invoked as a module using an fvwm command, from the .fvwm2rc file,
a menu, mousebinding, or any of the many other ways fvwm commands can be
issued.
If the user wants his entire .fvwm2rc file pre-processed with FvwmM4, then fvwm
should be invoked as:
fvwm -cmd "Module FvwmM4 .fvwm2rc"
Note that the argument to the option "-cmd" should be enclosed in
quotes, and no other quoting should be used.
When FvwmM4 runs as a module, it runs asynchronously from fvwm. If FvwmM4 is
invoked from the .fvwm2rc, the commands generated by FvwmM4 may or may not be
executed by the time fvwm processes the next command in the .fvwm2rc. Invoke
FvwmM4 this way for synchronous execution:
ModuleSynchronous FvwmM4 -lock filename
Some options can be specified following the modulename:
- -m4-prefix
- I think this makes all the m4 directives require the prefix
"m4_".
- -m4-prefix-defines
- Causes built-in defines to be prefixed with "m4_"
(i.e., m4_HOME is defined instead of HOME, etc.)
- -m4opt option
- Lets you pass an option to the m4 program. Not really
needed as any unknown options will be passed on automatically.
- -m4-squote character
- Lets you change the m4 start-of-quote character to
character.
- -m4-equote character
- Lets you change the m4 end-of-quote character to
character.
- -m4prog name
- Instead of invoking "m4", fvwm will invoke
name.
- -outfile filename
- Instead of creating a random unique name for the temporary
file for the preprocessed rc file, this option specifies the name of the
temporary file created. FvwmM4 attempts to remove this file before writing
to it, so don't point it at anything important even if it has read-only
protection.
- -debug
- Causes the temporary file created by m4 to be retained.
This file is usually called "/tmp/fvwmrcXXXXXX"
- -lock
- If you want to use this option you need to start FvwmM4
with ModuleSynchronous. This option causes fvwm to wait that the
pre-process to finish and then FvwmM4 asks fvwm to Read the pre-processed
file before continuing. This can be useful at startup if you use a session
manager like Gnome. Also, this is useful if you want to process and run a
Form in an fvwm function.
- -noread
- Causes the pre-processed file to be not read by fvwm.
Useful for pre-processing an FvwmScript script.
FvwmM4 defines some values for use in the pre-processor file:
- TWM_TYPE
- Always set to "fvwm".
- SERVERHOST
- The name of the machine running the X Server.
- CLIENTHOST
- The name of the machine running fvwm.
- HOSTNAME
- The hostname of the machine running fvwm. Generally the
same as CLIENTHOST.
- OSTYPE
- The operating system for CLIENTHOST.
- USER
- The name of the person running fvwm.
- HOME
- The home directory of the person running fvwm.
- VERSION
- The X11 version.
- REVISION
- The X11 revision number.
- VENDOR
- The X server vendor.
- RELEASE
- The X server release number.
- SCREEN
- The screen number.
- WIDTH
- The screen width in pixels.
- HEIGHT
- The screen height in pixels.
- X_RESOLUTION
- Some distance/pixel measurement for the horizontal
direction, I think.
- Y_RESOLUTION
- Some distance/pixel measurement for the vertical direction,
I think.
- PLANES
- Number of color planes for the X server display
- BITS_PER_RGB
- Number of bits in each rgb triplet.
- CLASS
- The X11 default visual class, e.g. PseudoColor.
- COLOR
- Yes or No, Yes if the default visual class is neither
StaticGrey or GreyScale.
- FVWM_CLASS
- The visual class that fvwm is using, e.g. TrueColor.
- FVWM_COLOR
- Yes or No, Yes if the FVWM_CLASS is neither StaticGrey or
GreyScale.
- FVWM_VERSION
- The fvwm version number, ie 2.0
- OPTIONS
- Some combination of SHAPE, XPM, NO_SAVEUNDERS, and M4, as
defined in configure.h at compile time.
- FVWM_MODULEDIR
- The directory where fvwm looks for .fvwm2rc and modules by
default, as determined at compile time.
- FVWM_USERDIR
- The value of $FVWM_USERDIR.
- SESSION_MANAGER
- The value of $SESSION_MANAGER. Undefined if this variable
is not set.
define(TWM_TYPE,``fvwm'')dnl
define(SERVERHOST,``spx20'')dnl
define(CLIENTHOST,``grumpy'')dnl
define(HOSTNAME,``grumpy'')dnl
define(OSTYPE,``SunOS'')dnl
define(USER,``nation'')dnl
define(HOME,``/local/homes/dsp/nation'')dnl
define(VERSION,``11'')dnl
define(REVISION,``0'')dnl
define(VENDOR,``HDS human designed systems, inc. (2.1.2-D)'')dnl
define(RELEASE,``4'')dnl
define(SCREEN,``0'')dnl
define(WIDTH,``1280'')dnl
define(HEIGHT,``1024'')dnl
define(X_RESOLUTION,``3938'')dnl
define(Y_RESOLUTION,``3938'')dnl
define(PLANES,``8'')dnl
define(BITS_PER_RGB,``8'')dnl
define(CLASS,``PseudoColor'')dnl
define(COLOR,``Yes'')dnl
define(FVWM_VERSION,``1.24l'')dnl
define(OPTIONS,``SHAPE XPM M4 '')dnl
define(FVWM_MODULEDIR,``/local/homes/dsp/nation/modules'')dnl
define(FVWM_USERDIR,``/local/homes/dsp/nation/.fvwm'')dnl
define(SESSION_MANAGER,``local/grumpy:/tmp/.ICE-unix/440,tcp/spx20:1025'')dnl
FvwmM4 is the result of a random bit mutation on a hard disk, presumably a
result of a cosmic-ray or some such thing.