Line 0
Link Here
|
|
|
1 |
.\" Formatting instructions for the fvwm man page: |
2 |
.\" |
3 |
.\" - Do not use \f... formatting instructions |
4 |
.\" unless you have to, see below. |
5 |
.\" - Avoid single and double quotes wherever possible. |
6 |
.\" |
7 |
.\" For further details, please refer to the Linux Man-Page how-to. |
8 |
.\" |
9 |
.\" context typeface example |
10 |
.\" ---------------------------------- -------------- ----------------- |
11 |
.\" filenames: italics (.I) .I .fvwm2rc |
12 |
.\" command line options of fvwm2 cmd: bold (.B) .B \-cmd |
13 |
.\" arguments of command line options: italics (.I) .BI \-cmd command |
14 |
.\" built in commands: bold (.B) .B Move |
15 |
.\" references to built in commands: bold (.B) .RB See Move |
16 |
.\" references to man page sections: bold (.B) .RB See SYNOPSIS |
17 |
.\" references to style options: italics (.I) .RI See Lenience |
18 |
.\" built in command options: italics (.I) .BI "Move " "0 0" |
19 |
.\" command syntax: bold/ita. (.BI) .BI "Move [" "x y" "]" |
20 |
.\" environment variables: italics (.I) .I $DISPLAY |
21 |
.\" key names: small (.SM) .SM Tab |
22 |
.\" style names and strings: double quotes "stylename", "x" |
23 |
.\" single characters: single quotes '@' |
24 |
.\" module names: bold (.B) .B FvwmTheme |
25 |
.\" links to web pages: bold (.B) .B http://fvwm.org |
26 |
.\" acronyms: small (.SM) .SM ICCCM |
27 |
.\" |
28 |
.\" |
29 |
.\" The name fvwm is written in lower case throughout this man |
30 |
.\" page. |
31 |
.\" |
32 |
.\" Note that the word "will" is rarely correct in a man page or |
33 |
.\" any document. Describe what fvwm does, not what it will do, |
34 |
.\" even if you haven't written the feature yet. dje 2/3/01 |
35 |
.\" (3/Feb/2001). |
36 |
.\" |
37 |
.\" A note to everyone who needs to write dates. Don't use 2/3/01 |
38 |
.\" notation, a non-american person simply can't parse such |
39 |
.\" sequence of digits. Please use 3-Feb-2001 or 2001-02-03 forms. |
40 |
.\" migo 16/May/2001. |
41 |
.\" |
42 |
.\" A note about the rule against \f... formatting. On Solaris, |
43 |
.\" AIX, and HPUX the ".BI" type commands are limited to 6 |
44 |
.\" arguments. use \f... formatting in that case. See the lines |
45 |
.\" formatted with ".IP". |
46 |
.\" dje 15/June/2001. |
47 |
.\" |
48 |
.\" @(#)fvwm-2.4.7 11 Apr 2002 |
49 |
.de EX \"Begin example |
50 |
.ne 5 |
51 |
.if n .sp 1 |
52 |
.if t .sp .5 |
53 |
.nf |
54 |
.in +.5i |
55 |
.. |
56 |
.de EE |
57 |
.fi |
58 |
.in -.5i |
59 |
.if n .sp 1 |
60 |
.if t .sp .5 |
61 |
.. |
62 |
.ta .3i .6i .9i 1.2i 1.5i 1.8i |
63 |
.TH FVWM2 1 "11 Apr 2002" |
64 |
.UC |
65 |
.SH NAME |
66 |
|
67 |
fvwm2 \- F(?) Virtual Window Manager (version 2) for X11 |
68 |
.SH SYNOPSIS |
69 |
|
70 |
.B fvwm2 |
71 |
.RB [ \-blackout ] |
72 |
.RB [ \-clientId |
73 |
.IR id ] |
74 |
.RB [ \-cmd |
75 |
.IR config_command ] |
76 |
.RB [ \-d |
77 |
.IR displayname ] |
78 |
.RB [ \-debug ] |
79 |
.RB [ \-debug_stack_ring ] |
80 |
.RB [ \-f |
81 |
.IR config_file ] |
82 |
.RB [ \-h ] |
83 |
.RB [ \-replace ] |
84 |
.RB [ \-restore |
85 |
.IR state_file ] |
86 |
.RB [ \-s ] |
87 |
.RB [ \-version ] |
88 |
.RB [ \-visual |
89 |
.IR visual_class ] |
90 |
.RB [ \-visualId |
91 |
.IR id ] |
92 |
|
93 |
.SH DESCRIPTION |
94 |
|
95 |
Fvwm is a window manager for X11. It is designed to minimize |
96 |
memory consumption, provide a 3D look to window frames, and a |
97 |
virtual desktop. |
98 |
|
99 |
Note that there are several window managers around that have |
100 |
"fvwm" in their name. In the past, version 2.x of fvwm was |
101 |
commonly called fvwm2 to distinguish it from the former version |
102 |
1.x (fvwm or even fvwm1). Since version 1.x has been replaced by |
103 |
version 2.x a long time ago we simply call version 2.x and all |
104 |
versions to come, fvwm, throughout this document, although the |
105 |
executable program is named fvwm2. There is an fvwm offspring |
106 |
called fvwm95. Although it is very similar to older versions of |
107 |
fvwm version 2 it is technically a different window manager that |
108 |
has been developed by different people. The main goal of fvwm95 |
109 |
was to supply a Windows 95 like look and feel. Since then fvwm |
110 |
has been greatly enhanced and only very few features of fvwm95 can |
111 |
not be imitated by fvwm. No active development has been going on |
112 |
for fvwm95 for several years now. Unfortunately Red Hat (a |
113 |
popular Linux distributor) has a pre-configured fvwm package based |
114 |
on fvwm version 2.x that is called fvwm95 too. |
115 |
|
116 |
Fvwm provides both a large |
117 |
.I virtual desktop |
118 |
and |
119 |
.I multiple disjoint desktops |
120 |
which can be used separately or together. The virtual desktop |
121 |
allows you to pretend that your video screen is really quite |
122 |
large, and you can scroll around within the desktop. The multiple |
123 |
disjoint desktops allow you to pretend that you really have |
124 |
several screens to work at, but each screen is completely |
125 |
unrelated to the others. |
126 |
|
127 |
Fvwm provides |
128 |
.I keyboard accelerators |
129 |
which allow you to perform most window-manager functions, |
130 |
including moving and resizing windows, and operating the menus, |
131 |
using keyboard shortcuts. |
132 |
|
133 |
Fvwm has also blurred the distinction between configuration |
134 |
commands and built-in commands that most window-managers make. |
135 |
Configuration commands typically set fonts, colors, menu contents, |
136 |
key and mouse function bindings, while built-in commands typically |
137 |
do things like raise and lower windows. Fvwm makes no such |
138 |
distinction, and allows, to the extent that is practical, anything |
139 |
to be changed at any time. |
140 |
|
141 |
Other noteworthy differences between Fvwm and other X11 window |
142 |
managers are the introduction of the |
143 |
.I SloppyFocus " and " NeverFocus |
144 |
focus methods. Focus policy can be specified for individual |
145 |
windows. Windows using |
146 |
.I SloppyFocus |
147 |
acquire focus when the pointer moves into them and retain focus |
148 |
until some other window acquires it. Such windows do not lose |
149 |
focus when the pointer moves into the root window. The |
150 |
.I NeverFocus |
151 |
policy is provided for use with windows into which one never types |
152 |
(e.g. xclock, oclock, xbiff, xeyes, tuxeyes) - for example, if a |
153 |
SloppyFocus terminal window has focus, moving the cursor over a |
154 |
.I NeverFocus |
155 |
decoration window won't deprive the terminal of focus. |
156 |
|
157 |
.SH OPTIONS |
158 |
|
159 |
These are the command line options that are recognized by fvwm: |
160 |
.TP |
161 |
.BI "-blackout" |
162 |
This option is provided for backward compatibility only. Blacking |
163 |
out the screen during startup is not necessary anymore. |
164 |
.TP |
165 |
.BI "-clientId " id |
166 |
This option is used when fvwm is started by a session |
167 |
manager. Should not be used by a user. |
168 |
|
169 |
.TP |
170 |
.BI "-cmd " config_command |
171 |
Causes fvwm to use |
172 |
.I config_command |
173 |
instead of |
174 |
.RB "'Read" |
175 |
.IR ".fvwm2rc'" |
176 |
as its initialization command. (Note that up to 10 |
177 |
.BR \-f " and " \-cmd |
178 |
parameters can be given, and they are executed in the order |
179 |
specified.) |
180 |
.TP |
181 |
.BI "-d " displayname |
182 |
Manage the display called |
183 |
.I displayname |
184 |
instead of the name obtained from the environment variable |
185 |
.IR "$DISPLAY" . |
186 |
.TP |
187 |
.BI "-debug" |
188 |
Puts X transactions in synchronous mode, which dramatically slows |
189 |
things down, but guarantees that fvwm's internal error messages |
190 |
are correct. Also causes fvwm to output debug messages while |
191 |
running. |
192 |
.TP |
193 |
.BI "-debug_stack_ring" |
194 |
Enables stack ring debugging. This option is only intended for |
195 |
internal debugging and should only be used by developers. |
196 |
.TP |
197 |
.BI "-f " config_file |
198 |
Causes fvwm to read |
199 |
.I config_file |
200 |
instead of |
201 |
.I .fvwm2rc |
202 |
as its initialization file. This is equivalent to |
203 |
.RB "-cmd 'Read" |
204 |
.IR "config_file'." |
205 |
. |
206 |
.TP |
207 |
.BI "-h" |
208 |
A short usage description is printed. |
209 |
.TP |
210 |
.BI "-replace" |
211 |
Try to take over from a previously running wm. This does not work |
212 |
unless the other wm is |
213 |
.SM ICCCM |
214 |
2.0 compliant. |
215 |
.TP |
216 |
.BI "-restore " state_file |
217 |
This option is used when fvwm is started by a session manager. |
218 |
Should not be used by a user. |
219 |
.TP |
220 |
.BI "-s" |
221 |
On a multi-screen display, run fvwm only on the screen named in |
222 |
the |
223 |
.I $DISPLAY |
224 |
environment variable or provided through the |
225 |
.B -d |
226 |
option. Normally, fvwm attempts to start up on all screens of a |
227 |
multi-screen display. |
228 |
.TP |
229 |
.BI "-version" |
230 |
Prints the version of fvwm to |
231 |
.IR stderr . |
232 |
Also prints an information about the compiled in support for |
233 |
readline, rplay, stroke, xpm, gnome hints, session management and |
234 |
multibyte characters. |
235 |
.TP |
236 |
.BI "-visual " visual_class |
237 |
Causes fvwm to use |
238 |
.I visual_class |
239 |
for the window borders and menus. |
240 |
.I visual_class |
241 |
can be "StaticGray", "GrayScale", "StaticColor", "PseudoColor", |
242 |
"TrueColor" or "DirectColor". |
243 |
.TP |
244 |
.BI "-visualId " id |
245 |
Causes fvwm to use |
246 |
.I id |
247 |
as the visualId for the window borders and menus. |
248 |
.I id |
249 |
can be specified as N for decimal or 0xN for hexadecimal. See man |
250 |
page of xdpyinfo for a list of supported visuals. |
251 |
|
252 |
|
253 |
.SH ANATOMY OF A WINDOW |
254 |
|
255 |
Fvwm puts a decorative border around most windows. This border |
256 |
consists of a bar on each side and a small L-shaped section on |
257 |
each corner. There is an additional top bar called the title-bar |
258 |
which is used to display the name of the window. In addition, |
259 |
there are up to 10 title-bar buttons. The top, side, and bottom |
260 |
bars are collectively known as the side-bars. The corner pieces |
261 |
are called the frame. |
262 |
|
263 |
Unless the standard defaults files are modified, pressing mouse |
264 |
button 1 in the title or side-bars begins a move operation on the |
265 |
window. Pressing button 1 in the corner frame pieces begins a |
266 |
resize operation. Pressing button 2 anywhere in the border brings |
267 |
up an extensive list of window operations. |
268 |
|
269 |
Up to ten title-bar buttons may exist. Their use is completely |
270 |
user definable. The default configuration has a title-bar button |
271 |
on each side of the title-bar. The one on the left is used to |
272 |
bring up a list of window options, regardless of which mouse |
273 |
button is used. The one on the right is used to iconify the |
274 |
window. The number of title-bar buttons used depends on which |
275 |
ones have mouse actions bound to them. See the section on the |
276 |
.B Mouse |
277 |
command below. |
278 |
|
279 |
|
280 |
.SH THE VIRTUAL DESKTOP |
281 |
|
282 |
Fvwm provides multiple virtual desktops for users who wish to use |
283 |
them. The screen is a viewport onto a |
284 |
.I desktop |
285 |
which may be larger than the screen. Several distinct desktops |
286 |
can be accessed (concept: one desktop for each project, or one |
287 |
desktop for each application, when view applications are |
288 |
distinct). Since each desktop can be larger than the physical |
289 |
screen, divided into m by n |
290 |
.I pages |
291 |
which are each the size of the physical screen, windows which are |
292 |
larger than the screen or large groups of related windows can |
293 |
easily be viewed. |
294 |
|
295 |
The (m by n) size (i.e. number of pages) of the virtual desktops |
296 |
can be changed any time, by using the |
297 |
.B DeskTopSize |
298 |
built-in command. All virtual desktops must be (are) the same |
299 |
size. The total number of distinct desktops does not need to be |
300 |
specified, but is limited to approximately 4 billion total. All |
301 |
windows on a range of desktops can be viewed in the |
302 |
.BR FvwmPager , |
303 |
a miniature view of the desktops. The pager is an accessory |
304 |
program, called a module, which is not essential for the window |
305 |
manager to operate. Windows may also be listed, along with their |
306 |
geometries, in a window list, accessible as a pop-up menu, or as a |
307 |
separate window, called the |
308 |
.B FvwmWinList |
309 |
(another module). |
310 |
|
311 |
Fvwm keeps the windows on the desktop in a layered stacking order; |
312 |
a window in a lower layer never obscures a window in a higher |
313 |
layer. The layer of a window can be changed by using the |
314 |
.B Layer |
315 |
command. The concept of layers is a generalization of the |
316 |
.I StaysOnTop |
317 |
flag of older fvwm versions. The |
318 |
.IR StaysOnTop " and " StaysPut |
319 |
.B Style |
320 |
options are now implemented by putting the windows in suitable |
321 |
layers and the previously missing |
322 |
.IB "StaysOnBottom " Style |
323 |
option has been added. |
324 |
|
325 |
.B Sticky |
326 |
windows are windows which transcend the virtual desktop by |
327 |
"Sticking to the screen's glass". They always stay put on the |
328 |
screen. This is convenient for things like clocks and xbiff's, so |
329 |
you only need to run one such gadget and it always stays with you. |
330 |
Icons can also be made to stick to the glass, if desired. |
331 |
|
332 |
Window geometries are specified relative to the current viewport. |
333 |
That is: |
334 |
.EX |
335 |
xterm -geometry +0+0 |
336 |
.EE |
337 |
creates a window in the upper-left hand corner of the visible |
338 |
portion of the screen. It is permissible to specify geometries |
339 |
which place windows on the virtual desktop, but off the screen. |
340 |
For example, if the visible screen is 1000 by 1000 pixels, and the |
341 |
desktop size is 3x3, and the current viewport is at the upper left |
342 |
hand corner of the desktop, invoking: |
343 |
.EX |
344 |
xterm -geometry +1000+1000 |
345 |
.EE |
346 |
places a window just off of the lower right hand corner of the |
347 |
screen. It can be found by moving the mouse to the lower right |
348 |
hand corner of the screen and waiting for it to scroll into view. |
349 |
A geometry specified as something like: |
350 |
.EX |
351 |
xterm -geometry -5-5 |
352 |
.EE |
353 |
places the window's lower right hand corner 5 pixels from the |
354 |
lower right corner of the visible portion of the screen. Not all |
355 |
applications support window geometries with negative offsets. |
356 |
Some applications place the window's upper right hand corner 5 |
357 |
pixels above and to the left of the upper left hand corner of the |
358 |
screen; others may do just plain bizarre things. |
359 |
|
360 |
There are several ways to cause a window to map onto a desktop or |
361 |
page other than the currently active one. The geometry technique |
362 |
mentioned above (specifying x,y coordinates larger than the |
363 |
physical screen size), however, suffers from the limitation of |
364 |
being interpreted relative to the current viewport: the window may |
365 |
not consistently appear on a specific page, unless you always |
366 |
invoke the application from the same page. |
367 |
|
368 |
A better way to place windows on a different page, screen or desk |
369 |
from the currently mapped viewport is to use the |
370 |
.IR StartsOnPage or StartsOnScreen |
371 |
style specification (the successors to the older |
372 |
.I StartsOnDesk |
373 |
style) in the |
374 |
.I .fvwm2rc |
375 |
configuration file. The placement is consistent: it does not |
376 |
depend on your current location on the virtual desktop. |
377 |
|
378 |
Some applications that understand standard Xt command line |
379 |
arguments and X resources, like xterm and xfontsel, allow the user |
380 |
to specify the start-up desk or page on the command line: |
381 |
.EX |
382 |
xterm -xrm "*Desk:1" |
383 |
.EE |
384 |
starts an xterm on desk number 1; |
385 |
.EX |
386 |
xterm -xrm "*Page:3 2 1" |
387 |
.EE |
388 |
starts an xterm two pages to the right and one down from the upper |
389 |
left hand page of desk number 3. Not all applications understand |
390 |
the use of these options, however. You could achieve the same |
391 |
results with the following lines in your |
392 |
.I .Xdefaults |
393 |
file: |
394 |
.EX |
395 |
XTerm*Desk: 1 |
396 |
.EE |
397 |
or |
398 |
.EX |
399 |
XTerm*Page: 3 2 1 |
400 |
.EE |
401 |
|
402 |
|
403 |
.SH USE ON MULTI-SCREEN DISPLAYS |
404 |
|
405 |
If the |
406 |
.B -s |
407 |
command line argument is not given, fvwm automatically starts up |
408 |
on every screen on the specified display. After fvwm starts each |
409 |
screen is treated independently. Restarts of fvwm need to be |
410 |
performed separately on each screen. The use of |
411 |
.EX |
412 |
EdgeScroll 0 0 |
413 |
.EE |
414 |
is strongly recommended for multi-screen displays. You may need |
415 |
to quit on each screen to quit from the X session completely. |
416 |
This is not to be confused with Xinerama support. |
417 |
|
418 |
|
419 |
.SH XINERAMA SUPPORT |
420 |
|
421 |
Fvwm supports the Xinerama extension of newer X servers which |
422 |
is similar to multi head support (multiple screens) but allows to |
423 |
move windows between screens. If Xinerama support has been |
424 |
compiled into fvwm, it is used whenever fvwm runs on an X server |
425 |
that supports and uses multiple screens via Xinerama. Without |
426 |
this option, the whole desktop is treated as one big screen. For |
427 |
example, menus might pop up right between two screens. The |
428 |
.BI EdgeResistance |
429 |
command allows to specify an explicit resistance value for moving |
430 |
windows over the screen edge between two Xinerama screens. |
431 |
Xinerama support can be enabled or disabled on the fly or from the |
432 |
configuration file with the |
433 |
.B Xinerama |
434 |
command. Many modules and commands work nicely with Xinerama |
435 |
displays. |
436 |
|
437 |
Everywhere where a geometry in the usual X format can be supplied, |
438 |
fvwm's Xinerama extension allows to specify a screen in addition |
439 |
to the geometry (or even the screen alone). To do this, a '@' is |
440 |
added to the end of the geometry string followed by either the |
441 |
screen number or a letter. A number is taken as the number of the |
442 |
Xinerama screen to be used (as configured in the X server). The |
443 |
letter can be one of 'g' for the global screen (the rectangle that |
444 |
encloses all Xinerama screens), 'p' for the primary screen (see |
445 |
below), 'c' for the current screen (the one that currently |
446 |
contains the pointer). If the X server does not support Xinerama |
447 |
or only one screen is used, the screen bit is ignored. |
448 |
|
449 |
.EX |
450 |
Style * IconBox 64x300-0-0@p |
451 |
.EE |
452 |
|
453 |
Xinerama support can be configured to use a primary screen. Fwvm |
454 |
can be configured to place new windows and icons on this screen. |
455 |
The primary screen is screen 0 by default but can be changed with |
456 |
the |
457 |
.B XineramaPrimaryScreen |
458 |
command. |
459 |
|
460 |
Xinerama support was designed to work out of the box with the same |
461 |
configurations file that would work on a single screen. It may |
462 |
not work too well if the involved screens use different screen |
463 |
resolutions. In this situation, windows may get stuck in the |
464 |
portion of the whole desktop that belongs to neither screen. If |
465 |
this happens, the windows or icons can be retrieved with the |
466 |
command |
467 |
|
468 |
.EX |
469 |
All MoveToScreen |
470 |
.EE |
471 |
|
472 |
that can be entered in an FvwmConsole window or with FvwmCommand. |
473 |
|
474 |
For multi-screen implementations other than Xinerama, such as |
475 |
Single Logical Screen, it is possible to simulate a Xinerama |
476 |
configuration if the total screen seen by FVWM is made up of |
477 |
equal sized monitors in a rectangular grid. The commands |
478 |
.BR XineramaSls " and " XineramaSlsSize |
479 |
are used to configure this feature. |
480 |
|
481 |
|
482 |
.SH INITIALIZATION |
483 |
|
484 |
During initialization, fvwm searches for a configuration file |
485 |
which describes key and button bindings, and many other |
486 |
things. The format of these files is described later. Fvwm first |
487 |
searches for configuration files using the command |
488 |
.EX |
489 |
.BI "Read " .fvwm2rc |
490 |
.EE |
491 |
This looks for |
492 |
.IR .fvwm2rc " in " |
493 |
.IR "$HOME/.fvwm" " or " "$FVWM_USERDIR" |
494 |
directories, as described in |
495 |
.B Read |
496 |
below. If this fails, fvwm also searches for this file in the |
497 |
.I $HOME |
498 |
directory or for |
499 |
.I system.fvwm2rc |
500 |
file in the system place. If a configuration file is not found, |
501 |
any mouse button or the |
502 |
.SM Help |
503 |
or |
504 |
.SM F1 |
505 |
keys on the root window brings up menus and forms that can create |
506 |
a starting configuration file. |
507 |
|
508 |
Fvwm sets two environment variables which are inherited by its |
509 |
children. These are |
510 |
.I $DISPLAY |
511 |
which describes the display on which fvwm is running. |
512 |
.I $DISPLAY |
513 |
may be |
514 |
.I unix:0.0 |
515 |
or |
516 |
.IR ":0.0" , |
517 |
which doesn't work too well when passed through rsh to another |
518 |
machine, so |
519 |
.I $HOSTDISPLAY |
520 |
is set to a network-ready description of the display. |
521 |
.I $HOSTDISPLAY |
522 |
always uses the TCP/IP transport protocol (even for a local |
523 |
connection) so |
524 |
.I $DISPLAY |
525 |
should be used for local connections, as it may use Unix-domain |
526 |
sockets, which are faster. |
527 |
|
528 |
If you want to start some applications or modules with fvwm, you |
529 |
can simply put |
530 |
.EX |
531 |
Exec app |
532 |
.EE |
533 |
or |
534 |
.EX |
535 |
Module FvwmXxx |
536 |
.EE |
537 |
into your |
538 |
.IR .fvwm2rc , |
539 |
but it is not recommended; do this only if you know what you are |
540 |
doing. It is usually critical to start applications or modules |
541 |
after |
542 |
.I .fvwm2rc |
543 |
is read, because it contains styles or module configurations which |
544 |
can affect window appearance and functionality. |
545 |
|
546 |
The standard way to start applications or modules on fvwm's start |
547 |
up is to add them to an initialization function (usually |
548 |
.BR StartFunction " or " InitFunction ). |
549 |
This way they are only started after fvwm reads the entire |
550 |
.IR .fvwm2rc . |
551 |
|
552 |
Fvwm has three special functions for initialization: |
553 |
.BR StartFunction , |
554 |
which is executed on startups and restarts; |
555 |
.BR InitFunction " and " RestartFunction , |
556 |
which are executed during initialization and restarts |
557 |
(respectively) just after StartFunction. These functions may be |
558 |
customized in a user's |
559 |
.I .fvwm2rc |
560 |
file via the |
561 |
.B AddToFunc |
562 |
command (described later) to start up modules, xterms, or whatever |
563 |
you'd like to have started by fvwm. |
564 |
|
565 |
Fvwm has also a special exit function: |
566 |
. BR ExitFunction , |
567 |
executed when exiting or restarting before actually quitting. |
568 |
It could be used to explicitly kill modules, etc. |
569 |
|
570 |
If fvwm is run under a session manager, functions |
571 |
.BR SessionInitFunction " and " SessionRestartFunction |
572 |
are executed instead of InitFunction and RestartFunction. |
573 |
This helps to define the user's |
574 |
.I .fvwm2rc |
575 |
file to be good for both running under a session manager and |
576 |
without it. Generally it is a bad idea to start xterms or other |
577 |
applications in "Session*" functions. Also someone can decide to |
578 |
start different modules while running under a session manager or |
579 |
not. For the similar purposes |
580 |
. B SessionExitFunction |
581 |
is used instead of ExitFunction. |
582 |
.EX |
583 |
DestroyFunc StartFunction |
584 |
AddToFunc StartFunction |
585 |
+ I ModuleSynchronous FvwmTheme |
586 |
+ I Module FvwmPager * * |
587 |
+ I Module FvwmButtons |
588 |
|
589 |
DestroyFunc InitFunction |
590 |
AddToFunc InitFunction |
591 |
+ I Module FvwmBanner |
592 |
+ I Module FvwmTaskBar |
593 |
+ I xsetroot -solid cyan |
594 |
+ I Exec xterm |
595 |
+ I Exec netscape |
596 |
|
597 |
DestroyFunc RestartFunction |
598 |
AddToFunc RestartFunction |
599 |
+ I Module FvwmTaskBar |
600 |
|
601 |
DestroyFunc SessionInitFunction |
602 |
AddToFunc SessionInitFunction |
603 |
+ I Module FvwmBanner |
604 |
|
605 |
DestroyFunc SessionRestartFunction |
606 |
AddToFunc SessionRestartFunction |
607 |
+ I Nop |
608 |
.EE |
609 |
You don't need to define all special functions if some are empty. |
610 |
|
611 |
.SH COMPILATION OPTIONS |
612 |
|
613 |
Fvwm has a number of compile-time options. If you have trouble |
614 |
using a certain command or feature, check to see if support for it |
615 |
was included at compile time. Optional features are described in |
616 |
the |
617 |
.I config.h |
618 |
file that is generated during compilation. |
619 |
|
620 |
.SH ICONS |
621 |
|
622 |
The basic fvwm configuration uses monochrome bitmap icons. If |
623 |
.B XPM |
624 |
extensions are compiled in, then color icons can be used. In order |
625 |
to use these options you need the XPM package, as described in the |
626 |
.I INSTALL.fvwm |
627 |
file. |
628 |
|
629 |
If both the |
630 |
.BR SHAPE " and " XPM |
631 |
options are compiled in you get shaped color icons, which are very |
632 |
spiffy. |
633 |
|
634 |
.SH MODULES |
635 |
|
636 |
A module is a separate program which runs as a separate Unix |
637 |
process but transmits commands to fvwm to execute. Users can |
638 |
write their own modules to do any weird or bizarre manipulations |
639 |
without bloating or affecting the integrity of fvwm itself. |
640 |
|
641 |
Modules must be spawned by fvwm so that it can set up two pipes |
642 |
for fvwm and the module to communicate with. The pipes are |
643 |
already open for the module when it starts and the file |
644 |
descriptors for the pipes are provided as command line arguments. |
645 |
|
646 |
Modules can be spawned during fvwm at any time during the X |
647 |
session by use of the |
648 |
.B Module |
649 |
built-in command. Modules can exist for the duration of the X |
650 |
session, or can perform a single task and exit. If the module is |
651 |
still active when fvwm is told to quit, then fvwm closes the |
652 |
communication pipes and waits to receive a SIGCHLD from the |
653 |
module, indicating that it has detected the pipe closure and has |
654 |
exited. If modules fail to detect the pipe closure fvwm exits |
655 |
after approximately 30 seconds anyway. The number of |
656 |
simultaneously executing modules is limited by the operating |
657 |
system's maximum number of simultaneously open files, usually |
658 |
between 60 and 256. |
659 |
|
660 |
Modules simply transmit text commands to the fvwm built-in command |
661 |
engine. Text commands are formatted just as in the case of a |
662 |
mouse binding in the |
663 |
.I .fvwm2rc |
664 |
setup file. Certain auxiliary information is also transmitted, as |
665 |
in the sample module |
666 |
.BR FvwmButtons . |
667 |
The |
668 |
.B FvwmButtons |
669 |
module is documented in its own man page. |
670 |
|
671 |
Please refer to the |
672 |
.B "MODULE COMMANDS" |
673 |
section for details. |
674 |
|
675 |
.SH ICCCM COMPLIANCE |
676 |
|
677 |
Fvwm attempts to be |
678 |
.SM ICCCM |
679 |
2.0 compliant. In addition, |
680 |
.SM ICCCM |
681 |
states that it should be possible for applications to receive any |
682 |
keystroke, which is not consistent with the keyboard shortcut |
683 |
approach used in fvwm and most other window managers. In |
684 |
particular you cannot have the same keyboard shortcuts working |
685 |
with your fvwm and another fvwm running within Xnest (a nested X |
686 |
server running in a window). The same problem exists with mouse |
687 |
bindings. |
688 |
|
689 |
The |
690 |
.SM ICCCM |
691 |
states that windows possessing the property |
692 |
.EX |
693 |
WM_HINTS(WM_HINTS): |
694 |
Client accepts input or input focus: False |
695 |
.EE |
696 |
should not be given the keyboard input focus by the window |
697 |
manager. These windows can take the input focus by themselves, |
698 |
however. A number of applications set this property, and yet |
699 |
expect the window-manager to give them the keyboard focus anyway, |
700 |
so fvwm provides a window-style, |
701 |
.IR Lenience ", " |
702 |
which allows fvwm to overlook this |
703 |
.SM ICCCM |
704 |
rule. Even with this window-style it is not guaranteed that the |
705 |
application accepts focus. |
706 |
|
707 |
The differences between |
708 |
.SM ICCCM |
709 |
1.1 and 2.0 include the ability to take over from a running |
710 |
.SM ICCCM |
711 |
2.0 compliant window manager; thus |
712 |
.EX |
713 |
fvwm2; vi .fvwm2rc; fvwm2 -replace |
714 |
.EE |
715 |
resembles the |
716 |
.B Restart |
717 |
command. It is not exactly the same, since killing the previously |
718 |
running wm may terminate your X session, if the wm was started as |
719 |
the last client in your |
720 |
.IR .Xclients " or " .Xsession |
721 |
file. |
722 |
|
723 |
Further additions are support for client-side colormap |
724 |
installation (see the .SM ICCCM for details) and the urgency hint. |
725 |
Clients can set this hint in the WM_HINTS property of their window |
726 |
and expect the window manager to attract the users attention to |
727 |
the window. Fvwm has two re-definable functions for this purpose, |
728 |
"UrgencyFunc" and "UrgencyDoneFunc", which are executed when the |
729 |
flag is set/cleared. Their default definitions are: |
730 |
.EX |
731 |
AddToFunc UrgencyFunc |
732 |
+ I Iconify off |
733 |
+ I FlipFocus |
734 |
+ I Raise |
735 |
+ I WarpToWindow 5p 5p |
736 |
AddToFunc UrgencyDoneFunc |
737 |
+ I Nop |
738 |
.EE |
739 |
|
740 |
.SH GNOME COMPLIANCE |
741 |
|
742 |
Fvwm attempts to be |
743 |
.SM GNOME |
744 |
compliant. Check |
745 |
.B http://www.gnome.org |
746 |
for what that may mean. |
747 |
.SM GNOME |
748 |
support is a compile time option which is on by default. To |
749 |
disable GNOME hints for some or all windows, the |
750 |
.I GNOMEIgnoreHints |
751 |
style can be used. |
752 |
|
753 |
.SH MWM COMPATIBILITY |
754 |
|
755 |
Fvwm provides options to emulate Motif Window Manager (Mwm) as |
756 |
well as possible. Please refer to the |
757 |
.B Emulate |
758 |
command as well as to the Mwm specific options of the |
759 |
.BR Style " and " MenuStyle |
760 |
commands for details. |
761 |
|
762 |
.SH OPEN LOOK and XVIEW COMPATIBILITY |
763 |
Fvwm supports all the Open Look decoration hints (except |
764 |
pushpins). Most (perhaps all) Open Look applications have a |
765 |
strange notion of keyboard focus handling. Although a lot of work |
766 |
went into fvwm to work well with these, you may still encounter |
767 |
problems. Should you use any such application, please add the |
768 |
following line to your .fvwm2rc: |
769 |
.EX |
770 |
Style * OLDecor |
771 |
.EE |
772 |
|
773 |
.SH M4 PREPROCESSING |
774 |
|
775 |
.PP |
776 |
M4 pre-processing is handled by a module in fvwm. To get more |
777 |
details, try man |
778 |
.BR FvwmM4 . |
779 |
In short, if you want fvwm to parse your files with m4, then |
780 |
replace the command |
781 |
.B Read |
782 |
with |
783 |
.B FvwmM4 |
784 |
in your |
785 |
.I .fvwm2rc |
786 |
file (if it appears at all), and start fvwm with the command |
787 |
.EX |
788 |
fvwm2 -cmd "FvwmM4 .fvwm2rc" |
789 |
.EE |
790 |
|
791 |
.SH CPP PREPROCESSING |
792 |
|
793 |
.PP |
794 |
Cpp is the C-language pre-processor. fvwm offers cpp processing |
795 |
which mirrors the m4 pre-processing. To find out about it, |
796 |
re-read the M4 section above, but replace "m4" with "cpp". |
797 |
|
798 |
.SH AUTO-RAISE |
799 |
|
800 |
.PP |
801 |
Windows can be automatically raised when it receives focus, or |
802 |
some number of milliseconds after it receives focus, by using the |
803 |
auto-raise module, |
804 |
.BR FvwmAuto . |
805 |
|
806 |
.SH CONFIGURATION FILES |
807 |
|
808 |
The configuration file is used to describe mouse and button |
809 |
bindings, colors, the virtual display size, and related items. |
810 |
The initialization configuration file is typically called |
811 |
.IR .fvwm2rc . |
812 |
By using the |
813 |
.B Read |
814 |
built-in, it is easy to read in new configuration files as you go. |
815 |
|
816 |
Lines beginning with '#' are ignored by fvwm. Lines starting with |
817 |
'*' are expected to contain module configuration commands (rather |
818 |
than configuration commands for fvwm itself). Like in shell |
819 |
scripts embedded newlines in a configuration file line can be |
820 |
quoted by preceding them with a backslash. All lines linked in |
821 |
this fashion are treated as a single line. The newline itself is |
822 |
ignored. |
823 |
|
824 |
Fvwm makes no distinction between configuration commands and |
825 |
built-in commands, so anything mentioned in the built-in commands |
826 |
section can be placed on a line by itself for fvwm to execute as |
827 |
it reads the configuration file, or it can be placed as an |
828 |
executable command in a menu or bound to a mouse button or a |
829 |
keyboard key. It is left as an exercise for the user to decide |
830 |
which function make sense for initialization and which ones make |
831 |
sense for run-time. |
832 |
|
833 |
|
834 |
.SH SUPPLIED CONFIGURATION |
835 |
|
836 |
A sample configuration file, |
837 |
.IR .fvwm2rc , |
838 |
is supplied with the fvwm distribution. It is well commented and |
839 |
can be used as a source of examples for fvwm configuration. |
840 |
|
841 |
|
842 |
.\" .SH INTERNATIONALIZATION |
843 |
.\" Internationalized fvwm enables to display not only LATIN-1 |
844 |
.\" characters but also multi byte characters such as Japanese, |
845 |
.\" Korean, etc. You should set up your environment variable |
846 |
.\" .IR LC_TYPE " or " LANG , |
847 |
.\" to enable this feature. Also, you should specify proper |
848 |
.\" .I FONTSET |
849 |
.\" instead of |
850 |
.\" .IR FONT . |
851 |
.\" Note that no catalog-file or input-methods are implemented. |
852 |
|
853 |
.SH KEYBOARD SHORTCUTS |
854 |
|
855 |
Almost all window manager operations can be performed from the |
856 |
keyboard so mouse-less operation should be possible. In addition |
857 |
to scrolling around the virtual desktop by binding the |
858 |
.B Scroll |
859 |
built-in to appropriate keys, |
860 |
.BR Popup ", " Move ", " Resize ", " |
861 |
and most other built-ins can be bound to keys. Once a built in |
862 |
function is started the pointer is moved by using the up, down, |
863 |
left, and right arrows, and the action is terminated by pressing |
864 |
return. Holding down the |
865 |
.SM Shift |
866 |
key causes the pointer movement to go in larger steps and holding |
867 |
down the |
868 |
.SM control |
869 |
key causes the cursor movement to go in smaller steps. Standard |
870 |
emacs and vi cursor movement controls ( |
871 |
.SM Ctrl-n, |
872 |
.SM Ctrl-p, |
873 |
.SM Ctrl-f, |
874 |
.SM Ctrl-b, |
875 |
and |
876 |
.SM Ctrl-j, |
877 |
.SM Ctrl-k, |
878 |
.SM Ctrl-h, |
879 |
.SM Ctrl-l |
880 |
) can be used instead of the arrow keys. |
881 |
|
882 |
|
883 |
.SH SESSION MANAGEMENT |
884 |
|
885 |
Fvwm supports session management according to the X Session |
886 |
Management Protocol. It saves and restores window position, size, |
887 |
stacking order, desk, stickiness, shadedness, maximizedness, |
888 |
iconifiedness for all windows. Furthermore, some global state is |
889 |
saved. |
890 |
|
891 |
Fvwm doesn't save any information regarding styles, decors, |
892 |
functions or menus. If you change any on these resources during a |
893 |
session (e.g. by issuing |
894 |
.B Style |
895 |
commands or by using various modules), these changes are lost |
896 |
after saving and restarting the session. To become permanent, |
897 |
such changes have to be added to the configuration file. |
898 |
|
899 |
Note further that the current implementation has the following |
900 |
anomaly when used on a multi-screen display: Starting fvwm for the |
901 |
first time, fvwm manages all screens by forking a copy of itself |
902 |
for each screen. Every copy knows its parent and issuing a |
903 |
.B Quit |
904 |
command to any instance of fvwm kills the master and thus all |
905 |
copies of fvwm. When you save and restart the session, the |
906 |
session manager brings up a copy of fvwm on each screen, but this |
907 |
time they are started as individual instances managing one screen |
908 |
only. Thus a |
909 |
.B Quit |
910 |
kills only the copy it was sent to. This is probably not a very |
911 |
serious problem, since with session management, you are supposed |
912 |
to quit a session through the session manager anyway. If it is |
913 |
really needed, |
914 |
.EX |
915 |
Exec exec killall fvwm2 |
916 |
.EE |
917 |
still kills all copies of fvwm. Your system must have the |
918 |
.B killall |
919 |
command though. |
920 |
|
921 |
.SH BOOLEAN ARGUMENTS |
922 |
|
923 |
A number of commands take one or several boolean arguments. These |
924 |
take a few equivalent inputs: "yes", "on", "true", "t" and "y" all |
925 |
evaluate to true while "no", "off", "false", "f" and "n" evaluate |
926 |
to false. Some commands allow "toggle" too which means that the |
927 |
feature is disabled if it is currently enabled and vice versa. |
928 |
|
929 |
.SH BUILT IN KEY AND MOUSE BINDINGS |
930 |
|
931 |
The following commands are built-in to fvwm: |
932 |
.EX |
933 |
Key Help R A Popup MenuFvwmRoot |
934 |
Key F1 R A Popup MenuFvwmRoot |
935 |
Key Tab A M WindowList Root c c NoDeskSort |
936 |
Key Escape A MC EscapeFunc |
937 |
Mouse 0 R N Menu MenuFvwmRoot |
938 |
Mouse 1 TS A FuncFvwmRaiseLowerX Move |
939 |
Mouse 1 F A FuncFvwmRaiseLowerX Resize |
940 |
AddToFunc FuncFvwmRaiseLowerX I Raise |
941 |
+ M $0 |
942 |
+ D Lower |
943 |
.EE |
944 |
The |
945 |
.SM Help |
946 |
and |
947 |
.SM F1 |
948 |
keys invoke a built-in menu that fvwm creates. This is primarily |
949 |
for new users that have not created their own configuration |
950 |
file. Either key on the root (background) window pops up an menu |
951 |
to help you get started. |
952 |
|
953 |
The |
954 |
.SM Tab |
955 |
key pressed anywhere with the |
956 |
.SM Meta |
957 |
key (same as the |
958 |
.SM Alt |
959 |
key on PC keyboards) held down pop-ups a window list. |
960 |
|
961 |
Mouse button 1 on the title-bar or side frame can move, raise or |
962 |
lower a window. |
963 |
|
964 |
Mouse button 1 on the window corners can resize, raise or lower a |
965 |
window. |
966 |
|
967 |
You can override or remove these bindings. To remove the window |
968 |
list binding, use this: |
969 |
.EX |
970 |
Key Tab A M - |
971 |
.EE |
972 |
|
973 |
.SH BUILT IN COMMANDS |
974 |
|
975 |
Fvwm supports a set of built-in functions which can be bound to |
976 |
keyboard or mouse buttons. If fvwm expects to find a built-in |
977 |
function in a command, but fails, it checks to see if the |
978 |
specified command should have been |
979 |
.EX |
980 |
Function (rest of command) |
981 |
.EE |
982 |
or |
983 |
.EX |
984 |
Module (rest of command) |
985 |
.EE |
986 |
This allows complex functions or modules to be invoked in a manner |
987 |
which is fairly transparent to the configuration file. |
988 |
|
989 |
Example: the |
990 |
.I .fvwm2rc |
991 |
file contains the line |
992 |
.EX |
993 |
HelpMe |
994 |
.EE |
995 |
Fvwm looks for a built-in command called "HelpMe", and fails. |
996 |
Next it looks for a user-defined complex function called "HelpMe". |
997 |
If no such user defined function exists, Fvwm tries to execute a |
998 |
module called "HelpMe". |
999 |
|
1000 |
Note: There are many commands that affect look and feel of |
1001 |
specific, some or all windows, like |
1002 |
.BR Style ", " Mouse ", the " FvwmTheme |
1003 |
module and many others. For performance reasons such changes are |
1004 |
not applied immediately but only when fvwm is idle, i.e. no user |
1005 |
interaction or module input is pending. Specifically, new |
1006 |
.B Style |
1007 |
options that are set in a function are not applied until after the |
1008 |
function has completed. This can sometimes lead to unwanted |
1009 |
effects. |
1010 |
|
1011 |
To force that all pending changes are applied immediately, use the |
1012 |
.BR UpdateStyles ", " Refresh " or " RefreshWindow |
1013 |
commands. |
1014 |
|
1015 |
.SS QUOTING |
1016 |
|
1017 |
Quotes are required only when needed to make fvwm consider two or |
1018 |
more words to be a single argument. Unnecessary quoting is |
1019 |
allowed. If you want a quote character in your text, you must |
1020 |
escape it by using the backslash character. For example, if you |
1021 |
have a pop-up menu called "Window-Ops", then you don't need |
1022 |
quotes: |
1023 |
.EX |
1024 |
Popup Window-Ops |
1025 |
.EE |
1026 |
but if you replace the dash with a space, then you need |
1027 |
quotes: |
1028 |
.EX |
1029 |
Popup "Window Ops" |
1030 |
.EE |
1031 |
The supported quoting characters are double quotes, single quotes |
1032 |
and reverse single quotes. All three kinds of quotes are treated |
1033 |
in the same way. Single characters can be quoted with a preceding |
1034 |
backslash. Quoting single characters works even inside other |
1035 |
kinds of quotes. |
1036 |
|
1037 |
.SS COMMAND EXPANSION |
1038 |
|
1039 |
Whenever a fvwm command line is executed, fvwm performs parameter |
1040 |
expansion. A parameter is a '$' followed by a single letter or a |
1041 |
word enclosed in brackets ($[...]). If fvwm encounters an |
1042 |
unquoted parameter on the command line it expands it to a string |
1043 |
indicated by the parameter name. Unknown parameters are left |
1044 |
untouched. Parameter expansion is performed before quoting. To |
1045 |
quote a '$' use "$$". Note that module configuration lines |
1046 |
(i.e. lines beginning with '*') are not fully expanded; for |
1047 |
backward compatibility single alphabetic-letter parameters (like |
1048 |
"$d" or "$n") are not expanded in these lines. |
1049 |
|
1050 |
The general idea is to expand single letter parameters as soon as |
1051 |
possible. So a "$d" is expanded immediately when read by the |
1052 |
parser, but "$3" is only expanded in the context of a complex |
1053 |
function with at least four parameters. Otherwise it is left |
1054 |
untouched. Similarly, "$c" is only expanded in the context of a |
1055 |
window. |
1056 |
|
1057 |
Parameter expansion in the |
1058 |
.BR + |
1059 |
command is different than in normal commands. If the command is |
1060 |
adding to a function, single letter parameters are expanded |
1061 |
normally which is often not what was intended. To suppress |
1062 |
expansion the '$' has to be doubled. Parameters enclosed in |
1063 |
brackets are protected from parameter expansion in these commands |
1064 |
so the '$' must not be doubled. |
1065 |
|
1066 |
Example: |
1067 |
|
1068 |
.EX |
1069 |
# Print the current desk number, horizontal |
1070 |
# page and the window's class. |
1071 |
Echo $d $[page.nx] $c |
1072 |
# But a function that prints $d needs $$, |
1073 |
# but not before $[page.nx] or $c: |
1074 |
AddToFunc PrintDeskNumber |
1075 |
+ I Echo $$d $[page.nx] $c |
1076 |
.EE |
1077 |
|
1078 |
Note: If this funtion is called outside a window context, it will |
1079 |
print "$c" instead of the class name. It is usually not enough to |
1080 |
have the pointer over a window to have a context window. To force |
1081 |
using the window with the focus, the |
1082 |
.B Current |
1083 |
command can be used: |
1084 |
.EX |
1085 |
Current Echo $d $[page.nx] $c |
1086 |
.EE |
1087 |
|
1088 |
The parameters known by fvwm are: |
1089 |
|
1090 |
.in +.5i |
1091 |
$$ |
1092 |
.in +.3i |
1093 |
A literal '$'. |
1094 |
.in -.3i |
1095 |
.in -.5i |
1096 |
|
1097 |
.in +.5i |
1098 |
$. |
1099 |
.in +.3i |
1100 |
The absolute directory of the currently Read file. Intended for |
1101 |
creating relative and relocatable configuration trees. If used |
1102 |
outside of any read file, the returned value is '.'. |
1103 |
.in -.3i |
1104 |
.in -.5i |
1105 |
|
1106 |
.in +.5i |
1107 |
$c |
1108 |
.in +.3i |
1109 |
The window's resource class name or "$c" if no window is |
1110 |
associated with the command. |
1111 |
.in -.3i |
1112 |
.in -.5i |
1113 |
|
1114 |
.in +.5i |
1115 |
$d |
1116 |
.in +.3i |
1117 |
The current desk number. |
1118 |
.in -.3i |
1119 |
.in -.5i |
1120 |
|
1121 |
.in +.5i |
1122 |
$n |
1123 |
.in +.3i |
1124 |
The window's name or "$n" if no window is associated with the |
1125 |
command. |
1126 |
.in -.3i |
1127 |
.in -.5i |
1128 |
|
1129 |
.in +.5i |
1130 |
$r |
1131 |
.in +.3i |
1132 |
The window's resource name or "$r" if no window is associated with |
1133 |
the command. |
1134 |
.in -.3i |
1135 |
.in -.5i |
1136 |
|
1137 |
.in +.5i |
1138 |
$v |
1139 |
.in +.3i |
1140 |
The first line printed by the -version command line option. |
1141 |
.in -.3i |
1142 |
.in -.5i |
1143 |
|
1144 |
.in +.5i |
1145 |
$w |
1146 |
.in +.3i |
1147 |
The window-id (expressed in hex, e.g. 0x10023c) of the window the |
1148 |
command was called for or "$w" if no window is associated with the |
1149 |
command. |
1150 |
.in -.3i |
1151 |
.in -.5i |
1152 |
|
1153 |
.in +.5i |
1154 |
$x |
1155 |
.in +.3i |
1156 |
The x coordinate of the current viewport. |
1157 |
.in -.3i |
1158 |
.in -.5i |
1159 |
|
1160 |
.in +.5i |
1161 |
$y |
1162 |
.in +.3i |
1163 |
The y coordinate of the current viewport. |
1164 |
.in -.3i |
1165 |
.in -.5i |
1166 |
|
1167 |
.in +.5i |
1168 |
$0 to $9 |
1169 |
.in +.3i |
1170 |
The positional parameters given to a complex function (a function |
1171 |
that has been defined with the |
1172 |
.B AddToFunc |
1173 |
command). "$0" is replaced with the first parameter, "$1" with |
1174 |
the second parameter and so on. If the corresponding parameter is |
1175 |
undefined, the "$..." is deleted from the command line. |
1176 |
.in -.3i |
1177 |
.in -.5i |
1178 |
|
1179 |
.in +.5i |
1180 |
$* |
1181 |
.in +.3i |
1182 |
All positional parameters given to a complex function. This |
1183 |
includes parameters that follow after "$9". |
1184 |
.in -.3i |
1185 |
.in -.5i |
1186 |
|
1187 |
.in +.5i |
1188 |
$[vp.x] |
1189 |
$[vp.y] |
1190 |
$[vp.width] |
1191 |
$[vp.height] |
1192 |
.in +.3i |
1193 |
Either coordinate or the width or height of the current viewport. |
1194 |
.in -.3i |
1195 |
.in -.5i |
1196 |
|
1197 |
.in +.5i |
1198 |
$[desk.width] |
1199 |
$[desk.height] |
1200 |
.in +.3i |
1201 |
The width or height of the whole desktop, i.e. the width or height |
1202 |
multiplied by the number of pages in x or y direction. |
1203 |
.in -.3i |
1204 |
.in -.5i |
1205 |
|
1206 |
.in +.5i |
1207 |
$[page.nx] |
1208 |
$[page.ny] |
1209 |
.in +.3i |
1210 |
The current page numbers, by X and Y axes, starting from 0. |
1211 |
.IR page " is equivalent to " area " in the GNOME terminology." |
1212 |
.in -.3i |
1213 |
.in -.5i |
1214 |
|
1215 |
.in +.5i |
1216 |
$[w.x] |
1217 |
$[w.y] |
1218 |
$[w.width] |
1219 |
$[w.height] |
1220 |
.in +.3i |
1221 |
Either coordinate or the width or height of the current window if |
1222 |
it is not iconified. If no window is associated with the command |
1223 |
or the window is iconified, the string is left as is. |
1224 |
.in -.3i |
1225 |
.in -.5i |
1226 |
|
1227 |
.in +.5i |
1228 |
$[screen] |
1229 |
.in +.3i |
1230 |
The screen number fvwm is running on. Useful for setups with |
1231 |
multiple screens. |
1232 |
.in -.3i |
1233 |
.in -.5i |
1234 |
|
1235 |
.in +.5i |
1236 |
$[fg.cs<n>] |
1237 |
.in -.5i |
1238 |
.in +.5i |
1239 |
$[bg.cs<n>] |
1240 |
.in -.5i |
1241 |
.in +.5i |
1242 |
$[hilight.cs<n>] |
1243 |
.in -.5i |
1244 |
.in +.5i |
1245 |
$[shadow.cs<n>] |
1246 |
.in +.3i |
1247 |
These class of parameters is replaced with the name of the |
1248 |
foreground (fg), background (bg), hilight (hilight) or shadow |
1249 |
(shadow) color that is defined in colorset <n> (replace <n> with |
1250 |
zero or a positive integer). For example "$[fg.cs3]" is expanded |
1251 |
to the name of the foreground color of colorset 3 (in |
1252 |
rgb:rrrr/gggg/bbbb form). Please refer to the man page of the |
1253 |
.B FvwmTheme |
1254 |
module for details about colorsets. Note that although other |
1255 |
parameters cannot be used in module configuration lines, it is |
1256 |
possible to use this class of parameters. They can be used |
1257 |
wherever a module expects a color name. Since the |
1258 |
.B FvwmTheme |
1259 |
module is not running when fvwm first passes through its |
1260 |
configuration file, you may not get the desired results if you use |
1261 |
this in commands like |
1262 |
.EX |
1263 |
Style * HilightFore $[fg.cs0], HilightBack $[bg.cs0] |
1264 |
.EE |
1265 |
.in -.3i |
1266 |
.in -.5i |
1267 |
|
1268 |
.in +.5i |
1269 |
$[...] |
1270 |
.in +.3i |
1271 |
If the string within the braces is neither of the above, fvwm |
1272 |
tries to find an environment variable with this name and replaces |
1273 |
its value if one is found (e.g. "$[PAGER]" could be replaced by |
1274 |
"more"). Otherwise the string is left as is. |
1275 |
.in -.3i |
1276 |
.in -.5i |
1277 |
|
1278 |
Some examples can be found in the description of the |
1279 |
.B AddToFunc |
1280 |
command. |
1281 |
|
1282 |
.SS THE LIST OF BUILTIN COMMANDS |
1283 |
|
1284 |
The commands descriptions below are grouped together in the |
1285 |
following sections. The sections are hopefully sorted in order of |
1286 |
usefulness to the newcomer. |
1287 |
.EX |
1288 |
- Menu commands |
1289 |
- Miscellaneous commands |
1290 |
- Commands affecting window movement and placement |
1291 |
- Commands for focus and mouse movement |
1292 |
- Commands controlling window state |
1293 |
- Commands for mouse, key and stroke bindings |
1294 |
- The Style command (controlling window styles) |
1295 |
- Other commands controlling window styles |
1296 |
- Commands controlling the virtual desktop |
1297 |
- Commands for user functions and shell commands |
1298 |
- Conditional commands |
1299 |
- Module commands |
1300 |
- Quit, restart and session management commands |
1301 |
- Color gradients |
1302 |
.EE |
1303 |
|
1304 |
.SS COMMANDS FOR MENUS |
1305 |
|
1306 |
.TP |
1307 |
.BI "AddToMenu " menu-name " [" menu-label " " action "]" |
1308 |
|
1309 |
Begins or adds to a menu definition. Typically a menu definition |
1310 |
looks like this: |
1311 |
.EX |
1312 |
AddToMenu Utilities Utilities Title |
1313 |
+ Xterm Exec exec xterm -e tcsh |
1314 |
+ Rxvt Exec exec rxvt |
1315 |
+ "Remote Logins" Popup Remote-Logins |
1316 |
+ Top Exec exec rxvt -T Top -n \\ |
1317 |
Top -e top |
1318 |
+ Calculator Exec exec xcalc |
1319 |
+ Xman Exec exec xman |
1320 |
+ Xmag Exec exec xmag |
1321 |
+ emacs Exec exec xemacs |
1322 |
+ Mail MailFunction \\ |
1323 |
xmh "-font fixed" |
1324 |
+ "" Nop |
1325 |
+ Modules Popup Module-Popup |
1326 |
+ "" Nop |
1327 |
+ Exit Fvwm Popup Quit-Verify |
1328 |
.EE |
1329 |
The menu could be invoked via |
1330 |
.EX |
1331 |
Mouse 1 R A Menu Utilities Nop |
1332 |
.EE |
1333 |
or |
1334 |
.EX |
1335 |
Mouse 1 R A Popup Utilities |
1336 |
.EE |
1337 |
There is no end-of-menu symbol. Menus do not have to be defined |
1338 |
in a contiguous region of the |
1339 |
.I .fvwm2rc |
1340 |
file. The quoted portion in the above examples is the menu label, |
1341 |
which appears in the menu when the user pops it up. The remaining |
1342 |
portion is a built-in command which should be executed if the user |
1343 |
selects that menu item. An empty menu-label ("") and the |
1344 |
.B Nop |
1345 |
function can be used to insert a separator into the menu. |
1346 |
|
1347 |
The keywords |
1348 |
.IR DynamicPopUpAction " and " DynamicPopDownAction |
1349 |
have a special meaning when used as the name of a menu item. The |
1350 |
action following the keyword is executed whenever the menu is |
1351 |
popped up or down. This way you can implement dynamic menus. It |
1352 |
is even possible to destroy itself with |
1353 |
.B DestroyMenu |
1354 |
and the rebuild from scratch. When the menu has been destroyed |
1355 |
(unless you used the |
1356 |
.I recreate |
1357 |
option when destroying the menu), do not forget to add the dynamic |
1358 |
action again. |
1359 |
|
1360 |
Note: Do not trigger actions that require user interaction. They |
1361 |
will probably fail and may screw up your menus. See |
1362 |
.B Silent |
1363 |
command. |
1364 |
|
1365 |
Warning: Do not issue |
1366 |
.B MenuStyle |
1367 |
commands as dynamic menu actions. Chances are good that this will |
1368 |
crash fvwm. |
1369 |
|
1370 |
Example (File browser): |
1371 |
.EX |
1372 |
# You can find the shell script |
1373 |
# fvwm_make_browse_menu.sh in the utils |
1374 |
# directory of the distribution. |
1375 |
AddToMenu BrowseMenu |
1376 |
+ DynamicPopupAction Piperead \\ |
1377 |
'fvwm_make_browse_menu.sh BrowseMenu' |
1378 |
.EE |
1379 |
Example (Picture menu): |
1380 |
.EX |
1381 |
# Build a menu of all .jpg files in |
1382 |
# $HOME/Pictures |
1383 |
AddToMenu JpgMenu foo title |
1384 |
+ DynamicPopupAction Function MakeJpgMenu |
1385 |
|
1386 |
AddToFunc MakeJpgMenu |
1387 |
+ I DestroyMenu recreate JpgMenu |
1388 |
+ I AddToMenu JpgMenu Pictures Title |
1389 |
+ I PipeRead 'for i in $HOME/Pictures/*.jpg; \\ |
1390 |
do echo AddToMenu JpgMenu "`basename $i`" Exec xv $i; done' |
1391 |
.EE |
1392 |
The keyword |
1393 |
.I MissingSubmenuFunction |
1394 |
has a similar meaning. It is executed whenever you try to pop up |
1395 |
a sub-menu that does not exist. With this function you can define |
1396 |
and destroy menus on the fly. You can use any command after the |
1397 |
keyword, but the name of a function defined with |
1398 |
.B AddToFunc |
1399 |
follows it, fvwm executes this command: |
1400 |
.EX |
1401 |
Function <function-name> <menu-name> |
1402 |
.EE |
1403 |
I.e. the name is passed to the function as its first argument and |
1404 |
can be referred to with "$0". |
1405 |
|
1406 |
Example: |
1407 |
.EX |
1408 |
# There is another shell script |
1409 |
# fvwm_make_directory_menu.sh in the utils |
1410 |
# directory of the distribution. To use it, |
1411 |
# define this function in your configuration |
1412 |
# file: |
1413 |
|
1414 |
AddToFunc MakeMissingDirectoryMenu |
1415 |
+ I Exec fvwm_make_directory_menu.sh $0 |
1416 |
|
1417 |
AddToMenu SomeMenu |
1418 |
+ MissingSubmenuFunction MakeMissingDirectoryMenu |
1419 |
+ "Root directory" Popup / |
1420 |
.EE |
1421 |
This is another implementation of the file browser that uses |
1422 |
sub-menus for subdirectories. |
1423 |
|
1424 |
Titles can be used within the menu. If you add the option |
1425 |
.I top |
1426 |
behind the keyword |
1427 |
.BR Title , |
1428 |
the title is added to the top of the menu. If there was a title |
1429 |
already, it is overwritten. |
1430 |
.EX |
1431 |
AddToMenu Utilities Tools Title top |
1432 |
.EE |
1433 |
All text up to the first |
1434 |
.SM Tab |
1435 |
in the menu label is aligned to the left side of the menu, all |
1436 |
text right of the first |
1437 |
.SM Tab |
1438 |
is aligned to the left in a second column and all text thereafter |
1439 |
is placed right aligned in the third column. All other |
1440 |
.SM Tabs |
1441 |
are replaced by spaces. Note that you can change this format with |
1442 |
the |
1443 |
.I ItemFormat |
1444 |
option of the |
1445 |
.B MenuStyle |
1446 |
command. |
1447 |
|
1448 |
If the menu-label contains an ampersand ('&'), the next character |
1449 |
is taken as a hot-key for the menu item. Hot-keys are underlined |
1450 |
in the label. To get a literal '&', insert "&&". Pressing the |
1451 |
hot-key moves through the list of menu items with this hot-key or |
1452 |
selects an item that is the only one with this hot-key. |
1453 |
|
1454 |
If the menu-label contains a sub-string which is set off by stars, |
1455 |
then the text between the stars is expected to be the name of an |
1456 |
xpm-icon or bitmap-file to insert in the menu. To get a literal |
1457 |
'*', insert "**". For example |
1458 |
.EX |
1459 |
+ Calculator*xcalc.xpm* Exec exec xcalc |
1460 |
.EE |
1461 |
inserts a menu item labeled "Calculator" with a picture of a |
1462 |
calculator above it. The following: |
1463 |
.EX |
1464 |
+ *xcalc.xpm* Exec exec xcalc |
1465 |
.EE |
1466 |
Omits the "Calculator" label, but leaves the picture. |
1467 |
|
1468 |
If the menu-label contains a sub-string which is set off by |
1469 |
percent signs, then the text between the percent signs is expected |
1470 |
to be the name of an xpm-icon or bitmap-file (a so called mini |
1471 |
icon to insert to the left of the menu label. A second mini icon |
1472 |
that is drawn at the right side of the menu can be given in the |
1473 |
same way. To get a literal '%', insert "%%". For example |
1474 |
.EX |
1475 |
+ Calculator%xcalc.xpm% Exec exec xcalc |
1476 |
.EE |
1477 |
inserts a menu item labeled "Calculator" with a picture of a |
1478 |
calculator to the left. The following: |
1479 |
.EX |
1480 |
+ %xcalc.xpm% Exec exec xcalc |
1481 |
.EE |
1482 |
Omits the "Calculator" label, but leaves the picture. The |
1483 |
pictures used with this feature should be small (perhaps 16x16). |
1484 |
If the menu-name (not the label) contains a sub-string which is |
1485 |
set off by at signs ('@'), then the text between them is expected |
1486 |
to be the name of an xpm or bitmap file to draw along the left |
1487 |
side of the menu (a side pixmap). You may want to use the |
1488 |
.I SidePic |
1489 |
option of the |
1490 |
.B MenuStyle |
1491 |
command instead. To get a literal '@', insert "@@". For example |
1492 |
.EX |
1493 |
AddToMenu StartMenu@linux-menu.xpm@ |
1494 |
.EE |
1495 |
creates a menu with a picture in its bottom left corner. |
1496 |
|
1497 |
If the menu-name also contains a sub-string surrounded by '^'s, then |
1498 |
the text between '^'s is expected to be the name of an X11 color |
1499 |
and the column containing the side picture is colored with that |
1500 |
color. You can set this color for a menu style using the |
1501 |
.I SideColor |
1502 |
option of the |
1503 |
.B MenuStyle |
1504 |
command. To get a literal '^', insert "^^". Example: |
1505 |
.EX |
1506 |
AddToMenu StartMenu@linux-menu.xpm@^blue^ |
1507 |
.EE |
1508 |
creates a menu with a picture in its bottom left corner and |
1509 |
colors with blue the region of the menu containing the picture. |
1510 |
|
1511 |
In all the above cases, the name of the resulting menu is name |
1512 |
specified, stripped of the substrings between the various |
1513 |
delimiters. |
1514 |
|
1515 |
.TP |
1516 |
.BI "ChangeMenuStyle " "menustyle menu ..." |
1517 |
Changes the menu style of |
1518 |
.IR menu " to " menustyle . |
1519 |
You may specified more than one menu in each call of |
1520 |
.BR ChangeMenuStyle . |
1521 |
.EX |
1522 |
ChangeMenuStyle pixmap1 \\ |
1523 |
ScreenSaverMenu ScreenLockMenu |
1524 |
.EE |
1525 |
|
1526 |
.TP |
1527 |
.BI "CopyMenuStyle " "orig-menustyle dest-menustyle" |
1528 |
Copy |
1529 |
.IR orig-menustyle " to " dest-menustyle , |
1530 |
where |
1531 |
.IR orig-menustyle |
1532 |
is an existing menu style. If the menu style |
1533 |
.IR dest_menustyle |
1534 |
does not exist, then it is created. |
1535 |
|
1536 |
.TP |
1537 |
.BI "DestroyMenu [" recreate "] " menu |
1538 |
Deletes a menu, so that subsequent references to it are no longer |
1539 |
valid. You can use this to change the contents of a menu during |
1540 |
an fvwm session. The menu can be rebuilt using |
1541 |
.BR AddToMenu . |
1542 |
The optional parameter |
1543 |
.I recreate |
1544 |
tells fvwm not to throw away the menu completely but to throw away |
1545 |
all the menu items (including the title). |
1546 |
.EX |
1547 |
DestroyMenu Utilities |
1548 |
.EE |
1549 |
|
1550 |
.TP |
1551 |
.BI "DestroyMenuStyle " menustyle |
1552 |
Deletes the menu style named |
1553 |
.I menustyle |
1554 |
and changes all menus using this style to the default style, you |
1555 |
cannot destroy the default menu style. |
1556 |
.EX |
1557 |
DestroyMenuStyle pixamp1 |
1558 |
.EE |
1559 |
|
1560 |
.IP "\fBMenu\fP \fImenu-name\fP \ |
1561 |
\fB[\fP \fIposition\fP \ |
1562 |
\fB] [\fP \fIdouble-click-action\fP \ |
1563 |
\fB]\fP" |
1564 |
Causes a previously defined menu to be popped up in a sticky |
1565 |
manner. That is, if the user invokes the menu with a click action |
1566 |
instead of a drag action, the menu stays up. The command |
1567 |
.I double-click-action |
1568 |
is invoked if the user double-clicks a button (or hits the key |
1569 |
rapidly twice if the menu is bound to a key) when bringing up the |
1570 |
menu. If the double click action is not specified, double |
1571 |
clicking on the menu does nothing. However, if the menu begins |
1572 |
with a menu item (i.e. not with a title or a separator) and the |
1573 |
double click action is not given, double clicking invokes the |
1574 |
first item of the menu (but only if the pointer really was over |
1575 |
the item). |
1576 |
|
1577 |
Several other commands affect menu operation. See |
1578 |
.BR MenuStyle " and " SetAnimation . |
1579 |
When in a menu, keyboard shortcuts work as expected. Cursor |
1580 |
keystrokes are also allowed. Specifically, |
1581 |
.SM Tab, |
1582 |
.SM Meta-Tab, |
1583 |
.SM Cursor-Down, |
1584 |
.SM Ctrl-N, |
1585 |
or |
1586 |
.SM Ctrl-J |
1587 |
move to the next item; |
1588 |
.SM Shift-Tab, |
1589 |
.SM Shift-Meta-Tab, |
1590 |
.SM Cursor-Up, |
1591 |
.SM Ctrl-P, |
1592 |
or |
1593 |
.SM Ctrl-K |
1594 |
move to the prior item; |
1595 |
.SM Cursor-Left |
1596 |
or |
1597 |
.SM Ctrl-B |
1598 |
returns to the prior menu; |
1599 |
.SM Cursor-Right |
1600 |
or |
1601 |
.SM Ctrl-F |
1602 |
pop up the next menu; |
1603 |
.SM Ctrl-Cursor-Up, |
1604 |
.SM Shift-Ctrl-Meta-Tab |
1605 |
and |
1606 |
.SM Page-Up |
1607 |
move up five items; |
1608 |
.SM Ctrl-Cursor-Down, |
1609 |
.SM Ctrl-Meta-Tab |
1610 |
and |
1611 |
.SM Page-Down |
1612 |
move down five items, respectively; |
1613 |
.SM Home, |
1614 |
.SM Shift-Cursor-Up |
1615 |
or |
1616 |
.SM End, |
1617 |
.SM Shift-Cursor-Down |
1618 |
move to the first or last item, respectively; |
1619 |
.SM Meta-Cursor-Up |
1620 |
or |
1621 |
.SM Meta-Cursor-Down |
1622 |
move just behind the next or previous separator; |
1623 |
.SM Shift-Ctrl-Tab |
1624 |
or |
1625 |
.SM Ctrl-Tab |
1626 |
work exactly the same; |
1627 |
.SM Enter, |
1628 |
.SM Return, |
1629 |
or |
1630 |
.SM Space |
1631 |
executes the current item; |
1632 |
.SM Insert |
1633 |
opens the "More..." sub-menu if any; |
1634 |
.SM Escape |
1635 |
and |
1636 |
.SM Delete |
1637 |
exit the current sequence of menus. |
1638 |
|
1639 |
The pointer is warped to where it was when the menu was invoked if |
1640 |
it was both invoked and terminated with a keystroke. |
1641 |
|
1642 |
The |
1643 |
.I position |
1644 |
arguments allow placement of the menu somewhere on the screen, for |
1645 |
example centered on the visible screen or above a title bar. |
1646 |
Basically it works like this: you specify a |
1647 |
.I context-rectangle |
1648 |
and an offset to this rectangle by which the upper left corner of |
1649 |
the menu is moved from the upper left corner of the rectangle. |
1650 |
The |
1651 |
.I position |
1652 |
arguments consist of several parts: |
1653 |
.EX |
1654 |
.BI "[" context-rectangle "] " "x y" " [" special-options "]" |
1655 |
.EE |
1656 |
The |
1657 |
.I context-rectangle |
1658 |
can be one of: |
1659 |
|
1660 |
.in +.5i |
1661 |
.BR Root |
1662 |
.in +.3i |
1663 |
the root window of the current screen. |
1664 |
.in -.3i |
1665 |
.BR XineramaRoot |
1666 |
.in +.3i |
1667 |
the root window of the whole Xinerama screen. Equivalent to |
1668 |
"root" when Xinerama is not used. |
1669 |
.in -.3i |
1670 |
.BR Mouse |
1671 |
.in +.3i |
1672 |
a 1x1 rectangle at the mouse position. |
1673 |
.in -.3i |
1674 |
.BR Window |
1675 |
.in +.3i |
1676 |
the window with the focus. |
1677 |
.in -.3i |
1678 |
.BR Interior |
1679 |
.in +.3i |
1680 |
the inside of the focused window. |
1681 |
.in -.3i |
1682 |
.BR Title |
1683 |
.in +.3i |
1684 |
the title of the focused window or icon. |
1685 |
.in -.3i |
1686 |
.BR Button<n> |
1687 |
.in +.3i |
1688 |
button #n of the focused window. |
1689 |
.in -.3i |
1690 |
.BR Icon |
1691 |
.in +.3i |
1692 |
the focused icon. |
1693 |
.in -.3i |
1694 |
.BR Menu |
1695 |
.in +.3i |
1696 |
the current menu. |
1697 |
.in -.3i |
1698 |
.BR Item |
1699 |
.in +.3i |
1700 |
the current menu item. |
1701 |
.in -.3i |
1702 |
.BR Context |
1703 |
.in +.3i |
1704 |
the current window, menu or icon. |
1705 |
.in -.3i |
1706 |
.BR This |
1707 |
.in +.3i |
1708 |
whatever widget the pointer is on (e.g. a corner of a window or |
1709 |
the root window). |
1710 |
.in -.3i |
1711 |
.BI "Rectangle <" geometry ">" |
1712 |
.in +.3i |
1713 |
the rectangle defined by |
1714 |
.RI < geometry > |
1715 |
in X geometry format. Width and height default to 1 if omitted. |
1716 |
.in -.3i |
1717 |
.in -.5i |
1718 |
|
1719 |
If the context-rectangle is omitted or illegal (e.g. "item" on a |
1720 |
window), "Mouse" is the default. Note that not all of these make |
1721 |
sense under all circumstances (e.g. "Icon" if the pointer is on a |
1722 |
menu). |
1723 |
|
1724 |
The offset values |
1725 |
.I x |
1726 |
and |
1727 |
.I y |
1728 |
specify how far the menu is moved from it's default position. By |
1729 |
default, the numeric value given is interpreted as a percentage of |
1730 |
the context rectangle's width (height), but with a trailing |
1731 |
.RI ' m ' |
1732 |
the menu's width (height) is used instead. Furthermore a trailing |
1733 |
.RI ' p ' |
1734 |
changes the interpretation to mean pixels. |
1735 |
|
1736 |
Instead of a single value you can use a list of values. All |
1737 |
additional numbers after the first one are separated from their |
1738 |
predecessor by their sign. Do not use any other separators. |
1739 |
|
1740 |
If |
1741 |
.IR x " or " y |
1742 |
are prefixed with "o<number>" where <number> is an integer, the |
1743 |
menu and the rectangle are moved to overlap at the specified |
1744 |
position before any other offsets are applied. The menu and the |
1745 |
rectangle are placed so that the pixel at <number> percent of the |
1746 |
rectangle's width/height is right over the pixel at <number> |
1747 |
percent of the menu's width/height. So "o0" means that the |
1748 |
top/left borders of the menu and the rectangle overlap, with |
1749 |
"o100" it's the bottom/right borders and if you use "o50" they are |
1750 |
centered upon each other (try it and you will see it is much |
1751 |
simpler than this description). The default is "o0". The prefix |
1752 |
"o<number>" is an abbreviation for "+<number>-<number>m". |
1753 |
|
1754 |
A prefix of |
1755 |
.RI ' c ' |
1756 |
is equivalent to "o50". Examples: |
1757 |
.EX |
1758 |
# window list in the middle of the screen |
1759 |
WindowList Root c c |
1760 |
|
1761 |
# menu to the left of a window |
1762 |
Menu name window -100m c+0 |
1763 |
|
1764 |
# popup menu 8 pixels above the mouse pointer |
1765 |
Popup name mouse c -100m-8p |
1766 |
|
1767 |
# somewhere on the screen |
1768 |
Menu name rectangle 512x384+1+1 +0 +0 |
1769 |
|
1770 |
# centered vertically around a menu item |
1771 |
AddToMenu foobar-menu |
1772 |
+ "first item" Nop |
1773 |
+ "special item" Popup "another menu" item \\ |
1774 |
+100 c |
1775 |
+ "last item" Nop |
1776 |
|
1777 |
# above the first menu item |
1778 |
AddToMenu foobar-menu |
1779 |
+ "first item" Popup "another menu" item \\ |
1780 |
+0 -100m |
1781 |
.EE |
1782 |
Note that you can put a sub-menu far off the current menu so you |
1783 |
could not reach it with the mouse without leaving the menu. If |
1784 |
the pointer leaves the current menu in the general direction of |
1785 |
the sub-menu the menu stays up. |
1786 |
|
1787 |
The |
1788 |
.IR special-options : |
1789 |
|
1790 |
.in +.5i |
1791 |
The |
1792 |
.IR animated " and " Mwm " or " Win |
1793 |
menu styles may move a menu somewhere else on the screen. If you |
1794 |
do not want this you can add |
1795 |
.I Fixed |
1796 |
as an option. This might happen for example if you want the menu |
1797 |
always in the top right corner of the screen. |
1798 |
|
1799 |
Where do you want a sub-menu to appear when you click on it's menu |
1800 |
item? The default is to place the title under the cursor, but if |
1801 |
you want it where the position arguments say, use the |
1802 |
.I SelectInPlace |
1803 |
option. If you want the pointer on the title of the menu, use |
1804 |
.I SelectWarp |
1805 |
too. Note that these options apply only if the |
1806 |
.IB "PopupAsRootMenu " MenuStyle |
1807 |
option is used. |
1808 |
|
1809 |
The pointer is warped to the title of a sub-menu whenever the |
1810 |
pointer would be on an item when the sub-menu is popped up |
1811 |
.RI ( fvwm |
1812 |
menu style) or never warped to the title at all |
1813 |
.RI ( Mwm " or " Win |
1814 |
menu styles). You can force (forbid) warping whenever the sub-menu |
1815 |
is opened with the |
1816 |
.IR WarpTitle " (" NoWarp ") option." |
1817 |
|
1818 |
Note that the |
1819 |
.I special-options |
1820 |
do work with a normal menu that has no other position arguments. |
1821 |
.in -.5i |
1822 |
|
1823 |
.TP |
1824 |
.BI "MenuStyle " "stylename options" |
1825 |
Sets a new menu style or changes a previously defined style. The |
1826 |
.I stylename |
1827 |
is the style name; if it contains spaces or tabs it has to be |
1828 |
quoted. The name "*" is reserved for the default menu style. The |
1829 |
default menu style is used for every menu-like object (e.g. the |
1830 |
window created by the |
1831 |
.B WindowList |
1832 |
command) that had not be assigned a style using the |
1833 |
.BR ChangeMenuStyle . |
1834 |
See also |
1835 |
.BR DestroyMenuStyle . |
1836 |
When using monochrome color options are ignored. |
1837 |
|
1838 |
.I options |
1839 |
is a comma separated list containing some of the keywords |
1840 |
Fvwm / Mwm / Win, |
1841 |
BorderWidth, |
1842 |
Foreground, |
1843 |
Background, |
1844 |
Greyed, |
1845 |
HilightBack / HilightBackOff, |
1846 |
ActiveFore / ActiveForeOff, |
1847 |
MenuColorset, |
1848 |
ActiveColorset, |
1849 |
GreyedColorset, |
1850 |
Hilight3DThick / Hilight3DThin / Hilight3DOff, |
1851 |
Hilight3DThickness, |
1852 |
Animation / AnimationOff, |
1853 |
Font, |
1854 |
MenuFace, |
1855 |
PopupDelay, |
1856 |
PopupOffset, |
1857 |
TitleWarp / TitleWarpOff, |
1858 |
TitleUnderlines0 / TitleUnderlines1 / TitleUnderlines2, |
1859 |
SeparatorsLong / SeparatorsShort, |
1860 |
TrianglesSolid / TrianglesRelief, |
1861 |
PopupImmediately / PopupDelayed, |
1862 |
PopdownImmediately / PopdownDelayed, |
1863 |
DoubleClickTime, |
1864 |
SidePic, |
1865 |
SideColor, |
1866 |
PopupAsRootMenu / PopupAsSubmenu, |
1867 |
RemoveSubmenus / HoldSubmenus, |
1868 |
SubmenusRight / SubmenusLeft, |
1869 |
SelectOnRelease, |
1870 |
ItemFormat, |
1871 |
VerticalItemSpacing, |
1872 |
VerticalTitleSpacing, |
1873 |
AutomaticHotkeys / AutomaticHotkeysOff. |
1874 |
|
1875 |
In the above list some options are listed as option pairs or |
1876 |
triples with a '/' in between. These options exclude each other. |
1877 |
|
1878 |
.IR Fvwm ", " Mwm ", " Win |
1879 |
reset all options to the style with the same name in former |
1880 |
versions of fvwm. The default for new menu styles is |
1881 |
.I Fvwm |
1882 |
style. These options override all others except |
1883 |
.IR Foreground ", " Background ", " Greyed ", " HilightBack ", " |
1884 |
.IR HilightFore " and " PopupDelay , |
1885 |
so they should be used only as the first option specified for a |
1886 |
menu style or to reset the style to defined behavior. The same |
1887 |
effect can be created by setting all the other options one by one. |
1888 |
|
1889 |
.IR Mwm " and " Win |
1890 |
style menus popup sub-menus automatically. |
1891 |
.I Win |
1892 |
menus indicate the current menu item by changing the background to dark. |
1893 |
.I Fvwm |
1894 |
sub-menus overlap the parent menu, |
1895 |
.IR Mwm " and " Win |
1896 |
style menus never overlap the parent menu. |
1897 |
|
1898 |
.I Fvwm |
1899 |
style is equivalent to HilightBackOff, Hilight3DThin, |
1900 |
ActiveForeOff, AnimationOff, Font, MenuFace, PopupOffset 0 67, |
1901 |
TitleWarp, TitleUnderlines1, SeparatorsShort, TrianglesRelief, |
1902 |
PopupDelayed, PopdownDelayed, PopupAsSubmenu, HoldSubmenus, |
1903 |
SubmenusRight, BorderWidth 2, AutomaticHotkeysOff. |
1904 |
|
1905 |
.I Mwm |
1906 |
style is equivalent to HilightBackOff, Hilight3DThick, |
1907 |
ActiveForeOff, AnimationOff, Font, MenuFace, PopupOffset -3 100, |
1908 |
TitleWarpOff, TitleUnderlines2, SeparatorsLong, TrianglesRelief, |
1909 |
PopupImmediately, PopdownDelayed, PopupAsSubmenu, HoldSubmenus, |
1910 |
SubmenusRight, BorderWidth 2, AutomaticHotkeysOff. |
1911 |
|
1912 |
.I Win |
1913 |
style is equivalent to HilightBack, Hilight3DOff, ActiveForeOff, |
1914 |
AnimationOff, Font, MenuFace, PopupOffset -5 100, TitleWarpOff, |
1915 |
TitleUnderlines1, SeparatorsShort, TrianglesSolid, |
1916 |
PopupImmediately, PopdownDelayed, PopupAsSubmenu, RemoveSubmenus, |
1917 |
SubmenusRight, BorderWidth 2, AutomaticHotkeysOff. |
1918 |
|
1919 |
.I BorderWidth |
1920 |
takes the thickness of the border around the menus in pixels. It |
1921 |
may be zero to 50 pixels. The default is 2. Using an illegal |
1922 |
value reverts the border width to the default. |
1923 |
|
1924 |
.IR Foreground " and " Background |
1925 |
may have a color name as an argument. This color is used for menu |
1926 |
text or the menu's background. You can omit the color name to |
1927 |
reset these colors to the built in default. |
1928 |
|
1929 |
.I Greyed |
1930 |
may have a color name as an argument. This color is the one used |
1931 |
to draw a menu-selection which is prohibited (or not recommended) |
1932 |
by the Mwm hints which an application has specified. If the color |
1933 |
is omitted the color of greyed menu entries is based on the |
1934 |
background color of the menu. |
1935 |
|
1936 |
.IR HilightBack " and " HilightBackOff |
1937 |
switch hilighting the background of the selected menu item on and |
1938 |
off. A specific background color may be used by providing the |
1939 |
color name as an argument to |
1940 |
.IR HilightBack . |
1941 |
If you use this option without an argument the color is based on |
1942 |
the menu's background color. |
1943 |
|
1944 |
.I ActiveFore " and " ActiveForeOff |
1945 |
switch hilighting the foreground of the selected menu item on and |
1946 |
off. A specific foreground color may be used by providing the |
1947 |
color name as an argument to |
1948 |
.IR ActiveFore . |
1949 |
Omitting the color name has the same effect as using |
1950 |
.IR ActiveForeOff . |
1951 |
|
1952 |
.I MenuColorset |
1953 |
controls if a colorset is used instead of the |
1954 |
.IR Foreground ", " Background " and " MenuFace |
1955 |
menu styles. If the |
1956 |
.I MenuColorset |
1957 |
keyword is followed by a number equal to zero or greater, this |
1958 |
number is taken as the number of the colorset to use. If the |
1959 |
number is omitted, the colorset is switched off and the regular |
1960 |
menu styles are used again. The foreground and background colors |
1961 |
of the menu items are replaced by the colors from the colorset. |
1962 |
If the colorset has a pixmap defined, this pixmap is used as the |
1963 |
background of the menu. Note that the |
1964 |
.I MenuFace |
1965 |
menu style has been optimized for memory consumption and may use |
1966 |
less memory than the background from a colorset. The shape mask |
1967 |
from the colorset is used to shape the menu. Please refer to the |
1968 |
description of the |
1969 |
.B Colorset |
1970 |
command and the documentation of the |
1971 |
.B FvwmTheme |
1972 |
module for details about colorsets. |
1973 |
|
1974 |
.I ActiveColorset |
1975 |
works exactly like |
1976 |
.IR MenuColorset , |
1977 |
but the foreground from the colorset replaces the color given with |
1978 |
the |
1979 |
.I ActiveFore |
1980 |
menu style and the colorset's background color replaces the color |
1981 |
given with the |
1982 |
.I HilightBack |
1983 |
command (to turn on background hilighting you have to use the |
1984 |
.I HilightBack |
1985 |
menu style too). If specified, the hilight and shadow colors |
1986 |
from the colorset are used too. The pixmap and shape mask from |
1987 |
the colorset are not used. |
1988 |
|
1989 |
.I GreyedColorset |
1990 |
works exactly like |
1991 |
.IR MenuColorset , |
1992 |
but the foreground from the colorset replaces the color given with |
1993 |
the |
1994 |
.I Greyed |
1995 |
menu style. No other parts of the colorset are used. |
1996 |
|
1997 |
.IR Hilight3DThick ", " Hilight3DThin " and " Hilight3DOff |
1998 |
determine if the selected menu item is hilighted with a 3D |
1999 |
relief. Thick reliefs are two pixels wide, thin reliefs are one |
2000 |
pixel wide. |
2001 |
|
2002 |
.I Hilight3DThickness |
2003 |
takes one numeric argument that may be between -50 and +50 |
2004 |
pixels. With negative values the menu item gets a pressed in look. |
2005 |
The above three commands are equivalent to a thickness of 2, 1 and |
2006 |
0. |
2007 |
|
2008 |
.IR Animation " and " AnimationOff |
2009 |
turn menu animation on or off. When animation is on, sub-menus |
2010 |
that don't fit on the screen cause the parent menu to be shifted |
2011 |
to the left so the sub-menu can be seen. |
2012 |
|
2013 |
.I Font |
2014 |
takes a font name as an argument. If a font by this name exists |
2015 |
it is used for the text of all menu items. If it does not exist |
2016 |
or if the name is left blank the built in default is used. |
2017 |
|
2018 |
.I MenuFace |
2019 |
enforces a fancy background upon the menus. You can use the same |
2020 |
options for |
2021 |
.I MenuFace |
2022 |
as for the |
2023 |
.BR ButtonStyle . |
2024 |
See description of |
2025 |
.B ButtonStyle |
2026 |
command and the |
2027 |
.B COLOR GRADIENTS |
2028 |
sections for more information. If you use |
2029 |
.I MenuFace |
2030 |
without arguments the style is reverted back to normal. |
2031 |
|
2032 |
Some examples of MenuFaces are: |
2033 |
.EX |
2034 |
MenuFace DGradient 128 2 lightgrey 50 blue 50 \\ |
2035 |
white |
2036 |
MenuFace TiledPixmap texture10.xpm |
2037 |
MenuFace HGradient 128 2 Red 40 Maroon 60 \\ |
2038 |
White |
2039 |
MenuFace Solid Maroon |
2040 |
.EE |
2041 |
Note: The gradient styles H, V, B and D are optimized for high |
2042 |
speed and low memory consumption in menus. This is not the case |
2043 |
for all the other gradient styles. They may be slow and consume |
2044 |
huge amounts of memory, so if you encounter performance problems |
2045 |
with them you may be better off by not using them. To improve |
2046 |
performance you can try one or all of the following: |
2047 |
|
2048 |
Turn hilighting of the active menu item other than foreground |
2049 |
color off: |
2050 |
.EX |
2051 |
MenuStyle <style> Hilight3DOff, HilightBackOff |
2052 |
MenuStyle <style> ActiveFore <preferred color> |
2053 |
.EE |
2054 |
Make sure sub-menus do not overlap the parent menu. This can |
2055 |
prevent menus being redrawn every time a sub-menu pops up or down. |
2056 |
.EX |
2057 |
MenuStyle <style> PopupOffset 1 100 |
2058 |
.EE |
2059 |
Run you X server with backing storage. If your X Server is |
2060 |
started with the -bs option, turn it off. If not try the -wm |
2061 |
option. |
2062 |
.EX |
2063 |
startx -- -wm |
2064 |
.EE |
2065 |
You may have to adapt this example to your system (e.g. if you use |
2066 |
xinit to start X). |
2067 |
|
2068 |
.I PopupDelay |
2069 |
requires one numeric argument. This value is the delay in |
2070 |
milliseconds before a sub-menu is popped up when the pointer moves |
2071 |
over a menu item that has a sub-menu. If the value is zero no |
2072 |
automatic pop up is done. If the argument is omitted the built in |
2073 |
default is used. Note that the popup delay has no effect if the |
2074 |
.I PopupImmediately |
2075 |
option is used since sub-menus pop up immediately then. |
2076 |
|
2077 |
.I PopupImmediately |
2078 |
makes menu items with sub-menus pop up it up as soon as the |
2079 |
pointer enters the item. The |
2080 |
.I PopupDelay option |
2081 |
is ignored then. If |
2082 |
.I PopupDelayed |
2083 |
is used fvwm looks at the |
2084 |
.I PopupDelay |
2085 |
option if or when this automatic popup happens. |
2086 |
|
2087 |
.I PopdownDelay |
2088 |
works exactly like |
2089 |
.I PopupDelay |
2090 |
but determines the timeout of the |
2091 |
.I PopupDelayed |
2092 |
style. |
2093 |
|
2094 |
.I PopdownImmediately |
2095 |
makes sub-menus vanish as soon as the pointer leaves the sub-menu |
2096 |
and the correspondent item in the parent menu. With the opposite |
2097 |
option |
2098 |
.I PopdownDelayed |
2099 |
the sub-menu only pops down after the time specified with the |
2100 |
.I PopdownDelay |
2101 |
option. This comes handy when the pointer often strays off the |
2102 |
menu item when trying to move into the sub-menu. Whenever there |
2103 |
is a conflict between the |
2104 |
.IR PopupImmediately ", " PopupDelayed ", " PopupDelay |
2105 |
styles and the |
2106 |
.IR PopdownImmediately ", " PopdownDelayed ", " PopdownDelay |
2107 |
styles, the |
2108 |
.I Popup... |
2109 |
styles win when using mouse navigation and the |
2110 |
.I Popdown... |
2111 |
styles win when navigating with the keyboard. |
2112 |
|
2113 |
.I PopupOffset |
2114 |
requires two integer arguments. Both values affect where |
2115 |
sub-menus are placed relative to the parent menu. If both values |
2116 |
are zero, the left edge of the sub-menu overlaps the left edge of |
2117 |
the parent menu. If the first value is non-zero the sub-menu is |
2118 |
shifted that many pixels to the right (or left if negative). If |
2119 |
the second value is non-zero the menu is moved by that many |
2120 |
percent of the parent menu's width to the right or left. |
2121 |
|
2122 |
.IR TitleWarp " and " TitleWarpOff |
2123 |
affect if the pointer warps to the menu title when a sub-menu is |
2124 |
opened or not. Note that regardless of this setting the pointer is |
2125 |
not warped if the menu does not pop up under the pointer. |
2126 |
|
2127 |
.IR TitleUnderlines0 ", " TitleUnderlines1 " and " TitleUnderlines2 |
2128 |
specify how many lines are drawn below a menu title. |
2129 |
|
2130 |
.IR SeparatorsLong " and " SeparatorsShort |
2131 |
set the length of menu separators. Long separators run from the |
2132 |
left edge all the way to the right edge. Short separators leave a |
2133 |
few pixels to the edges of the menu. |
2134 |
|
2135 |
.IR TrianglesSolid " and " TrianglesRelief |
2136 |
affect how the small triangles for sub-menus is drawn. Solid |
2137 |
triangles are filled with a color while relief triangles are |
2138 |
hollow. |
2139 |
|
2140 |
.I DoubleClickTime |
2141 |
requires one numeric argument. This value is the time in |
2142 |
milliseconds between two mouse clicks in a menu to be considered |
2143 |
as a double click. The default is 450 milliseconds. If the |
2144 |
argument is omitted the double click time is reset to this |
2145 |
default. |
2146 |
|
2147 |
.I SidePic |
2148 |
takes the name of an xpm or bitmap file as an argument. The |
2149 |
picture is drawn along the left side of the menu. The |
2150 |
.I SidePic |
2151 |
option can be overridden by a menu specific side pixmap (see |
2152 |
.BR AddToMenu ). |
2153 |
If the file name is omitted an existing side pixmap is remove from |
2154 |
the menu style. |
2155 |
|
2156 |
.I SideColor |
2157 |
takes the name of an X11 color as an argument. This color is used |
2158 |
to color the column containing the side picture (see |
2159 |
above). The SideColor option can be overridden by a menu specific |
2160 |
side color (see |
2161 |
.BR AddToMenu ). |
2162 |
If the color name is omitted the side color option is switched off. |
2163 |
|
2164 |
.IR PopupAsRootMenu " and " PopupAsSubmenu |
2165 |
change the behavior when you click on a menu item that opens a |
2166 |
sub-menu. With |
2167 |
.I PopupAsRootMenu |
2168 |
the original menu is closed before the sub-menu appears, with |
2169 |
.I PopupAsSubmenu |
2170 |
it is not, so you can navigate back into the |
2171 |
parent menu. Furthermore, with |
2172 |
.I PopupAsSubmenu |
2173 |
the sub-menu is held open (posted) regardless of where you move |
2174 |
the mouse. Depending on your menu style this may simplify |
2175 |
navigating through the menu. Any keystroke while a menu is posted |
2176 |
reverts the menu back to the normal behavior. |
2177 |
.I PopupAsSubmenu |
2178 |
is the default. |
2179 |
|
2180 |
.I RemoveSubmenus |
2181 |
instructs fvwm to remove sub-menus when you move back into the |
2182 |
parent menu. With |
2183 |
.I HoldSubmenus |
2184 |
the sub-menu remains visible. You probably want to use |
2185 |
.I HoldSubmenus |
2186 |
if you are using the |
2187 |
.I PopupDelayed |
2188 |
style. |
2189 |
.I RemoveSubmenus |
2190 |
affects menu navigation with the keyboard. |
2191 |
|
2192 |
.I SelectOnRelease |
2193 |
takes an optional key name as an argument. If the given key is |
2194 |
release in a menu using this style, the current menu item is |
2195 |
selected. This is intended for |
2196 |
.SM Alt-Tab |
2197 |
.B WindowList |
2198 |
navigation. The key name is a standard X11 key name as defined in |
2199 |
.IR /usr/include/X11/keysymdef.h , |
2200 |
with the leading "XK_" omitted. To disable this behaviour, omit |
2201 |
the key name. |
2202 |
|
2203 |
Note: Some X servers do not support KeyRelease events. |
2204 |
.I SelectOnRelease |
2205 |
does not work on such a machine. |
2206 |
|
2207 |
.I ItemFormat |
2208 |
takes a special string as its argument that determines the layout |
2209 |
of the menu items. Think of the format string as if it were a |
2210 |
menu item. All you have to do is tell fvwm where to place the |
2211 |
different parts of the menu item (i.e. the labels, the triangle |
2212 |
denoting a sub menu, the mini icons and the side pic) in the blank |
2213 |
area. The string consists of spaces, |
2214 |
.SM Tab |
2215 |
characters and formatting directives beginning with '%'. Any |
2216 |
illegal characters and formatting directives are silently ignored: |
2217 |
|
2218 |
.in +.5i |
2219 |
.BR %l ", " %c " and " %r |
2220 |
.in +.3i |
2221 |
Insert the next item label. Up to three labels can be used. The |
2222 |
item column is left-aligned |
2223 |
.RB ( %l ), |
2224 |
centered |
2225 |
.RB ( %c ) |
2226 |
or right-aligned |
2227 |
.RB ( %r ). |
2228 |
.in -.3i |
2229 |
.B %i |
2230 |
.in +.3i |
2231 |
Inserts the mini icon. |
2232 |
.in -.3i |
2233 |
.BR %> " and " %< |
2234 |
.in +.3i |
2235 |
Insert the sub-menu triangle pointing either to the right |
2236 |
.RB ( %> ) |
2237 |
or to the left |
2238 |
.RB ( %< ) |
2239 |
.in -.3i |
2240 |
.B %| |
2241 |
.in +.3i |
2242 |
The first |
2243 |
.B %| |
2244 |
denotes the beginning of the area that is highlighted either with |
2245 |
a background color or a relief (or both). The second |
2246 |
.B %| |
2247 |
marks the end of this area. |
2248 |
.B %| |
2249 |
can be used up to twice in the string. If you don't add one or |
2250 |
both of them, fvwm sets the margins to the margins of the whole |
2251 |
item (not counting the side picture). |
2252 |
.in -.3i |
2253 |
.B %s |
2254 |
.in +.3i |
2255 |
Places the side picture either at the beginning or the end of the |
2256 |
menu. This directive may be used only once and only as the first |
2257 |
or last in the format string. If the |
2258 |
.B %s |
2259 |
is not at the beginning of the string, all characters to the right |
2260 |
of it are silently ignored. |
2261 |
.in -.3i |
2262 |
.BR Space ", " Tab ", " %Space " and " %Tab |
2263 |
.in +.3i |
2264 |
Add a gap as large as one respectively eight spaces are with the |
2265 |
font used in the menu items. The whole string must be quoted if |
2266 |
spaces or tabs are used. |
2267 |
.in -.3i |
2268 |
.B %p |
2269 |
.in +.3i |
2270 |
Like |
2271 |
.SM Space |
2272 |
and |
2273 |
.SM Tab |
2274 |
.B %p |
2275 |
inserts an empty area into the item, but with better control of |
2276 |
its size (see below). |
2277 |
.in -.3i |
2278 |
.in -.5i |
2279 |
|
2280 |
You can define an additional space before and after each of the |
2281 |
objects like this: |
2282 |
.EX |
2283 |
.BI % left . right p |
2284 |
.EE |
2285 |
This means: if the object is defined in the menu (e.g. if it is |
2286 |
.B %s |
2287 |
and you use a side picture, or it is |
2288 |
.B %l |
2289 |
for the third column and there are items defined that actually |
2290 |
have a third column), then add |
2291 |
.I left |
2292 |
pixels before the object and |
2293 |
.I right |
2294 |
pixels after it. You may leave out the |
2295 |
.I left |
2296 |
or the |
2297 |
.I .right |
2298 |
parts if you don't need them. All values up to the screen width |
2299 |
are allowed. Even negative values can be used with care. The |
2300 |
.B p |
2301 |
may be replaced with any other formatting directives described |
2302 |
above. |
2303 |
|
2304 |
Note: Only items defined in the format string are visible in the |
2305 |
menus. So if you do not put a |
2306 |
.B %s |
2307 |
in there you do not see a side picture, even if one is specified. |
2308 |
|
2309 |
Note: The |
2310 |
.I SubmenusLeft |
2311 |
style changes the default |
2312 |
.I ItemFormat |
2313 |
string, but if it was set manually it is not modified. |
2314 |
|
2315 |
Note: If any unformatted title of the menu is wider than the |
2316 |
widest menu item, the spaces between the different parts of the |
2317 |
menu items are enlarged to match the width of the title. Leading |
2318 |
left aligned objects in the format string |
2319 |
.RB ( %l ", " %i ", "%< ", first " %| ) |
2320 |
stick to the left edge of the menu and trailing right aligned |
2321 |
objects |
2322 |
.RB ( %r ", " %i ", "%> ", second " %| ) |
2323 |
stick to the right edge. The gaps between the remaining items are |
2324 |
enlarged equally. |
2325 |
|
2326 |
Examples: |
2327 |
.EX |
2328 |
MenuStyle * ItemFormat \\ |
2329 |
"%.4s%.1|%.5i%.5l%.5l%.5r%.5i%2.3>%1|" |
2330 |
.EE |
2331 |
Is the default string used by fvwm: (side picture + 4 pixels gap) |
2332 |
(beginning of the hilighted area + 1 pixel gap) (mini icon + 5p) |
2333 |
(first column left aligned + 5p) (second column left aligned + 5p) |
2334 |
(third column right aligned + 5p) (second mini icon + 5p) (2p + |
2335 |
sub-menu triangle + 3p) (1p + end of hilighted area). |
2336 |
.EX |
2337 |
MenuStyle * ItemFormat \\ |
2338 |
"%.1|%3.2<%5i%5l%5l%5r%5i%1|%4s" |
2339 |
.EE |
2340 |
Is used by fvwm with the |
2341 |
.I SubmenusLeft |
2342 |
option below. |
2343 |
|
2344 |
.IR VerticalItemSpacing " and " VerticalTitleSpacing |
2345 |
control the vertical spacing of menu items and titles like |
2346 |
.I ItemFormat |
2347 |
controls the horizontal spacing. Both take two numeric arguments |
2348 |
that may range from -100 to +100. The first is the gap in pixels |
2349 |
above a normal menu item (or a menu title), the second is the gap |
2350 |
in pixels below it. Negative numbers do not make much sense and |
2351 |
may screw up the menu completely. If no arguments are given or |
2352 |
the given arguments are invalid, the built in defaults are used: |
2353 |
one pixel above the item or title and two below. |
2354 |
|
2355 |
.I SubmenusLeft |
2356 |
mirrors the menu layout and behavior. Sub-menus pop up to the |
2357 |
left, the sub-menu triangle is drawn left and the mini icon and |
2358 |
side picture are drawn at the right side of the menu. The default |
2359 |
is |
2360 |
.IR SubmenusRight . |
2361 |
The position hints of a menu are also affected by this setting, |
2362 |
i.e. position hints using |
2363 |
.IR item " or " menu |
2364 |
as context rectangle and position hints using |
2365 |
.I m |
2366 |
offsets. |
2367 |
|
2368 |
.IR AutomaticHotkeys " and " AutomaticHotkeysOff |
2369 |
control the menu's ability to automatically provide hot-keys on |
2370 |
the first character of each menu item's label. This behavior is |
2371 |
always overridden if an explicit hot-key is assigned in the |
2372 |
.B AddToMenu |
2373 |
command. |
2374 |
|
2375 |
Examples: |
2376 |
.EX |
2377 |
MenuStyle * Mwm |
2378 |
MenuStyle * Foreground Black, Background gray40 |
2379 |
MenuStyle * Greyed gray70, ActiveFore White |
2380 |
MenuStyle * HilightBackOff, Hilight3DOff |
2381 |
MenuStyle * Font lucidasanstypewriter-14 |
2382 |
MenuStyle * MenuFace DGradient 64 darkgray \\ |
2383 |
MidnightBlue |
2384 |
|
2385 |
MenuStyle red Mwm |
2386 |
MenuStyle red Foreground Yellow |
2387 |
MenuStyle red Background Maroon |
2388 |
MenuStyle red Greyed Red, ActiveFore Red |
2389 |
MenuStyle red HilightBackOff, Hilight3DOff |
2390 |
MenuStyle red Font lucidasanstypewriter-12 |
2391 |
MenuStyle red MenuFace DGradient 64 Red Black |
2392 |
.EE |
2393 |
Note that all style options could be placed on a single line for |
2394 |
each style name. |
2395 |
|
2396 |
.TP |
2397 |
.BI "MenuStyle " "forecolor backcolor shadecolor font style" " [" anim "]" |
2398 |
This is the old syntax of the |
2399 |
.B MenuStyle |
2400 |
command. It is obsolete and may be removed in the future. Please |
2401 |
use the new syntax as described above. |
2402 |
|
2403 |
Sets the menu style. When using monochrome the colors are |
2404 |
ignored. The |
2405 |
.I shadecolor |
2406 |
is the one used to draw a menu-selection which is prohibited (or |
2407 |
not recommended) by the Mwm hints which an application has |
2408 |
specified. The style option is either |
2409 |
.IR Fvwm ", " Mwm " or " Win , |
2410 |
which changes the appearance and operation of the menus. |
2411 |
|
2412 |
.IR Mwm " and " Win |
2413 |
style menus popup sub-menus automatically. |
2414 |
.I win |
2415 |
menus indicate the current menu item by changing the background to |
2416 |
black. |
2417 |
.I fvwm |
2418 |
sub-menus overlap the parent menu, |
2419 |
.IR Mwm " and " win |
2420 |
style menus never overlap the parent menu. |
2421 |
|
2422 |
When the |
2423 |
.I anim |
2424 |
option is given, sub-menus that don't fit on the screen cause the |
2425 |
parent menu to be shifted to the left so the sub-menu can be |
2426 |
seen. See also |
2427 |
.B SetAnimation |
2428 |
command. |
2429 |
|
2430 |
.TP |
2431 |
.BI "Popup " PopupName " [" position "] [" default-action "]" |
2432 |
This built-in has two purposes: to bind a menu to a key or mouse |
2433 |
button, and to bind a sub-menu into a menu. The formats for the |
2434 |
two purposes differ slightly. The |
2435 |
.I position |
2436 |
arguments are the same as for |
2437 |
.BR Menu . |
2438 |
The command |
2439 |
.I default-action |
2440 |
is invoked if the user clicks a button to invoke the menu and |
2441 |
releases it immediately again (or hits the key rapidly twice if |
2442 |
the menu is bound to a key). If the default action is not |
2443 |
specified, double clicking on the menu does nothing. However, if |
2444 |
the menu begins with a menu item (i.e. not with a title or a |
2445 |
separator) and the default action is not given, double clicking |
2446 |
invokes the first item of the menu (but only if the pointer really |
2447 |
was over the item). |
2448 |
|
2449 |
To bind a previously defined pop-up menu to a key or mouse button: |
2450 |
.sp |
2451 |
.in +.25i |
2452 |
The following example binds mouse buttons 2 and 3 to a pop-up |
2453 |
called "Window Ops". The menu pops up if the buttons 2 or 3 are |
2454 |
pressed in the window frame, side-bar, or title-bar, with no |
2455 |
modifiers (none of shift, control, or meta). |
2456 |
.EX |
2457 |
Mouse 2 FST N Popup "Window Ops" |
2458 |
Mouse 3 FST N Popup "Window Ops" |
2459 |
.EE |
2460 |
Pop-ups can be bound to keys through the use of the |
2461 |
.B Key |
2462 |
built-in. Pop-ups can be operated without using the mouse by |
2463 |
binding to keys and operating via the up arrow, down arrow, and |
2464 |
enter keys. |
2465 |
.in -.25i |
2466 |
.sp |
2467 |
To bind a previously defined pop-up menu to another menu, for use |
2468 |
as a sub-menu: |
2469 |
.sp |
2470 |
.in +.25i |
2471 |
The following example defines a sub-menu "Quit-Verify" and binds |
2472 |
it into a main menu, called "RootMenu": |
2473 |
.EX |
2474 |
AddToMenu Quit-Verify |
2475 |
+ "Really Quit Fvwm?" Title |
2476 |
+ "Yes, Really Quit" Quit |
2477 |
+ "Restart Fvwm" Restart |
2478 |
+ "Restart Fvwm 1.xx" Restart fvwm1 -s |
2479 |
+ "" Nop |
2480 |
+ "No, Don't Quit" Nop |
2481 |
|
2482 |
AddToMenu RootMenu "Root Menu" Title |
2483 |
+ "Open XTerm Window" Popup NewWindowMenu |
2484 |
+ "Login as Root" Exec exec xterm \\ |
2485 |
-fg green -T Root \\ |
2486 |
-n Root -e su - |
2487 |
+ "Login as Anyone" Popup AnyoneMenu |
2488 |
+ "Remote Hosts" Popup HostMenu |
2489 |
+ "" Nop |
2490 |
+ "X utilities" Popup Xutils |
2491 |
+ "" Nop |
2492 |
+ "Fvwm Modules" Popup Module-Popup |
2493 |
+ "Fvwm Window Ops" Popup Window-Ops |
2494 |
+ "" Nop |
2495 |
+ "Previous Focus" Prev (AcceptsFocus) Focus |
2496 |
+ "Next Focus" Next (AcceptsFocus) Focus |
2497 |
+ "" Nop |
2498 |
+ "Refresh screen" Refresh |
2499 |
+ "Recapture screen" Recapture |
2500 |
+ "" Nop |
2501 |
+ "Reset X defaults" Exec xrdb -load \\ |
2502 |
$HOME/.Xdefaults |
2503 |
+ "" Nop |
2504 |
+ "" Nop |
2505 |
+ Quit Popup Quit-Verify |
2506 |
.EE |
2507 |
.in -.25i |
2508 |
.sp |
2509 |
.B Popup |
2510 |
differs from |
2511 |
.B Menu |
2512 |
in that pop-ups do not stay up if the user simply clicks. These |
2513 |
are popup-menus, which are a little hard on the wrist. |
2514 |
.B Menu |
2515 |
menus stay up on a click action. See the |
2516 |
.B Menu |
2517 |
command for an explanation of the interactive behavior of menus. A |
2518 |
menu can be open up to ten times at once, so a menu may even use |
2519 |
itself or any of its predecessors as a sub-menu. |
2520 |
|
2521 |
.TP |
2522 |
.BI "Title" |
2523 |
Does nothing. This is used to insert a title line in a popup or |
2524 |
menu. |
2525 |
|
2526 |
.SS MISCELLANEOUS COMMANDS |
2527 |
|
2528 |
.TP |
2529 |
.BI "BugOpts [" option " [" bool "]], " ... |
2530 |
This command controls several workarounds for bugs in third party |
2531 |
programs. The individual options are separated by commas. The |
2532 |
optional argument |
2533 |
.I bool |
2534 |
is a boolean argument and controls if the bug workaround is |
2535 |
enabled or not. It can either be "True" or "False" to turn the |
2536 |
option on or off, or "toggle" to switch is back and forth. If |
2537 |
.I bool |
2538 |
is omitted, the default setting is restored. |
2539 |
|
2540 |
.I FlickeringMoveWorkaround |
2541 |
disables ConfigureNotify events that are usually sent to |
2542 |
an application while it is moved. If some windows flicker |
2543 |
annoyingly while being moved, this option may help you. Note that |
2544 |
if this problem occurs it is not an fvwm bug, it is a problem of the |
2545 |
application. |
2546 |
|
2547 |
.I MixedVisualWorkaround |
2548 |
makes fvwm install the root colormap before it does some |
2549 |
operations using the root window visuals. This is only useful |
2550 |
when the |
2551 |
.B -visual |
2552 |
option is used to start fvwm and then only with some |
2553 |
configurations of some servers (e.g. Exceed 6.0 with an 8 bit |
2554 |
PseudoColor root and fvwm using a 24 bit TrueColor visual). |
2555 |
|
2556 |
The |
2557 |
.I ModalityIsEvil |
2558 |
option controls whether Motif applications have the ability to have |
2559 |
modal dialogs (dialogs that force you to close them first before |
2560 |
you can do anything else). The default is to not allow |
2561 |
applications to have modal dialogs. Use this option with care. |
2562 |
Once this option is turned on, you have to restart fvwm to turn it |
2563 |
off. |
2564 |
|
2565 |
.I RaiseOverNativeWindows |
2566 |
makes fvwm try to raise the windows it manages over native windows |
2567 |
of the X servers host system. This is needed for some X servers |
2568 |
running under Windows or Windows NT. Fvwm tries to detect if it |
2569 |
is running under such an X server and initializes the flag |
2570 |
accordingly. |
2571 |
|
2572 |
.I RaiseOverUnmanaged |
2573 |
makes fvwm try to raise the windows it manages over |
2574 |
override_redirect windows. This is used to cope with ill-mannered |
2575 |
applications that use long-lived windows of this sort, contrary to |
2576 |
.SM ICCCM |
2577 |
conventions. |
2578 |
|
2579 |
.I FlickeringQtDialogsWorkaround |
2580 |
suppresses flickering of the focused window in some modules when |
2581 |
using KDE or Qt applications with application modal dialog |
2582 |
windows. By default this option is turned on. This option may be |
2583 |
visually disturbing for other applications using windows not |
2584 |
managed by fvwm. Since these applications are rare it is most |
2585 |
likely safe to leave this option at its default. |
2586 |
|
2587 |
.TP |
2588 |
.BI "BusyCursor [" "Option bool" "], " ... |
2589 |
This command controls the cursor during the execution of certain |
2590 |
commands. |
2591 |
.I Option |
2592 |
can be |
2593 |
.IR DynamicMenu ", " ModuleSynchronous ", " Read ", " Wait ", " * . |
2594 |
An option must be followed by a boolean argument |
2595 |
.IR bool . |
2596 |
You can use commas to separate individual options. If you set an |
2597 |
option to "True", then when the corresponding command is run, fvwm |
2598 |
displays the cursor of the |
2599 |
.I WAIT |
2600 |
context of the |
2601 |
.B CursorStyle |
2602 |
command. "False" forces to not display the cursor. The default is: |
2603 |
.EX |
2604 |
BusyCursor DynamicMenu False, \\ |
2605 |
ModuleSynchronous False, Read False, \\ |
2606 |
Recapture True, Wait False |
2607 |
.EE |
2608 |
The option |
2609 |
.I * |
2610 |
refers to all available options. |
2611 |
|
2612 |
The |
2613 |
.I Read |
2614 |
option also controls the |
2615 |
.B PipeRead |
2616 |
command. |
2617 |
|
2618 |
The |
2619 |
.I DynamicMenu |
2620 |
option affects the |
2621 |
.I DynamicPopupAction |
2622 |
and |
2623 |
.I MissingSubmenuFunction |
2624 |
options of the |
2625 |
.B AddToMenu |
2626 |
command. If this option is set to "False", then the busy cursor |
2627 |
is not displayed during a dynamic menu command even if this |
2628 |
command is a |
2629 |
.BR Read " or " PipeRead |
2630 |
command and the |
2631 |
.I Read |
2632 |
option is set to "True". |
2633 |
|
2634 |
The |
2635 |
.I Wait |
2636 |
option affects only the root cursor. During a wait pause the root |
2637 |
cursor is replaced by the busy cursor and fvwm is still fully |
2638 |
functional (you can escape from the pause, see the |
2639 |
.B EscapeFunc |
2640 |
command). If you want to use this option and if you do not use |
2641 |
the default root cursor, you must set your root cursor with the |
2642 |
.B CursorStyle |
2643 |
command. |
2644 |
|
2645 |
.TP |
2646 |
.BI "ClickTime [" delay "]" |
2647 |
Specifies the maximum delay in milliseconds between a button press |
2648 |
and a button release for the |
2649 |
.B Function |
2650 |
built-in to consider the action a mouse click. The default delay |
2651 |
is 150 milliseconds. Omitting the delay value resets the |
2652 |
.B ClickTime |
2653 |
to the default. |
2654 |
|
2655 |
.TP |
2656 |
.BI "ColorLimit " limit |
2657 |
Specifies a |
2658 |
.I limit |
2659 |
on the colors used in pixmaps used by fvwm. Zero (the default) |
2660 |
sets no limit. Fvwm uses pixmaps for icons, mini-icons, and |
2661 |
pixmap borders, menu backgrounds and titles. This command limits |
2662 |
pixmap colors to a set of colors that starts out with common |
2663 |
colors. The current list contains about 60 colors and starts with |
2664 |
white, black, grey, green, blue, red, cyan, yellow, and magenta. |
2665 |
The command |
2666 |
.EX |
2667 |
ColorLimit 9 |
2668 |
.EE |
2669 |
would limit pixmaps to these 9 colors. |
2670 |
|
2671 |
It makes the most sense to put this command at the front of the |
2672 |
.I .fvwm2rc |
2673 |
file. This command should occur before any menu definitions that |
2674 |
contain mini-icons. |
2675 |
|
2676 |
Solid frame and title colors (including shadows and gradients) are |
2677 |
not controlled by this command. |
2678 |
|
2679 |
This command only makes sense on screens that display a limited |
2680 |
number of colors at once. If your display can display more than |
2681 |
2 million colors at once, this command is ignored. Screens that |
2682 |
only display 256 colors at once are known as 8 bit displays. The 2 |
2683 |
million color cutoff point corresponds to 21 bit color, the most |
2684 |
common screen that exceeds this limit would be 24 bit. |
2685 |
|
2686 |
On 8 bit displays, the default color limit is set to the size of |
2687 |
the built in table (about 60). We recommend that you start with |
2688 |
the default value, and not include this command in your |
2689 |
.IR .fvwm2rc . |
2690 |
|
2691 |
.TP |
2692 |
.BI "ColormapFocus " FollowsMouse | FollowsFocus |
2693 |
By default, fvwm installs the colormap of the window that the |
2694 |
cursor is in. If you use |
2695 |
.EX |
2696 |
ColormapFocus FollowsFocus |
2697 |
.EE |
2698 |
then the installed colormap is the one for the window that |
2699 |
currently has the keyboard focus. |
2700 |
|
2701 |
.IP "\fBCursorStyle\fP \fIcontext\fP \fB[\fP \fInumber\fP \ |
2702 |
\fB|\fP \fIname\fP \ |
2703 |
\fB|\fP \fIxpm\fP \ |
2704 |
\fB|\fP \fINone\fP \ |
2705 |
\fB|\fP \fITiny\fP \ |
2706 |
\fB[\fP \fIfore back\fP \ |
2707 |
\fB]]\fP" |
2708 |
Defines a new cursor for the specified context. The various |
2709 |
contexts are: |
2710 |
|
2711 |
.in +.5i |
2712 |
.BR "POSITION " (top_left_corner) |
2713 |
.in +.3i |
2714 |
used when initially placing windows |
2715 |
.in -.3i |
2716 |
|
2717 |
.BR "TITLE " (top_left_arrow) |
2718 |
.in +.3i |
2719 |
used in a window title-bar |
2720 |
.in -.3i |
2721 |
|
2722 |
.BR "DEFAULT " (top_left_arrow) |
2723 |
.in +.3i |
2724 |
used in windows that don't set their cursor |
2725 |
.in -.3i |
2726 |
|
2727 |
.BR "SYS " (hand2) |
2728 |
.in +.3i |
2729 |
used in one of the title-bar buttons |
2730 |
.in -.3i |
2731 |
|
2732 |
.BR "MOVE " (fleur) |
2733 |
.in +.3i |
2734 |
used when moving or resizing windows |
2735 |
.in -.3i |
2736 |
|
2737 |
.BR "RESIZE " (sizing) |
2738 |
.in +.3i |
2739 |
used when moving or resizing windows |
2740 |
.in -.3i |
2741 |
|
2742 |
.BR "WAIT " (watch) |
2743 |
.in +.3i |
2744 |
used during certain fvwm commands (see |
2745 |
.B BusyCursor |
2746 |
for details). |
2747 |
.in -.3i |
2748 |
|
2749 |
.BR "MENU " (top_left_arrow) |
2750 |
.in +.3i |
2751 |
used in menus |
2752 |
.in -.3i |
2753 |
|
2754 |
.BR "SELECT " (crosshair) |
2755 |
.in +.3i |
2756 |
used when the user is required to select a window |
2757 |
.in -.3i |
2758 |
|
2759 |
.BR "DESTROY " (pirate) |
2760 |
.in +.3i |
2761 |
used for DESTROY, CLOSE, and DELETE built-ins |
2762 |
.in -.3i |
2763 |
|
2764 |
.BR "TOP " (top_side) |
2765 |
.in +.3i |
2766 |
used in the top side-bar of a window |
2767 |
.in -.3i |
2768 |
|
2769 |
.BR "RIGHT " (right_side) |
2770 |
.in +.3i |
2771 |
used in the right side-bar of a window |
2772 |
.in -.3i |
2773 |
|
2774 |
.BR "BOTTOM " (bottom_side) |
2775 |
.in +.3i |
2776 |
used in the bottom side-bar of a window |
2777 |
.in -.3i |
2778 |
|
2779 |
.BR "LEFT " (left_side) |
2780 |
.in +.3i |
2781 |
used in the left side-bar of a window |
2782 |
.in -.3i |
2783 |
|
2784 |
.BR "TOP_LEFT " (top_left_corner) |
2785 |
.in +.3i |
2786 |
used in the top left corner of a window |
2787 |
.in -.3i |
2788 |
|
2789 |
.BR "TOP_RIGHT " (top_right_corner) |
2790 |
.in +.3i |
2791 |
used in the top right corner of a window |
2792 |
.in -.3i |
2793 |
|
2794 |
.BR "BOTTOM_LEFT " (bottom_left_corner) |
2795 |
.in +.3i |
2796 |
used in the bottom left corner of a window |
2797 |
.in -.3i |
2798 |
|
2799 |
.BR "BOTTOM_RIGHT " (bottom_right_corner) |
2800 |
.in +.3i |
2801 |
used in the bottom right corner of a window |
2802 |
.in -.3i |
2803 |
|
2804 |
.BR "TOP_EDGE " (top_side) |
2805 |
.in +.3i |
2806 |
used at the top edge of the screen. |
2807 |
.in -.3i |
2808 |
|
2809 |
.BR "RIGHT_EDGE " (right_side) |
2810 |
.in +.3i |
2811 |
used at the right edge of the screen. |
2812 |
.in -.3i |
2813 |
|
2814 |
.BR "BOTTOM_EDGE " (bottom_side) |
2815 |
.in +.3i |
2816 |
used at the bottom edge of the screen. |
2817 |
.in -.3i |
2818 |
|
2819 |
.BR "LEFT_EDGE " (left_side) |
2820 |
.in +.3i |
2821 |
used at the left edge of the screen. |
2822 |
.in -.3i |
2823 |
|
2824 |
.BR "ROOT " (left_ptr) |
2825 |
.in +.3i |
2826 |
used as the root cursor. |
2827 |
.in -.3i |
2828 |
|
2829 |
.BR "STROKE " (plus) |
2830 |
.in +.3i |
2831 |
used during a |
2832 |
.B StrokeFunc |
2833 |
command. |
2834 |
.in -.3i |
2835 |
.in -.5i |
2836 |
|
2837 |
The defaults are shown in parentheses above. If you ever want to |
2838 |
restore the default cursor for a specific context you can omit the |
2839 |
second argument. |
2840 |
|
2841 |
The second is either the numeric value of the cursor as defined in |
2842 |
the include file |
2843 |
.I X11/cursorfont.h |
2844 |
or its name (without the XC_ prefix) or the name of an xpm file |
2845 |
containing a pixmap of depth 1 with a mask and an optional |
2846 |
hot-spot (if no hot-spot is defined, the hot-spot is placed in the |
2847 |
center of the image). Furthermore the name can be |
2848 |
.I None |
2849 |
(no cursor) or |
2850 |
.I Tiny |
2851 |
(a single pixel as the cursor). For example: |
2852 |
.EX |
2853 |
# make the kill cursor be XC_gumby (both forms work): |
2854 |
CursorStyle DESTROY 56 |
2855 |
CursorStyle DESTROY gumby |
2856 |
|
2857 |
CursorStyle TOP_LEFT topl.xpm |
2858 |
CursorStyle ROOT hand1 yellow black |
2859 |
.EE |
2860 |
The optional |
2861 |
.IR fg " and " bg |
2862 |
arguments specify the foreground and background colors for the |
2863 |
cursor, defaulting to black and white. |
2864 |
|
2865 |
.TP |
2866 |
.BI "DefaultColors [" "foreground background" "]" |
2867 |
.B DefaultColors |
2868 |
sets the default foreground and background colors used in |
2869 |
miscellaneous windows created by fvwm, for example in the geometry |
2870 |
feedback windows during a move or resize operation. If you don't |
2871 |
want to change one color or the other, use - as its color name. |
2872 |
To revert to the builtin default colors omit both color names. |
2873 |
Note that the default colors are not used in menus, window titles |
2874 |
or icon titles. |
2875 |
|
2876 |
.TP |
2877 |
.BI "DefaultColorset [" num "]" |
2878 |
.B DefaultColorset |
2879 |
sets the colorset used by the windows controlled by the |
2880 |
.B DefaultColors |
2881 |
command. To revert back to the |
2882 |
.B DefaultColors |
2883 |
colors use |
2884 |
.EX |
2885 |
DefaultColorset -1 |
2886 |
.EE |
2887 |
or any variant of the |
2888 |
.B DefaultColors |
2889 |
command. |
2890 |
|
2891 |
.TP |
2892 |
.BI "DefaultFont [" fontname "]" |
2893 |
.B DefaultFont |
2894 |
sets the default font to font |
2895 |
.IR fontname . |
2896 |
The default font is used by fvwm whenever no other font has been |
2897 |
specified. To reset the default font to the built in default, |
2898 |
omit the argument. The default font is used for menus, window |
2899 |
titles, icon titles as well as the geometry feedback windows |
2900 |
during a move or resize operation. To override the default font |
2901 |
in a specific context, use the |
2902 |
.BR "Style * Font" ", " "Style * IconFont" ", or " MenuStyle |
2903 |
commands. |
2904 |
|
2905 |
.TP |
2906 |
.BI "DefaultIcon " filename |
2907 |
sets the default icon which is used if a window has neither an |
2908 |
client-supplied icon nor an icon supplied via the |
2909 |
.I Icon |
2910 |
option of the |
2911 |
.B Style |
2912 |
command. |
2913 |
|
2914 |
.TP |
2915 |
.BI "DefaultLayers " "bottom put top" |
2916 |
changes the layers that are used for the |
2917 |
.IR StaysOnBottom ", " StaysPut ", " StaysOnTop |
2918 |
.B Style |
2919 |
options. Initially, the layers 2, 4 and 6 are used. |
2920 |
|
2921 |
.TP |
2922 |
.BI "Emulate " Fvwm | Mwm | Win |
2923 |
This command affects how miscellaneous things are done by |
2924 |
fvwm. For example where the move/resize feedback window appears |
2925 |
depends on this command. To have more Mwm- or Win-like behavior |
2926 |
you can call |
2927 |
.BI Emulate |
2928 |
with |
2929 |
.IR Mwm " or " Win |
2930 |
as its argument. With |
2931 |
.I Mwm |
2932 |
resize and move feedback windows are in the center of the screen, |
2933 |
instead of the upper left corner. |
2934 |
|
2935 |
.TP |
2936 |
.BI "EscapeFunc" |
2937 |
By default the key sequence |
2938 |
.SM Ctrl-Alt-Escape |
2939 |
allows to escape from a |
2940 |
.B Wait |
2941 |
pause and from a locked |
2942 |
.B ModuleSynchronous |
2943 |
command. The |
2944 |
.B EscapeFunc |
2945 |
command used with the |
2946 |
.B Key |
2947 |
command allows to configure this key sequence. An example: |
2948 |
.EX |
2949 |
Key Escape A MC - |
2950 |
Key Escape A S EscapeFunc |
2951 |
.EE |
2952 |
replaces the |
2953 |
.SM Ctrl-Alt-Escape |
2954 |
key sequence with |
2955 |
.SM Shift-Escape |
2956 |
for aborting a |
2957 |
.B Wait |
2958 |
pause and |
2959 |
.B ModuleSynchronous |
2960 |
command. |
2961 |
.B EscapeFunc |
2962 |
used outside the |
2963 |
.B Key |
2964 |
command does nothing. |
2965 |
|
2966 |
.TP |
2967 |
.BI "FakeClick [" "command value" "] ..." |
2968 |
This command is mainly intended for debugging fvwm and no |
2969 |
guarantees are made that it works for you. |
2970 |
.B FakeClick |
2971 |
can simulate mouse button press and release events and pass them |
2972 |
to fvwm or the applications. The parameters are a list of |
2973 |
commands which consist of pairs of |
2974 |
.I command |
2975 |
tokens and integer |
2976 |
.I values, |
2977 |
The |
2978 |
.IR press " and " release |
2979 |
commands are followed by the appropriate mouse button number and |
2980 |
generate a button press or release event on the window below the |
2981 |
pointer. The |
2982 |
.I wait |
2983 |
commands pauses fvwm for the given number of milliseconds. The |
2984 |
.I modifiers |
2985 |
command simulates pressing or releasing modifier keys. The values |
2986 |
1 to 5 are mapped to |
2987 |
.SM Mod1 |
2988 |
to |
2989 |
.SM Mod5 |
2990 |
while 6, 7 and 8 are mapped to |
2991 |
.SM Shift, |
2992 |
.SM Lock |
2993 |
and |
2994 |
.SM Control. |
2995 |
The modifier is set for any further button events. To release a |
2996 |
modifier key, use the corresponding negative number. The |
2997 |
.I depth |
2998 |
command determines to which window the button events are sent. |
2999 |
With a depth of 1, all events go to the root window, regardless of |
3000 |
the pointer's position. With 2, the event is passed to the top |
3001 |
level window under the pointer which is usually the frame window. |
3002 |
With 3, events go to the client window. Higher numbers go to |
3003 |
successive sub windows. Zero (0) goes to the smallest window that |
3004 |
contains the pointer. Note that events propagate upward. |
3005 |
.EX |
3006 |
FakeClick depth 2 press 1 wait 250 release 1 |
3007 |
.EE |
3008 |
This simulates a click with button 1 in the parent window (depth |
3009 |
2) with a delay of 250 milliseconds between the press and the |
3010 |
release. |
3011 |
|
3012 |
.TP |
3013 |
.BI "GlobalOpts [" options "]" |
3014 |
As announced in the past, this command has been removed. Please |
3015 |
replace the global options in your configuration file according to |
3016 |
the following table: |
3017 |
.EX |
3018 |
GlobalOpts WindowShadeShrinks |
3019 |
--> |
3020 |
Style * WindowShadeShrinks |
3021 |
|
3022 |
GlobalOpts WindowShadeScrolls |
3023 |
--> |
3024 |
Style * WindowShadeScrolls |
3025 |
|
3026 |
GlobalOpts SmartPlacementIsReallySmart |
3027 |
--> |
3028 |
Style * MinOverlapPlacement |
3029 |
|
3030 |
GlobalOpts SmartPlacementIsNormal |
3031 |
--> |
3032 |
Style * TileCascadePlacement |
3033 |
|
3034 |
GlobalOpts ClickToFocusDoesntPassClick |
3035 |
--> |
3036 |
Style * ClickToFocusPassesClickOff |
3037 |
|
3038 |
GlobalOpts ClickToFocusPassesClick |
3039 |
--> |
3040 |
Style * ClickToFocusPassesClick |
3041 |
|
3042 |
GlobalOpts ClickToFocusDoesntRaise |
3043 |
--> |
3044 |
Style * ClickToFocusRaisesOff |
3045 |
|
3046 |
GlobalOpts ClickToFocusRaises |
3047 |
--> |
3048 |
Style * ClickToFocusRaises |
3049 |
|
3050 |
GlobalOpts MouseFocusClickDoesntRaise |
3051 |
--> |
3052 |
Style * MouseFocusClickRaisesOff |
3053 |
|
3054 |
GlobalOpts MouseFocusClickRaises |
3055 |
--> |
3056 |
Style * MouseFocusClickRaises |
3057 |
|
3058 |
GlobalOpts NoStipledTitles |
3059 |
--> |
3060 |
Style * StippledTitleOff |
3061 |
|
3062 |
GlobalOpts StipledTitles |
3063 |
--> |
3064 |
Style * StippledTitle |
3065 |
|
3066 |
GlobalOpts CaptureHonorsStartsOnPage |
3067 |
--> |
3068 |
Style * CaptureHonorsStartsOnPage |
3069 |
|
3070 |
GlobalOpts CaptureIgnoresStartsOnPage |
3071 |
--> |
3072 |
Style * CaptureIgnoresStartsOnPage |
3073 |
|
3074 |
GlobalOpts RecaptureHonorsStartsOnPage |
3075 |
--> |
3076 |
Style * RecaptureHonorsStartsOnPage |
3077 |
|
3078 |
GlobalOpts RecaptureIgnoresStartsOnPage |
3079 |
--> |
3080 |
Style * RecaptureIgnoresStartsOnPage |
3081 |
|
3082 |
GlobalOpts ActivePlacementHonorsStartsOnPage |
3083 |
--> |
3084 |
Style * ManualPlacementHonorsStartsOnPage |
3085 |
|
3086 |
GlobalOpts ActivePlacementIgnoresStartsOnPage |
3087 |
--> |
3088 |
Style * ManualPlacementIgnoresStartsOnPage |
3089 |
|
3090 |
GlobalOpts RaiseOverNativeWindows |
3091 |
--> |
3092 |
BugOpts RaiseOverNativeWindows on |
3093 |
|
3094 |
GlobalOpts IgnoreNativeWindows |
3095 |
--> |
3096 |
BugOpts RaiseOverNativeWindows off |
3097 |
|
3098 |
.EE |
3099 |
|
3100 |
.TP |
3101 |
.BI "HilightColor " "textcolor backgroundcolor" |
3102 |
This command is obsoleted by the |
3103 |
.B Style |
3104 |
options |
3105 |
.IR HilightFore " and " HilightBack . |
3106 |
Please use |
3107 |
.EX |
3108 |
Style * HilightFore textcolor, \\ |
3109 |
HilightBack backgroundcolor |
3110 |
.EE |
3111 |
instead. |
3112 |
|
3113 |
.TP |
3114 |
.BI "HilightColorset [" num "]" |
3115 |
This command is obsoleted by the |
3116 |
.B Style |
3117 |
option |
3118 |
.IR HilightColorset . |
3119 |
Please use |
3120 |
.EX |
3121 |
Style * HilightColorset num |
3122 |
.EE |
3123 |
instead. |
3124 |
|
3125 |
.TP |
3126 |
.BI "IconFont [" fontname "]" |
3127 |
This command is obsoleted by the |
3128 |
.B Style |
3129 |
option |
3130 |
.IR IconFont . |
3131 |
Please use |
3132 |
.EX |
3133 |
Style * IconFont fontname |
3134 |
.EE |
3135 |
instead. |
3136 |
|
3137 |
.TP |
3138 |
.BI "IconPath " path |
3139 |
This command is obsolete. Please use |
3140 |
.B ImagePath |
3141 |
instead. |
3142 |
|
3143 |
.TP |
3144 |
.BI "ImagePath " path |
3145 |
Specifies a colon separated list of directories in which to search |
3146 |
for images (both monochrome and pixmap). To find an image given |
3147 |
by a relative pathname, fvwm looks into each directory listed in |
3148 |
turn, and uses the first file found. |
3149 |
|
3150 |
The |
3151 |
.I path |
3152 |
may contain environment variables such as |
3153 |
.IR $HOME " (or " ${HOME} ). |
3154 |
Further, a '+' in the |
3155 |
.I path |
3156 |
is expanded to the previous value of the path, allowing appending |
3157 |
or prepending to the path easily. |
3158 |
|
3159 |
For example: |
3160 |
.EX |
3161 |
ImagePath $HOME/icons:+:/usr/include/X11/bitmaps |
3162 |
.EE |
3163 |
Note: if the |
3164 |
.B FvwmM4 |
3165 |
module is used to parse your |
3166 |
.I .fvwm2rc |
3167 |
files, then m4 may want to mangle the word "include" which |
3168 |
frequently shows up in the |
3169 |
.B ImagePath |
3170 |
command. To fix this one may add |
3171 |
.EX |
3172 |
undefine(`include') |
3173 |
.EE |
3174 |
prior to the |
3175 |
.B ImagePath |
3176 |
command, or better: use the |
3177 |
.I -m4-prefix |
3178 |
option to force all |
3179 |
.B m4 |
3180 |
directives to have a prefix of "m4_" (see the |
3181 |
.B FvwmM4 |
3182 |
man page). |
3183 |
|
3184 |
.TP |
3185 |
.BI "PixmapPath " path |
3186 |
This command is obsolete. Please use |
3187 |
.B ImagePath |
3188 |
instead. |
3189 |
|
3190 |
.TP |
3191 |
.BI "WindowFont [" fontname "]" |
3192 |
This command is obsoleted by the |
3193 |
.B Style |
3194 |
option |
3195 |
.IR Font . |
3196 |
Please use |
3197 |
.EX |
3198 |
Style * Font fontname |
3199 |
.EE |
3200 |
instead. |
3201 |
|
3202 |
.IP "\fBWindowList [(\fP \fIconditions\fP \ |
3203 |
\fB)] [\fP \fIposition\fP \ |
3204 |
\fB] [\fP \fIoptions\fP \ |
3205 |
\fB] [\fP \fIdouble-click-action\fP \ |
3206 |
\fB]\fP" |
3207 |
Generates a pop-up menu (and pops it up) in which the title and |
3208 |
geometry of each of the windows currently on the desktop are |
3209 |
shown. |
3210 |
|
3211 |
The format of the geometry part is: |
3212 |
. IR desk "(" layer "): " "x-geometry sticky" , |
3213 |
where |
3214 |
.IR desk " and " layer |
3215 |
are the corresponding numbers and |
3216 |
.I sticky |
3217 |
is empty or a capital S. The geometry of iconified windows is |
3218 |
shown in parentheses. Selecting an item from the window list |
3219 |
pop-up menu causes the interpreted function "WindowListFunc" to be |
3220 |
run with the window id of that window passed in as $0. The default |
3221 |
"WindowListFunc" looks like this: |
3222 |
.EX |
3223 |
AddToFunc WindowListFunc |
3224 |
+ I WindowId $0 Iconify off |
3225 |
+ I WindowId $0 FlipFocus |
3226 |
+ I WindowId $0 Raise |
3227 |
+ I WindowId $0 WarpToWindow 5p 5p |
3228 |
.EE |
3229 |
You can destroy the builtin "WindowListFunc" and create your own |
3230 |
if these defaults do not suit you. |
3231 |
|
3232 |
The window list menu uses the "WindowList" menu style if it is |
3233 |
defined (see |
3234 |
.B MenuStyle |
3235 |
command). Otherwise the default menu style is used. To switch |
3236 |
back to the default menu style, issue the command |
3237 |
.EX |
3238 |
DestroyMenuStyle WindowList |
3239 |
.EE |
3240 |
Example: |
3241 |
.EX |
3242 |
MenuStyle WindowList SelectOnRelease Meta_L |
3243 |
.EE |
3244 |
The |
3245 |
.I conditions |
3246 |
can be used to exclude certain windows from the window |
3247 |
list. Please refer to the |
3248 |
.B Current |
3249 |
command for details. Only windows that match the given conditions |
3250 |
are displayed in the window list. The |
3251 |
.I options |
3252 |
below work vice versa: windows that would otherwise not be |
3253 |
included in the window list can be selected with them. The |
3254 |
.I conditions |
3255 |
always override the |
3256 |
.IR options . |
3257 |
|
3258 |
|
3259 |
The |
3260 |
.I position |
3261 |
arguments are the same as for |
3262 |
.BR Menu . |
3263 |
The command |
3264 |
.I double-click-action |
3265 |
is invoked if the user double-clicks (or hits the key rapidly |
3266 |
twice if the menu is bound to a key) when bringing the window |
3267 |
list. The |
3268 |
.I double-click-action |
3269 |
must be quoted if it consists of more than one word. |
3270 |
|
3271 |
The |
3272 |
.I double-click-action |
3273 |
is useful to define a default window if you have bound the window |
3274 |
list to a key (or button) like this: |
3275 |
.EX |
3276 |
# Here we call an existing function, but it may be different |
3277 |
AddToFunc SwitchToWindow |
3278 |
+ I WindowListFunc $w |
3279 |
|
3280 |
Key Tab A M WindowList "Prev SwitchToWindow" |
3281 |
.EE |
3282 |
Hitting |
3283 |
.SM Alt-Tab |
3284 |
once it brings up the window list, if you hit it twice the focus |
3285 |
is flipped between the current and the last focused window. With |
3286 |
the proper |
3287 |
.I SelectOnRelease |
3288 |
menu style (see example above) a window is selected as soon as you |
3289 |
release the |
3290 |
.SM Alt |
3291 |
key. |
3292 |
|
3293 |
The |
3294 |
.I options |
3295 |
passed to WindowList can be |
3296 |
.IR NoGeometry , |
3297 |
.IR NoGeometryWithInfo , |
3298 |
.IR "Function funcname" , |
3299 |
.IR "Desk desknum" , |
3300 |
.IR CurrentDesk , |
3301 |
.IR NoIcons " / " Icons " / " OnlyIcons , |
3302 |
.IR NoNormal " / " Normal " / " OnlyNormal , |
3303 |
.IR NoSticky " / " Sticky " / " OnlySticky , |
3304 |
.IR NoOnTop " / " OnTop " / " OnlyOnTop , |
3305 |
.IR NoOnBottom " / " OnBottom " / " OnlyOnBottom , |
3306 |
.IR "Layer m [n]" , |
3307 |
.IR UseListSkip " / " OnlyListSkip , |
3308 |
.IR NoDeskSort , |
3309 |
.IR ReverseOrder , |
3310 |
.IR UseIconName , |
3311 |
.IR Alphabetic " / " NotAlphabetic , |
3312 |
.IR NoHotkeys , |
3313 |
.IR SelectOnRelease . |
3314 |
|
3315 |
(Note - normal means not iconic, sticky, or on top) |
3316 |
|
3317 |
The |
3318 |
.I SelectOnRelease |
3319 |
option works exactly like the |
3320 |
.B MenuStyle |
3321 |
option with the same name, but overrides the option given in a |
3322 |
menu style. By default, this option is set to the left |
3323 |
.SM Alt |
3324 |
key. To switch it off, use |
3325 |
.I SelectOnRelease |
3326 |
without a key name. |
3327 |
|
3328 |
If you pass in a function via |
3329 |
.IR "Function funcname" , |
3330 |
$0 is the window id: |
3331 |
.EX |
3332 |
AddToFunc IFunc I WindowId $0 Iconify toggle |
3333 |
WindowList Function IFunc, NoSticky, \\ |
3334 |
CurrentDesk, NoIcons |
3335 |
.EE |
3336 |
If you use the |
3337 |
.IB "Layer m " [ "n" ] |
3338 |
option, only windows in layers between m and n are displayed. n |
3339 |
defaults to m. With the |
3340 |
.I ReverseOrder |
3341 |
option the order of the windows in the list is reversed. |
3342 |
|
3343 |
If you wanted to use the |
3344 |
.B WindowList |
3345 |
as an icon manager, you could invoke the following: |
3346 |
.EX |
3347 |
WindowList OnlyIcons, Sticky, OnTop, Geometry |
3348 |
.EE |
3349 |
(Note - the |
3350 |
.I Only |
3351 |
options essentially wipe out all other ones... but the |
3352 |
.I OnlyListSkip |
3353 |
option which just causes |
3354 |
.B WindowList |
3355 |
to only consider the windows with |
3356 |
.I WindowListSkip |
3357 |
style.) |
3358 |
|
3359 |
.TP |
3360 |
.BI "+" |
3361 |
Used to continue adding to the last specified decor, function or |
3362 |
menu. See the discussion for |
3363 |
.BR AddToDecor ", " AddToFunc ", and " AddToMenu . |
3364 |
|
3365 |
|
3366 |
.SS COMMANDS AFFECTING WINDOW MOVEMENT AND PLACEMENT |
3367 |
|
3368 |
.TP |
3369 |
.BI "AnimatedMove " "x y" " [" Warp "]" |
3370 |
Move a window in an animated fashion. Similar to |
3371 |
.B Move |
3372 |
command below. The options are the same, except they are required, |
3373 |
since it doesn't make sense to have a user move the window |
3374 |
interactively and animatedly. If the optional argument |
3375 |
.I Warp |
3376 |
is specified the pointer is warped with the window. |
3377 |
|
3378 |
.TP |
3379 |
.BI "HideGeometryWindow [" Never | Move | Resize "]" |
3380 |
Hides the position or size window that is usually shown when a |
3381 |
window is moved or resized interactively. To switch it off only |
3382 |
for move or resize operations the optional parameters |
3383 |
.IR Move " and " Resize |
3384 |
can be used respectively. To switch both on again use the |
3385 |
.I Never |
3386 |
option. |
3387 |
|
3388 |
.TP |
3389 |
.BI "Layer [" "arg1 arg2" "] | [" default "]" |
3390 |
Puts the current window in a new layer. If |
3391 |
.I arg1 |
3392 |
is non zero then the next layer is the current layer number plus |
3393 |
.IR arg1 . |
3394 |
If |
3395 |
.I arg1 |
3396 |
is zero then the new layer is |
3397 |
.IR arg2 . |
3398 |
|
3399 |
As a special case, |
3400 |
.I default |
3401 |
puts the window in its default layer, i.e. the layer it was |
3402 |
initially in. The same happens if no or invalid arguments are |
3403 |
specified. |
3404 |
|
3405 |
.TP |
3406 |
.BI "Lower" |
3407 |
Allows the user to lower a window. Note that this lowers a window |
3408 |
only in its layer. To bring a window to the absolute bottom, use |
3409 |
.EX |
3410 |
AddToFunc lower-to-bottom |
3411 |
+ I Layer 0 0 |
3412 |
+ I Lower |
3413 |
.EE |
3414 |
|
3415 |
.IP "\fBMove [[\fP \fIw\fP \ |
3416 |
\fB|\fP \fIm\fP \ |
3417 |
\fB]\fP \fIx\fP \ |
3418 |
\fB[\fP \fIp\fP \ |
3419 |
\fB] [\fP \fIw\fP \ |
3420 |
\fB|\fP \fIm\fP \ |
3421 |
\fB]\fP \fIy\fP \ |
3422 |
\fB[\fP \fIp\fP \ |
3423 |
\fB] [\fP \fIWarp\fP \ |
3424 |
\fB]] | [\fP \fIpointer\fP \ |
3425 |
\fB]\fP" |
3426 |
Allows the user to move a window. If called from somewhere in a |
3427 |
window or its border, then that window is moved. If called from |
3428 |
the root window then the user is allowed to select the target |
3429 |
window. If the optional argument |
3430 |
.I Warp |
3431 |
is specified the pointer is warped with the window. If the single |
3432 |
argument |
3433 |
.I pointer |
3434 |
is given, the top left corner of the window window is moved to the |
3435 |
pointer position before starting the operation; this is mainly |
3436 |
intended for internal use by modules like |
3437 |
.BR FvwmPager . |
3438 |
|
3439 |
The operation can be aborted with Escape or by pressing mouse |
3440 |
button 2. Pressing button 3 sets the |
3441 |
.I PlacedByButton3 |
3442 |
condition (see |
3443 |
.B Current |
3444 |
command). |
3445 |
|
3446 |
If the optional arguments |
3447 |
.IR x " and " y |
3448 |
are provided, then the window is moved immediately without user |
3449 |
interaction. Each argument can specify an absolute or relative |
3450 |
position from either the left/top or right/bottom of the screen. |
3451 |
By default, the numeric value given is interpreted as a percentage |
3452 |
of the screen width/height, but a trailing |
3453 |
.RI ' p ' |
3454 |
changes the interpretation to mean pixels. To move the window |
3455 |
relative to its current position, add the |
3456 |
.RI ' w ' |
3457 |
(for "window") prefix before the |
3458 |
. IR x " and/or " y |
3459 |
value. To move the window to a position relative to the current |
3460 |
location of the pointer, add the |
3461 |
.RI ' m ' |
3462 |
(for "mouse") prefix. To leave either coordinate unchanged, |
3463 |
"keep" can be specified in place of |
3464 |
.IR x " or " y . |
3465 |
|
3466 |
Simple Examples: |
3467 |
.EX |
3468 |
# Interactive move |
3469 |
Mouse 1 T A Move |
3470 |
# Move window so top left is at (10%,10%) |
3471 |
Mouse 2 T A Move 10 10 |
3472 |
# Move top left to (10pixels,10pixels) |
3473 |
Mouse 3 T A Move 10p 10p |
3474 |
.EE |
3475 |
More complex examples (these can be bound as actions to |
3476 |
keystrokes, etc.; only the command is shown, though): |
3477 |
.EX |
3478 |
# Move window so bottom right is at bottom |
3479 |
# right of screen |
3480 |
Move -0 -0 |
3481 |
|
3482 |
# Move window 5% to the right, and to the |
3483 |
# middle vertically |
3484 |
Move w+5 50 |
3485 |
|
3486 |
# Move window up 10 pixels, and so left edge |
3487 |
# is at x=40 pixels |
3488 |
Move 40p w-10p |
3489 |
|
3490 |
# Move window to the mouse pointer location |
3491 |
# |
3492 |
Move m+0 m+0 |
3493 |
.EE |
3494 |
See also the |
3495 |
.B AnimatedMove |
3496 |
command above. |
3497 |
|
3498 |
.TP |
3499 |
.BI "MoveToDesk " prev " | " arg1 " [" arg2 "] [" "min max" "]" |
3500 |
Moves the selected window to another desktop. The arguments are |
3501 |
the same as for the |
3502 |
.B GotoDesk |
3503 |
command. |
3504 |
.B MoveToDesk |
3505 |
is a replacement for the old |
3506 |
.B WindowsDesk |
3507 |
command, which can no longer be used. |
3508 |
|
3509 |
.TP |
3510 |
.BI "MoveThreshold [" pixels "]" |
3511 |
When the user presses a mouse button upon an object fvwm waits to |
3512 |
see if the action is a click or a drag. If the mouse moves by |
3513 |
more than |
3514 |
.I pixels |
3515 |
pixels it is assumed to be a drag. |
3516 |
|
3517 |
Previous versions of fvwm hardwired |
3518 |
.I pixels |
3519 |
to 3, which is now the default value. If |
3520 |
.I pixels |
3521 |
is negative or omitted the default value (which might be increased |
3522 |
when 16000x9000 pixel displays become affordable) is restored. |
3523 |
|
3524 |
.IP "\fBMoveToPage [\fP \fIx\fP \ |
3525 |
\fB[\fP \fIp\fP \ |
3526 |
\fB]\fP \fIy\fP \ |
3527 |
\fB[\fP \fIp\fP \ |
3528 |
\fB]] | [\fIprev\fP \ |
3529 |
\fB]\fP" |
3530 |
Moves the selected window to another page (x,y). The upper left |
3531 |
page is (0,0), the upper right is (M,0), where M is one less than |
3532 |
the current number of horizontal pages specified in the |
3533 |
.B DeskTopSize |
3534 |
command. Similarly the lower left page is (0,N), and the lower |
3535 |
right page is (M,N). Negative page numbers refer to pages from |
3536 |
the rightmost/lowest page. If |
3537 |
.IR x " and " y |
3538 |
are not given, the window is moved to the current page (a window |
3539 |
that has the focus but is off-screen can be retrieved with this). |
3540 |
Moving windows to a page relative to the current one can be |
3541 |
achieved by adding a trailing |
3542 |
.RI ' p ' |
3543 |
after any or both numerical arguments. To move a window to the |
3544 |
previous page use |
3545 |
.I prev |
3546 |
as the single argument. Using MoveToPage on a sticky window makes |
3547 |
the window non-sticky (see |
3548 |
.B Stick |
3549 |
command). |
3550 |
|
3551 |
Examples: |
3552 |
.EX |
3553 |
# Move window to page (2,3) |
3554 |
MoveToPage 2 3 |
3555 |
|
3556 |
# Move window to lowest and rightmost page |
3557 |
MoveToPage -1 -1 |
3558 |
|
3559 |
# Move window to last page visited |
3560 |
MoveToPage prev |
3561 |
|
3562 |
# Move window two pages to the right and one |
3563 |
# page up |
3564 |
MoveToPage +2p -1p |
3565 |
.EE |
3566 |
|
3567 |
.TP |
3568 |
.BI "MoveToScreen [ " screen " ]" |
3569 |
Moves the selected window to another Xinerama screen. The |
3570 |
.I screen |
3571 |
argument can be 'p' for the primary screen, 'c' for the current |
3572 |
screen (containing the mouse pointer), 'g' for the global screen |
3573 |
or the screen number itself (counting from zero). |
3574 |
|
3575 |
.TP |
3576 |
.BI "OpaqueMoveSize [" percentage "]" |
3577 |
Tells fvwm the maximum size window with which opaque window |
3578 |
movement should be used. The percentage is percent of the total |
3579 |
screen area (may be greater than 100). With |
3580 |
.EX |
3581 |
OpaqueMoveSize 0 |
3582 |
.EE |
3583 |
all windows are moved using the traditional rubber-band |
3584 |
outline. With |
3585 |
.EX |
3586 |
OpaqueMoveSize unlimited |
3587 |
.EE |
3588 |
or if a negative percentage is given |
3589 |
all windows are moved as solid windows. The default is |
3590 |
.EX |
3591 |
OpaqueMoveSize 5 |
3592 |
.EE |
3593 |
which allows small windows to be moved in an opaque manner but |
3594 |
large windows are moved as rubber-bands. If |
3595 |
.I percentage |
3596 |
is omitted or invalid the default value is set. To resize windows |
3597 |
in an opaque manner you can use the |
3598 |
.I ResizeOpaque |
3599 |
style. See |
3600 |
.B Style |
3601 |
command. |
3602 |
|
3603 |
.TP |
3604 |
.BI "PlaceAgain [" Anim "]" |
3605 |
Causes the current window's position to be re-computed using the |
3606 |
initial window placement logic. The window is moved to where it |
3607 |
would have been if it were a new window that had just appeared. |
3608 |
Most useful with |
3609 |
.IR Smart " or " Clever " (" ReallySmart ")" |
3610 |
placement. If the optional argument |
3611 |
.I Anim |
3612 |
is specified, an animated move is used to place the window in its |
3613 |
new position. |
3614 |
|
3615 |
.TP |
3616 |
.BI "Raise" |
3617 |
Allows the user to raise a window. Note that this raises a window |
3618 |
only in its layer. To bring a window to the absolute top, use |
3619 |
.EX |
3620 |
AddToFunc raise-to-top |
3621 |
+ I Layer 0 ontop |
3622 |
+ I Raise |
3623 |
.EE |
3624 |
where ontop is the highest layer used in your setup. |
3625 |
|
3626 |
.TP |
3627 |
.BI "RaiseLower" |
3628 |
Alternately raises and lowers a window. The window is raised if |
3629 |
it is obscured by any window (except for its own transients when |
3630 |
.I RaiseTransient |
3631 |
style is used; see |
3632 |
.B Style |
3633 |
command) otherwise it is lowered. |
3634 |
|
3635 |
.IP "\fBResize [\fP \fIwidth\fP \ |
3636 |
\fB[\fP \fIp\fP \ |
3637 |
\fB|\fP \fIc\fP \ |
3638 |
\fB]\fP \fIheight\fP \ |
3639 |
\fB[\fP \fIp\fP \ |
3640 |
\fB|\fP \fIc\fP \ |
3641 |
\fB]] | [\fP \fIbottomright\fP \ |
3642 |
\fB|\fP \fIbr x y\fP \ |
3643 |
\fB]\fP" |
3644 |
Allows to resize a window. If called from somewhere in a window |
3645 |
or its border, then that window is resized. If called from the |
3646 |
root window then the user is allowed to select the target window. |
3647 |
|
3648 |
The operation can be aborted with Escape or by pressing any mouse |
3649 |
button (except button 1 which confirms it). |
3650 |
|
3651 |
If the optional arguments |
3652 |
.IR width " and " height |
3653 |
are provided, then the window is resized so that its dimensions |
3654 |
are |
3655 |
.IR width " by " height . |
3656 |
The units of |
3657 |
.IR width " and " height |
3658 |
are percent-of-screen, unless a letter |
3659 |
.RI ' p ' |
3660 |
is appended to one or both coordinates, in which case the location |
3661 |
is specified in pixels. With a |
3662 |
.RI ' c ' |
3663 |
suffix the unit defined by the client application (hence the c) is |
3664 |
used. So you can say |
3665 |
.EX |
3666 |
Resize 80c 24c |
3667 |
.EE |
3668 |
to make a terminal window just big enough for 80x24 |
3669 |
characters. Both, |
3670 |
.IR width " and " height |
3671 |
can be negative. In this case the new size is the screen size |
3672 |
minus the given value. If either value is "keep", the |
3673 |
corresponding dimension of the window is left untouched. |
3674 |
|
3675 |
An alternate syntax is used if the keyword |
3676 |
.IR bottomright " or in short " br |
3677 |
follows the command name. In this case, the arguments |
3678 |
.IR x " and " y |
3679 |
specify the desired position of the bottom right corner of the |
3680 |
window. They are interpreted exactly like the |
3681 |
.IR x " and " y |
3682 |
arguments of the |
3683 |
.B Move |
3684 |
command. |
3685 |
|
3686 |
.TP |
3687 |
.BI "ResizeMove " "resize-arguments move-arguments" |
3688 |
This command does the same as the |
3689 |
.BR Resize " and " Move |
3690 |
commands, but in a single call which is less visually |
3691 |
disturbing. The |
3692 |
.I resize-arguments |
3693 |
are exactly the same arguments as for the |
3694 |
.B Resize |
3695 |
command and the |
3696 |
.I move-arguments |
3697 |
are exactly the same arguments as for the |
3698 |
.B Move |
3699 |
command except the |
3700 |
.I pointer |
3701 |
option which is not supported by the |
3702 |
.B ResizeMove |
3703 |
command. |
3704 |
|
3705 |
Example: |
3706 |
.EX |
3707 |
# Move the window to the top left corner |
3708 |
ResizeMove w+0 -10p 0 -20p |
3709 |
.EE |
3710 |
|
3711 |
.TP |
3712 |
.BI "SetAnimation " milliseconds-delay " [" fractions-to-move-list "]" |
3713 |
Sets the time between frames and the list of fractional offsets to |
3714 |
customize the animated moves of the |
3715 |
.B AnimatedMove |
3716 |
command and the animation of menus (if the menu style is set to |
3717 |
animated; see |
3718 |
.B MenuStyle |
3719 |
command). If the |
3720 |
.I fractions-to-move-list |
3721 |
is omitted, only the time between frames is altered. The |
3722 |
.I fractions-to-move-list |
3723 |
specifies how far the window should be offset at each successive |
3724 |
frame as a fraction of the difference between the starting |
3725 |
location and the ending location. e.g.: |
3726 |
.EX |
3727 |
SetAnimation 10 -.01 0 .01 .03 .08 .18 .3 \\ |
3728 |
.45 .6 .75 .85 .90 .94 .97 .99 1.0 |
3729 |
.EE |
3730 |
Sets the delay between frames to 10 milliseconds, and sets the |
3731 |
positions of the 16 frames of the animation motion. Negative |
3732 |
values are allowed, and in particular can be used to make the |
3733 |
motion appear more cartoonish, by briefly moving slightly in the |
3734 |
opposite direction of the main motion. The above settings are the |
3735 |
default. |
3736 |
|
3737 |
.IP "\fBSnapAttraction [\fP \fIproximity\fP \ |
3738 |
\fB[\fP \fIbehavior\fP \ |
3739 |
\fB] [\fP \fIScreen\fP \ |
3740 |
\fB]]\fP" |
3741 |
If during an interactive move the window or icon comes within |
3742 |
.I proximity |
3743 |
pixels of another the window or icon, it is moved to make the |
3744 |
borders adjoin. The default of 0 means that no snapping happens. |
3745 |
Calling this command without arguments turns off snap attraction |
3746 |
and restores the default behavior. Please refer also to the |
3747 |
.B SnapGrid |
3748 |
command. |
3749 |
|
3750 |
The |
3751 |
.I behavior |
3752 |
argument is optional and may be set to one of the four following |
3753 |
values: With |
3754 |
.I All |
3755 |
both icons and windows snap to other windows and other icons. |
3756 |
.I SameType |
3757 |
lets snap windows only to other windows and icons only to other |
3758 |
icons. With |
3759 |
.I Windows |
3760 |
windows snap only to other windows. Icons do not snap. Similarly |
3761 |
with |
3762 |
.I Icons |
3763 |
icons snap to only other icons and windows do not snap. |
3764 |
|
3765 |
If the |
3766 |
.I behavior |
3767 |
option is not given, the snapping behavior is not changed. The |
3768 |
default behavior is |
3769 |
.IR All . |
3770 |
|
3771 |
If the |
3772 |
.I Screen |
3773 |
option is present windows and or icons are snapped to the screen |
3774 |
edges too. |
3775 |
|
3776 |
.TP |
3777 |
.BI "SnapGrid [" "x-grid-size y-grid-size" "]" |
3778 |
During an interactive move a window or icon is positioned such |
3779 |
that its location (top left corner) is coincident with the nearest |
3780 |
grid point. The default |
3781 |
.IR x-grid-size " and " y-grid-size |
3782 |
setting are both 1, which is effectively no grid all. An |
3783 |
interactive move with both |
3784 |
.BR SnapGrid " and " SnapAttraction |
3785 |
results in the window being moved to be adjacent to the nearest |
3786 |
window border (if within snap proximity) or grid position. In |
3787 |
other words, the window moves the shortest distance possible to |
3788 |
satisfy both |
3789 |
.BR SnapGrid " and " SnapAttraction . |
3790 |
Note that the x and y coordinates are not coupled. For example, a |
3791 |
window may snap to another window on the x axis while snapping to |
3792 |
a grid point on the y axis. Calling this command without |
3793 |
arguments reinstates the default settings. |
3794 |
|
3795 |
.TP |
3796 |
.BI "WindowsDesk " arg1 " [" arg2 "]" |
3797 |
Moves the selected window to another desktop. |
3798 |
|
3799 |
This command has been removed and must be replaced by |
3800 |
.BR MoveToDesk , |
3801 |
the arguments for which are the same as for the |
3802 |
.B GotoDesk |
3803 |
command. |
3804 |
.B Important note: |
3805 |
You cannot simply change the name of the command: the syntax has |
3806 |
changed. If you used |
3807 |
.EX |
3808 |
WindowsDesk n |
3809 |
.EE |
3810 |
to move a window to desk n, you have to change it to |
3811 |
.EX |
3812 |
MoveToDesk 0 n |
3813 |
.EE |
3814 |
|
3815 |
.TP |
3816 |
.BI "XorPixmap [" pixmap "]" |
3817 |
Selects the pixmap with which bits are xor'ed when doing |
3818 |
rubber-band window moving or resizing. This has a better chance |
3819 |
of making the rubber-band visible if |
3820 |
.B XorValue |
3821 |
does not give good results. An example pixmap |
3822 |
.I resize.rainbow.xpm |
3823 |
is provided with the icon distribution. To turn the |
3824 |
.B XorPixmap |
3825 |
off again use the |
3826 |
.B XorValue |
3827 |
command or omit the |
3828 |
.I pixmap |
3829 |
argument. |
3830 |
|
3831 |
.TP |
3832 |
.BI "XorValue [" number "]" |
3833 |
Changes the value with which bits are xor'ed when doing |
3834 |
rubber-band window moving or resizing. Setting this value is a |
3835 |
trial-and-error process. The default value 0 tries to find a |
3836 |
value that gives a good contrast to black and white. It is set if |
3837 |
the given |
3838 |
.I number |
3839 |
is omitted or invalid. |
3840 |
|
3841 |
|
3842 |
.SS COMMANDS FOR FOCUS AND MOUSE MOVEMENT |
3843 |
|
3844 |
.TP |
3845 |
.BI "CursorMove " horizontal "[" p "] " vertical "[" p "]" |
3846 |
Moves the mouse pointer by |
3847 |
.I horizontal |
3848 |
pages in the X direction and |
3849 |
.I vertical |
3850 |
pages in the Y direction. Either or both entries may be |
3851 |
negative. Both horizontal and vertical values are expressed in |
3852 |
percent of pages, so |
3853 |
.EX |
3854 |
CursorMove 100 100 |
3855 |
.EE |
3856 |
means to move down and right by one full page. |
3857 |
.EX |
3858 |
CursorMove 50 25 |
3859 |
.EE |
3860 |
means to move right half a page and down a quarter of a |
3861 |
page. Alternatively, the distance can be specified in pixels by |
3862 |
appending a |
3863 |
.RI ' p ' |
3864 |
to the horizontal and/or vertical specification. For example |
3865 |
.EX |
3866 |
CursorMove -10p -10p |
3867 |
.EE |
3868 |
means move ten pixels up and ten pixels left. The CursorMove |
3869 |
function should not be called from pop-up menus. |
3870 |
|
3871 |
.TP |
3872 |
.BI "FlipFocus [" NoWarp "]" |
3873 |
Executes a |
3874 |
.B Focus |
3875 |
command as if the user had used the pointer to select the |
3876 |
window. This command alters the order of the WindowList in the |
3877 |
same way as clicking in a window to focus, i.e. the target window |
3878 |
is removed from the |
3879 |
.B WindowList |
3880 |
and placed at the start. This command is recommended for use with |
3881 |
the |
3882 |
.B Direction |
3883 |
command and in the function invoked from |
3884 |
.BR WindowList . |
3885 |
|
3886 |
.TP |
3887 |
.BI "Focus [" NoWarp "]" |
3888 |
Sets the keyboard focus to the selected window. If the |
3889 |
.I NoWarp |
3890 |
argument is given, this is all it does. Otherwise it also moves |
3891 |
the viewport or window as needed to make the selected window |
3892 |
visible. This command does not automatically raise the |
3893 |
window. Does not warp the pointer into the selected window (see |
3894 |
.B WarpToWindow |
3895 |
function). Does not de-iconify. This command does not alter the |
3896 |
order of the |
3897 |
.BR WindowList , |
3898 |
it rotates the |
3899 |
.B WindowList |
3900 |
around so that the target window is at the start. |
3901 |
|
3902 |
When the |
3903 |
.I NoWarp |
3904 |
argument is given, Focus cannot transfer the keyboard focus to |
3905 |
windows on other desks. |
3906 |
|
3907 |
To raise and/or warp a pointer to a window together with |
3908 |
.BR Focus " or " FlipFocus , |
3909 |
use a function, like: |
3910 |
.EX |
3911 |
AddToFunc SelectWindow |
3912 |
+ I Focus |
3913 |
+ I Iconify false |
3914 |
+ I Raise |
3915 |
+ I WarpToWindow 50 8p |
3916 |
.EE |
3917 |
|
3918 |
.TP |
3919 |
.BI "WarpToWindow " x "[" p "] " y "[" p "]" |
3920 |
Warps the cursor to the associated window. The parameters |
3921 |
.IR x " and " y |
3922 |
default to percentage of window down and in from the upper left |
3923 |
hand corner (or number of pixels down and in if |
3924 |
.RI ' p ' |
3925 |
is appended to the numbers). If a number is negative the opposite |
3926 |
edge is used and the direction reversed. This command works also |
3927 |
with windows that are not managed by fvwm. In this case fvwm does |
3928 |
not bring the window onto the screen if it is not visible. For |
3929 |
example it is possible to warp the pointer to the center of the |
3930 |
root window on screen 1: |
3931 |
.EX |
3932 |
WindowId root 1 WarpToWindow 50 50 |
3933 |
.EE |
3934 |
|
3935 |
|
3936 |
.SS COMMANDS CONTROLLING WINDOW STATE |
3937 |
|
3938 |
.TP |
3939 |
.BI "Close" |
3940 |
If the window accepts the delete window protocol a message is sent |
3941 |
to the window asking it to gracefully remove itself. If the |
3942 |
window does not understand the delete window protocol then the |
3943 |
window is destroyed as with the |
3944 |
.B Destroy |
3945 |
command. Note: if the window accepts the delete window protocol |
3946 |
but does not close itself in response, the window is not deleted. |
3947 |
|
3948 |
.TP |
3949 |
.BI "Delete" |
3950 |
Sends a message to a window asking that it remove itself, |
3951 |
frequently causing the application to exit. |
3952 |
|
3953 |
.TP |
3954 |
.BI "Destroy" |
3955 |
Destroys an application window, which usually causes the |
3956 |
application to crash and burn. |
3957 |
|
3958 |
.TP |
3959 |
.BI "Iconify [" bool "]" |
3960 |
Iconifies a window if it is not already iconified or de-iconifies |
3961 |
it if it is already iconified. The optional argument |
3962 |
.I bool |
3963 |
is a boolean argument. "True" means only iconification is |
3964 |
allowed, while "False" forces de-iconification. Using "toggle" |
3965 |
switches between iconified and de-iconified states. |
3966 |
|
3967 |
There are a number of |
3968 |
.B Style |
3969 |
options which influence the appearance and behavior of icons (e.g. |
3970 |
.IR StickyIcon ", " NoIcon ). |
3971 |
|
3972 |
For backwards compatibility, the optional argument may also be a |
3973 |
positive number instead of "True", or a negative number instead of |
3974 |
"False". Note that this syntax is obsolete, and will be removed |
3975 |
in the future. |
3976 |
|
3977 |
.IP "\fBMaximize [\fP\fIscreen screen-spec\fP\fB] \ |
3978 |
[\fP\fIbool\fP\fB] \ |
3979 |
[\fP\fIhorizontal\fP\fB[\fP\fIp\fP\fB]\fP \ |
3980 |
\fIvertical\fP\fB[\fP\fIp\fP\fB]]\fP" |
3981 |
Without its optional arguments (or if the |
3982 |
.I bool |
3983 |
bit has the value "toggle") |
3984 |
.B Maximize |
3985 |
causes the window to alternately switch from a full-screen size to |
3986 |
its normal size. To force a window into maximized (normal) state |
3987 |
you can use a "True" or "False" value for the |
3988 |
.I bool |
3989 |
argument. |
3990 |
|
3991 |
With the optional arguments |
3992 |
.IR horizontal " and " vertical , |
3993 |
which are expressed as percentage of a full screen, the user can |
3994 |
control the new size of the window. An optional suffix |
3995 |
.RI ' p ' |
3996 |
can be used to indicate pixels instead of percents of the screen |
3997 |
size. If horizontal is greater than 0 then the horizontal |
3998 |
dimension of the window is set to |
3999 |
.IR horizontal *screen_width/100. |
4000 |
If the value is smaller than 0 the size is subtracted from the |
4001 |
screen width, i.e. -25 is the same as 75. If |
4002 |
.I horizontal |
4003 |
is "grow", it is maximized to current available space until |
4004 |
finding any obstacle. The vertical resizing is similar. If both |
4005 |
horizontal and vertical values are "grow", it expands vertically |
4006 |
first, then horizontally to find space. Instead of the horizontal |
4007 |
"grow" argument, "growleft" or "growright" can be used |
4008 |
respectively "growup" and "growdown". For example, the following |
4009 |
adds a title-bar button to switch a window to the full vertical |
4010 |
size of the screen: |
4011 |
.EX |
4012 |
Mouse 0 4 A Maximize 0 100 |
4013 |
.EE |
4014 |
The following causes windows to be stretched to the full width: |
4015 |
.EX |
4016 |
Mouse 0 4 A Maximize 100 0 |
4017 |
.EE |
4018 |
This makes a window that is half the screen size in each |
4019 |
direction: |
4020 |
.EX |
4021 |
Mouse 0 4 A Maximize 50 50 |
4022 |
.EE |
4023 |
To expand a window horizontally until any other window is found: |
4024 |
.EX |
4025 |
Mouse 0 4 A Maximize 0 grow |
4026 |
.EE |
4027 |
To expand a window but leave the lower 60 pixels of the screen |
4028 |
unoccupied |
4029 |
.EX |
4030 |
Mouse 0 4 A Maximize 100 -60p |
4031 |
.EE |
4032 |
Values larger than 100 can be used with caution. |
4033 |
|
4034 |
If the first argument is the word |
4035 |
.IR screen , |
4036 |
the |
4037 |
.I screen-spec |
4038 |
argument specifies the Xinerama screen on which to operate. |
4039 |
It can be 'p' for the primary screen, 'c' for the current |
4040 |
screen (containing the mouse pointer), 'g' for the global screen |
4041 |
or the screen number itself (counting from zero). This option is |
4042 |
only useful with multiple Xinerama screens. |
4043 |
|
4044 |
.TP |
4045 |
.BI "Recapture" |
4046 |
Causes fvwm to recapture all of its windows. This ensures that |
4047 |
the latest style parameters are used. The recapture operation is |
4048 |
visually disturbing. |
4049 |
|
4050 |
Since fvwm version 2.4 only a very few |
4051 |
.B Style |
4052 |
options need a |
4053 |
.B Recapture |
4054 |
to take effect (e.g. |
4055 |
.IR UseStyle ). |
4056 |
|
4057 |
.TP |
4058 |
.BI "RecaptureWindow" |
4059 |
Causes fvwm to recapture the chosen window. See |
4060 |
.B Recapture |
4061 |
command above. |
4062 |
|
4063 |
.TP |
4064 |
.BI "Refresh" |
4065 |
Causes all windows on the screen to redraw themselves. All pending |
4066 |
updates of all windows' styles and looks are applied immediately. |
4067 |
E.g. if |
4068 |
.BR Style " or " TitleStyle |
4069 |
commands were issued inside a fvwm function. |
4070 |
|
4071 |
.TP |
4072 |
.BI "RefreshWindow" |
4073 |
Causes the chosen window to redraw itself. All pending updates of |
4074 |
the window's style and looks are applied immediately. E.g. if |
4075 |
.BR Style " or " TitleStyle |
4076 |
commands were issued inside a fvwm function. |
4077 |
|
4078 |
.TP |
4079 |
.BI "Stick [" bool "]" |
4080 |
If the |
4081 |
.I bool |
4082 |
argument is empty or "toggle", the |
4083 |
.B Stick |
4084 |
command makes a window sticky if it is not already sticky, or |
4085 |
non-sticky if it is already sticky. To make a window sticky |
4086 |
regardless of its current state the |
4087 |
.I bool |
4088 |
argument must be "True". To make it non-sticky use "False". |
4089 |
|
4090 |
.TP |
4091 |
.BI "WindowShade [" bool "]" |
4092 |
Toggles the window shade feature for titled windows. Windows in |
4093 |
the shaded state only display a title-bar. If |
4094 |
.I bool |
4095 |
is not given or "toggle", the window shade state is toggled. If |
4096 |
.I bool |
4097 |
is "True", the window is forced to the shaded state. If |
4098 |
.I bool |
4099 |
is "False", then the window is forced to the non-shaded |
4100 |
state. Windows without titles can be shaded too. See also |
4101 |
.I WindowShadeSteps |
4102 |
option of the |
4103 |
.B Style |
4104 |
command. |
4105 |
|
4106 |
For backwards compatibility, the optional argument may also be 1 |
4107 |
to signify "on", and 2 to signify "off". Note that this syntax is |
4108 |
obsolete, and will be removed in the future. |
4109 |
|
4110 |
.TP |
4111 |
.BI "WindowShadeAnimate [" steps "[" p "]]" |
4112 |
This command is obsolete. Please use the |
4113 |
.I WindowShadeSteps |
4114 |
option of the |
4115 |
.B Style |
4116 |
command instead. |
4117 |
|
4118 |
|
4119 |
.SS COMMANDS FOR MOUSE, KEY AND STROKE BINDINGS |
4120 |
|
4121 |
.TP |
4122 |
.BI "IgnoreModifiers [" Modifiers "]" |
4123 |
Tells fvwm which modifiers to ignore when matching Mouse or Key |
4124 |
bindings. |
4125 |
.B IgnoreModifiers |
4126 |
affects the |
4127 |
.I ClickToFocus |
4128 |
style too. This command belongs into your |
4129 |
.IR .fvwm2rc . |
4130 |
If you issue it when your fvwm session is already up and running |
4131 |
the results are unpredictable. The should appear before any |
4132 |
applications or modules are started in your |
4133 |
.I .fvwm2rc |
4134 |
file (e.g. with the |
4135 |
.B Exec |
4136 |
command). |
4137 |
|
4138 |
.I Modifiers |
4139 |
has the same syntax as in the |
4140 |
.BR Mouse " or " Key |
4141 |
bindings, with the addition of 'L' meaning the |
4142 |
.SM caps lock |
4143 |
key. The default is "L". |
4144 |
.I Modifiers |
4145 |
can be omitted, meaning no modifiers are ignored. This command |
4146 |
comes in handy if the |
4147 |
.SM num-lock |
4148 |
and |
4149 |
.SM scroll-lock |
4150 |
keys interfere with your shortcuts. With XFree86 '2' usually is |
4151 |
the |
4152 |
.SM num-lock |
4153 |
modifier and '5' refers to the |
4154 |
.SM scroll-lock |
4155 |
key. To turn all these pesky modifiers off you can use this |
4156 |
command: |
4157 |
.EX |
4158 |
IgnoreModifiers L25 |
4159 |
.EE |
4160 |
.I Important Note: |
4161 |
This command creates a lot of extra network traffic, depending on |
4162 |
your CPU, network connection, the number of |
4163 |
.BR Key " or " Mouse |
4164 |
commands in your configuration file and the number of modifiers you |
4165 |
want to ignore. If you do not have a lightning fast machine or |
4166 |
very few bindings you should not ignore more than two modifiers. |
4167 |
I.e. do not ignore |
4168 |
.SM scroll-lock |
4169 |
if you have no problem with it. In the |
4170 |
.I FAQ |
4171 |
you can find a better solution of this problem. |
4172 |
|
4173 |
.TP |
4174 |
.BI "GnomeButton" |
4175 |
Used in conjunction with |
4176 |
.B Mouse |
4177 |
to pass mouse button presses on the root window to a |
4178 |
.SM GNOME |
4179 |
program (such as GMC). The following example passes presses of |
4180 |
mouse buttons 1 and 3 to such a program. |
4181 |
.EX |
4182 |
Mouse 1 R A GnomeButton |
4183 |
Mouse 3 R A GnomeButton |
4184 |
.EE |
4185 |
|
4186 |
.TP |
4187 |
.BI "Key " "Keyname Context Modifiers Function" |
4188 |
Binds a keyboard key to a specified fvwm built-in function, or |
4189 |
removes the binding if |
4190 |
.I Function |
4191 |
is '-'. The syntax is the same as for a |
4192 |
.B Mouse |
4193 |
binding except that the mouse button number is replaced with a |
4194 |
.IR Keyname . |
4195 |
The |
4196 |
.I Keyname |
4197 |
is one of the entries from |
4198 |
.IR /usr/include/X11/keysymdef.h , |
4199 |
with the leading XK_ omitted. The |
4200 |
.IR Context " and " Modifiers |
4201 |
fields are defined as in the |
4202 |
.B Mouse |
4203 |
binding. However, when you press a key the context window is the |
4204 |
window that has the keyboard focus. That is not necessarily the |
4205 |
same as the window the pointer is over (with |
4206 |
.IR SloppyFocus " or " ClickToFocus ). |
4207 |
Note that key bindings with the 'R' (root window) context do not |
4208 |
work properly with |
4209 |
.IR SloppyFocus " and " ClickToFocus . |
4210 |
If you encounter problems, use the |
4211 |
.B PointerKey |
4212 |
command instead. If you want to bind keys to a window with |
4213 |
.IR SloppyFocus " or " ClickToFocus |
4214 |
that are supposed to work when the pointer is not over the window, |
4215 |
fvwm assumes the pointer is over the client window (i.e. you have |
4216 |
to use the 'W' modifier). |
4217 |
|
4218 |
The following example binds the built in window list to pop up |
4219 |
when |
4220 |
.SM Alt-Ctrl-Shift-F11 |
4221 |
is hit, no matter where the mouse pointer is: |
4222 |
.EX |
4223 |
Key F11 A SCM WindowList |
4224 |
.EE |
4225 |
Binding a key to a title-bar button causes that button to appear. |
4226 |
Please refer to the |
4227 |
.B Mouse |
4228 |
command for details. |
4229 |
|
4230 |
.TP |
4231 |
.BI "Mouse " "Button Context Modifiers Function" |
4232 |
Defines a mouse binding, or removes the binding if |
4233 |
.I Function |
4234 |
is '-'. |
4235 |
.I Button |
4236 |
is the mouse button number. If |
4237 |
.I Button |
4238 |
is zero then any button performs the specified function. |
4239 |
.I Context |
4240 |
describes where the binding applies. Valid contexts are 'R' for |
4241 |
the root window, 'W' for an application window, 'T' for a window |
4242 |
title-bar, 'S' for a window side, top, or bottom bar, 'F' for a |
4243 |
window frame (the corners), 'I' for an Icon window, or '0' through |
4244 |
'9' for title-bar buttons, or any combination of these letters. |
4245 |
'A' is for any context except for title-bar buttons. For |
4246 |
instance, a context of "FST" applies when the mouse is anywhere in |
4247 |
a window's border except the title-bar buttons. Only 'S' and 'W' |
4248 |
are valid for an undecorated window. |
4249 |
|
4250 |
.I Modifiers |
4251 |
is any combination of 'N' for no modifiers, 'C' for control, 'S' |
4252 |
for shift, 'M' for Meta, 'L' for Caps-Lock or 'A' for any |
4253 |
modifier. For example, a modifier of "SM" applies when both the |
4254 |
.SM Meta |
4255 |
and |
4256 |
.SM Shift |
4257 |
keys are down. X11 modifiers mod1 through mod5 are represented as |
4258 |
the digits '1' through '5'. The modifier 'L' is ignored by |
4259 |
default. To turn it on, use the |
4260 |
.B IgnoreModifiers |
4261 |
command. |
4262 |
|
4263 |
.I Function |
4264 |
is one of fvwm's built-in functions. |
4265 |
|
4266 |
The title-bar buttons are numbered with odd numbered buttons on |
4267 |
the left side of the title-bar and even numbers on the |
4268 |
right. Smaller-numbered buttons are displayed toward the outside |
4269 |
of the window while larger-numbered buttons appear toward the |
4270 |
middle of the window (0 is short for 10). In summary, the buttons |
4271 |
are numbered: |
4272 |
.EX |
4273 |
1 3 5 7 9 0 8 6 4 2 |
4274 |
.EE |
4275 |
The highest odd numbered button which has an action bound to it |
4276 |
determines the number of buttons drawn on the left side of the |
4277 |
title bar. The highest even number determines the number or right |
4278 |
side buttons which are drawn. Actions can be bound to either |
4279 |
mouse buttons or keyboard keys. |
4280 |
|
4281 |
.TP |
4282 |
.BI "PointerKey " "Keyname Context Modifiers Function" |
4283 |
This command works exactly like the |
4284 |
.B Key |
4285 |
command. The only difference is that the binding operates on the |
4286 |
window under the pointer. Normal key bindings operate on the |
4287 |
focused window instead. The |
4288 |
.B PointerKey |
4289 |
command can for example be used to bind keys to the root window if |
4290 |
you are using |
4291 |
.IR SloppyFocus " or " ClickToFocus . |
4292 |
However, some applications (xterm is one example) are unable to |
4293 |
handle this key anymore, even if the pointer is over the xterm |
4294 |
window. It is recommended to use the |
4295 |
.B PointerKey |
4296 |
command only for key combinations that are not needed in any |
4297 |
application window. |
4298 |
|
4299 |
Example: |
4300 |
.EX |
4301 |
Style * SloppyFocus |
4302 |
PointerKey f1 a m Menu MainMenu |
4303 |
.EE |
4304 |
|
4305 |
.TP |
4306 |
.BI "Stroke " "Sequence Button Context Modifiers Function" |
4307 |
Binds a mouse stroke sequence to a specified fvwm built-in |
4308 |
function, or removes the binding if |
4309 |
.I Function |
4310 |
is '-'. The syntax is the same as for a |
4311 |
.B Mouse |
4312 |
binding except that |
4313 |
.I Sequence |
4314 |
is inserted in front of the button number and a value of 0 for |
4315 |
.I Button |
4316 |
concerns the |
4317 |
.B StrokeFunc |
4318 |
command. The |
4319 |
.IR Context " and " Modifiers |
4320 |
fields are defined as in the |
4321 |
.B Mouse |
4322 |
binding. However, only the 'R' Context really works (if you want |
4323 |
to use other contexts you need to use the |
4324 |
.B StrokeFunc |
4325 |
below). |
4326 |
|
4327 |
Strokes sequences are defined in a telephone grid like this: |
4328 |
.EX |
4329 |
1 2 3 |
4330 |
|
4331 |
4 5 6 |
4332 |
|
4333 |
7 8 9 |
4334 |
.EE |
4335 |
or in a numeric pad grid like this: |
4336 |
.EX |
4337 |
7 8 9 |
4338 |
|
4339 |
4 5 6 |
4340 |
|
4341 |
1 2 3 |
4342 |
.EE |
4343 |
The telephone grid is used by default, to use the numeric pad grid |
4344 |
you should begin the sequence with a 'N'. Note that a complex |
4345 |
motion may gives several different sequences (see the "netscape" |
4346 |
example below to handle such motion). Moreover, sequence are |
4347 |
limited to 20 elements (with the present version of |
4348 |
.BR libstroke ), |
4349 |
however, in practice it is preferable to use sequence with less |
4350 |
than 12 elements. |
4351 |
|
4352 |
Because of the default button menu in fvwm, you may need to remove |
4353 |
a mouse button binding (using an empty action) before using the |
4354 |
stroke |
4355 |
.EX |
4356 |
Mouse 3 R N |
4357 |
.EE |
4358 |
Also, you can still use the stroke "sequence 0" to simulate a |
4359 |
click: |
4360 |
.EX |
4361 |
Stroke 0 3 R N Menu WindowList Nop |
4362 |
.EE |
4363 |
The following example starts xterm when the mouse drags an 'I' on |
4364 |
the root window with button 3 pressed down: |
4365 |
.EX |
4366 |
Stroke 258 3 R N Exec exec xterm |
4367 |
.EE |
4368 |
An example for Netscape: |
4369 |
.EX |
4370 |
Stroke 7415963 3 R N Exec exec netscape |
4371 |
Stroke 74148963 3 R N Exec exec netscape |
4372 |
Stroke 74158963 3 R N Exec exec netscape |
4373 |
Stroke 7418963 3 R N Exec exec netscape |
4374 |
Stroke 415963 3 R N Exec exec netscape |
4375 |
.EE |
4376 |
You may prefer to use the numeric pad grid since you have such a |
4377 |
grid on your machine. Here an example: |
4378 |
.EX |
4379 |
Stroke N78963314 3 R N FvwmForm FvwmForm-QuitVerify |
4380 |
Stroke N789633147 3 R N FvwmForm FvwmForm-QuitVerify |
4381 |
.EE |
4382 |
This example starts the "QuitVerify" form if you draw a box that |
4383 |
begins in the top left corner. |
4384 |
|
4385 |
Note: You need |
4386 |
.B libstroke |
4387 |
installed and fvwm compiled with stroke support. |
4388 |
.B libstroke |
4389 |
can be obtained at |
4390 |
.EX |
4391 |
.B http://www.etla.net/~willey/projects/libstroke/ |
4392 |
.EE |
4393 |
|
4394 |
.TP |
4395 |
.BI "StrokeFunc [" Options "]" |
4396 |
Causes fvwm to record a mouse stroke sequence and to execute the |
4397 |
corresponding action as defined in a |
4398 |
.B Stroke |
4399 |
command. The cursor is modified to the |
4400 |
.I STROKE |
4401 |
context of the |
4402 |
.B CursorStyle |
4403 |
command during recording. When the stroke is finished |
4404 |
.B StrokeFunc |
4405 |
looks for a stroke binding of the form |
4406 |
.EX |
4407 |
Stroke sequence 0 Context Modifiers action |
4408 |
.EE |
4409 |
and executes the corresponding action (Note the 0). Normal use of this |
4410 |
function is via a |
4411 |
.BR Mouse " or " Key |
4412 |
command. Examples: |
4413 |
.EX |
4414 |
Mouse 3 A M StrokeFunc |
4415 |
Key x R N StrokeFunc |
4416 |
.EE |
4417 |
If you press mouse button 3 and |
4418 |
.SM Alt |
4419 |
anywhere (respectively, press the key x when the cursor is on the |
4420 |
root window), then fvwm records the mouse motions until the mouse |
4421 |
button 3 (respectively, the x key) is released and then check if |
4422 |
the recorded |
4423 |
.I sequence |
4424 |
corresponds to a stroke binding of the form |
4425 |
.EX |
4426 |
.RI """Stroke " sequence " 0 A M " action """ \"" |
4427 |
.RI """Stroke " sequence " 0 R N " action """ \"" |
4428 |
.EE |
4429 |
Note that the |
4430 |
.IR Context " and " Modifiers |
4431 |
are taken at the beginning of the execution of the |
4432 |
.B StrokeFunc |
4433 |
command (so you can release the modifiers before the end of the |
4434 |
stroke recording in the case of a mouse binding and if you used, |
4435 |
say, a title-bar context the mouse motion can go through an |
4436 |
application window). The keys |
4437 |
.SM Escape |
4438 |
and |
4439 |
.SM Delete |
4440 |
allow you to abort the command. |
4441 |
|
4442 |
The |
4443 |
.B StrokeFunc |
4444 |
command has five options: |
4445 |
.IR NotStayPressed ", " EchoSequence ", " DrawMotion ", " FeedBack " and " StrokeWidth. |
4446 |
These options are disabled by default. |
4447 |
.I EchoSequence |
4448 |
causes fvwm to Echo the recorded stroke sequence. |
4449 |
.I DrawMotion |
4450 |
causes fvwm to draw the mouse motion on the screen. |
4451 |
.I FeedBack |
4452 |
causes fvwm to display during a fraction of second the cursor of the |
4453 |
.I WAIT |
4454 |
context of the |
4455 |
.B CursorStyle |
4456 |
command if the recorded stroke sequence corresponds to a stroke |
4457 |
binding. |
4458 |
.I StrokeWidth |
4459 |
takes an integer argument, which must be >= 0 and <= 100 and |
4460 |
which defines the width of the line for the |
4461 |
.I DrawMotion option. |
4462 |
|
4463 |
.I NotStayPressed |
4464 |
works only if |
4465 |
.B StrokeFunc |
4466 |
is used via a |
4467 |
.BR Mouse |
4468 |
or a |
4469 |
.B Key |
4470 |
command. This option removes the need to have a button or the key |
4471 |
pressed during the stroke, but you have to do a mouse click or |
4472 |
press the |
4473 |
.SM Return |
4474 |
or |
4475 |
.SM Space |
4476 |
key to finish the mouse motion recording (these keys also work |
4477 |
without the |
4478 |
.I NotStayPressed |
4479 |
option). |
4480 |
|
4481 |
You can use the |
4482 |
.B StrokeFunc |
4483 |
"alone". In this case it works as above with the |
4484 |
.I NotStayPressed |
4485 |
option enabled. However, |
4486 |
.I Modifiers, |
4487 |
in general, may not work as expected (i.e., in this case use 'A' |
4488 |
or 'N' as |
4489 |
.I Modifiers |
4490 |
in the stroke bindings). |
4491 |
|
4492 |
Note that some computers do not support key release events. If |
4493 |
that is the case the |
4494 |
.B StrokeFunc |
4495 |
used via a |
4496 |
.B Key |
4497 |
command works as if the |
4498 |
.I NotStayPressed |
4499 |
option is enabled. |
4500 |
|
4501 |
|
4502 |
.SS THE STYLE COMMAND (CONTROLLING WINDOW STYLES) |
4503 |
|
4504 |
.TP |
4505 |
.BI "UpdateStyles" |
4506 |
All pending updates of all windows' styles and looks are applied |
4507 |
immediately. E.g. if |
4508 |
.BR Style " or " TitleStyle |
4509 |
commands were issued inside a fvwm function. |
4510 |
|
4511 |
.TP |
4512 |
.BI "Style " "stylename options" |
4513 |
This command is intended to replace the old fvwm 1.xx global |
4514 |
commands NoBorder, NoTitle, StartsOnDesk, Sticky, StaysOnTop, |
4515 |
Icon, WindowListSkip, CirculateSkip, SuppressIcons, BoundaryWidth, |
4516 |
NoBoundaryWidth, StdForeColor, and StdBackColor with a single |
4517 |
flexible and comprehensive window specific command. This command |
4518 |
is used to set attributes of a window to values other than the |
4519 |
default or to set the window manager default styles. |
4520 |
|
4521 |
.I stylename |
4522 |
can be a window's name, class, or resource string. It may contain |
4523 |
the wildcards '*' and '?', which are matched in the usual Unix |
4524 |
filename manner. They are searched in the reverse order |
4525 |
stated. When two conflicting styles apply to the same window, the |
4526 |
style that was changed last wins. |
4527 |
|
4528 |
Note: windows that have no name (WM_NAME) are given a name of |
4529 |
"Untitled", and windows that don't have a class (WM_CLASS, |
4530 |
res_class) are given class "NoClass" and those that don't have a |
4531 |
resource (WM_CLASS, res_name) are given resource "NoResource". |
4532 |
|
4533 |
.I options |
4534 |
is a comma separated list containing one or more of the keywords |
4535 |
.IR BorderWidth ", " HandleWidth , |
4536 |
.IR NoIcon " / " Icon ", " MiniIcon , |
4537 |
.IR IconBox ", " IconGrid ", " IconFill , |
4538 |
.IR NoTitle " / " Title , |
4539 |
.IR TitleAtBottom " / " TitleAtTop , |
4540 |
.IR StippledTitle " / " StippledTitleOff , |
4541 |
.IR NoHandles " / " Handles , |
4542 |
.IR WindowListSkip " / " WindowListHit , |
4543 |
.IR CirculateSkip " / " CirculateHit , |
4544 |
.IR CirculateSkipShaded " / " CirculateHitShaded , |
4545 |
.IR Layer , |
4546 |
.IR StaysOnTop " / " StaysOnBottom " / " StaysPut , |
4547 |
.IR Sticky " / " Slippery , |
4548 |
.IR StartIconic " / " StartNormal , |
4549 |
.IR Color ", " ForeColor ", " BackColor ", " Colorset , |
4550 |
.IR HilightFore ", " HilightBack ", " HilightColorset , |
4551 |
.IR BorderColorset ", " HilightBorderColorset , |
4552 |
.IR Font , |
4553 |
.IR IconFont , |
4554 |
.IR StartsOnDesk " / " StartsOnPage " / " StartsAnyWhere , |
4555 |
.IR StartsOnScreen , |
4556 |
.IR ManualPlacementHonorsStartsOnPage " / " ManualPlacementIgnoresStartsOnPage , |
4557 |
.IR CaptureHonorsStartsOnPage " / " CaptureIgnoresStartsOnPage , |
4558 |
.IR RecaptureHonorsStartsOnPage " / " RecaptureIgnoresStartsOnPage , |
4559 |
.IR StartsOnPageIncludesTransients " / " StartsOnPageIgnoresTransients , |
4560 |
.IR IconTitle " / " NoIconTitle , |
4561 |
.IR MwmButtons " / " FvwmButtons , |
4562 |
.IR MwmBorder " / " FvwmBorder , |
4563 |
.IR MwmDecor " / " NoDecorHint , |
4564 |
.IR MwmFunctions " / " NoFuncHint , |
4565 |
.IR HintOverride " / " NoOverride , |
4566 |
.IR NoButton " / " Button , |
4567 |
.IR ResizeHintOverride " / " NoResizeOverride , |
4568 |
.IR OLDecor " / " NoOLDecor , |
4569 |
.IR GNOMEUseHints " / " GNOMEIgnoreHints , |
4570 |
.IR StickyIcon " / " SlipperyIcon , |
4571 |
.IR ManualPlacement " / " CascadePlacement " / " MinOverlapPlacement " / " |
4572 |
.IR MinOverlapPercentPlacement " / " TileManualPlacement " / " |
4573 |
.IR TileCascadePlacement , |
4574 |
.IR DecorateTransient " / " NakedTransient , |
4575 |
.IR RaiseTransient " / " DontRaiseTransient , |
4576 |
.IR LowerTransient " / " DontLowerTransient , |
4577 |
.IR StackTransientParent " / " DontStackTransientParent , |
4578 |
.IR SkipMapping " / " ShowMapping , |
4579 |
.IR ScatterWindowGroups " / " KeepWindowGroupsOnDesk , |
4580 |
.IR UseDecor , |
4581 |
.IR UseStyle , |
4582 |
.IR NoPPosition " / " UsePPosition , |
4583 |
.IR NoUSPosition " / " UseUSPosition , |
4584 |
.IR NoTransientPPosition " / " UseTransientPPosition , |
4585 |
.IR NoTransientUSPosition " / " UseTransientUSPosition , |
4586 |
.IR UseIconPosition " / " NoIconPosition , |
4587 |
.IR Lenience " / " NoLenience , |
4588 |
.IR ClickToFocus " / " SloppyFocus " /" |
4589 |
.IR MouseFocus | FocusFollowsMouse " / " NeverFocus , |
4590 |
.IR ClickToFocusPassesClickOff " / " ClickToFocusPassesClick , |
4591 |
.IR ClickToFocusRaisesOff " / " ClickToFocusRaises , |
4592 |
.IR MouseFocusClickRaises " / " MouseFocusClickRaisesOff , |
4593 |
.IR StartsLowered " / " StartsRaised , |
4594 |
.IR GrabFocus " / " GrabFocusOff , |
4595 |
.IR GrabFocusTransient " / " GrabFocusTransientOff , |
4596 |
.IR IgnoreRestack " / " AllowRestack , |
4597 |
.IR FixedPosition " / " VariablePosition , |
4598 |
.IR IconOverride " / " NoIconOverride " / " NoActiveIconOverride , |
4599 |
.IR DepressableBorder " / " FirmBorder , |
4600 |
.IR MaxWindowSize , |
4601 |
.IR IconifyWindowGroups " / " IconifyWindowGroupsOff , |
4602 |
.IR ResizeOpaque " / " ResizeOutline , |
4603 |
.IR BackingStore " / " BackingStoreOff , |
4604 |
.IR Opacity " / " ParentalRelativity , |
4605 |
.IR SaveUnder " / " SaveUnderOff , |
4606 |
.IR WindowShadeShrinks " / " WindowShadeScrolls , |
4607 |
.IR WindowShadeSteps. |
4608 |
|
4609 |
.\" +++++++++++++++ general notes |
4610 |
In the above list some options are listed as |
4611 |
style-option/opposite-style-option. The opposite-style-option for |
4612 |
entries that have them describes the fvwm default behavior and can |
4613 |
be used if you want to change the fvwm default behavior. |
4614 |
|
4615 |
.\" +++++++++++++++ focus policy |
4616 |
.TP |
4617 |
.B Focus policy |
4618 |
.I ClickToFocus |
4619 |
instructs fvwm to give the focus to the window when it is clicked |
4620 |
in. The default |
4621 |
.I MouseFocus |
4622 |
(or its alias |
4623 |
.IR FocusFollowsMouse ) |
4624 |
tells fvwm to give the window the focus as soon as the pointer |
4625 |
enters the window, and take it away when the pointer leaves the |
4626 |
window. |
4627 |
.I SloppyFocus |
4628 |
is similar, but doesn't give up the focus if the pointer leaves |
4629 |
the window to pass over the root window or a ClickToFocus window |
4630 |
(unless you click on it, that is), which makes it possible to move |
4631 |
the mouse out of the way without losing focus. A window with the |
4632 |
style |
4633 |
.I NeverFocus |
4634 |
never receives the focus. This is useful for modules like |
4635 |
.BR FvwmButtons , |
4636 |
for example. |
4637 |
|
4638 |
The focus model can be augmented with several additional options. |
4639 |
.IR ClickToFocusPassesClickOff " and " ClickToFocusPassesClick |
4640 |
controls if a mouse click to focus a window using the |
4641 |
.I ClickToFocus |
4642 |
model is sent to the application or not. Similarly, |
4643 |
.IR ClickToFocusRaisesOff " and " ClickToFocusRaises |
4644 |
control if the window is raised, while |
4645 |
.IR MouseFocusClickRaises " and " MouseFocusClickRaisesOff |
4646 |
are equivalent but apply only to windows using |
4647 |
.IR SloppyFocus ", " MouseFocus " and " NeverFocus . |
4648 |
The defaults are |
4649 |
.IR ClickToFocusPassesClick , |
4650 |
.IR ClickToFocusRaises " and " MouseFocusClickRaisesOff . |
4651 |
|
4652 |
.I GrabFocus |
4653 |
causes a newly mapped window to grab the focus, while |
4654 |
.I GrabFocusOff |
4655 |
turns this off. |
4656 |
.I GrabFocus |
4657 |
is the default for |
4658 |
.I ClickToFocus |
4659 |
windows and |
4660 |
.I GrabFocusOff |
4661 |
is the default for |
4662 |
.IR MouseFocus " and " SloppyFocus |
4663 |
windows. Note that this option is switched back to the default |
4664 |
every time you change the focus policy. You have to use it after |
4665 |
the initial |
4666 |
.IR ClickToFocus / MouseFocus / SloppyFocus . |
4667 |
This style does not apply to transient windows. The |
4668 |
.IR GrabFocusTransient " and " GrabFocusTransientOff |
4669 |
styles are responsible for this behavior. By default, |
4670 |
.I GrabFocusTransient |
4671 |
is turned on. |
4672 |
|
4673 |
.I Lenience |
4674 |
instructs fvwm to ignore the convention in the |
4675 |
.SM ICCCM |
4676 |
which states that if an application sets the input field of the |
4677 |
wm_hints structure to False, then it never wants the window |
4678 |
manager to give it the input focus. The only application that we |
4679 |
know of which needs this is sxpm, and that is a silly bug with a |
4680 |
trivial fix and has no overall effect on the program anyway. |
4681 |
Rumor is that some older applications have problems too. |
4682 |
|
4683 |
.\" +++++++++++++++ styles affecting the window title |
4684 |
.TP |
4685 |
.B Window title |
4686 |
The |
4687 |
.IR Title " and " NoTitle |
4688 |
options determine if the window has a title-bar or not. By |
4689 |
default all windows have a title-bar. |
4690 |
|
4691 |
Windows with the |
4692 |
.I TitleAtBottom |
4693 |
style have a title-bar below the window instead of above as |
4694 |
usual. The |
4695 |
.I TitleAtTop |
4696 |
style restores the default placement. Even if the window has the |
4697 |
.I NoTitle |
4698 |
style set, this affects the |
4699 |
.I WindowShade |
4700 |
command. |
4701 |
|
4702 |
With the |
4703 |
.I StippledTitle |
4704 |
style, are drawn with the same effect that is usually reserved for |
4705 |
windows with the |
4706 |
.I Sticky |
4707 |
style. |
4708 |
.I StippledTitleOff |
4709 |
reverts back to normal titles. |
4710 |
|
4711 |
.I Color |
4712 |
takes two arguments. The first is the window-label text color and |
4713 |
the second is the window decoration's normal background color. The |
4714 |
two colors are separated with a slash. If the use of a slash |
4715 |
causes problems then the separate |
4716 |
.IR ForeColor " and " BackColor |
4717 |
options can be used. |
4718 |
|
4719 |
.I Colorset |
4720 |
takes the colorset number as its sole argument and overrides the |
4721 |
colors set by |
4722 |
.IR Color . |
4723 |
Instead, the corresponding colors from the given colorset are |
4724 |
used. Note that all other features of a colorset are unsupported |
4725 |
yet. To stop using the colorset, the colorset number can be |
4726 |
omitted. |
4727 |
|
4728 |
The |
4729 |
.IR HilightFore ", " HilightBack " and " HilightColorset |
4730 |
style options work exactly like |
4731 |
.IR ForeColor ", " BackColor " and " Colorset |
4732 |
but are used only if the window has the focus. These styles |
4733 |
replace the old commands |
4734 |
.BR HilightColor " and " HilightColorset . |
4735 |
|
4736 |
.IR BorderColorset |
4737 |
takes the colorset number as its sole argument and overrides the |
4738 |
colors set by |
4739 |
.IR Color " or " Colorset . |
4740 |
for the window border. To stop using a colorset, the argument can |
4741 |
be omitted. |
4742 |
|
4743 |
The |
4744 |
.IR HilightBorderColorset |
4745 |
style option works similarly to |
4746 |
.IR BorderColorset |
4747 |
but is used when the window has the focus. |
4748 |
|
4749 |
The |
4750 |
.IR Font " and " IconFont |
4751 |
options take the name of a font as their sole argument. This font |
4752 |
is used in the window or icon title. By default the font given in |
4753 |
the |
4754 |
.B DefaultFont |
4755 |
command is used. To revert back to the default, use the style |
4756 |
without the name argument. These styles replace the older |
4757 |
.BR WindowFont " and " IconFont |
4758 |
commands. |
4759 |
|
4760 |
.\" +++++++++++++++ styles affecting title buttons |
4761 |
.TP |
4762 |
.B Title buttons |
4763 |
.IR Button " and " NoButton |
4764 |
take a numeric argument which is the number of the title-bar |
4765 |
button which is to be included/omitted. |
4766 |
|
4767 |
.I MwmButtons |
4768 |
makes the |
4769 |
.B Maximize |
4770 |
button look pressed-in when the window is maximized. See the |
4771 |
.I MwmDecorMax |
4772 |
flag in |
4773 |
.B ButtonStyle |
4774 |
for more information. To switch this style off again, use the |
4775 |
.I FvwmButtons |
4776 |
style. |
4777 |
|
4778 |
.\" +++++++++++++++ styles affecting borders |
4779 |
.TP |
4780 |
.B Borders |
4781 |
.I MwmBorder |
4782 |
makes the 3-D bevel more closely match Mwm's. |
4783 |
.I FvwmBorder |
4784 |
turns off the previous option. |
4785 |
|
4786 |
.I HandleWidth |
4787 |
takes a numeric argument which is the width of the border to place |
4788 |
the window if it does have resize-handles. |
4789 |
|
4790 |
.I BorderWidth |
4791 |
takes a numeric argument which is the width of the border to place |
4792 |
the window if it does not have resize-handles. |
4793 |
|
4794 |
.I DepressableBorder |
4795 |
makes the border parts of the window decoration look sunken in |
4796 |
when a button is pressed over them. This can be disabled again |
4797 |
with the |
4798 |
.I FirmBorder |
4799 |
style. |
4800 |
|
4801 |
.\" +++++++++++++++ icons, shading, maximizing, movement, resizing |
4802 |
.TP |
4803 |
.B Icons, shading, maximizing, movement, resizing |
4804 |
.I Icon |
4805 |
takes an (optional) unquoted string argument which is the icon |
4806 |
bitmap or pixmap to use. Icons specified this way override pixmap |
4807 |
icons, but not icon windows, provided by the client in the |
4808 |
application (with the WM_HINTS property). The |
4809 |
.I IconOverride |
4810 |
style changes the behavior to override any client-provided icons; |
4811 |
the |
4812 |
.I NoIconOverride |
4813 |
style changes the behavior to not override any client-provided |
4814 |
icons; the default overriding behavior can be activated with the |
4815 |
.I NoActiveIconOverride |
4816 |
style. With this style, fvwm uses application provided icons if |
4817 |
the icon is changed but uses the icon provided in the |
4818 |
configuration file until then. |
4819 |
|
4820 |
There is one exception to these rules, namely |
4821 |
.EX |
4822 |
Style * Icon unknown.xpm |
4823 |
.EE |
4824 |
doesn't force the unknown.xpm icon on every window, it just sets |
4825 |
the default icon like the DefaultIcon command. If you really want |
4826 |
all windows to have the same icon, you can use |
4827 |
.EX |
4828 |
Style ** Icon unknown.xpm |
4829 |
.EE |
4830 |
If the |
4831 |
.I NoIcon |
4832 |
attribute is set then the specified window simply disappears when |
4833 |
it is iconified. The window can be recovered through the |
4834 |
window-list. If |
4835 |
.I Icon |
4836 |
is set without an argument then the |
4837 |
.I NoIcon |
4838 |
attribute is cleared but no icon is specified. An example which |
4839 |
allows only the |
4840 |
.B FvwmPager |
4841 |
module icon to exist: |
4842 |
.EX |
4843 |
Style * NoIcon |
4844 |
Style FvwmPager Icon |
4845 |
.EE |
4846 |
|
4847 |
.I IconBox |
4848 |
takes no argument, four numeric arguments (plus optionally a |
4849 |
screen specification), an X11 geometry string or the string |
4850 |
"none": |
4851 |
.EX |
4852 |
.RI IconBox " [" "screen scr-spec" "] " "l t r b" |
4853 |
.EE |
4854 |
or |
4855 |
.EX |
4856 |
IconBox geometry |
4857 |
.EE |
4858 |
Where |
4859 |
.I l |
4860 |
is the left coordinate, |
4861 |
.I t |
4862 |
is the top, |
4863 |
.I r |
4864 |
is right and |
4865 |
.I b |
4866 |
is bottom. Negative coordinates indicate distance from the right |
4867 |
or bottom of the screen. |
4868 |
If the first argument is the word |
4869 |
.IR screen , |
4870 |
the |
4871 |
.I scr-spec |
4872 |
argument specifies the Xinerama screen on which the IconBox is |
4873 |
defined. It can be the usual screen Xinerama specification, 'p', |
4874 |
'c', 'g', a screen number or the additional 'w' for the screen |
4875 |
where the window center is located. This is only useful with |
4876 |
multiple Xinerama screens. Perhaps easier to use is an X11 |
4877 |
geometry string: |
4878 |
.EX |
4879 |
IconBox -80x200-1-1 |
4880 |
.EE |
4881 |
Which would place an 80 by 240 pixel icon box in the lower right |
4882 |
hand corner of the screen. The icon box is a region of the screen |
4883 |
where fvwm attempts to put icons for any matching window, as long |
4884 |
as they do not overlap other icons. Multiple icon boxes can be |
4885 |
defined as overflow areas. When the first icon box is full, the |
4886 |
second one is filled. All the icon boxes for one style must be |
4887 |
defined in one |
4888 |
.B Style |
4889 |
command. For example: |
4890 |
.EX |
4891 |
Style * IconBox -80x200-1-1, \\ |
4892 |
IconBox 1000x70-1-1 |
4893 |
.EE |
4894 |
A Style command with the IconBox option replaces any icon box |
4895 |
previously defined for the same style. Thats why the backslash in |
4896 |
the previous example is required. |
4897 |
|
4898 |
Note: The geometry for the icon box command takes the additional |
4899 |
screen specifier "@w" in case a Xinerama setup is used. This |
4900 |
designates the screen where the window center is located. The |
4901 |
additional screen specifier is not allowed anywhere else. |
4902 |
|
4903 |
If you never define an icon box, or you fill all the icon boxes, |
4904 |
fvwm has a default icon box that covers the screen, it fills top |
4905 |
to bottom, then left to right, and has an 80x80 pixel grid. To |
4906 |
disable all but the default icon box you can use IconBox without |
4907 |
arguments in a separate |
4908 |
.B Style |
4909 |
command. To disable all icon boxes including the default icon |
4910 |
box, the argument "none" can be specified. |
4911 |
|
4912 |
Hint: You can auto arrange your icons in the icon box with a |
4913 |
simple fvwm function. Put the "DeiconifyAndRearrange" function |
4914 |
below in your configuration file: |
4915 |
.EX |
4916 |
AddToFunc DeiconifyAndRearrange |
4917 |
+ C Iconify off |
4918 |
+ C All (CurrentPage Iconic) RecaptureWindow |
4919 |
.EE |
4920 |
And then replace all places where you call the |
4921 |
.B Iconify |
4922 |
builtin function to de-iconify an icon with a call to the new |
4923 |
function. For example replace |
4924 |
.EX |
4925 |
AddToFunc IconFunc |
4926 |
+ C Iconify off |
4927 |
+ M Raise |
4928 |
+ M Move |
4929 |
+ D Iconify off |
4930 |
|
4931 |
Mouse 1 I A Iconify off |
4932 |
.EE |
4933 |
with |
4934 |
.EX |
4935 |
AddToFunc IconFunc |
4936 |
+ C DeiconifyAndRearrange |
4937 |
+ M Raise |
4938 |
+ M Move |
4939 |
+ D DeiconifyAndRearrange |
4940 |
|
4941 |
Mouse 1 I A DeiconifyAndRearrange |
4942 |
.EE |
4943 |
.I IconGrid |
4944 |
takes 2 numeric arguments greater than zero. |
4945 |
.EX |
4946 |
.I IconGrid x y |
4947 |
.EE |
4948 |
Icons are placed in an icon box by stepping through the icon box |
4949 |
using the |
4950 |
.IR x " and " y |
4951 |
values for the icon grid, looking for a free space. The default |
4952 |
grid is 3 by 3 pixels which gives a tightly packed appearance. To |
4953 |
get a more regular appearance use a grid larger than your largest |
4954 |
icon. Currently there is no way to clip an icon to a maximum |
4955 |
size. An |
4956 |
.I IconGrid |
4957 |
definition must follow the |
4958 |
.B IconBox |
4959 |
definition that it applies to: |
4960 |
.EX |
4961 |
Style * IconBox -80x240-1-1, IconGrid 90 90 |
4962 |
.EE |
4963 |
.I IconFill |
4964 |
takes 2 arguments. |
4965 |
.EX |
4966 |
.RI "IconFill " "Bottom Right" |
4967 |
.EE |
4968 |
Icons are placed in an icon box by stepping through the icon box |
4969 |
using these arguments to control the direction the box is filled |
4970 |
in. By default the direction is left to right, then top to bottom. |
4971 |
This would be expressed as: |
4972 |
.EX |
4973 |
IconFill left top |
4974 |
.EE |
4975 |
To fill an icon box in columns instead of rows, specify the |
4976 |
vertical direction (top or bottom) first. The directions can be |
4977 |
abbreviated or spelled out as follows: "t", "top", "b", "bot", |
4978 |
"bottom", "l", "lft", "left", "r", "rgt", "right". An |
4979 |
.B IconFill |
4980 |
definition must follow the |
4981 |
.B IconBox |
4982 |
definition that it applies to: |
4983 |
.EX |
4984 |
Style * IconBox -80x240-1-1, IconFill b r |
4985 |
.EE |
4986 |
.I MiniIcon |
4987 |
specifies a pixmap to use as the miniature icon for the |
4988 |
window. This miniature icon can be drawn in a title-bar button |
4989 |
(see |
4990 |
.BR ButtonStyle ), |
4991 |
and can be used by various fvwm modules |
4992 |
.RB ( FvwmWinList ", " FvwmIconMan " and " FvwmTaskBar ). |
4993 |
It takes the name of a pixmap as an argument. |
4994 |
|
4995 |
.I WindowShadeShrinks " and " WindowShadeScrolls |
4996 |
control if the contents of a window that is being shaded with the |
4997 |
.B WindowShade |
4998 |
command are scrolled (default) or if they stay in place. |
4999 |
|
5000 |
The |
5001 |
.I WindowShadeSteps |
5002 |
option selects the number of steps for animation when shading a |
5003 |
window with |
5004 |
.BR WindowShade . |
5005 |
It takes one number as its argument. If the number has a trailing |
5006 |
.RI ' p ' |
5007 |
it sets the number of pixels to use as the step size instead of |
5008 |
a fixed number of steps. 0 disables the animation. This happens |
5009 |
too if the argument is omitted or invalid. |
5010 |
|
5011 |
.I ResizeOpaque |
5012 |
instructs fvwm to resize the corresponding windows with their |
5013 |
contents visible instead of using an outline. Since this causes |
5014 |
the application to redraw frequently it can be quite slow and make |
5015 |
the window flicker excessively, depending on the amount of |
5016 |
graphics the application redraws. The |
5017 |
.I ResizeOutline |
5018 |
style (default) negates the |
5019 |
.I ResizeOpaque |
5020 |
style. Many applications do not like their windows being resized |
5021 |
opaque, e.g. XEmacs, Netscape or terminals with a pixmap |
5022 |
background. If you do not like the result, don't use the |
5023 |
.I ResizeOpaque |
5024 |
style for these windows. To exempt certain windows from opaque |
5025 |
resizing you could use these lines in your configuration file: |
5026 |
.EX |
5027 |
Style * ResizeOpaque |
5028 |
Style rxvt ResizeOutline |
5029 |
Style emacs ResizeOutline |
5030 |
.EE |
5031 |
.I Sticky |
5032 |
makes the window sticky, i.e. it is always visible on each page |
5033 |
and each desk. The opposite style, |
5034 |
.I Slippery |
5035 |
reverts back to the default. |
5036 |
|
5037 |
.I StickyIcon |
5038 |
makes the window sticky when its iconified. It de-iconifies on |
5039 |
top the active desktop. |
5040 |
.I SlipperIcon |
5041 |
reverts back to the default. |
5042 |
|
5043 |
.I IgnoreRestack |
5044 |
makes fvwm ignore attempts of clients to raise or lower their own |
5045 |
windows. By default, the opposite style, |
5046 |
.I AllowRestack |
5047 |
is active. |
5048 |
|
5049 |
.I FixedPosition |
5050 |
makes fvwm ignore attempts of the user to move the window. To |
5051 |
allow user movement of windows, use the |
5052 |
.I VariablePosition |
5053 |
style. |
5054 |
|
5055 |
.I ResizeHintOverride |
5056 |
instructs fvwm to ignore the program supplied minimum and maximum |
5057 |
size. This can be handy for broken applications that refuse to be |
5058 |
resized. Don't use it if you don't need it. The default |
5059 |
(opposite) style is |
5060 |
.I NoResizeOverride. |
5061 |
|
5062 |
.I MaxWindowSize " [ width [ p ] height [ p ] ]" |
5063 |
Tells fvwm the maximum width and height of a window. The values |
5064 |
are the percentage of the total screen area. If the letter |
5065 |
.RI ' p ' |
5066 |
is appended to either of the values, the numbers are interpreted |
5067 |
as pixels. This command is useful to force large application |
5068 |
windows to be fully visible. Neither |
5069 |
.IR height " or " width |
5070 |
may be less than 100 pixels. If you omit the parameters or their |
5071 |
values are invalid, both limits are set to 32767 pixels (which is |
5072 |
the default). |
5073 |
|
5074 |
With |
5075 |
.I IconifyWindowGroups |
5076 |
all windows in the same window group are iconified at once when |
5077 |
group leader is iconified. The default is |
5078 |
.IR IconifyWindowGroupsOff , |
5079 |
which disables this behaviour. Although a number of applications |
5080 |
use the window group hint, it is rarely used in a proper way, so |
5081 |
it is probably best to use |
5082 |
.I IconifyWindowGroups |
5083 |
only for selected applications. |
5084 |
|
5085 |
.\" +++++++++++++++ Window Manager placement |
5086 |
.TP |
5087 |
.B Window Manager placement |
5088 |
Applications can place windows at a particular spot on the screen |
5089 |
either by window manager hints or a geometry specification. When |
5090 |
they do neither, then the window manager steps in to find a place |
5091 |
for the window. Fvwm knows six ways to deal with this |
5092 |
situation. The default is |
5093 |
.IR TileCascadePlacement . |
5094 |
|
5095 |
.I CascadePlacement |
5096 |
automatically place new windows in a cascading fashion. |
5097 |
|
5098 |
.I TileCascadePlacement |
5099 |
automatically places new windows in a smart location - a location |
5100 |
in which they do not overlap any other windows on the screen. If |
5101 |
no such position can be found |
5102 |
.IR CascadePlacement |
5103 |
is used as a fall-back method. |
5104 |
|
5105 |
.I TileManualPlacement |
5106 |
This is the same as |
5107 |
.IR TileCascadePlacement , |
5108 |
but uses |
5109 |
.IR ManualPlacement |
5110 |
as the fall-back method. |
5111 |
|
5112 |
.I MinOverlapPlacement |
5113 |
automatically places new windows in a location in which the |
5114 |
overlapping area in pixels of other windows is minimal. This |
5115 |
placement policy especially tries to avoid overlapping icons and |
5116 |
windows on higher layers. |
5117 |
|
5118 |
.I MinOverlapPercentPlacement |
5119 |
is similar to |
5120 |
.IR MinOverlapPlacement |
5121 |
but tries to minimize the overlapped percentages of other windows |
5122 |
instead of the overlapped area in pixels. This placement policy |
5123 |
tries to avoid covering other windows completely and tries even |
5124 |
harder not to cover small windows. |
5125 |
|
5126 |
.I ManualPlacement |
5127 |
(aka active placement). The user is required to place every new |
5128 |
window manually. The window only shows as a rubber band until a |
5129 |
place is selected manually. The window is placed when a mouse |
5130 |
button or any key except |
5131 |
.SM Escape |
5132 |
is pressed. Escape aborts manual placement which places the |
5133 |
window in the top left corner of the screen. If mouse button 2 is |
5134 |
pressed during the initial placement of a window (respectively |
5135 |
.SM Shift |
5136 |
and mouse button 1 in case Mwm emulation has been enabled with the |
5137 |
.B Emulate |
5138 |
command), the user is asked to resize the window too. Pressing |
5139 |
button 3 sets the |
5140 |
.I PlacedByButton3 |
5141 |
condition (see |
5142 |
.B Current |
5143 |
command). |
5144 |
|
5145 |
Example: |
5146 |
.EX |
5147 |
Style * ManualPlacement |
5148 |
|
5149 |
*FvwmEvent: PassID |
5150 |
*FvwmEvent: add_window GrowDownFunc |
5151 |
AddToFunc StartFunction |
5152 |
+ I FvwmEvent |
5153 |
|
5154 |
AddToFunc GrowDownFunc |
5155 |
+ I windowid $0 (PlacedByButton3) \\ |
5156 |
Resize bottomright keep -0p |
5157 |
.EE |
5158 |
|
5159 |
Now, whenever a window is created and the user presses button 3 to |
5160 |
finish initial placement, the window is automatically enlarged |
5161 |
until it hits the bottom screen border. |
5162 |
|
5163 |
.I Old placement styles |
5164 |
DumbPlacement / SmartPlacement / SmartPlacementOff, |
5165 |
ActivePlacement / RandomPlacement, |
5166 |
ActivePlacementsHonorsStartsOnPage / ActivePlacementsHonorsStartsOnPageOff, |
5167 |
GlobalOpts SmartPlacementIsReallySmart / GlobalOpts SmartPlacementIsNormal |
5168 |
are still supported but will be removed in the future. The old and |
5169 |
new styles can be translated according to the following table: |
5170 |
.EX |
5171 |
GlobalOpts SmartPlacementIsReallySmart |
5172 |
Style * SmartPlacement |
5173 |
--> |
5174 |
Style * SmartPlacement, CleverPlacement |
5175 |
|
5176 |
Global SmartPlacementIsNormal |
5177 |
Style * SmartPlacement |
5178 |
--> |
5179 |
Style * SmartPlacement, CleverPlacementOff |
5180 |
|
5181 |
Style * DumbPlacement, RandomPlacement |
5182 |
--> |
5183 |
Style * CascadePlacement |
5184 |
|
5185 |
Style * DumbPlacement, ActivePlacement |
5186 |
--> |
5187 |
Style * ManualPlacement |
5188 |
|
5189 |
Style * SmartPlacement + RandomPlacement + CleverPlacementOff |
5190 |
--> |
5191 |
Style * TileCascadePlacement |
5192 |
|
5193 |
Style * SmartPlacement + ActivePlacement + CleverPlacementOff |
5194 |
--> |
5195 |
Style * TileManualPlacement |
5196 |
|
5197 |
Style * SmartPlacement + CleverPlacement |
5198 |
--> |
5199 |
Style * MinOverlapPlacement |
5200 |
|
5201 |
Style * SmartPlacement, ActivePlacement, CleverPlacement |
5202 |
--> |
5203 |
Style * MinOverlapPercentPlacement |
5204 |
|
5205 |
Style * ActivePlacementsHonorsStartsOnPage |
5206 |
--> |
5207 |
Style * ManualPlacementsHonorsStartsOnPage |
5208 |
|
5209 |
Style * ActivePlacementsHonorsStartsOnPageOff |
5210 |
--> |
5211 |
Style * ManualPlacementsHonorsStartsOnPageOff |
5212 |
.EE |
5213 |
|
5214 |
.\" +++++++++++++++ placement options and stacking policy |
5215 |
.TP |
5216 |
.B Placement policy options and window stacking |
5217 |
.I NoPPosition |
5218 |
instructs fvwm to ignore the program specified position (PPosition |
5219 |
hint) when adding new windows. Using PPosition is required for |
5220 |
some applications, but if you don't have one of those its a real |
5221 |
headache. Many programs set PPosition to something obnoxious like |
5222 |
0,0 (upper left corner). |
5223 |
|
5224 |
.I NoUSPosition |
5225 |
works like |
5226 |
.I NoPPosition |
5227 |
but applies suppresses using the user specified position indicated |
5228 |
by the program (USPosition hint). It is generally a bad thing to |
5229 |
override the user's choice, but some applications misuse the |
5230 |
USPosition hint to force their windows to a certain spot on the |
5231 |
screen without the user's consent. |
5232 |
|
5233 |
.IR NoTransientPPosition " and " UseTransientPPosition |
5234 |
work like |
5235 |
.IR NoPPosition " and " UsePPosition |
5236 |
but apply only to transient windows. |
5237 |
|
5238 |
.I NoIconPosition |
5239 |
instructs fvwm to ignore the program specified icon position |
5240 |
(IconPosition hint) when iconifying the window. |
5241 |
|
5242 |
.I StartsOnDesk |
5243 |
takes a numeric argument which is the desktop number on which the |
5244 |
window should be initially placed. Note that standard Xt programs |
5245 |
can also specify this via a resource (e.g. "-xrm '*Desk: 1'"). |
5246 |
|
5247 |
.I StartsOnPage |
5248 |
takes 1, 2, or 3 numeric arguments. If one or three arguments are |
5249 |
given, the first (or only) argument is the desktop number. If |
5250 |
three arguments are given, the 2nd and 3rd arguments identify the |
5251 |
x,y page position on the virtual window. If two arguments are |
5252 |
given, they specify the page position, and indicate no desk |
5253 |
preference. If only one argument is given, |
5254 |
.I StartsOnPage |
5255 |
functions exactly like |
5256 |
.IR StartsOnDesk . |
5257 |
For those standard Xt programs which understand this usage, the |
5258 |
starting desk/page can also be specified via a resource (e.g., |
5259 |
"-xrm '*page: 1 0 2'"). |
5260 |
.I StartsOnPage |
5261 |
in conjunction with |
5262 |
.I SkipMapping |
5263 |
is a useful technique when you want to start an app on some other |
5264 |
page and continue with what you were doing, rather than waiting |
5265 |
for it to appear. |
5266 |
|
5267 |
.I StartsOnScreen |
5268 |
takes one argument. It can be 'p' for the primary screen, 'c' for |
5269 |
the current screen (containing the mouse pointer), 'g' for the |
5270 |
global screen or the screen number itself (counting from zero). |
5271 |
A new window is placed on the specified Xinerama screen. The |
5272 |
default is to place windows on the screen that contains the mouse |
5273 |
pointer at the time the window is created. |
5274 |
However, those windows which are not placed by FVWM (i.e., those with |
5275 |
a USPosition hint from a user specified geometry) are normally placed |
5276 |
in a position relative to the global screen. The |
5277 |
.I StartsOnScreen |
5278 |
style is also useful to cause these windows to be placed relative |
5279 |
to a specific Xinerama screen. For example: |
5280 |
.EX |
5281 |
Style * StartsOnScreen c |
5282 |
.EE |
5283 |
Would cause all windows, including those with their own geometry |
5284 |
to be placed relative to the current Xinerama screen rather than |
5285 |
the global screen. |
5286 |
For those standard Xt programs which understand this usage, the |
5287 |
starting desk/page can also be specified via a resource (e.g., |
5288 |
"-xrm '*fvwmscreen: c'"). ('fvwmscreen' was chosen |
5289 |
because some applications already use '.screen' for other |
5290 |
purposes.) |
5291 |
|
5292 |
.I StartsOnPageIncludesTransients |
5293 |
causes the |
5294 |
.I StartsOnPage |
5295 |
style to be applied even for transient windows. This is not |
5296 |
usually useful, since transients are usually pop ups that you want |
5297 |
to appear in your visible viewport; but occasionally an |
5298 |
application uses a transient for something like a startup window |
5299 |
that needs to be coerced into place. |
5300 |
|
5301 |
.I ManualPlacementIgnoresStartsOnPage |
5302 |
suppresses |
5303 |
.IR StartsOnPage " or " StartsOnDesk |
5304 |
placement in the event that both |
5305 |
.IR ManualPlacement " and " SkipMapping |
5306 |
are in effect when a window is created. This prevents you from |
5307 |
interactively placing a window and then wondering where it |
5308 |
disappeared to, because it got placed on a different desk or page. |
5309 |
.I ManualPlacementHonorsStartsOnPage |
5310 |
allows this to happen anyway. The option has no effect if |
5311 |
.I SkipMapping |
5312 |
is not in effect, because fvwm switches to the proper desk/page to |
5313 |
perform interactive placement. The default is |
5314 |
.IR ManualPlacementIgnoresStartsOnPage "; " |
5315 |
.I ManualPlacementHonorsStartsOnPage |
5316 |
matches the way the old |
5317 |
.I StartsOnDesk |
5318 |
style used to handle the situation. |
5319 |
|
5320 |
.I CaptureHonorsStartsOnPage |
5321 |
causes the initial capture (of an already existing window) at |
5322 |
startup to place the window according to the |
5323 |
.IR StartsOnPage " and " StartsOnScreen |
5324 |
desk, page and Xinerama screen specification. |
5325 |
.I CaptureIgnoresStartsOnPage |
5326 |
causes fvwm to ignore these settings (including |
5327 |
.IR StartsOnDesk ) |
5328 |
on initial capture. The default is |
5329 |
.IR CaptureIgnoresStartsOnPage . |
5330 |
|
5331 |
.I RecaptureHonorsStartsOnPage |
5332 |
causes a window to be placed according to, or revert to, the |
5333 |
.IR StartsOnPage " and " StartsOnScreen |
5334 |
desk, page and Xinerama screen specification on |
5335 |
.BR Restart " or " Recapture . |
5336 |
.I RecaptureIgnoresStartsOnPage |
5337 |
causes fvwm to respect the current window position on |
5338 |
.BR Restart " or " Recapture . |
5339 |
The default is |
5340 |
.IR RecaptureIgnoresStartsOnPage . |
5341 |
|
5342 |
.I Layer |
5343 |
accepts one optional argument: a non-negative integer. This is |
5344 |
the layer the window is put in. If no argument is given, any |
5345 |
previously set value is deleted and the default layer is implied. |
5346 |
|
5347 |
.I StaysOnTop |
5348 |
puts the window in the top layer. This layer can be changed by |
5349 |
the built-in command |
5350 |
.BR DefaultLayers ; |
5351 |
the default is 6. |
5352 |
|
5353 |
.I StaysPut |
5354 |
puts the window in the put layer. This layer can be changed by |
5355 |
the built-in command |
5356 |
.BR DefaultLayers ; |
5357 |
the default is 4. |
5358 |
|
5359 |
.I StaysOnBottom |
5360 |
puts the window in the bottom layer. This layer can be changed by |
5361 |
the built-in command |
5362 |
.BR DefaultLayers ; |
5363 |
the default is 2. |
5364 |
|
5365 |
.I StartsLowered |
5366 |
instructs fvwm to put the window initially at the bottom of its |
5367 |
layer rather than the default |
5368 |
.IR StartsRaised . |
5369 |
|
5370 |
.I SkipMapping |
5371 |
tells fvwm not to switch to the desk the window is on when it gets |
5372 |
mapped initially (useful with |
5373 |
.IR StartsOnDesk " or " StartsOnPage ). |
5374 |
|
5375 |
.I KeepWindowGroupsOnDesk |
5376 |
makes new windows that have the window group hint set appear on |
5377 |
the same desk as the other windows of the same group. Since this |
5378 |
bevhaviour may be confusing, the default setting is |
5379 |
.IR ScatterWindowGroups . |
5380 |
The window group hint is ignored when placing windows in this |
5381 |
case. |
5382 |
|
5383 |
.\" +++++++++++++++ transient windows |
5384 |
.TP |
5385 |
.B Transient windows |
5386 |
.I DecorateTransient |
5387 |
causes transient windows, which are normally left undecorated, to |
5388 |
be given the usual fvwm decorations (title bar, buttons, |
5389 |
etc.). Note that some pop-up windows, such as the xterm menus, are |
5390 |
not managed by the window manager and still do not receive |
5391 |
decorations. |
5392 |
.I NakedTransient |
5393 |
(the default) causes transient windows not to be given the |
5394 |
standard decorations. You can only bind keys or mouse buttons to |
5395 |
the sides and the client window of an undecorated window ('S' |
5396 |
and 'W' contexts in bindings, see |
5397 |
.BR Mouse " and " Key |
5398 |
commands). |
5399 |
|
5400 |
A window with the |
5401 |
.I RaiseTransient |
5402 |
style that has transient windows raises all its transients when it |
5403 |
is raised. The |
5404 |
.I DontRaiseTransient |
5405 |
style disables this behavior. All windows are then treated as if |
5406 |
they had no transients. |
5407 |
|
5408 |
A window with the |
5409 |
.I LowerTransient |
5410 |
style that has transient windows lowers all its transients when it |
5411 |
is lowered. The |
5412 |
.I DontLowerTransient |
5413 |
style disables this behavior. All windows are then treated as if |
5414 |
they had no transients. |
5415 |
|
5416 |
The |
5417 |
.I StackTransientParent |
5418 |
style augments |
5419 |
.IR RaiseTransient " and " LowerTransient |
5420 |
styles. Raising a window with |
5421 |
.I StackTransientParent |
5422 |
style transfers the raise action to the main window if the window |
5423 |
being raised is a transient and its main window has |
5424 |
.I RaiseTransient |
5425 |
style; this effect makes raise on a transient act just like raise |
5426 |
on its main - the whole group is raised. Similar behavior holds |
5427 |
for lowering a whole group of transients when the main has |
5428 |
.I LowerTransient |
5429 |
style. |
5430 |
.I DontStackTransientParent |
5431 |
turns this behavior off. |
5432 |
.I (Dont)StackTransientParent |
5433 |
has no effect if |
5434 |
.IR RaiseTransient " and " LowerTransient |
5435 |
are not used. |
5436 |
|
5437 |
A reasonable emulation of Motif raise/lower on transients is |
5438 |
possible like this |
5439 |
.EX |
5440 |
Style * RaiseTransient |
5441 |
Style * LowerTransient |
5442 |
Style * StackTransientParent |
5443 |
.EE |
5444 |
|
5445 |
.\" +++++++++++++++ miscellaneous |
5446 |
.TP |
5447 |
.B Miscellaneous |
5448 |
The |
5449 |
.IR BackingStore " and " SaveUnder |
5450 |
styles enable the corresponding window attributes in the X server. |
5451 |
.I BackingStore |
5452 |
means that the X server tries to keep the obscured parts of a |
5453 |
window in memory while windows with |
5454 |
.I SaveUnder |
5455 |
store the graphics below them. Either option can speed up fvwm if |
5456 |
the connection to the X server is slow (e.g. over a modem link). |
5457 |
By default both styles are turned off. To switch them off |
5458 |
explicitly you can use the |
5459 |
.IR BackingStoreOff " and " SaveUnderOff |
5460 |
styles. |
5461 |
|
5462 |
.I ParentalRelativity |
5463 |
enables clients that use a background pixmap of type |
5464 |
.IR ParentRelative |
5465 |
to achieve transparency. Fvwm modules that support transparent |
5466 |
colorsets require this setting. |
5467 |
.I Opacity |
5468 |
is the default and should be used for all non-transparent clients |
5469 |
for better performance. |
5470 |
|
5471 |
.I MwmDecor |
5472 |
makes fvwm attempt to recognize and respect the mwm decoration |
5473 |
hints that applications occasionally use. To switch this style |
5474 |
off, use the |
5475 |
.I NoDecorHint |
5476 |
style. |
5477 |
|
5478 |
.I MwmFunctions |
5479 |
makes fvwm attempt to recognize and respect the mwm prohibited |
5480 |
operations hints that applications occasionally use. |
5481 |
.I HintOverride |
5482 |
makes fvwm shade out operations that mwm would prohibit, but it |
5483 |
lets you perform the operation anyway. |
5484 |
.I NoFuncHint |
5485 |
allows turns off the mwm hints completely. |
5486 |
|
5487 |
.I OLDecor |
5488 |
makes fvwm attempt to recognize and respect the olwm and olvwm |
5489 |
hints that many older XView and OLIT applications use. Switch |
5490 |
this option off with |
5491 |
.IR NoOLDecor . |
5492 |
|
5493 |
With |
5494 |
.I GNOMEIgnoreHints |
5495 |
fvwm ignores all GNOME hints for the window, even if GNOME |
5496 |
compliance is compiled in. This is useful for those pesky |
5497 |
applications that try to be more clever than the user and use |
5498 |
GNOME hints to force the window manager to ignore the user's |
5499 |
preferences. The |
5500 |
.I GNOMEUseHints |
5501 |
style switches back to the default behaviour. |
5502 |
|
5503 |
.I UseDecor |
5504 |
accepts one argument: the name of a decor created with |
5505 |
.BR AddToDecor . |
5506 |
If no decor name is specified, the "Default" decor is |
5507 |
used. Windows do not actually contain decors, but are always |
5508 |
assigned to one. If the decor is later modified with |
5509 |
.BR AddToDecor , |
5510 |
the changes are visible for all windows which are assigned to it. |
5511 |
The decor for a window can be reassigned with |
5512 |
.BR ChangeDecor . |
5513 |
|
5514 |
.I UseStyle |
5515 |
takes one arg, which is the name of another style. That way you |
5516 |
can have unrelated window names easily inherit similar traits |
5517 |
without retyping. For example: |
5518 |
.EX |
5519 |
Style rxvt UseStyle XTerm |
5520 |
.EE |
5521 |
Warning: If a style is built from one or more parent styles and |
5522 |
the parent styles are changed, the derived style is not |
5523 |
modified. To achieve this you have to issue the |
5524 |
.I UseStyle |
5525 |
line again. |
5526 |
|
5527 |
.\" +++++++++++++++ examples |
5528 |
.TP |
5529 |
.B Examples |
5530 |
.EX |
5531 |
# Change default fvwm behavior to no title- |
5532 |
# bars on windows! Also define a default icon. |
5533 |
Style * NoTitle, \\ |
5534 |
Icon unknown1.xpm, \\ |
5535 |
BorderWidth 4, \\ |
5536 |
HandleWidth 5 |
5537 |
|
5538 |
# now, window specific changes: |
5539 |
Style Fvwm* NoHandles, Sticky, \\ |
5540 |
WindowListSkip, \\ |
5541 |
BorderWidth 0 |
5542 |
Style FvwmPager StaysOnTop, BorderWidth 0 |
5543 |
Style *lock NoHandles, Sticky, \\ |
5544 |
StaysOnTop, WindowListSkip |
5545 |
Style xbiff Sticky, WindowListSkip |
5546 |
Style FvwmButtons NoHandles, Sticky, \\ |
5547 |
WindowListSkip |
5548 |
Style sxpm NoHandles |
5549 |
|
5550 |
# Put title-bars back on xterms only! |
5551 |
Style xterm Title, Color black/grey |
5552 |
|
5553 |
Style rxvt Icon term.xpm |
5554 |
Style xterm Icon rterm.xpm |
5555 |
Style xcalc Icon xcalc.xpm |
5556 |
Style xbiff Icon mail1.xpm |
5557 |
Style xmh Icon mail1.xpm, \\ |
5558 |
StartsOnDesk 2 |
5559 |
Style xman Icon xman.xpm |
5560 |
Style matlab Icon math4.xpm, \\ |
5561 |
StartsOnDesk 3 |
5562 |
Style xmag Icon magnifying_glass2.xpm |
5563 |
Style xgraph Icon graphs.xpm |
5564 |
Style FvwmButtons Icon toolbox.xpm |
5565 |
Style Maker StartsOnDesk 1 |
5566 |
Style signal StartsOnDesk 3 |
5567 |
|
5568 |
# Fire up Netscape on the second desk, in the |
5569 |
# middle of my 3x3 virtual desktop, and don't |
5570 |
# bother me with it... |
5571 |
Style Netscape* SkipMapping, \\ |
5572 |
StartsOnPage 1 1 1 |
5573 |
.EE |
5574 |
Note that all properties for a window are or'ed together. In the |
5575 |
above example "FvwmPager" gets the property |
5576 |
.I StaysOnTop |
5577 |
via an exact window name match but also gets |
5578 |
.IR NoHandles ", " Sticky " and " WindowListSkip |
5579 |
by a match to "Fvwm*". It gets |
5580 |
.I NoTitle |
5581 |
by virtue of a match to "*". If conflicting styles are specified |
5582 |
for a window, then the last style specified are used. |
5583 |
|
5584 |
If the |
5585 |
.I NoIcon |
5586 |
attribute is set then the specified window simply disappears when |
5587 |
it is iconified. The window can be recovered through the |
5588 |
window-list. If |
5589 |
.I Icon |
5590 |
is set without an argument then the |
5591 |
.I NoIcon |
5592 |
attribute is cleared but no icon is specified. An example which |
5593 |
allows only the FvwmPager module icon to exist: |
5594 |
.EX |
5595 |
Style * NoIcon |
5596 |
Style FvwmPager Icon |
5597 |
.EE |
5598 |
|
5599 |
.TP |
5600 |
.BI "DestroyStyle " style |
5601 |
Deletes the style named |
5602 |
.IR style . |
5603 |
The changes take effect immediately. Note that |
5604 |
.I style |
5605 |
is not a wild-carded search string, but rather a case-sensitive |
5606 |
string that should exactly match the original |
5607 |
.B Style |
5608 |
command. |
5609 |
|
5610 |
Destroying style "*" can be done, but isn't really to be |
5611 |
recommended. For example: |
5612 |
.EX |
5613 |
DestroyStyle Application* |
5614 |
.EE |
5615 |
This removes all settings for the style named "Application*", NOT |
5616 |
all styles starting with "Application". |
5617 |
|
5618 |
.SS OTHER COMMANDS CONTROLLING WINDOW STYLES |
5619 |
|
5620 |
.IP "\fBAddButtonStyle\fP \fIbutton\fP \ |
5621 |
\fB[\fP \fIstate\fP \ |
5622 |
\fB] [\fP \fIstyle\fP \ |
5623 |
\fB] [-- [!]\fP \fIflag\fP \ |
5624 |
\fB...]\fP" |
5625 |
|
5626 |
Adds a button style to |
5627 |
.IR button . |
5628 |
.I button |
5629 |
can be a button number, or one of "All", "Left" or "Right". |
5630 |
.I state |
5631 |
can be "ActiveUp," "ActiveDown" or "Inactive" or any of these |
5632 |
three with "Toggled" prepended. "ActiveUp" selects the style of |
5633 |
the button when the window has the focus and the button is not |
5634 |
pressed. "ActiveDown" is similar but applies when the button is |
5635 |
pressed while the "Inactive" style is used for windows without the |
5636 |
focus. The "Toggled" prefix refers to maximized, shaded or sticky |
5637 |
windows that have the corresponding |
5638 |
.I MwmDecor... |
5639 |
button style set. If |
5640 |
.I state |
5641 |
is omitted, then the style is added to every state. If the |
5642 |
.IR style " and " flags |
5643 |
are enclosed in parentheses, then multiple |
5644 |
.I state |
5645 |
definitions can be placed on a single line. |
5646 |
.I Flags |
5647 |
for additional button styles cannot be changed after definition. |
5648 |
|
5649 |
Buttons are drawn in the order of definition, beginning with the |
5650 |
most recent button style, followed by those added with |
5651 |
.BR AddButtonStyle . |
5652 |
To clear the button style stack, change style flags, or for |
5653 |
descriptions of available styles and flags, see the |
5654 |
.B ButtonStyle |
5655 |
command. Examples: |
5656 |
.EX |
5657 |
ButtonStyle 1 Pixmap led.xpm -- Top Left |
5658 |
ButtonStyle 1 ActiveDown HGradient 8 grey \\ |
5659 |
black |
5660 |
ButtonStyle All -- UseTitleStyle |
5661 |
AddButtonStyle 1 ActiveUp (Pixmap a.xpm) \\ |
5662 |
ActiveDown (Pixmap b.xpm -- Top) |
5663 |
AddButtonStyle 1 Vector 4 50x30@1 70x70@0 \\ |
5664 |
30x70@0 50x30@1 |
5665 |
.EE |
5666 |
Initially for this example all button states are set to a pixmap. |
5667 |
The second line replaces the "ActiveDown" state with a gradient |
5668 |
(it overrides the pixmap assigned to it in the line before, which |
5669 |
assigned the same style to every state). Then, the |
5670 |
.I UseTitleStyle |
5671 |
flag is set for all buttons, which causes fvwm to draw any styles |
5672 |
set with |
5673 |
.B TitleStyle |
5674 |
before drawing the buttons. Finally, |
5675 |
.B AddButtonStyle |
5676 |
is used to place additional pixmaps for both "ActiveUp" and |
5677 |
"ActiveDown" states and a vector button style is drawn on top of |
5678 |
all state. |
5679 |
|
5680 |
.IP "\fBAddTitleStyle [\fP \fIstate\fP \ |
5681 |
\fB] [\fP \fIstyle\fP \ |
5682 |
\fB] [-- [!]\fP \fIflag\fP \ |
5683 |
\fB...]\fP" |
5684 |
Adds a title style to the title-bar. |
5685 |
.I state |
5686 |
can be one of "ActiveUp," "ActiveDown" or "Inactive" or any of |
5687 |
these with "Toggled" prepended. If |
5688 |
.I state |
5689 |
is omitted, then the style is added to every state. If the |
5690 |
.IR style " and " flags |
5691 |
are enclosed in parentheses, then multiple |
5692 |
.I state |
5693 |
definitions can be placed on a single line. This command is quite |
5694 |
similar to the |
5695 |
.B AddButtonStyle |
5696 |
command (see above). |
5697 |
|
5698 |
Title-bars are drawn in the order of definition, beginning with |
5699 |
the most recent |
5700 |
.BR TitleStyle , |
5701 |
followed by those added with |
5702 |
.BR AddTitleStyle . |
5703 |
To clear the title style stack, change style flags, or for the |
5704 |
descriptions of available styles and flags, see the |
5705 |
.BR TitleStyle " and " ButtonStyle |
5706 |
commands. |
5707 |
|
5708 |
.TP |
5709 |
.BI "AddToDecor " decor |
5710 |
Add or divert commands to the decor named |
5711 |
.IR decor . |
5712 |
A decor is a name given to the set of commands which affect button |
5713 |
styles, title-bar styles and border styles. If |
5714 |
.I decor |
5715 |
does not exist it is created; otherwise the existing |
5716 |
.I decor |
5717 |
is modified. Note: Earlier versions allowed to use the |
5718 |
.BR HilightColor ", " HilightColorset " and " WindowFont |
5719 |
commands in decors. This is no longer possible. Please use the |
5720 |
.I Style |
5721 |
command with the |
5722 |
.IR Hilight... " and " Font |
5723 |
options. |
5724 |
|
5725 |
New decors start out exactly like the "default" decor without any |
5726 |
style definitions. A given decor may be applied to a set of |
5727 |
windows with the |
5728 |
.I UseDecor |
5729 |
option of the |
5730 |
.B Style |
5731 |
command. Modifying an existing decor affects all windows which |
5732 |
are currently assigned to it. |
5733 |
|
5734 |
.B AddToDecor |
5735 |
is similar in usage to the |
5736 |
.BR AddToMenu " and " AddToFunc |
5737 |
commands, except that menus and functions are replaced by |
5738 |
.BR ButtonStyle ", " AddButtonStyle ", " TitleStyle , |
5739 |
.BR AddTitleStyle " and " BorderStyle |
5740 |
commands. Decors created with |
5741 |
.B AddToDecor |
5742 |
can be manipulated with |
5743 |
.BR ChangeDecor ", " DestroyDecor ", " UpdateDecor |
5744 |
and the |
5745 |
.IB "UseDecor " Style |
5746 |
option. |
5747 |
|
5748 |
The following example creates a decor "FlatDecor" and style |
5749 |
"FlatStyle". They are distinct entities: |
5750 |
.EX |
5751 |
AddToDecor FlatDecor |
5752 |
+ ButtonStyle All ActiveUp (-- flat) \\ |
5753 |
Inactive (-- flat) |
5754 |
+ TitleStyle -- flat |
5755 |
+ BorderStyle -- HiddenHandles NoInset |
5756 |
|
5757 |
Style FlatStyle UseDecor FlatDecor, \\ |
5758 |
Color white/grey40,HandleWidth 4 |
5759 |
|
5760 |
Style xterm UseStyle FlatStyle |
5761 |
.EE |
5762 |
An existing window's decor may be reassigned with |
5763 |
.BR ChangeDecor . |
5764 |
A decor can be destroyed with |
5765 |
.BR DestroyDecor . |
5766 |
.EX |
5767 |
DestroyDecor FlatDecor |
5768 |
AddToDecor FlatDecor ... |
5769 |
|
5770 |
Style FlatStyle UseDecor FlatDecor, \\ |
5771 |
Color white/grey40,HandleWidth 4 |
5772 |
.EE |
5773 |
and now apply the style again: |
5774 |
.EX |
5775 |
Style xterm UseStyle FlatStyle |
5776 |
.EE |
5777 |
|
5778 |
.IP "\fBBorderStyle [\fP \fIstate\fP \ |
5779 |
\fB] [\fP \fIstyle\fP \ |
5780 |
\fB] [-- [!]\fP \fIflag\fP \ |
5781 |
\fB...]\fP" |
5782 |
Defines a border style for windows. |
5783 |
.I state |
5784 |
can be either "Active" or "Inactive". If |
5785 |
.I state |
5786 |
is omitted, then the style is set for both states. If the |
5787 |
.IR style " and " flags |
5788 |
are enclosed in parentheses, then multiple |
5789 |
.I state |
5790 |
definitions can be specified per line. |
5791 |
|
5792 |
.I style |
5793 |
is a subset of the available button styles, and can only be |
5794 |
.I TiledPixmap |
5795 |
(uniform pixmaps which match the bevel colors work best this |
5796 |
way). If a |
5797 |
.RI ' ! ' |
5798 |
is prefixed to any |
5799 |
.IR flag , |
5800 |
the behavior is negated. If |
5801 |
.I style |
5802 |
is not specified, then one can change flags without resetting the |
5803 |
style. |
5804 |
|
5805 |
The |
5806 |
.I HiddenHandles |
5807 |
flag hides the corner handle dividing lines on windows with |
5808 |
handles (this option has no effect for NoHandle windows). By |
5809 |
default, |
5810 |
.I HiddenHandles |
5811 |
is disabled. |
5812 |
|
5813 |
The |
5814 |
.I NoInset |
5815 |
flag supplements |
5816 |
.IR HiddenHandles . |
5817 |
If given, the inner bevel around the window frame is not drawn. |
5818 |
If |
5819 |
.I HiddenHandles |
5820 |
is not specified, the frame looks a little strange. |
5821 |
|
5822 |
.I Raised |
5823 |
causes a raised relief pattern to be drawn (default). |
5824 |
.I Sunk |
5825 |
causes a sunken relief pattern to be drawn. |
5826 |
.I Flat |
5827 |
inhibits the relief pattern from being drawn. |
5828 |
|
5829 |
To decorate the active and inactive window borders with a textured |
5830 |
pixmap, one might specify: |
5831 |
.EX |
5832 |
BorderStyle Active TiledPixmap marble.xpm |
5833 |
BorderStyle Inactive TiledPixmap granite.xpm |
5834 |
BorderStyle Active -- HiddenHandles NoInset |
5835 |
.EE |
5836 |
To clear the style for both states: |
5837 |
.EX |
5838 |
BorderStyle Simple |
5839 |
.EE |
5840 |
To clear for a single state: |
5841 |
.EX |
5842 |
BorderStyle Active Simple |
5843 |
.EE |
5844 |
To unset a flag for a given state: |
5845 |
.EX |
5846 |
BorderStyle Inactive -- !NoInset |
5847 |
.EE |
5848 |
title-bar buttons can inherit the border style with the |
5849 |
.I UseBorderStyle |
5850 |
flag (see |
5851 |
.BR ButtonStyle ). |
5852 |
|
5853 |
.TP |
5854 |
.BI "ButtonState [" "ActiveDown bool" "] [" "inactive bool" "]" |
5855 |
The |
5856 |
.B ButtonState |
5857 |
command controls which states of the window titles and title |
5858 |
buttons are used. The default is to use all three states: |
5859 |
"ActiveUp", "ActiveDown" and "Inactive" (see |
5860 |
.BR ButtonStyle " and " TitleStyle |
5861 |
commands). The |
5862 |
.I bool |
5863 |
argument after the key word controls if the designated state is |
5864 |
used ("True") or not ("False"). The "ActiveUp" state cannot be |
5865 |
deactivated. If no arguments are provided or the given arguments |
5866 |
are illegal, the default is restored. |
5867 |
|
5868 |
The "ActiveDown" state allows different button styles for pressed |
5869 |
down buttons and titles on active windows. Otherwise the |
5870 |
"ActiveUp" state is used instead. The "Inactive" state allows |
5871 |
different button and title styles for inactive windows. Otherwise |
5872 |
the "ActiveUp" state is used instead. |
5873 |
|
5874 |
.IP "\fBButtonStyle\fP \fIbutton\fP \ |
5875 |
\fB[\fP \fIstate\fP \ |
5876 |
\fB] [\fP \fIstyle\fP \ |
5877 |
\fB] [-- [!]\fP \fIflag\fP \ |
5878 |
\fB...]\fP" |
5879 |
Sets the button style for a title-bar button. |
5880 |
.I button |
5881 |
is the title-bar button number between 0 and 9, or one of "All", |
5882 |
"Left", "Right", or "Reset". Button numbering is described in the |
5883 |
.B Mouse |
5884 |
command section. If the |
5885 |
.IR style " and " flags |
5886 |
are enclosed in parentheses, then multiple |
5887 |
.I state |
5888 |
definitions can be specified per line. |
5889 |
|
5890 |
.I state |
5891 |
refers to which button state should be set. Button states are |
5892 |
defined as follows: "ActiveUp" and "ActiveDown" refer to the |
5893 |
un-pressed and pressed states for buttons on active windows; while |
5894 |
the "Inactive" state denotes buttons on inactive windows. The |
5895 |
"ToggledActiveUp", "ToggledActiveDown" and "ToggledInactive" |
5896 |
states are used instead for buttons which have one of the |
5897 |
.IR MwmDecorMax ", " MwmDecorShade " or " MwmDecorStick |
5898 |
hints, if the window is maximized, shaded or sticky, respectively. |
5899 |
.EX |
5900 |
AddToDecor Default |
5901 |
+ ButtonStyle 6 \\ |
5902 |
Vector 4 50x25@1 85x75@0 15x75@0 50x25@1 |
5903 |
+ ButtonStyle 6 ToggledActiveUp \\ |
5904 |
Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 |
5905 |
+ ButtonStyle 6 ToggledActiveDown \\ |
5906 |
Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 |
5907 |
+ ButtonStyle 6 ToggledInactive \\ |
5908 |
Vector 4 50x75@0 85x25@1 15x25@0 50x75@0 |
5909 |
+ ButtonStyle 6 - MwmDecorShade |
5910 |
Mouse 0 6 N WindowShade |
5911 |
.EE |
5912 |
If |
5913 |
.I state |
5914 |
is "ActiveUp", "ActiveDown", "Inactive", or a "Toggled" variant, |
5915 |
that particular button state is set. If |
5916 |
.I state |
5917 |
is omitted, every state is set. Specifying a style destroys the |
5918 |
current style (use |
5919 |
.B AddButtonStyle |
5920 |
to avoid this). |
5921 |
|
5922 |
If |
5923 |
.I style |
5924 |
is omitted, then state-dependent flags can be set for the primary |
5925 |
button style without destroying the current style. Examples (each |
5926 |
line should be considered independent): |
5927 |
.EX |
5928 |
ButtonStyle Left -- flat |
5929 |
ButtonStyle All ActiveUp (-- flat) \\ |
5930 |
Inactive (-- flat) |
5931 |
.EE |
5932 |
The first line sets every state of the left buttons to flat, while |
5933 |
the second sets only the "ActiveUp" and "Inactive" states of every |
5934 |
button to flat (only flags are changed; the buttons' individual |
5935 |
styles are not changed). |
5936 |
|
5937 |
If you want to reset all buttons to their defaults: |
5938 |
.EX |
5939 |
ButtonStyle Reset |
5940 |
.EE |
5941 |
To reset the "ActiveUp" button state of button 1 to the default: |
5942 |
.EX |
5943 |
ButtonStyle 1 ActiveUp Default |
5944 |
.EE |
5945 |
To reset all button states of button 1 to the default of |
5946 |
button number 2: |
5947 |
.EX |
5948 |
ButtonStyle 1 Default 2 |
5949 |
.EE |
5950 |
For any button, multiple |
5951 |
.I state |
5952 |
definitions can be given on one line by enclosing the |
5953 |
.IR style " and " flags |
5954 |
in parentheses. If only one definition per line is given the |
5955 |
parentheses can be omitted. |
5956 |
|
5957 |
.I flags |
5958 |
affect the specified |
5959 |
.IR state . |
5960 |
If a |
5961 |
.RI ' ! ' |
5962 |
is prefixed to any |
5963 |
.IR flag , |
5964 |
its behavior is negated. The available state-dependent flags for |
5965 |
all styles are described here (the |
5966 |
.B ButtonStyle |
5967 |
entry deals with state-independent flags). |
5968 |
|
5969 |
.I Raised |
5970 |
causes a raised relief pattern to be drawn. |
5971 |
|
5972 |
.I Sunk |
5973 |
causes a sunken relief pattern to be drawn. |
5974 |
|
5975 |
.I Flat |
5976 |
inhibits the relief pattern from being drawn. |
5977 |
|
5978 |
.I UseTitleStyle |
5979 |
causes the given button state to render the current title style |
5980 |
before rendering the button's own styles. The |
5981 |
.IR Raised ", " Flat " and " Sunk |
5982 |
.B TitleStyle |
5983 |
flags are ignored since they are redundant in this context. |
5984 |
|
5985 |
.I UseBorderStyle |
5986 |
causes the button to inherit the decorated |
5987 |
.B BorderStyle |
5988 |
options. |
5989 |
|
5990 |
.IR Raised ", " Sunk " and " Flat |
5991 |
are mutually exclusive, and can be specified for the initial |
5992 |
.B ButtonStyle |
5993 |
only. |
5994 |
.IR UseTitleStyle " and " UseBorderStyle |
5995 |
are also mutually exclusive (both can be off however). The default is |
5996 |
.I Raised |
5997 |
with both |
5998 |
.I UseBorderStyle " and " UseTitleStyle |
5999 |
left unset. |
6000 |
|
6001 |
.I Important note |
6002 |
for the "ActiveDown" state: When a button is pressed, the relief |
6003 |
is inverted. Because of this, to obtain a sunken "ActiveDown" |
6004 |
state you must specify the opposite of the desired relief (i.e. to |
6005 |
obtain a pressed-in look which is raised, specify |
6006 |
.I Sunk |
6007 |
for "ActiveDown"). This behavior is consistent, but may seem |
6008 |
confusing at first. The same applies to the "Toggled" state. |
6009 |
|
6010 |
Button styles are classified as non-destructive, partially |
6011 |
destructive, or fully destructive. Non-destructive styles do not |
6012 |
affect the image. Partially destructive styles can obscure some or |
6013 |
all parts of the underlying image (i.e. |
6014 |
.IR Pixmap ). |
6015 |
Fully destructive styles obscure the entire underlying image (i.e. |
6016 |
.I Solid |
6017 |
or one of the |
6018 |
.I gradient |
6019 |
styles). Thus, if stacking styles with |
6020 |
.BR AddButtonStyle " (or " AddTitleStyle |
6021 |
for title-bars), use care in sequencing styles to minimize redraw. |
6022 |
|
6023 |
The available styles and their arguments now follow. |
6024 |
|
6025 |
The |
6026 |
.I Simple |
6027 |
style does nothing. There are no arguments, and this style is an |
6028 |
example of a non-destructive button style. |
6029 |
|
6030 |
The |
6031 |
.I Default |
6032 |
style conditionally accepts one argument: a number which specifies |
6033 |
the default button number to load. If the style command given is |
6034 |
.BR ButtonStyle " or " AddButtonStyle , |
6035 |
the argument is optional (if given, overrides the current button). |
6036 |
If a command other than |
6037 |
.BR ButtonStyle " or " AddButtonStyle |
6038 |
is used, the number must be specified. |
6039 |
|
6040 |
The |
6041 |
.I Solid |
6042 |
style fills the button with a solid color. The relief border |
6043 |
color is not affected. The color should be specified as a single |
6044 |
argument. This style is fully destructive. |
6045 |
|
6046 |
The |
6047 |
.I "Vector num" |
6048 |
.IR X x Y @ C " ..." |
6049 |
style draws a line pattern. Since this is a standard button style, |
6050 |
the keyword |
6051 |
.I Vector |
6052 |
is optional, |
6053 |
.I num |
6054 |
is a number of point specifications of the form |
6055 |
.IR X x Y @ C . |
6056 |
.IR X " and " Y |
6057 |
are point coordinates inside the button, given in percents |
6058 |
(from 0 to 100). |
6059 |
.I C |
6060 |
specifies a line color (0 - the shadow color, 1 - the highlight color, |
6061 |
2 - the background color, 3 - the foreground color). |
6062 |
The first point color is not used. |
6063 |
You can use up to 32 points in a line pattern. |
6064 |
This style is partially destructive. |
6065 |
|
6066 |
The specification is a little cumbersome: |
6067 |
.EX |
6068 |
ButtonStyle 2 Vector 4 50x30@1 70x70@0 \\ |
6069 |
30x70@0 50x30@1 |
6070 |
.EE |
6071 |
then the button 2 decoration uses a 4-point pattern consisting of |
6072 |
a line from (x=50,y=30) to (70,70) in the shadow color (@0), and |
6073 |
then to (30,70) in the shadow color, and finally to (50,30) in the |
6074 |
highlight color (@1). Is that too confusing? See the fvwm web |
6075 |
pages for some examples with screenshots. |
6076 |
|
6077 |
A more complex example of |
6078 |
.IR Vector : |
6079 |
.EX |
6080 |
ButtonStyle 8 Vector 10 45x65@2 45x75@3 20x75@3 20x50@3 \\ |
6081 |
35x50@3 35x65@1 35x25@1 75x25@1 75x65@0 35x65@0 |
6082 |
ButtonStyle 0 Vector 10 45x65@2 45x75@0 20x75@0 20x50@1 \\ |
6083 |
45x50@1 45x65@0 75x65@3 75x25@3 35x25@3 35x47@3 |
6084 |
.EE |
6085 |
The |
6086 |
.I ?Gradient |
6087 |
styles denote color gradients. Fill in the question mark with any |
6088 |
one of the defined gradient types. Please refer to the |
6089 |
.B COLOR GRADIENTS |
6090 |
section for a description of the gradient syntax. The gradient |
6091 |
styles are fully destructive. |
6092 |
|
6093 |
The |
6094 |
.I Pixmap |
6095 |
style displays a pixmap. A pixmap should be specified as an |
6096 |
argument. For example, the following would give button 2 the same |
6097 |
pixmap for both states, and button 4 different pixmaps for the up, |
6098 |
down and inactive states. |
6099 |
.EX |
6100 |
ButtonStyle 2 Pixmap my_pixmap.xpm |
6101 |
ButtonStyle 4 ActiveUp (Pixmap up.xpm) \\ |
6102 |
ActiveDown (Pixmap down.xpm) |
6103 |
ButtonStyle 4 Inactive Pixmap inactive.xpm |
6104 |
.EE |
6105 |
The pixmap specification can be given as an absolute or relative |
6106 |
pathname (see |
6107 |
.BR ImagePath ). |
6108 |
If the pixmap cannot be found, the button style reverts to |
6109 |
.IR Simple . |
6110 |
Flags specific to the |
6111 |
.I Pixmap |
6112 |
style are |
6113 |
.IR Left ", " Right ", " |
6114 |
.IR Top ", and " Bottom . |
6115 |
These can be used to justify the pixmap (default is centered for |
6116 |
both directions). Pixmap transparency is used for the color |
6117 |
"None." This style is partially destructive. |
6118 |
|
6119 |
The |
6120 |
.I MiniIcon |
6121 |
style draws the window's miniature icon in the button, which is |
6122 |
specified with the |
6123 |
.I MiniIcon |
6124 |
option of the |
6125 |
.B Style |
6126 |
command. This button style accepts no arguments. Example: |
6127 |
.EX |
6128 |
Style * MiniIcon mini-bx2.xpm |
6129 |
Style xterm MiniIcon mini-term.xpm |
6130 |
Style Emacs MiniIcon mini-doc.xpm |
6131 |
|
6132 |
ButtonStyle 1 MiniIcon |
6133 |
.EE |
6134 |
The |
6135 |
.I TiledPixmap |
6136 |
style accepts a pixmap to be tiled as the button background. One |
6137 |
pixmap is specified as an argument. Pixmap transparency is not |
6138 |
used. This style is fully destructive. |
6139 |
|
6140 |
.TP |
6141 |
.BI "ButtonStyle " button " - [!]" flag " ..." |
6142 |
Sets state-independent flags for the specified |
6143 |
.IR button . |
6144 |
State-independent flags affect button behavior. Each |
6145 |
.I flag |
6146 |
is separated by a space. If a |
6147 |
.RI ' ! ' |
6148 |
is prefixed to the flag then the behavior is negated. The special |
6149 |
flag |
6150 |
.I Clear |
6151 |
clears any existing flags. |
6152 |
|
6153 |
The following flags are usually used to tell fvwm which buttons |
6154 |
should be affected by mwm function hints (see |
6155 |
.I MwmFunctions |
6156 |
option of the |
6157 |
.B Style |
6158 |
command. This is not done automatically since you might have |
6159 |
buttons bound to complex functions, for instance. |
6160 |
|
6161 |
.I MwmDecorMenu |
6162 |
should be assigned to title-bar buttons which display a menu. The |
6163 |
default assignment is the leftmost button. When a window with the |
6164 |
.I MwmFunctions |
6165 |
.B Style |
6166 |
option requests not to show this button, it is hidden. |
6167 |
|
6168 |
.I MwmDecorMin |
6169 |
should be assigned to title-bar buttons which minimize or iconify |
6170 |
the window. The default assignment is the second button over from |
6171 |
the rightmost button. When a window with the |
6172 |
.I MwmFunctions |
6173 |
.B Style |
6174 |
option requests not to show this button, it is hidden. |
6175 |
|
6176 |
.I MwmDecorMax |
6177 |
should be assigned to title-bar buttons which maximize the |
6178 |
window. The default assignment is the rightmost button. When a |
6179 |
window with the |
6180 |
.I MwmFunctions |
6181 |
.B Style |
6182 |
option requests not to show this button, it is hidden. When the |
6183 |
window is maximized, the vector pattern on the button looks |
6184 |
pressed in. |
6185 |
|
6186 |
.I MwmDecorShade |
6187 |
should be assigned to title-bar buttons which shade the window |
6188 |
(see |
6189 |
.B WindowShade |
6190 |
command). When the window is shaded, the vector pattern on the |
6191 |
button looks pressed in. |
6192 |
|
6193 |
.I MwmDecorStick |
6194 |
should be assigned to title-bar buttons which make the window |
6195 |
sticky. When the window is sticky, the vector pattern on the |
6196 |
button looks pressed in. |
6197 |
|
6198 |
.TP |
6199 |
.BI "ChangeDecor " decor |
6200 |
Changes the decor of a window to |
6201 |
.IR decor . |
6202 |
.I decor |
6203 |
is "Default" or the name of a decor defined with |
6204 |
.BR AddToDecor . |
6205 |
If |
6206 |
.I decor |
6207 |
is invalid, nothing occurs. If called from somewhere in a window |
6208 |
or its border, then that window is affected. If called from the |
6209 |
root window the user is allowed to select the target window. |
6210 |
.B ChangeDecor |
6211 |
only affects attributes which can be set using the |
6212 |
.B AddToDecor |
6213 |
command. |
6214 |
.EX |
6215 |
ChangeDecor CustomDecor1 |
6216 |
.EE |
6217 |
|
6218 |
.TP |
6219 |
.BI "DestroyDecor [" recreate "] " decor |
6220 |
Deletes the |
6221 |
.I decor |
6222 |
defined with |
6223 |
.BR AddToDecor , |
6224 |
so that subsequent references to it are no longer valid. Windows |
6225 |
using this |
6226 |
.I decor |
6227 |
revert to the "Default" decor. The optional parameter |
6228 |
.I recreate |
6229 |
tells fvwm not to throw away the decor completely but to throw |
6230 |
away only its contents. If the decor is created again later, |
6231 |
windows do not use it before the |
6232 |
.I UseDecor |
6233 |
style is applied again unless the decor was destroyed with the |
6234 |
.I recreate |
6235 |
option. The decor named "Default" cannot be destroyed. |
6236 |
.EX |
6237 |
DestroyDecor CustomDecor1 |
6238 |
.EE |
6239 |
|
6240 |
.TP |
6241 |
.BI "TitleStyle [" justification "] [" height " [" num "]]" |
6242 |
Sets attributes for the title-bar. Justifications can be |
6243 |
.IR Centered ", " RightJustified " or " LeftJustified . |
6244 |
.I height |
6245 |
sets the title bar's height to an amount in pixels. Defaults are |
6246 |
.I Centered |
6247 |
and the window's font height. To reset the font height to the |
6248 |
default value, omit the |
6249 |
.I num |
6250 |
argument after the |
6251 |
.I height |
6252 |
keyword. Example: |
6253 |
.EX |
6254 |
TitleStyle LeftJustified Height 24 |
6255 |
.EE |
6256 |
|
6257 |
.IP "\fBTitleStyle [\fP \fIstate\fP \ |
6258 |
\fB] [\fP \fIstyle\fP \ |
6259 |
\fB] [-- [!]\fP \fIflag\fP \ |
6260 |
\fB...]\fP" |
6261 |
Sets the style for the title-bar. |
6262 |
.I state |
6263 |
can be one of "ActiveUp", "ActiveDown", or "Inactive". If |
6264 |
.I state |
6265 |
is omitted, then the |
6266 |
.I style |
6267 |
is added to every state. If parentheses are placed around the |
6268 |
.IR style " and " flags , |
6269 |
then multiple state definitions can be given per line. |
6270 |
.I style |
6271 |
can be omitted so that flags can be set while not destroying the |
6272 |
current style. |
6273 |
|
6274 |
If a |
6275 |
.RI ' ! ' |
6276 |
is prefixed to any |
6277 |
.IR flag , |
6278 |
its behavior is negated. Valid flags for each state include |
6279 |
.IR Raised ", " Flat " and " Sunk |
6280 |
(these are mutually exclusive). The default is |
6281 |
.IR Raised . |
6282 |
See the note in |
6283 |
.B ButtonStyle |
6284 |
regarding the "ActiveDown" state. Examples: |
6285 |
.EX |
6286 |
TitleStyle ActiveUp HGradient 16 navy black |
6287 |
TitleStyle ActiveDown (Solid red -- flat) \\ |
6288 |
Inactive (TiledPixmap wood.xpm) |
6289 |
TitleStyle ActiveUp (-- Flat) ActiveDown \\ |
6290 |
(-- Raised) Inactive (-- Flat) |
6291 |
.EE |
6292 |
This sets the "ActiveUp" state to a horizontal gradient, the |
6293 |
"ActiveDown" state to solid red, and the "Inactive" state to a |
6294 |
tiled wood pixmap. Finally, "ActiveUp" is set to look flat, while |
6295 |
"ActiveDown" set to be sunk (the |
6296 |
.I Raised |
6297 |
flag for the "ActiveDown" state causes it to appear sunk due to |
6298 |
relief inversion), and "Inactive" is set to flat as well. An |
6299 |
example which sets flags for all states: |
6300 |
.EX |
6301 |
TitleStyle -- flat |
6302 |
.EE |
6303 |
For a flattened look: |
6304 |
.EX |
6305 |
TitleStyle -- flat |
6306 |
ButtonStyle All ActiveUp (-- flat) Inactive \\ |
6307 |
(-- flat) |
6308 |
.EE |
6309 |
|
6310 |
.TP |
6311 |
.BI "UpdateDecor [" decor "]" |
6312 |
This command is kept mainly for backwards compatibility. Since |
6313 |
all elements of a decor are updated immediately when they are |
6314 |
changed, this command is mostly useless. |
6315 |
|
6316 |
Updates window decorations. |
6317 |
.I decor |
6318 |
is an optional argument which specifies the |
6319 |
.I decor |
6320 |
to update. If given, only windows which are assigned to that |
6321 |
particular |
6322 |
.I decor |
6323 |
are updated. This command is useful, for instance, after a |
6324 |
.BR ButtonStyle ", " TitleStyle " or " BorderStyle |
6325 |
(possibly used in conjunction with |
6326 |
.BR AddToDecor ). |
6327 |
Specifying an invalid decor results in all windows being |
6328 |
updated. This command is less disturbing than |
6329 |
.BR Recapture , |
6330 |
but does not affect window style options as |
6331 |
.B Recapture |
6332 |
does. |
6333 |
|
6334 |
|
6335 |
.SS COMMANDS CONTROLLING THE VIRTUAL DESKTOP |
6336 |
|
6337 |
.IP "\fBDesk\fP \fIarg1\fP \ |
6338 |
\fB[\fP \fIarg2\fP \ |
6339 |
\fB] [\fP \fImin max\fP \ |
6340 |
\fB]\fP" |
6341 |
This command has been renamed. Please see |
6342 |
.B GotoDesk |
6343 |
command. |
6344 |
|
6345 |
.TP |
6346 |
.BI "DeskTopSize " Horizontal x Vertical |
6347 |
Defines the virtual desktop size in units of the physical screen |
6348 |
size. |
6349 |
|
6350 |
.TP |
6351 |
.BI "EdgeResistance " "scrolling moving " [ "xinerama-moving" ] |
6352 |
Tells how hard it should be to change the desktop viewport by |
6353 |
moving the mouse over the edge of the screen and how hard it |
6354 |
should be to move a window over the edge of the screen. |
6355 |
|
6356 |
The first parameter tells how many milliseconds the pointer must |
6357 |
spend on the screen edge before fvwm moves the viewport. This is |
6358 |
intended for people who use |
6359 |
.EX |
6360 |
EdgeScroll 100 100 |
6361 |
.EE |
6362 |
but find themselves accidentally flipping pages when they don't |
6363 |
want to. |
6364 |
|
6365 |
The second parameter tells how many pixels over the edge of the |
6366 |
screen a window's edge must move before it actually moves |
6367 |
partially off the screen. By default the viewport is moved a full |
6368 |
page in the requested direction, but if you used |
6369 |
.B EdgeScroll |
6370 |
and set any values other than zero they is used instead. |
6371 |
|
6372 |
Note that, with |
6373 |
.EX |
6374 |
EdgeScroll 0 0 |
6375 |
.EE |
6376 |
it is still possible to move or resize windows across the edge of |
6377 |
the current screen. By making the first parameter to |
6378 |
.B EdgeResistance |
6379 |
10000 this type of motion is impossible. With |
6380 |
.B EdgeResistance |
6381 |
less than 10000 but greater than 0 moving over pages becomes |
6382 |
difficult but not impossible. See also |
6383 |
.BR EdgeThickness . |
6384 |
|
6385 |
The optional third parameter does the same as the second, but for |
6386 |
individual Xinerama screens. If omitted, |
6387 |
.I xinerama-moving |
6388 |
will be set to the value of |
6389 |
.IR moving . |
6390 |
Set |
6391 |
.I xinerama-moving |
6392 |
to zero to ignore individual screen edges. |
6393 |
|
6394 |
.TP |
6395 |
.BI "EdgeScroll " horizontal "[" p "] " vertical "[" p "]" |
6396 |
Specifies the percentage of a page to scroll when the cursor hits |
6397 |
the edge of a page. A trailing |
6398 |
.RI ' p ' |
6399 |
changes the interpretation to mean pixels. If you don't want any |
6400 |
paging or scrolling when you hit the edge of a page include |
6401 |
.EX |
6402 |
EdgeScroll 0 0 |
6403 |
.EE |
6404 |
in your |
6405 |
.I .fvwm2rc |
6406 |
file, or possibly better, set the |
6407 |
.B EdgeThickness |
6408 |
to zero. See the |
6409 |
.B EdgeThickness |
6410 |
command. If you want whole pages, use |
6411 |
.EX |
6412 |
EdgeScroll 100 100 |
6413 |
.EE |
6414 |
Both |
6415 |
.IR horizontal " and " vertical |
6416 |
should be positive numbers. |
6417 |
|
6418 |
If the |
6419 |
.IR horizontal " and " vertical |
6420 |
percentages are multiplied by 1000 then scrolling wraps around at |
6421 |
the edge of the desktop. If |
6422 |
.EX |
6423 |
EdgeScroll 100000 100000 |
6424 |
.EE |
6425 |
is used fvwm scrolls by whole pages, wrapping around at the edge |
6426 |
of the desktop. |
6427 |
|
6428 |
.TP |
6429 |
.BI "EdgeThickness " 0 | 1 | 2 |
6430 |
This is the width or height of the invisible window that fvwm |
6431 |
creates on the edges of the screen that are used for the edge |
6432 |
scrolling feature. |
6433 |
|
6434 |
In order to enable page scrolling via the mouse, four windows |
6435 |
called the "pan frames" are placed at the very edge of the |
6436 |
screen. This is how fvwm detects the mouse's presence at the |
6437 |
window edge. Because of the way this works, they need to be at the |
6438 |
top of the stack and eat mouse events, so if you have any kind of |
6439 |
error along the lines of: "mouse clicks at the edge of the screen |
6440 |
do the wrong thing" you're having trouble with the pan frames and |
6441 |
(assuming you don't use the mouse to flip between pages) should |
6442 |
set the EdgeThickness to 0. |
6443 |
|
6444 |
A value of |
6445 |
.I 0 |
6446 |
completely disables mouse edge scrolling, even while dragging a |
6447 |
window. |
6448 |
.I 1 |
6449 |
gives the smallest pan frames, which seem to work best except on |
6450 |
some servers. |
6451 |
|
6452 |
.I 2 |
6453 |
is the default. |
6454 |
|
6455 |
Pan frames of |
6456 |
.IR 1 " or " 2 |
6457 |
pixels can sometimes be confusing, for example, if you drag a |
6458 |
window over the edge of the screen, so that it straddles a pan |
6459 |
frame, clicks on the window, near the edge of the screen are |
6460 |
treated as clicks on the root window. |
6461 |
|
6462 |
.IP "\fBGotoDesk\fP \fIprev\fP \ |
6463 |
\fB|\fP \fIarg1\fP \ |
6464 |
\fB[\fP \fIarg2\fP \ |
6465 |
\fB] [\fP \fImin max\fP \ |
6466 |
\fB]\fP" |
6467 |
Switches the current viewport to another desktop (workspace, |
6468 |
room). |
6469 |
|
6470 |
The command takes 1, 2, 3, or 4 arguments. A single argument is |
6471 |
interpreted as a relative desk number. Two arguments are |
6472 |
understood as a relative and an absolute desk number. Three |
6473 |
arguments specify a relative desk and the minimum and maximum of |
6474 |
the allowable range. Four arguments specify the relative, |
6475 |
absolute, minimum and maximum values. (Desktop numbers can be |
6476 |
negative). If a literal |
6477 |
.I prev |
6478 |
is given as the single argument, the last visited desk number is |
6479 |
used. |
6480 |
|
6481 |
If |
6482 |
.I arg1 |
6483 |
is non zero then the next desktop number is the current desktop |
6484 |
number plus |
6485 |
.IR arg1 . |
6486 |
|
6487 |
If |
6488 |
.I arg1 |
6489 |
is zero then the new desktop number is |
6490 |
.IR arg2 . |
6491 |
(If |
6492 |
.I arg2 |
6493 |
is not present, then the command has no effect.) |
6494 |
|
6495 |
If |
6496 |
.IR min " and " max |
6497 |
are given, the new desktop number is no smaller than |
6498 |
.I min |
6499 |
and no bigger than |
6500 |
.IR max . |
6501 |
Values out of this range are truncated (if you gave an absolute |
6502 |
desk number) or wrapped around (if you gave a relative desk |
6503 |
number). |
6504 |
|
6505 |
The syntax is the same as for |
6506 |
.BR MoveToDesk , |
6507 |
which moves a window to a different desktop. |
6508 |
|
6509 |
The number of active desktops is determined dynamically. Only |
6510 |
desktops which contain windows or are currently being displayed |
6511 |
are active. Desktop numbers must be between 2147483647 and |
6512 |
-2147483648 (is that enough?). |
6513 |
|
6514 |
.TP |
6515 |
.BI "GotoDeskAndPage " prev " | " "desk xpage ypage" |
6516 |
Switches the current viewport to another desktop and page, similar |
6517 |
to the |
6518 |
.BR GotoDesk " and " GotoPage |
6519 |
commands. The new desk is |
6520 |
.I desk |
6521 |
and the new page is |
6522 |
.RI ( xpage , ypage ). |
6523 |
|
6524 |
.IP "\fBGotoPage\fP \fIprev\fP \ |
6525 |
\fB|\fP \fIx\fP \ |
6526 |
\fB[\fP \fIp\fP \ |
6527 |
\fB]\fP \fIy\fP \ |
6528 |
\fB[\fP \fIp\fP \ |
6529 |
\fB]\fP" |
6530 |
Moves the desktop viewport to page (x,y). The upper left page is |
6531 |
(0,0), the upper right is (M,0), where M is one less than the |
6532 |
current number of horizontal pages specified in the |
6533 |
.B DeskTopSize |
6534 |
command. The lower left page is (0,N), and the lower right page |
6535 |
is (M,N), where N is the desktop's vertical size as specified in |
6536 |
the |
6537 |
.B DeskTopSize |
6538 |
command. To switch to a page relative to the current one add a |
6539 |
trailing |
6540 |
.RI ' p ' |
6541 |
after any or both numerical arguments. To go to last visited page |
6542 |
use |
6543 |
.I prev |
6544 |
as the first argument. The |
6545 |
.B GotoPage |
6546 |
function should not be used in a pop-up menu. |
6547 |
|
6548 |
Examples: |
6549 |
.EX |
6550 |
# Go to page (2,3) |
6551 |
GotoPage 2 3 |
6552 |
|
6553 |
# Go to lowest and rightmost page |
6554 |
GotoPage -1 -1 |
6555 |
|
6556 |
# Go to last page visited |
6557 |
GotoPage prev |
6558 |
|
6559 |
# Go two pages to the right and one page up |
6560 |
GotoPage +2p -1p |
6561 |
.EE |
6562 |
|
6563 |
.IP "\fBScroll\fP \fIhorizonal\fP \ |
6564 |
\fB[\fP \fIp\fP \ |
6565 |
\fB]\fP \fIvertical\fP \ |
6566 |
\fB[\fP \fIp\fP \ |
6567 |
\fB]\fP" |
6568 |
Scrolls the virtual desktop's viewport by |
6569 |
.I horizontal |
6570 |
pages in the x-direction and |
6571 |
.I vertical |
6572 |
pages in the y-direction. Either or both entries may be negative. |
6573 |
Both |
6574 |
.IR horizontal " and " vertical |
6575 |
values are expressed in percent of pages, so |
6576 |
.EX |
6577 |
Scroll 100 100 |
6578 |
.EE |
6579 |
means to scroll down and left by one full page. |
6580 |
.EX |
6581 |
Scroll 50 25 |
6582 |
.EE |
6583 |
means to scroll left half a page and down a quarter of a page. |
6584 |
The |
6585 |
.B Scroll |
6586 |
function should not be called from pop-up menus. Normally, |
6587 |
scrolling stops at the edge of the desktop. |
6588 |
|
6589 |
If the |
6590 |
.IR horizontal " and " vertical |
6591 |
percentages are multiplied by 1000 then scrolling wraps around at |
6592 |
the edge of the desktop. If |
6593 |
.EX |
6594 |
Scroll 100000 0 |
6595 |
.EE |
6596 |
is executed over and over fvwm moves to the next desktop page on |
6597 |
each execution and wraps around at the edge of the desktop, so |
6598 |
that every page is hit in turn. |
6599 |
|
6600 |
If the letter |
6601 |
.RI ' p ' |
6602 |
is appended to each coordinate |
6603 |
.RI ( horizontal " and/or " vertical ), |
6604 |
then the scroll amount is measured in pixels. |
6605 |
|
6606 |
.TP |
6607 |
.BI "Xinerama " bool |
6608 |
Enables Xinerama support if the boolean argument is true and |
6609 |
disables it if the argument is false. Calling this command |
6610 |
without arguments turns on Xinerama support it was disabled before |
6611 |
and turns it off if it was enabled. For example: |
6612 |
.EX |
6613 |
# Turn Xinerama support on, use primary screen 2 |
6614 |
XineramaPrimaryScreen 2 |
6615 |
Xinerama on |
6616 |
#Turn it off again |
6617 |
Xinerama off |
6618 |
.EE |
6619 |
|
6620 |
.TP |
6621 |
.BI "XineramaPrimaryScreen [" primary-screen "]" |
6622 |
Takes an integer number or 'g' or 'c' as its argument. A number |
6623 |
is taken as the number of the Xinerama screen that is to be used |
6624 |
as the primary screen. The primary screen can be used as the |
6625 |
preferred screen to place windows with |
6626 |
.EX |
6627 |
XineramaPrimaryScreen <screen number> |
6628 |
Style * StartsOnScreen p |
6629 |
.EE |
6630 |
The primary screen is used in some of the modules and for the |
6631 |
default icon box too. Any number that is zero or more is taken as |
6632 |
the primary screen's number. Instead, the letter 'c' indicates to |
6633 |
use the curent screen (containing the pointer) whenever the |
6634 |
primary screen is used. This may be very confusing under some |
6635 |
circumstances. With |
6636 |
'g', the global screen is used as the primary screen, effectively |
6637 |
disabling the primary screen. Calling this function with any |
6638 |
other argument (including none) resets the primary screen to 0. |
6639 |
|
6640 |
.TP |
6641 |
.BI "XineramaSls [" bool "]" |
6642 |
For multi-screen implementations other than Xinerama, such as |
6643 |
Single Logical Screen, it is possible to simulate a Xinerama |
6644 |
configuration if the total screen seen by FVWM is made up of |
6645 |
equal sized monitors in a rectangular grid. The |
6646 |
.B XineramaSls |
6647 |
command turns SLS support on or off or toggles it to the opposite |
6648 |
state, depending on if the boolean argument is "True", "False" or |
6649 |
"toggle". If no argument is given, this is treated like "toggle". |
6650 |
The default layout uses 1 by one screens. To configure the |
6651 |
layout, use the |
6652 |
.B XineramaSlsSize |
6653 |
command. |
6654 |
|
6655 |
.TP |
6656 |
.BI "XineramaSlsSize " Horizontal x Vertical |
6657 |
This command configures the layout of the Single Logical screen |
6658 |
feature. It takes two arguments, |
6659 |
.IR Horizontal " and " Vertical |
6660 |
which must be an integer value dividing evenly into the total |
6661 |
desktop width, and height height. For an example with two |
6662 |
monitors side by side which appear as one screen through the |
6663 |
X-Server with the right screen as the primary screen, use: |
6664 |
.EX |
6665 |
XineramaSlsSize 2x1 |
6666 |
XineramaSlsOn |
6667 |
XineramaPrimaryScreen 1 |
6668 |
XineramaOn |
6669 |
.EE |
6670 |
|
6671 |
|
6672 |
.SS COMMANDS FOR USER FUNCTIONS AND SHELL COMMANDS |
6673 |
|
6674 |
.IP "\fBAddToFunc [\fP \fIname\fP \ |
6675 |
\fB[\fP \fII\fP \ |
6676 |
\fB|\fP \fIM\fP \ |
6677 |
\fB|\fP \fIC\fP \ |
6678 |
\fB|\fP \fIH\fP \ |
6679 |
\fB|\fP \fID action\fP \ |
6680 |
\fB]]\fP" |
6681 |
Begins or adds to a function definition. Here is an example: |
6682 |
.EX |
6683 |
AddToFunc Move-or-Raise I Raise |
6684 |
+ M Move |
6685 |
+ D Lower |
6686 |
.EE |
6687 |
The function name is "Move-or-Raise", and could be invoked from a menu |
6688 |
or a mouse binding or key binding: |
6689 |
.EX |
6690 |
Mouse 1 TS A Move-or-Raise |
6691 |
.EE |
6692 |
The |
6693 |
.I name |
6694 |
must not contain embedded whitespace. No guarantees are made |
6695 |
whether function names with embedded whitespace work or not. This |
6696 |
behaviour may also change in the future without further notice. |
6697 |
The letter before the |
6698 |
.I action |
6699 |
tells what kind of action triggers the command which follows it. |
6700 |
.RI ' I ' |
6701 |
stands for "Immediate", and is executed as soon as the function is |
6702 |
invoked. |
6703 |
.RI ' M ' |
6704 |
stands for "Motion", i.e. if the user starts moving the mouse. |
6705 |
.RI ' C ' |
6706 |
stands for "Click", i.e., if the user presses and releases the |
6707 |
mouse. |
6708 |
.RI ' H ' |
6709 |
stands for "Hold", i.e. if the user presses a mouse button and |
6710 |
holds it down for more than |
6711 |
.B ClickTime |
6712 |
milliseconds. |
6713 |
.RI ' D ' |
6714 |
stands for "Double-click". The action |
6715 |
.RI ' I ' |
6716 |
causes an action to be performed on the button-press, if the |
6717 |
function is invoked with prior knowledge of which window to act |
6718 |
on. |
6719 |
|
6720 |
There is a number of predefined symbols that are replaced by |
6721 |
certain values if they appear on the command line. Please refer |
6722 |
to the |
6723 |
.B COMMAND EXPANSION |
6724 |
section for details. |
6725 |
|
6726 |
Examples: |
6727 |
|
6728 |
If you call |
6729 |
.EX |
6730 |
Key F10 R A Function MailFunction \\ |
6731 |
xmh "-font fixed" |
6732 |
.EE |
6733 |
and "MailFunction" is |
6734 |
.EX |
6735 |
AddToFunc MailFunction |
6736 |
+ I Next ($0) Iconify off |
6737 |
+ I Next (AcceptsFocus, $0) focus |
6738 |
+ I None ($0) Exec exec $0 $1 |
6739 |
.EE |
6740 |
Then the last line of the function becomes |
6741 |
.EX |
6742 |
+ I None (xmh) Exec exec xmh -font fixed |
6743 |
.EE |
6744 |
The expansion is performed as the function is executed, so you can |
6745 |
use the same function with all sorts of different arguments. You |
6746 |
could use |
6747 |
.EX |
6748 |
Key F11 R A Function MailFunction \\ |
6749 |
zmail "-bg pink" |
6750 |
.EE |
6751 |
in the same |
6752 |
.IR .fvwm2rc , |
6753 |
if you wanted. An example of using "$w" is: |
6754 |
.EX |
6755 |
AddToFunc PrintFunction |
6756 |
+ I Raise |
6757 |
+ I Exec xdpr -id $w |
6758 |
.EE |
6759 |
Note that "$$" is expanded to '$'. |
6760 |
|
6761 |
Another example: bind right mouse button within the window button |
6762 |
number 6 (this is a minimize button for the win95 theme) to |
6763 |
iconify all windows of the same resource: |
6764 |
.EX |
6765 |
AddToFunc FuncIconifySameResource "I" \\ |
6766 |
All ($r) Iconify on |
6767 |
Mouse 3 6 A FuncIconifySameResource |
6768 |
.EE |
6769 |
|
6770 |
.TP |
6771 |
.BI "Beep" |
6772 |
As might be expected, this makes the terminal beep. |
6773 |
|
6774 |
.TP |
6775 |
.BI "DestroyFunc " function |
6776 |
Deletes a function, so that subsequent references to it are no |
6777 |
longer valid. You can use this to change the contents of a |
6778 |
function during a fvwm session. The function can be rebuilt using |
6779 |
.BR AddToFunc . |
6780 |
.EX |
6781 |
DestroyFunc PrintFunction |
6782 |
.EE |
6783 |
|
6784 |
.TP |
6785 |
.BI "Echo " string |
6786 |
Prints a message to |
6787 |
.IR stderr . |
6788 |
Potentially useful for debugging things in your |
6789 |
.IR .fvwm2rc . |
6790 |
.EX |
6791 |
Echo Beginning style definitions... |
6792 |
.EE |
6793 |
|
6794 |
.TP |
6795 |
.BI "Exec " command |
6796 |
Executes |
6797 |
.IR command . |
6798 |
You should not use an ampersand '&' at the end of the command. You |
6799 |
probably want to use an additional "exec" at the beginning of |
6800 |
.IR command . |
6801 |
Without that, the shell that fvwm invokes to run your command |
6802 |
stays until the command exits. In effect, you'll have twice as |
6803 |
many processes running as you need. Note that some shells are |
6804 |
smart enough to avoid this, but it never hurts to include the |
6805 |
"exec" anyway. |
6806 |
|
6807 |
The following example binds function key |
6808 |
.SM F1 |
6809 |
in the root window, with no modifiers, to the exec function. The |
6810 |
program rxvt is started with an assortment of options. |
6811 |
|
6812 |
.EX |
6813 |
Key F1 R N Exec exec rxvt -fg yellow -bg blue \\ |
6814 |
-e /bin/tcsh |
6815 |
.EE |
6816 |
Note that this function doesn't wait for |
6817 |
.I command |
6818 |
to complete, so things like: |
6819 |
.EX |
6820 |
Exec "echo AddToMenu ... > /tmp/file" |
6821 |
Read /tmp/file |
6822 |
.EE |
6823 |
do not work reliably. |
6824 |
|
6825 |
.TP |
6826 |
.BI "ExecUseShell [" shell "]" |
6827 |
Makes the |
6828 |
.B Exec |
6829 |
command use the specified shell, or the value of the |
6830 |
.I $SHELL |
6831 |
environment variable if no shell is specified, instead of the |
6832 |
default Bourne shell |
6833 |
.RI ( /bin/sh ). |
6834 |
.EX |
6835 |
ExecUseShell |
6836 |
ExecUseShell /usr/local/bin/tcsh |
6837 |
.EE |
6838 |
|
6839 |
.TP |
6840 |
.BI "Function " FunctionName |
6841 |
Used to bind a previously defined function to a key or mouse |
6842 |
button. The following example binds mouse button 1 to a function |
6843 |
called "Move-or-Raise", whose definition was provided as an |
6844 |
example earlier in this man page. After performing this binding |
6845 |
fvwm executes the "move-or-raise" function whenever button 1 is |
6846 |
pressed in a window's title-bar. |
6847 |
.EX |
6848 |
Mouse 1 T A Function Move-or-Raise |
6849 |
.EE |
6850 |
The keyword |
6851 |
.B Function |
6852 |
may be omitted if |
6853 |
.I FunctionName |
6854 |
does not coincide with a fvwm built-in function name |
6855 |
|
6856 |
.TP |
6857 |
.BI "Nop" |
6858 |
Does nothing. This is used to insert a blank line or separator in a |
6859 |
menu. If the menu item specification is |
6860 |
.EX |
6861 |
Nop " " |
6862 |
.EE |
6863 |
then a blank line is inserted. If it looks like |
6864 |
.EX |
6865 |
Nop "" |
6866 |
.EE |
6867 |
then a separator line is inserted. Can also be used as the |
6868 |
double-click action for |
6869 |
.BR Menu " or " Popup . |
6870 |
|
6871 |
.TP |
6872 |
.BI "PipeRead " command " [" quiet "]" |
6873 |
Causes fvwm to read commands from the output of the |
6874 |
.IR command . |
6875 |
This |
6876 |
.I command |
6877 |
is executed by |
6878 |
.I /bin/sh |
6879 |
as if you typed it on the command line. If the command consists |
6880 |
of more than one word it must be quoted. Useful for building up |
6881 |
dynamic menu entries based on a directories contents, for |
6882 |
example. If the keyword |
6883 |
.I Quiet |
6884 |
follows the command no message is produced if the |
6885 |
.I command |
6886 |
is not found. |
6887 |
|
6888 |
Example: |
6889 |
.EX |
6890 |
AddToMenu HomeDirMenu |
6891 |
PipeRead 'for i in $HOME/*; \\ |
6892 |
do echo "+ $i Exec xterm -e vi $i"; done' |
6893 |
.EE |
6894 |
|
6895 |
.TP |
6896 |
.BI "Read " filename " [" quiet "]" |
6897 |
Causes fvwm to read commands from the file named |
6898 |
.IR filename . |
6899 |
If the keyword |
6900 |
.I Quiet |
6901 |
follows the command no message is produced if the file is not |
6902 |
found. If the file name does not begin with a slash ('/'), fvwm |
6903 |
looks in the user's data directory, then the system data |
6904 |
directory. The user's data directory is by default |
6905 |
.IR $HOME/.fvwm . |
6906 |
It can be overridden by exporting |
6907 |
.I FVWM_USERDIR |
6908 |
set to any other directory. |
6909 |
|
6910 |
.TP |
6911 |
.BI "SetEnv " "variable [value]" |
6912 |
Set an environment variable to a new value, similar to the shell's |
6913 |
export or setenv command. The |
6914 |
.I variable |
6915 |
and its |
6916 |
.I value |
6917 |
are inherited by processes started directly by fvwm. This can be |
6918 |
especially useful in conjunction with the |
6919 |
.B FvwmM4 |
6920 |
module. For example: |
6921 |
.EX |
6922 |
SetEnv height HEIGHT |
6923 |
.EE |
6924 |
makes the FvwmM4-set variable |
6925 |
.I HEIGHT |
6926 |
usable by processes started by fvwm as the environment variable |
6927 |
.IR $height . |
6928 |
If |
6929 |
.I value |
6930 |
includes whitespace, you should enclose it in quotes. If no |
6931 |
.I value |
6932 |
is given, the |
6933 |
.I variable |
6934 |
is deleted from the environment as if |
6935 |
.B UnsetEnv |
6936 |
had been called. |
6937 |
|
6938 |
.TP |
6939 |
.BI "Silent " command |
6940 |
A number of built in functions require a window to operate on. If |
6941 |
no window was selected when such a function is invoked the user is |
6942 |
asked to select a window. Sometimes this behavior is unwanted, |
6943 |
for example if the function was called by a module and the window |
6944 |
that was selected at first does not exist anymore. You can |
6945 |
prevent this by putting |
6946 |
.B Silent |
6947 |
in front of the fvwm |
6948 |
.IR command . |
6949 |
If a function that needs a window is called with |
6950 |
.B Silent |
6951 |
without a window selected, it simply returns without doing |
6952 |
anything. If |
6953 |
.B Silent |
6954 |
is used on a user defined function it affects all function and sub |
6955 |
function calls until the original function exits. |
6956 |
|
6957 |
Another usage of |
6958 |
.B Silent |
6959 |
is with binding commands |
6960 |
.BR Key ", " PointerKey " and " Mouse , |
6961 |
this disables error messages. |
6962 |
|
6963 |
Examples: |
6964 |
.EX |
6965 |
Silent Move 0 0 |
6966 |
Silent User_defined_function |
6967 |
# don't complain on keabords without "Help" key |
6968 |
Silent Key Help R A Popup HelpMenu |
6969 |
.EE |
6970 |
|
6971 |
.TP |
6972 |
.BI "UnsetEnv " "variable" |
6973 |
Unset an environment variable, similar to shell's export or |
6974 |
unsetenv command. The |
6975 |
.I variable |
6976 |
then is removed from the environment array inherited by processes |
6977 |
started directly by fvwm. |
6978 |
|
6979 |
.TP |
6980 |
.BI "Wait " windowname |
6981 |
This built-in is intended to be used in fvwm functions only. It |
6982 |
causes execution of a function to pause until a new window with |
6983 |
the title |
6984 |
.I windowname |
6985 |
appears. Fvwm remains partially functional during a wait. This |
6986 |
is particularly useful in the "InitFunction" if you are trying to |
6987 |
start windows on specific desktops: |
6988 |
.EX |
6989 |
AddToFunc InitFunction |
6990 |
+ I exec xterm -geometry 80x64+0+0 |
6991 |
+ I Wait xterm |
6992 |
+ I Desk 0 2 |
6993 |
+ I Exec exec xmh -font fixed -geometry \\ |
6994 |
507x750+0+0 |
6995 |
+ I Wait xmh |
6996 |
+ I Desk 0 0 |
6997 |
.EE |
6998 |
The above function starts an xterm on the current desk, waits for |
6999 |
it to map itself, then switches to desk 2 and starts an xmh. |
7000 |
After the xmh window appears control moves to desk 0. |
7001 |
|
7002 |
You can escape from a |
7003 |
.B Wait |
7004 |
pause by pressing |
7005 |
.SM Ctrl-Alt-Escape |
7006 |
(where |
7007 |
.SM Alt |
7008 |
is the first modifier). To redefine this key sequence see the |
7009 |
.B EscapeFunc |
7010 |
command. |
7011 |
|
7012 |
|
7013 |
.SS CONDITIONAL COMMANDS |
7014 |
|
7015 |
.TP |
7016 |
.BI "All [(" conditions ")] " command |
7017 |
Execute. |
7018 |
.I command |
7019 |
on all windows meeting the conditions. |
7020 |
.I Conditions |
7021 |
are used exactly as with the |
7022 |
.B Current |
7023 |
command. |
7024 |
|
7025 |
.TP |
7026 |
.BI "Current [(" condition ... ")] " command |
7027 |
Performs |
7028 |
.I command |
7029 |
on the currently focused window if it satisfies all |
7030 |
.IR conditions . |
7031 |
The |
7032 |
.IR conditions |
7033 |
are a list of keywords from the list below and are separated by |
7034 |
commas or whitespace. Conditions include |
7035 |
"AcceptsFocus", "!AcceptsFocus" |
7036 |
"Iconic", "!Iconic", |
7037 |
"Visible", "!Visible", |
7038 |
"Raised", "!Raised", |
7039 |
"Layer [n]", |
7040 |
"Sticky", "!Sticky", |
7041 |
"Maximized", "!Maximized", |
7042 |
"Shaded", "!Shaded", |
7043 |
"Transient", "!Transient", |
7044 |
"PlacedByButton3", "!PlacedByButton3", |
7045 |
"PlacedByFvwm", "!PlacedByFvwm", |
7046 |
"CurrentDesk", "CurrentPage", "CurrentScreen" |
7047 |
"CurrentGlobalPage", "CurrentPageAnyDesk" and "CurrentGlobalPageAnyDesk". |
7048 |
In addition, the |
7049 |
.I condition |
7050 |
may include one window name to match to. The window name may |
7051 |
include the wildcards '*' and '?'. The window name, icon name, |
7052 |
class, and resource are considered when attempting to find a |
7053 |
match. The window name can begin with '!' which prevents |
7054 |
.I command |
7055 |
if any of the window name, icon name, class or resource match. |
7056 |
|
7057 |
The "AcceptsFocus" condition excludes all windows that do not want |
7058 |
the input focus (the application has set the "Input hints" for the |
7059 |
window to False) and do not use the |
7060 |
.I Lenience |
7061 |
option of the |
7062 |
.B Style |
7063 |
command. Also, all windows using the |
7064 |
.I NoFocus |
7065 |
style are ignored. |
7066 |
|
7067 |
The "CurrentDesk" condition excludes all window that are not on |
7068 |
the current desk. |
7069 |
|
7070 |
The "CurrentPage" condition excludes all window that are not on |
7071 |
the current desk or not on the current page. If Xinerama support |
7072 |
is enabled, only windows on the screen that contains the mouse |
7073 |
pointer are considered to match. |
7074 |
|
7075 |
The "CurrentGlobalPage" condition excludes all window that are not |
7076 |
on the current desk or not on the current page. The screen does |
7077 |
not matter if Xinerama support is enabled. |
7078 |
|
7079 |
The "CurrentScreen" and "CurrentPageAnyDesk" conditions exclude |
7080 |
all window that are not on the current page but that may be on any |
7081 |
desk. |
7082 |
|
7083 |
The "CurrentGlobalPage" condition excludes all window that are not |
7084 |
on the current desk or not on the current page. If Xinerama |
7085 |
support is enabled, only windows on the screen that contains the |
7086 |
mouse pointer are considered to match. |
7087 |
|
7088 |
The "CurrentGlobalPageAnyDesk" condition excludes all window that |
7089 |
are not on the current page but that may be on any desk. The |
7090 |
screen does not matter if Xinerama support is enabled. |
7091 |
|
7092 |
The argument of the "Layer" condition defaults to the layer of the |
7093 |
focus window. |
7094 |
|
7095 |
The "PlacedByButton3" condition is fulfilled if the last |
7096 |
interactive motion of the window (with the |
7097 |
.B Move |
7098 |
command) was ended by pressing mouse button 3. This is especially |
7099 |
useful with the |
7100 |
.I ManualPlacement |
7101 |
option of the |
7102 |
.B Style |
7103 |
command. |
7104 |
|
7105 |
The "PlacedByFvwm" condition excludes all windows that have been placed |
7106 |
manually or by using the user or program position hint. |
7107 |
|
7108 |
Note that earlier versions of fvwm required the conditions to be |
7109 |
enclosed in brackets instead of parentheses (this is still |
7110 |
supported for backwards compatibility). |
7111 |
|
7112 |
.TP |
7113 |
.BI "Direction " direction " [(" conditions ")] " command |
7114 |
Performs |
7115 |
.I command |
7116 |
(typically |
7117 |
.BR Focus ) |
7118 |
on a window in the given direction which satisfies all |
7119 |
.IR conditions . |
7120 |
Conditions are the same as for |
7121 |
.BR Current . |
7122 |
The |
7123 |
.I direction |
7124 |
may be one of "North", "Northeast", "East", "Southeast", "South", |
7125 |
"Southwest", "West" and "Northwest". Which window |
7126 |
.B Direction |
7127 |
selects depends on angle and distance between the center points of |
7128 |
the windows. Closer windows are considered a better match than |
7129 |
those farther away. |
7130 |
|
7131 |
.TP |
7132 |
.BI "Next [(" conditions ")] " command |
7133 |
Performs |
7134 |
.I command |
7135 |
(typically |
7136 |
.BR Focus ) |
7137 |
on the next window which satisfies all |
7138 |
.IR conditions . |
7139 |
Conditions are the same as for |
7140 |
.B Current |
7141 |
with the addition of "CirculateHit" which overrides the |
7142 |
.IB "CirculateSkip " Style |
7143 |
attribute, "CirculateHitIcon" which overrides the |
7144 |
.IB "CirculateSkipIcon " Style |
7145 |
attribute for iconified windows and "CirculateHitShaded" which |
7146 |
does the same for shaded windows. |
7147 |
|
7148 |
.TP |
7149 |
.BI "None [(" conditions ")] " command |
7150 |
Performs |
7151 |
.I command |
7152 |
if no window which satisfies all |
7153 |
.I conditions |
7154 |
exists. Conditions are the same as for |
7155 |
.BR Next . |
7156 |
|
7157 |
.TP |
7158 |
.BI "Pick [(" conditions ")] " command |
7159 |
.B Pick |
7160 |
works like |
7161 |
.B Function |
7162 |
if invoked in the context of a window. If invoked in the root |
7163 |
window, it first asks the user to pick a window and then executes the |
7164 |
.I command |
7165 |
in the context of that window. This avoids annoying multiple |
7166 |
selections with complex functions. The command is executed only |
7167 |
if the given |
7168 |
.I conditions |
7169 |
are met. The conditions are the same as for |
7170 |
.BR Next . |
7171 |
|
7172 |
.TP |
7173 |
.BI "Prev [(" conditions ")] " command |
7174 |
Performs |
7175 |
.I command |
7176 |
(typically |
7177 |
.BR Focus ) |
7178 |
on the previous window which satisfies all |
7179 |
.IR conditions . |
7180 |
Conditions are the same as for |
7181 |
.BR Next . |
7182 |
|
7183 |
.TP |
7184 |
.BI "ThisWindow [(" conditions ")] " command |
7185 |
.B ThisWindow |
7186 |
executes the specified |
7187 |
.I command |
7188 |
in the context of the current operand window. If there is no |
7189 |
operand window (it is invoked in the root window), the command is |
7190 |
ignored. |
7191 |
.B ThisWindow |
7192 |
is always non-interactive. The command is executed only if the |
7193 |
given |
7194 |
.I conditions |
7195 |
are met. The conditions are the same as for |
7196 |
.BR Current . |
7197 |
It returns -1 if used outside a window context. |
7198 |
|
7199 |
.IP "\fBWindowId [\fP \fIid\fP \ |
7200 |
\fB] [(\fP \fIconditions\fP \ |
7201 |
\fB)] | [\fP \fIroot\fP \ |
7202 |
\fB[\fP \fIscreen\fP \ |
7203 |
\fB]]\fP \fIcommand" |
7204 |
The |
7205 |
.B WindowId |
7206 |
function is similar to the |
7207 |
.BR Next " and " Prev |
7208 |
functions, except that it looks for a specific window |
7209 |
.I id |
7210 |
and runs the specified |
7211 |
.I command |
7212 |
on it. The optional |
7213 |
.I conditions |
7214 |
are the same as for |
7215 |
.BR Current . |
7216 |
The second form of syntax retrieves the window id of the root |
7217 |
window of the given |
7218 |
.IR screen . |
7219 |
If no |
7220 |
.I screen |
7221 |
is given, the current screen is assumed. The window indicated by |
7222 |
.I id |
7223 |
may belong to a window not managed by fvwm or even a window on a |
7224 |
different screen. Although most commands can not operate on such |
7225 |
windows, there are some exceptions, for example the |
7226 |
.B WarpToWindow |
7227 |
command. |
7228 |
.EX |
7229 |
WindowId 0x34567890 Raise |
7230 |
WindowId root 1 WarpToWindow 50 50 |
7231 |
WindowId $0 (Silly_Popup) Delete |
7232 |
.EE |
7233 |
Mostly this is useful for functions used with the |
7234 |
.B WindowList |
7235 |
built-in, or for selective processing of |
7236 |
.B FvwmEvent |
7237 |
calls (as in the last example). |
7238 |
|
7239 |
|
7240 |
.SS MODULE COMMANDS |
7241 |
|
7242 |
Fvwm maintains a database of module configuration lines in a form |
7243 |
.EX |
7244 |
.BI "*" "<ModuleName>" ": " "<Config-Resource>" |
7245 |
.EE |
7246 |
where |
7247 |
.I "<ModuleName>" |
7248 |
is either a real module name or an alias. |
7249 |
|
7250 |
This database is initially filled from config file (or from |
7251 |
output of |
7252 |
.B \-cmd |
7253 |
config command), and can be later modified either by user (via |
7254 |
.BR FvwmCommand ) |
7255 |
or by modules. |
7256 |
|
7257 |
When modules are run, they read appropriate portion of database. |
7258 |
(The concept of this database is similar to one used in X resource |
7259 |
database). |
7260 |
|
7261 |
Commands for manipulating module configuration database are |
7262 |
described below. |
7263 |
|
7264 |
.TP |
7265 |
.BI "*" module_config_line |
7266 |
Defines a module configuration. |
7267 |
.I module_config_line |
7268 |
consists of a module name (or a module alias) and a module |
7269 |
resource line. The new syntax allows a delimiter, a colon and |
7270 |
optional spaces, between the module name and the rest of the line, |
7271 |
this is recommended to avoid conflicts. |
7272 |
.EX |
7273 |
*FvwmIconBox: MaxIconSize 48x48 |
7274 |
*FvwmPager: WindowBorderWidth 1 |
7275 |
*FvwmButtons-TopRight: Geometry 100x100-0+0 |
7276 |
*FvwmButtons-Bottom: Geometry +0-0 |
7277 |
.EE |
7278 |
|
7279 |
.TP |
7280 |
.BI "DestroyModuleConfig " module_config |
7281 |
Deletes module configuration entries, so that new configuration |
7282 |
lines may be entered instead. This also sometimes the only way to |
7283 |
turn back some module settings, previously defined. This changes |
7284 |
the way a module runs during a fvwm session without |
7285 |
restarting. Wildcards can be used for portions of the name as |
7286 |
well. |
7287 |
|
7288 |
The new non-conflicting syntax allows a delimiter, a colon and |
7289 |
optional spaces between the module name and the rest of the line. |
7290 |
In this case a module name (or alias) can't have wildcards. |
7291 |
.EX |
7292 |
DestroyModuleConfig FvwmButtons* |
7293 |
DestroyModuleConfig FvwmForm: Fore |
7294 |
DestroyModuleConfig FvwmIconBox: Max* |
7295 |
.EE |
7296 |
|
7297 |
.TP |
7298 |
.BI "KillModule " modulename " [" modulealias ] |
7299 |
Causes the module which was invoked with name |
7300 |
.I modulename |
7301 |
to be killed. The name may include wildcards. If |
7302 |
.I modulealias |
7303 |
is given, only modules started with the given alias are killed. |
7304 |
.EX |
7305 |
KillModule FvwmPager # kill all pagers |
7306 |
|
7307 |
Module FvwmEvent SoundEvent |
7308 |
KillModule FvwmEvent SoundEvent |
7309 |
.EE |
7310 |
|
7311 |
.TP |
7312 |
.BI "Module " modulename " [" moduleparams ] |
7313 |
Specifies a module with its optional parameters which should be |
7314 |
spawned. Currently several modules, including |
7315 |
.BR FvwmButtons ", " FvwmEvent ", " FvwmForm ", " FvwmGtk ", " |
7316 |
.BR FvwmPager ", " FvwmScript |
7317 |
support aliases. Aliases are useful if more than one instance of |
7318 |
the module should be spawned. Aliases may be configured |
7319 |
separately using |
7320 |
.B * |
7321 |
syntax described above. To start a module |
7322 |
.B FvwmForm |
7323 |
using an alias |
7324 |
.IR MyForm , |
7325 |
the following syntax may be used: |
7326 |
.EX |
7327 |
Module FvwmForm MyForm |
7328 |
.EE |
7329 |
|
7330 |
At the current time the available modules (included with fvwm) are |
7331 |
.B FvwmAnimate |
7332 |
(produces animation effects when a window is iconified or |
7333 |
de-iconifed), |
7334 |
.B FvwmAudio |
7335 |
(makes sounds to go with window manager actions), |
7336 |
.B FvwmAuto |
7337 |
(an auto raise module), |
7338 |
.B FvwmBacker |
7339 |
(to change the background when you change desktops), |
7340 |
.B FvwmBanner |
7341 |
(to display a spiffy XPM), |
7342 |
.B FvwmButtons |
7343 |
(brings up a customizable tool bar), |
7344 |
.B FvwmCommandS |
7345 |
(a command server to use with shell's FvwmCommand client), |
7346 |
.B FvwmConsole |
7347 |
(to execute fvwm commands directly), |
7348 |
.B FvwmCpp |
7349 |
(to preprocess your |
7350 |
.I .fvwm2rc |
7351 |
with cpp), |
7352 |
.B FvwmDebug |
7353 |
(to help debug fvwm), |
7354 |
.B FvwmDragWell |
7355 |
(the place to drag&drop to), |
7356 |
.B FvwmEvent |
7357 |
(trigger various actions by events), |
7358 |
.B FvwmForm |
7359 |
(to bring up dialogs), |
7360 |
.B FvwmGtk |
7361 |
(to bring up GTK menus and dialogs), |
7362 |
.B FvwmIconBox |
7363 |
(like the mwm IconBox), |
7364 |
.B FvwmIconMan |
7365 |
(a flexible icon manager), |
7366 |
.B FvwmIdent |
7367 |
(to get window info), |
7368 |
.B FvwmM4 |
7369 |
(to preprocess your |
7370 |
.I .fvwm2rc |
7371 |
with m4), |
7372 |
.B FvwmPager |
7373 |
(a mini version of the desktop), |
7374 |
.B FvwmSave |
7375 |
(saves the desktop state in .xinitrc style), |
7376 |
.B FvwmSaveDesk |
7377 |
(saves the desktop state in fvwm commands), |
7378 |
.B FvwmScript |
7379 |
(another powerful dialog toolkit), |
7380 |
.B FvwmScroll |
7381 |
(puts scrollbars on any window), |
7382 |
.B FvwmTaskBar |
7383 |
(a Windows like task bar), |
7384 |
.B FvwmTheme |
7385 |
(manages colorsets, see below), |
7386 |
.B FvwmWinList |
7387 |
(a window list), |
7388 |
.B FvwmWharf |
7389 |
(an AfterStep like button bar). |
7390 |
These modules have their own man pages. There may be other |
7391 |
modules out on there as well. |
7392 |
|
7393 |
Note, |
7394 |
.B FvwmTheme |
7395 |
is a special module which manages colorsets. Most of other modules |
7396 |
and fvwm itself support colorsets and changing colors |
7397 |
dynamically. Colorsets will probably be the only method to specify |
7398 |
colors in the next stable fvwm release, and then the functionality |
7399 |
of FvwmTheme will be moved to the core fvwm. |
7400 |
|
7401 |
|
7402 |
Modules can be short lived transient programs or, like |
7403 |
.BR FvwmButtons , |
7404 |
can remain for the duration of the X session. Modules are |
7405 |
terminated by the window manager prior to restarts and quits, if |
7406 |
possible. See the introductory section on modules. The keyword |
7407 |
.B Module |
7408 |
may be omitted if |
7409 |
.I modulename |
7410 |
is distinct from all built-in and function names. |
7411 |
|
7412 |
.TP |
7413 |
.BI "ModulePath " path |
7414 |
Specifies a colon separated list of directories in which to search |
7415 |
for modules. To find a module, fvwm searches each directory in |
7416 |
turn and uses the first file found. Directory names on the list |
7417 |
do not need trailing slashes. |
7418 |
|
7419 |
The |
7420 |
.BI ModulePath |
7421 |
may contain environment variables such as |
7422 |
.IR $HOME " (or " ${HOME} ). |
7423 |
Further, a '+' in the |
7424 |
.I path |
7425 |
is expanded to the previous value of the |
7426 |
.IR path , |
7427 |
allowing easy appending or prepending to the |
7428 |
.IR path . |
7429 |
|
7430 |
For example: |
7431 |
.EX |
7432 |
ModulePath ${HOME}/lib/fvwm/modules:+ |
7433 |
.EE |
7434 |
The directory containing the standard modules is available via the |
7435 |
environment variable |
7436 |
.IR $FVWM_MODULEDIR . |
7437 |
|
7438 |
.TP |
7439 |
.BI "ModuleSynchronous [" "Expect string" "] [" "Timeout secs" "] " modulename |
7440 |
The |
7441 |
.B ModuleSynchronous |
7442 |
command is very similar to |
7443 |
.BI Module . |
7444 |
Fvwm stops processing any commands and user input until the module |
7445 |
sends a string beginning with "NOP FINISHED STARTUP" back to fvwm. |
7446 |
If the optional |
7447 |
.I Timeout |
7448 |
is given fvwm gives up if the module sent no input back to fvwm |
7449 |
for |
7450 |
.I secs |
7451 |
seconds. If the |
7452 |
.I Expect |
7453 |
option is given, fvwm waits for the given |
7454 |
.I string |
7455 |
instead. |
7456 |
.B ModuleSynchronous |
7457 |
should only be used during fvwm startup to enforce the order in |
7458 |
which modules are started. This command is intended for use with |
7459 |
the |
7460 |
.B FvwmTheme |
7461 |
module since the configuration must be in place before any other |
7462 |
modules are started. |
7463 |
|
7464 |
Warning: It is quite easy to hang fvwm with this command, even if |
7465 |
a timeout is given. Be extra careful choosing the string to wait |
7466 |
for. Although all modules in the fvwm distribution send back the |
7467 |
"NOP FINISHED STARTUP" string once they have properly started up, |
7468 |
this may not be the case for third party modules. Moreover, you |
7469 |
can try to escape from a locked |
7470 |
.B ModuleSynchronous |
7471 |
command by using the key sequence |
7472 |
.SM Ctrl-Alt-Escape |
7473 |
(see the |
7474 |
.BR EscapeFunc ). |
7475 |
|
7476 |
.TP |
7477 |
.BI "ModuleTimeout " timeout |
7478 |
Specifies how many seconds fvwm waits for a module to respond. If |
7479 |
the module does not respond within the time limit then fvwm kills |
7480 |
it. |
7481 |
.I timeout |
7482 |
must be greater than zero, or it is reset to the default value of |
7483 |
30 seconds. |
7484 |
|
7485 |
.TP |
7486 |
.BI "SendToModule " "modulename string" |
7487 |
Sends an arbitrary string (no quotes required) to all modules, |
7488 |
whose alias or name matching |
7489 |
.IR modulename , |
7490 |
which may contain wildcards. This only makes sense if the module |
7491 |
is set up to understand and deal with these strings though. Can be |
7492 |
used for module to module communication, or implementation of more |
7493 |
complex commands in modules. |
7494 |
|
7495 |
|
7496 |
.SS QUIT, RESTART AND SESSION MANAGEMENT COMMANDS |
7497 |
|
7498 |
.TP |
7499 |
.BI "Quit" |
7500 |
Exits fvwm, generally causing X to exit too. |
7501 |
|
7502 |
.TP |
7503 |
.BI "QuitScreen" |
7504 |
Causes fvwm to stop managing the screen on which the command was |
7505 |
issued. |
7506 |
|
7507 |
.TP |
7508 |
.BI "QuitSession" |
7509 |
Causes a session manager (if any) to shutdown the session. This |
7510 |
command does not work for xsm, it seems that xsm does not |
7511 |
implement this functionality. Use Unix signals to manage xsm |
7512 |
remotely. |
7513 |
|
7514 |
.TP |
7515 |
.BI "Restart [" window_manager " [" params "]]" |
7516 |
Causes fvwm to restart itself if |
7517 |
.I window_manager |
7518 |
is left blank, or to switch to an alternate window manager (or |
7519 |
other fvwm version) if |
7520 |
.I window_manager |
7521 |
is specified. If the window manager is not in your default search |
7522 |
path, then you should use the full path name for |
7523 |
.IR window_manager . |
7524 |
|
7525 |
This command should not have a trailing ampersand. The command |
7526 |
can have optional parameters with simple shell-like syntax. You |
7527 |
can use |
7528 |
.I ~ |
7529 |
(is expanded to the user home directory) and environmental |
7530 |
variables .IR $VAR " or " ${VAR} . Here are several examples: |
7531 |
.EX |
7532 |
Key F1 R N Restart |
7533 |
Key F1 R N Restart fvwm2 -s |
7534 |
Key F1 R N Restart ~/bin/fvwm2 -f $HOME/.fvwm/main |
7535 |
Key F1 R N Restart fvwm1 -s -f .fvwm1rc |
7536 |
Key F1 R N Restart xterm -n '"X console"' \\ |
7537 |
-T \\"X\\ console\\" -e fvwm1 -s |
7538 |
.EE |
7539 |
If you need a native restart, we suggest only to use |
7540 |
.B Restart |
7541 |
command without parameters unless there is a reason not to. If you |
7542 |
use 'Restart fvwm2', all current command line arguments are lost, |
7543 |
while on Restart without parameters or with --pass-args, they are |
7544 |
preserved. Here are some cases when 'Restart fvwm2' causes |
7545 |
troubles: |
7546 |
.EX |
7547 |
* running fvwm under a session manager |
7548 |
* running fvwm with multi headed displays |
7549 |
* having command line arguments, like -f themes-rc or -cmd |
7550 |
* if the first fvwm2 in the $PATH is a different one |
7551 |
.EE |
7552 |
This is why we are issuing a warning on an old usage. If you |
7553 |
really want to restart to fvwm2 with no additional arguments, you |
7554 |
may get rid of this warning by using "Restart fvwm2 -s" or |
7555 |
"Restart /full/path/fvwm2". |
7556 |
|
7557 |
Note, currently with multi headed displays, restart of fvwms on |
7558 |
different screens works independently. |
7559 |
|
7560 |
.TP |
7561 |
.BI "Restart " "--pass-args window_manager" |
7562 |
The same as |
7563 |
.B Restart |
7564 |
without parameters but the name for the current window manager is |
7565 |
replaced with the specified |
7566 |
.I window_manager |
7567 |
and original arguments are preserved. |
7568 |
|
7569 |
This command is useful if you use initial arguments like |
7570 |
.EX |
7571 |
-cmd FvwmCpp |
7572 |
.EE |
7573 |
and want to switch to another fvwm version without losing the |
7574 |
initial arguments. |
7575 |
|
7576 |
.TP |
7577 |
.BI "Restart " --dont-preserve-state " [" other-params "]" |
7578 |
The same as |
7579 |
.EX |
7580 |
.BI "Restart [" other-params "]" |
7581 |
.EE |
7582 |
but it does not save any window states over the restart. |
7583 |
|
7584 |
Without this option, |
7585 |
.B Restart |
7586 |
preserves most per-window state by writing it to a file named |
7587 |
.I .fs-restart-$HOSTDISPLAY |
7588 |
in the user's home directory. |
7589 |
|
7590 |
.TP |
7591 |
.BI "SaveSession" |
7592 |
Causes a session manager (if any) to save the session. This |
7593 |
command does not work for xsm, it seems that xsm does not |
7594 |
implement this functionality. Use Unix signals to manage xsm |
7595 |
remotely. |
7596 |
|
7597 |
.TP |
7598 |
.BI "SaveQuitSession" |
7599 |
Causes a session manager (if any) to save and then shutdown the |
7600 |
session. This command does not work for xsm, it seems that xsm |
7601 |
does not implement this functionality. Use Unix signals to manage |
7602 |
xsm remotely. |
7603 |
|
7604 |
|
7605 |
.SS COLOR GRADIENTS |
7606 |
|
7607 |
A color gradient is a background that changes its color gradually |
7608 |
from one hue to a different one. Color gradients can be used by |
7609 |
various commands and modules of fvwm. There are eight types of |
7610 |
gradients: |
7611 |
.B HGradient |
7612 |
is a horizontal gradient, |
7613 |
.B VGradient |
7614 |
is vertical, |
7615 |
.B DGradient |
7616 |
is diagonal from top left to bottom right, |
7617 |
.B BGradient |
7618 |
is backwards diagonal from bottom left to top right, |
7619 |
.B SGradient |
7620 |
is concentric squares, |
7621 |
.B CGradient |
7622 |
is concentric circles, |
7623 |
.B RGradient |
7624 |
is a radar like pattern and |
7625 |
.B YGradient |
7626 |
is a Yin Yang style (but without the dots). |
7627 |
|
7628 |
The color gradient syntax has two forms: |
7629 |
|
7630 |
.TP |
7631 |
.BI "?Gradient " "colors start-color end-color" |
7632 |
This form specifies a linear gradient. The arguments denote the |
7633 |
total number of |
7634 |
.I colors |
7635 |
to allocate (between 2 and 1000), the initial color and the final color. |
7636 |
|
7637 |
Example: |
7638 |
.EX |
7639 |
TitleStyle VGradient 20 rgb:b8/ce/bc rgb:5b/85/d0 |
7640 |
.EE |
7641 |
|
7642 |
.TP |
7643 |
.BI "?Gradient " "colors segments color length color" " [" "length color" "] ..." |
7644 |
The second form specifies a nonlinear gradient. The arguments are: |
7645 |
the total number of |
7646 |
.I colors |
7647 |
to allocate (between 2 and 1000), then the number of |
7648 |
.IR segments . |
7649 |
For each segment, specify the starting |
7650 |
.IR color , |
7651 |
a relative |
7652 |
.IR length , |
7653 |
then the ending color. Each subsequent segment begins with the |
7654 |
second color of the last segment. The lengths may be any |
7655 |
non-negative integers. The length of one segment divided by the |
7656 |
sum of all segment's lengths is the fraction of the colors that |
7657 |
are used for the segment. |
7658 |
.in -2 |
7659 |
|
7660 |
Examples: |
7661 |
.EX |
7662 |
MenuStyle * MenuFace DGradient \\ |
7663 |
128 2 lightgrey 50 blue 50 white |
7664 |
|
7665 |
# 20% gradient from red to blue, |
7666 |
# 30% from blue to black, |
7667 |
# 50% from black to grey |
7668 |
MenuStyle * DGradient 100 3 Red 20 Blue 30 \\ |
7669 |
Black 50 Grey |
7670 |
|
7671 |
# 50% from blue to green, then |
7672 |
# 50% from yellow to red |
7673 |
*FvwmTheme: Colorset 0 Blue Red HGradient \\ |
7674 |
128 3 Blue 1000 Green 1 Yellow 1000 Red |
7675 |
.EE |
7676 |
|
7677 |
.SH ENVIRONMENT |
7678 |
|
7679 |
.TP |
7680 |
.I DISPLAY |
7681 |
Fvwm starts on this display unless the |
7682 |
.I -display |
7683 |
option is given. |
7684 |
.TP |
7685 |
.I FVWM_MODULEDIR |
7686 |
Set by fvwm to the directory containing the standard fvwm modules. |
7687 |
.TP |
7688 |
.I FVWM_USERDIR |
7689 |
Used to determine the user's data directory for reading and |
7690 |
sometimes writing personal files. If this variable is not already |
7691 |
set, it is set by fvwm to $HOME/.fvwm, which is the default user's |
7692 |
data directory. |
7693 |
.TP |
7694 |
.I SESSION_MANAGER |
7695 |
Fvwm tries to contact this session manager. |
7696 |
.TP |
7697 |
.I SESSION_MANAGER_NAME |
7698 |
This is used mainly to determine xsm running to work around its |
7699 |
bug. If this variable is set to "xsm", DiscardCommand is set as |
7700 |
xsm expects it and not as XSMP requires. If you run fvwm under |
7701 |
xsm, you should set this variable to "xsm", otherwise old state |
7702 |
files are not removed. |
7703 |
.TP |
7704 |
.I SM_SAVE_DIR |
7705 |
If this is set, fvwm saves its session data in this |
7706 |
directory. Otherwise it uses |
7707 |
.IR $HOME . |
7708 |
Note, the state files are named |
7709 |
.I .fs-?????? |
7710 |
and normally are removed automatically when not used anymore. |
7711 |
|
7712 |
.SH AUTHORS |
7713 |
|
7714 |
Robert Nation with help from many people, based on twm code, which |
7715 |
was written by Tom LaStrange. After Robert Nation came Charles |
7716 |
Hines, followed by Brady Montz. Currently fvwm is developed by a |
7717 |
number of people on the fvwm-workers mailing list. |
7718 |
|
7719 |
.SH COPYRIGHT |
7720 |
|
7721 |
Fvwm and all the modules, scripts and other files coming with the |
7722 |
distribution are subject to the GNU General Public License |
7723 |
(GPL). Please refer to the |
7724 |
.I COPYING |
7725 |
file that came with fvwm for details. |
7726 |
|
7727 |
.SH BUGS |
7728 |
|
7729 |
As of fvwm version 2.4.0 there were exactly 71.8 unidentified |
7730 |
bugs. Since then 22.825 bugs have been fixed. Assuming that there |
7731 |
are at least 10 unidentified bugs for every identified one, that |
7732 |
leaves us with 71.8 - 22.825 + 10 * 22.825 = 277.225 unidentified |
7733 |
bugs. If we follow this to its logical conclusion we will have an |
7734 |
infinite number of unidentified bugs before the number of bugs can |
7735 |
start to diminish, at which point the program will be bug-free. |
7736 |
Since this is a computer program infinity = 3.4028e+38 if you |
7737 |
don't insist on double-precision. At the current rate of bug |
7738 |
discovery we should expect to achieve this point in 4.27e+27 |
7739 |
years. I guess we better plan on passing this thing on to our |
7740 |
children... |
7741 |
|
7742 |
Known bugs can be found in the fvwm bug tracking system |
7743 |
(accessible from the fvwm home page) and in the |
7744 |
.IR BUGS " or " TODO |
7745 |
files in the distribution. These files are no longer maintained |
7746 |
and may be out of date. |
7747 |
|
7748 |
Bug reports can be sent to the fvwm-workers mailing list (see the |
7749 |
.IR FAQ ) |
7750 |
or reported through the bug tracking system. |
7751 |
|
7752 |
The official fvwm homepage is |
7753 |
.BR http://www.fvwm.org/ . |
7754 |
|
7755 |
\" LocalWords: XTerm xterm rc fvwm Linux ICCCM CDE XView XINERAMA Xinerama |
7756 |
\" LocalWords: EdgeResistance fvwm's IconBox MoveToScreen FvwmConsole |
7757 |
\" LocalWords: FvwmCommand |