NAME
FvwmCpp - the FVWM Cpp pre-processor
SYNOPSIS
FvwmCpp is spawned by fvwm, so no command line invocation will work.
DESCRIPTION
When called, this module will attempt to have /usr/lib/cpp pre-process the file specified in its invocation, and then have fvwm read the resulting file.
INVOCATION
FvwmCpp can be invoked by inserting the line 'FvwmCpp' in the .fvwmrc file. It can also be called from a menu or mouse binding. If the user wants his entire .fvwmrc file pre-processed with FvwmCpp, then fvwm should be invoked as:
fvwm2 -cmd "FvwmCpp .fvwmrc"
Some options can be specified on the command line:
- -cppopt option
- Lets you pass an option to the cpp program. Not really needed as any unknown options will be passed on automatically.
- -cppprog name
- Instead of invoking "/usr/lib/cpp", fvwm will invoke name.
- -outfile filename
- Instead of creating a random unique name for the temporary file for the preprocessed rc file, this option will let you specify the name of the temporary file it will create.
- -debug
- Causes the temporary file create by Cpp to be retained. This file is usually called "/tmp/fvwmrcXXXXXXXXXX"
CONFIGURATION OPTIONS
FvwmCpp 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.
- VERSION
- The X11 version.
- REVISION
- The X11 revision number.
- VENDOR
- The X server vendor.
- RELEASE
- The X server release 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 visual class, ie PsuedoColor.
- COLOR
- Yes or No, Yes if the display class is neither StaticGrey or GreyScale.
- FVWM_VERSION
- The fvwm version number, ie 2.0
- OPTIONS
- Some combination of SHAPE, XPM, NO_SAVEUNDERS, and Cpp, as defined in configure.h at compile time.
- FVWM_MODULEDIR
- The directory where fvwm looks for .fvwmrc and modules by default, as determined at compile time.
EXAMPLE PROLOG
#define TWM_TYPE fvwm #define SERVERHOST spx20 #define CLIENTHOST grumpy #define HOSTNAME grumpy #define OSTYPE SunOS #define USER nation #define HOME /local/homes/dsp/nation #define VERSION 11 #define REVISION 0 #define VENDOR HDS human designed systems, inc. (2.1.2-D) #define RELEASE 4 #define WIDTH 1280 #define HEIGHT 1024 #define X_RESOLUTION 3938 #define Y_RESOLUTION 3938 #define PLANES 8 #define BITS_PER_RGB 8 #define CLASS PseudoColor #define COLOR Yes #define FVWM_VERSION 2.0 pl 1 #define OPTIONS SHAPE XPM Cpp #define FVWM_MODULEDIR /local/homes/dsp/nation/modules
BUGS
Module configurations do not become active until fvwm2 has restarted if you use FvwmCpp on startup. FvwmCpp creates a temporary file and passes this to fvwm2, so you would have to edit this file too. There are some problems with comments in your .fvwmrc file. The comment sign # is misinterpreted by the preprocessor. This has usually no impact on functionality but generates annoying warning messages. The sequence /* is interpreted as the start of a C comment what is probably not what you want in a filename. You might want to try /?* (for filenames only) or /\* or "/*" instead. Macros are not replaced within single (') or double quotes ("). Use backquotes (`) to circumvent this. Fvwm2 accepts backquotes for quoting and at least FvwmButtons does too. The preprocessor may place a space after a macro substitution, so with
#define MYCOMMAND ls "Exec "MYCOMMAND" -l"
you might get
"Exec "ls " -l" (two words)
and not
"Exec "ls" -l" (one word).
AUTHOR
FvwmCpp is the result of a random bit mutation on a hard disk, presumably a result of a cosmic-ray or some such thing.