Man Linux: Main Page and Category List

NAME

       FvwmCpp - the Fvwm  Cpp pre-processor

SYNOPSIS

       Module FvwmCpp [options] filename

       The  FvwmCpp  module  can  only  be  invoked  by  fvwm.   Command  line
       invocation of the FvwmCpp module will not work.

DESCRIPTION

       When fvwm executes the FvwmCpp module, FvwmCpp  invokes  the  cpp  pre-
       processor  on the file specified in its invocation, then FvwmCpp causes
       fvwm to execute the commands in the resulting file.

INVOCATION

       FvwmCpp 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  FvwmCpp,
       then fvwm should be invoked as:

            fvwm -cmd "Module FvwmCpp .fvwm2rc"

       Note  that  the  argument  to  the  option "-cmd" should be enclosed in
       quotes, and no other quoting should be used.

       When FvwmCpp runs as a module, it runs asynchronously  from  fvwm.   If
       FvwmCpp is invoked from the .fvwm2rc, the commands generated by FvwmCpp
       may or may not be executed by the time fvwm processes the next  command
       in the .fvwm2rc.  Invoke FvwmCpp this way for synchronous execution:

            ModuleSynchronous FvwmCpp -lock filename

OPTIONS

       Some options can be specified following the modulename:

       -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.  Please note that
              FvwmCpp  will  attempt 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  create by Cpp to be retained. This
              file is usually called "/tmp/fvwmrcXXXXXX"

       -lock  If you want to use this option you need to  start  FvwmCpp  with
              ModuleSynchronous. This option causes fvwm to wait that the pre-
              process finish and that FvwmCpp  asks  fvwm  to  Read  the  pre-
              processed  file before continuing. This may be useful at startup
              if you use a session manager as Gnome. Also, this is  useful  if
              you want to process and run a Form in a fvwm function.

       -noread
              Causes  the pre-processed file to be not read by fvwm. Useful to
              pre-process a FvwmScript script with FvwmCpp.

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 host name 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 Cpp, 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.

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 SCREEN 0
            #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
            #define FVWM_USERDIR /local/homes/dsp/nation/.fvwm
            #define SESSION_MANAGER local/grumpy:/tmp/.ICE-unix/440,tcp/spx20:1025

BUGS

       Module configurations do not become active until fvwm has restarted  if
       you use FvwmCpp on startup. FvwmCpp creates a temporary file and passes
       this to fvwm, so you would have to edit this file too.  There are  some
       problems  with  comments  in your .fvwm2rc 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. Depending on your preprocessor you may have the
       same  problem  with "//".  Macros are not replaced within single (’) or
       double quotes ( back quotes (‘) to circumvent this. Fvwm  accepts  back
       quotes 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).

       If you use gcc you can use this invocation to turn off ’//’ comments:

            FvwmCpp -Cppprog ’/your/path/to/gcc -C -E -’ <filename>

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.