Fix move command parsing.
[fvwm.git] / modules / FvwmCpp / FvwmCpp.1.in
blob4d72c28f455048d81cb604d456a0508964363cd7
1 .\" t
2 .\" @(#)@PACKAGE@-@VERSION@ @RELDATELONG@
3 .de EX          \"Begin example
4 .ne 5
5 .if n .sp 1
6 .if t .sp .5
7 .nf
8 .in +.5i
9 ..
10 .de EE
11 .fi
12 .in -.5i
13 .if n .sp 1
14 .if t .sp .5
16 .TH FvwmCpp 1 "@RELDATELONG@ (@VERSION@)" Fvwm "Fvwm Modules"
17 .UC
18 .SH NAME
19 FvwmCpp \- the Fvwm  Cpp pre-processor
20 .SH SYNOPSIS
21 Module FvwmCpp [options] filename
23 The FvwmCpp module can only be invoked by fvwm.
24 Command line invocation of the FvwmCpp module will not work.
26 .SH DESCRIPTION
27 When fvwm executes the FvwmCpp module,
28 FvwmCpp invokes the cpp pre-processor on the file
29 specified in its invocation, then FvwmCpp causes fvwm to
30 execute the commands in the resulting file.
32 .SH INVOCATION
33 FvwmCpp can be invoked as a module using an fvwm command,
34 from the .fvwm2rc file, a menu,
35 mousebinding, or any of the many other ways fvwm commands
36 can be issued.
38 If the user wants his entire .fvwm2rc file pre-processed with FvwmCpp,
39 then fvwm should be invoked as:
41 .EX
42 fvwm -cmd "Module FvwmCpp .fvwm2rc"
43 .EE
45 Note that the argument to the option "-cmd" should be enclosed
46 in quotes, and no other quoting should be used.
48 When FvwmCpp runs as a module, it runs asynchronously
49 from fvwm.
50 If FvwmCpp is invoked from the .fvwm2rc,
51 the commands
52 generated by FvwmCpp
53 may or may not be executed by the time
54 fvwm processes the next command in the .fvwm2rc.
55 Invoke FvwmCpp this way for synchronous execution:
57 .EX
58 ModuleSynchronous FvwmCpp -lock filename
59 .EE
61 .SH OPTIONS
62 Some options can be specified following the modulename:
63 .TP
64 -cppopt \fIoption\fP
65 Lets you pass an option to the cpp program.  Not really needed as any unknown
66 options will be passed on automatically.
68 .TP
69 -cppprog \fIname\fP
70 Instead of invoking "/usr/lib/cpp", fvwm will invoke \fIname\fP.
72 .TP
73 -outfile \fIfilename\fP
74 Instead of creating a random unique name for the temporary file for
75 the preprocessed rc file, this option will let you specify the name of
76 the temporary file it will create.  Please note that FvwmCpp will attempt
77 to remove this file before writing to it, so don't point it at anything
78 important even if it has read-only protection.
80 .IP -debug
81 Causes the temporary file create by Cpp to
82 be retained. This file is usually called "/tmp/fvwmrcXXXXXX"
84 .IP -lock
85 If you want to use this option you need to start FvwmCpp with
86 ModuleSynchronous. This option causes fvwm to wait that the pre-process
87 finish and that FvwmCpp asks fvwm to Read the pre-processed file before
88 continuing. This may be useful at startup if you use a session manager
89 as Gnome. Also, this is useful if you want to process and run a Form in
90 a fvwm function.
92 .IP -noread
93 Causes the pre-processed file to be not read by fvwm. Useful to
94 pre-process a FvwmScript script with FvwmCpp.
96 .SH CONFIGURATION OPTIONS
97 FvwmCpp defines some values for use in the pre-processor file:
99 .IP TWM_TYPE
100 Always set to "fvwm".
101 .IP SERVERHOST
102 The name of the machine running the X Server.
103 .IP CLIENTHOST
104 The name of the machine running fvwm.
105 .IP HOSTNAME
106 The host name of the machine running fvwm. Generally the same as CLIENTHOST.
107 .IP OSTYPE
108 The operating system for CLIENTHOST.
109 .IP USER
110 The name of the person running fvwm.
111 .IP HOME
112 The home directory of the person running fvwm.
113 .IP VERSION
114 The X11 version.
115 .IP REVISION
116 The X11 revision number.
117 .IP VENDOR
118 The X server vendor.
119 .IP RELEASE
120 The X server release number.
121 .IP SCREEN
122 The screen number.
123 .IP WIDTH
124 The screen width in pixels.
125 .IP HEIGHT
126 The screen height in pixels.
127 .IP X_RESOLUTION
128 Some distance/pixel measurement for the horizontal direction, I think.
129 .IP Y_RESOLUTION
130 Some distance/pixel measurement for the vertical direction, I think.
131 .IP PLANES
132 Number of color planes for the X server display
133 .IP BITS_PER_RGB
134 Number of bits in each rgb triplet.
135 .IP CLASS
136 The X11 default visual class, e.g. PseudoColor.
137 .IP COLOR
138 Yes or No, Yes if the default visual class is neither StaticGrey or GreyScale.
139 .IP FVWM_CLASS
140 The visual class that fvwm is using, e.g. TrueColor.
141 .IP FVWM_COLOR
142 Yes or No, Yes if the FVWM_CLASS is neither StaticGrey or GreyScale.
143 .IP FVWM_VERSION
144 The fvwm version number, ie 2.0
145 .IP OPTIONS
146 Some combination of SHAPE, XPM, NO_SAVEUNDERS, and Cpp, as defined in
147 configure.h at compile time.
148 .IP FVWM_MODULEDIR
149 The directory where fvwm looks for .fvwm2rc and modules by default, as
150 determined at compile time.
151 .IP FVWM_USERDIR
152 The value of $FVWM_USERDIR.
153 .IP SESSION_MANAGER
154 The value of $SESSION_MANAGER. Undefined if this variable is not set.
156 .SH EXAMPLE PROLOG
159 #define TWM_TYPE fvwm
160 #define SERVERHOST spx20
161 #define CLIENTHOST grumpy
162 #define HOSTNAME grumpy
163 #define OSTYPE SunOS
164 #define USER nation
165 #define HOME /local/homes/dsp/nation
166 #define VERSION 11
167 #define REVISION 0
168 #define VENDOR HDS human designed systems, inc. (2.1.2-D)
169 #define RELEASE 4
170 #define SCREEN 0
171 #define WIDTH 1280
172 #define HEIGHT 1024
173 #define X_RESOLUTION 3938
174 #define Y_RESOLUTION 3938
175 #define PLANES 8
176 #define BITS_PER_RGB 8
177 #define CLASS PseudoColor
178 #define COLOR Yes
179 #define FVWM_VERSION 2.0 pl 1
180 #define OPTIONS SHAPE XPM Cpp
181 #define FVWM_MODULEDIR /local/homes/dsp/nation/modules
182 #define FVWM_USERDIR /local/homes/dsp/nation/.fvwm
183 #define SESSION_MANAGER local/grumpy:/tmp/.ICE-unix/440,tcp/spx20:1025
186 .SH BUGS
187 Module configurations do not become active until fvwm has restarted
188 if you use FvwmCpp on startup. FvwmCpp creates a temporary file
189 and passes this to fvwm, so you would have to edit this file too.
190 There are some problems with comments in your .fvwm2rc file.
191 The comment sign # is misinterpreted by the preprocessor.
192 This has usually no impact on functionality but generates
193 annoying warning messages.
194 The sequence /* is interpreted as the start of a C comment what
195 is probably not what you want in a filename. You might want to try
196 /?* (for filenames only) or /\\* or "/*" instead. Depending on
197 your preprocessor you may have the same problem with "//".
198 Macros are not replaced within single (') or double quotes (\"). Use
199 back quotes (`) to circumvent this. Fvwm accepts back quotes for
200 quoting and at least FvwmButtons does too.
201 The preprocessor may place a space after a macro substitution, so
202 with
204 #define MYCOMMAND ls
205 "Exec "MYCOMMAND" -l"
207 you might get
209 "Exec "ls " -l" (two words)
211 and not
213 "Exec "ls" -l" (one word).
216 If you use gcc you can use this invocation to turn off '//'
217 comments:
220 FvwmCpp -Cppprog '/your/path/to/gcc -C -E -' <filename>
223 .SH AUTHOR
224 FvwmCpp is the result of a random bit mutation on a hard disk,
225 presumably a result of a  cosmic-ray or some such thing.