mirror of
https://github.com/NishiOwO/fvwm1.git
synced 2025-04-21 08:44:39 +00:00
1702 lines
70 KiB
Groff
1702 lines
70 KiB
Groff
.\" t
|
|
.\" @(#)fvwm.1 1/12/94
|
|
.de EX \"Begin example
|
|
.ne 5
|
|
.if n .sp 1
|
|
.if t .sp .5
|
|
.nf
|
|
.in +.5i
|
|
..
|
|
.de EE
|
|
.fi
|
|
.in -.5i
|
|
.if n .sp 1
|
|
.if t .sp .5
|
|
..
|
|
.ta .3i .6i .9i 1.2i 1.5i 1.8i
|
|
.TH FVWM 1.2 "Jan 28, 1994"
|
|
.UC
|
|
.SH NAME
|
|
fvwm \- F(?) Virtual Window Manager for X11
|
|
.SH SYNOPSIS
|
|
\fBfvwm\fP [ \fIoptions\fP ]
|
|
.SH DESCRIPTION
|
|
\fIFvwm\fP is a window manager for X11. It is a derivative of \fItwm\fP,
|
|
redesigned
|
|
to minimize memory consumption, provide a 3-D look to window frames, and
|
|
provide a simple virtual desktop. Memory consumption is estimated at about
|
|
one-half to one-third the memory consumption of \fItwm\fP, due primarily to a
|
|
redesign of \fItwm\fP's method of storing mouse bindings. In
|
|
addition, many of the configurable options of \fItwm\fP have been removed.
|
|
|
|
The name "FVWM" used to stand for something, but I forgot what. (Feeble,
|
|
famous, foobar? It doesn't really matter, this is an acronym based society
|
|
anyway.)
|
|
|
|
.SH SPECIAL NOTE FOR XFREE86 USERS
|
|
XFree86 provides a virtual screen whose operation can be confusing
|
|
when used in conjunction with \fIfvwm\fP. With XFree86 all windows
|
|
which appear on the virtual screen actually get drawn into video
|
|
memory (whether or not they appear on the physical screen), so the
|
|
virtual screen size is limited by available video memory.
|
|
|
|
With \fIfvwm\fP's virtual desktop, windows which do not appear on the
|
|
screen do not actually get drawn into video RAM. The size of the
|
|
virtual desktop is limited to about 32,000 by 32,000 pixels, but it is
|
|
probably impractical to use a virtual desktop more than about 5 times
|
|
the visible screen in each direction. Note that memory usage is a
|
|
function of the number of windows which exist - the size of the
|
|
desktop makes no difference.
|
|
|
|
When becoming familiar with \fIfvwm\fP it is recommended that you
|
|
disable XFree86's virtual screen by setting the virtual screen size to
|
|
the physical screen size. After you become familiar with \fIfvwm\fP
|
|
you may want to re-enable XFree86's virtual screen.
|
|
|
|
.SH COPYRIGHTS
|
|
Since \fIfvwm\fP is derived from \fItwm\fP code it shares \fItwm\fP's
|
|
copyrights.
|
|
|
|
\fIfvwm\fP is copyright 1988 by Evans and Sutherland Computer
|
|
Corporation, Salt Lake City, Utah, and 1989 by the Massachusetts
|
|
Institute of Technology, Cambridge, Massachusetts, All rights
|
|
reserved. It is also copyright 1993 and 1994 by Robert Nation.
|
|
|
|
Permission to use, copy, modify, and distribute this software and its
|
|
documentation for any purpose and without fee is hereby granted,
|
|
provided that the above copyright notice appear in all copies and that
|
|
both that copyright notice and this permission notice appear in
|
|
supporting documentation, and that the names of Evans & Sutherland and
|
|
M.I.T. not be used in advertising in publicity pertaining to
|
|
distribution of the software without specific, written prior
|
|
permission.
|
|
|
|
ROBERT NATION, EVANS & SUTHERLAND, AND M.I.T. DISCLAIM ALL WARRANTIES
|
|
WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF
|
|
MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL EVANS & SUTHERLAND OR
|
|
M.I.T. BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES
|
|
OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
|
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTUOUS ACTION,
|
|
ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
|
SOFTWARE.
|
|
|
|
.SH ANATOMY OF A WINDOW
|
|
\fIFvwm\fP puts a decorative border around most windows. This border
|
|
consists of a bar on each side and a small "L" shaped section on each
|
|
corner. There is an additional top bar called the title bar which is
|
|
used to display the name of the window. In addition, there are up to
|
|
10 title-bar buttons. The top, side, and bottom bars are collectively
|
|
known as the side-bars. The corner pieces are called the frame.
|
|
|
|
Unless the standard defaults files are modified, pressing mouse button
|
|
1 in the title or side-bars will begin a move operation on the
|
|
window. Pressing button 1 in the corner frame pieces will begin a
|
|
resize operation. Pressing button 2 anywhere in the border brings up
|
|
an extensive list of window operations.
|
|
|
|
Up to ten title-bar buttons may exist. Their use is completely user
|
|
definable. The default configuration has a title-bar button on each
|
|
side of the title-bar. The one on the left is used to bring up a list
|
|
of window options, regardless of which mouse button is used. The one
|
|
on the right is used to iconify the window. The number of title-bar
|
|
buttons used depends on which ones have mouse actions bound to
|
|
them. See the section on the "Mouse" configuration parameter below.
|
|
|
|
|
|
.SH THE VIRTUAL DESKTOP
|
|
\fIFvwm\fP provides multiple virtual desktops for users who wish to
|
|
use them. The screen is a viewport onto a desktop which may be larger
|
|
than the screen. Several distinct desktops can be accessed (concept:
|
|
one desktop for each project, or one desktop for each application,
|
|
when view applications are distinct). Since each desktop can be
|
|
larger than the physical screen, windows which are larger than the
|
|
screen or large groups of related windows can easily be viewed.
|
|
|
|
The size of the virtual desktops can be specified at start-up. All
|
|
virtual desktops must be the same size. The total number of distinct
|
|
desktops need not be specified, but is limited to approximately 4
|
|
billion total. All windows on the current desktop can be displayed in
|
|
a Pager, a miniature view of the current desktop. Windows which are
|
|
not on the current desktop can be listed, along with their geometries,
|
|
in a window list, accessible as a pop-up menu.
|
|
|
|
"Sticky" windows are windows which transcend the virtual desktop by
|
|
"Sticking to the screen's glass." They always stay put on the screen.
|
|
This is convenient for things like clocks and xbiff's, so you only need
|
|
to run one such gadget and it always stays with you.
|
|
|
|
Window geometries are specified relative to the current viewport. That
|
|
is:
|
|
.EX
|
|
xterm -geometry +0+0
|
|
.EE
|
|
will always show up in the upper-left hand
|
|
corner of the visible portion of the screen. It is permissible to
|
|
specify geometries which place windows on the virtual desktop, but off
|
|
the screen. For example, if the visible screen is 1000 by 1000 pixels,
|
|
and the desktop size is 3x3, and the current viewport is at the upper
|
|
left hand corner of the desktop, then invoking:
|
|
.EX
|
|
xterm -geometry +1000+1000
|
|
.EE
|
|
will place the window just off of the lower right hand
|
|
corner of the screen. It can be found by moving the mouse to the lower
|
|
right hand corner of the screen and waiting for it to scroll into
|
|
view. There is currently no way to cause a window to map onto a
|
|
desktop other than the currently active desk.
|
|
|
|
A geometry specified as something like:
|
|
.EX
|
|
xterm -geometry -5-5
|
|
.EE
|
|
will
|
|
generally place the window's lower right hand corner 5 pixels from the
|
|
lower right corner of the visible portion of the screen. Not all
|
|
applications support window geometries with negative offsets.
|
|
|
|
Some applications, like xterm and xfontsel, allow the user to specify
|
|
the start-up desk on the command line:
|
|
.EX
|
|
xterm -xrm "*Desk:1"
|
|
.EE
|
|
will start
|
|
an xterm on desk number 1. Not all applications understand this
|
|
option, however.
|
|
|
|
.SH INITIALIZATION
|
|
During initialization, \fIfvwm\fP will search for a configuration file which
|
|
describes key and button bindings, and a few other things. The format of
|
|
these files will be described later. First, \fIfvwm\fP will search for a file
|
|
named .fvwmrc in the users home directory. Failing that, it will look for
|
|
/usr/lib/X11/fvwm/system.fvwmrc for system-wide defaults. If that file is not
|
|
found, \fIfvwm\fP will exit.
|
|
|
|
\fIFvwm\fP will set two environment variables which will be inherited
|
|
by its children. These are $DISPLAY which describes the display on
|
|
which \fIfvwm\fP is running. $DISPLAY may be unix:0.0 or :0.0, which doesn't
|
|
work too well when passed through rsh to another machine, so
|
|
$HOSTDISPLAY will also be set and will use a network-ready
|
|
description of the display. $HOSTDISPLAY will always use the TCP/IP
|
|
transport protocol (even for a local connection) so $DISPLAY should be
|
|
used for local connections, as it may use Unix-domain sockets, which
|
|
are faster.
|
|
|
|
.SH SHAPED WINDOWS
|
|
If you typically use shaped windows such as xeyes or oclock, you have
|
|
several options. You can make them all undecorated (NoBorder oclock
|
|
and NoTitle oclock, for example) or you can use the default
|
|
configuration and leave them decorated, in which case a decorative
|
|
border and a solid-color backdrop are shown. Alternately, you can
|
|
compile in the SHAPE extensions by changing a flag in the Makefile,
|
|
in which case you get the shaped window with no backdrop, and a title
|
|
bar floats above the window. The shaped window extensions increase the
|
|
window manager's memory consumption by about 60 Kbytes when no shaped
|
|
windows are present but have little effect when shaped windows are
|
|
present.
|
|
|
|
.SH ICONS
|
|
The basic \fIFvwm\fP configuration uses monochrome bitmap icons,
|
|
similar to \fItwm\fP. If XPM extensions are compiled in, then color icons
|
|
similar to ctwm, MS-Windows, or the Macintosh icons can be
|
|
used. In order to use these options you will need the XPM package, as
|
|
described in the Makefile.noImake and the Imakefile.
|
|
|
|
If both the SHAPE and XPM options are compiled in you will get shaped
|
|
color icons, which are very spiffy.
|
|
|
|
.SH MODULES
|
|
A module is a separate program which runs as a separate Unix process
|
|
but transmits commands to \fIfvwm\fP to execute. Future releases are
|
|
expected to provide a means for these modules to extract window
|
|
information from \fIfvwm\fP. Users can write their own modules to do
|
|
any weird or bizarre manipulations without affecting the integrity of
|
|
\fIfvwm\fP itself.
|
|
|
|
Modules MUST be spawned by \fIfvwm\fP so that it can set up two pipes for
|
|
\fIfvwm\fP and the module to communicate with. The pipes will already be
|
|
open for the module when it starts and the file descriptors for the
|
|
pipes are provided as command line arguments.
|
|
|
|
Modules can be spawned during \fIfvwm\fP initialization via the Module
|
|
option, or at any time during the X session by use of the Module
|
|
built-in. Modules can exist for the duration of the X session, or can
|
|
perform a single task and exit. If the module is still active when
|
|
\fIfvwm\fP is told to quit, then \fIfvwm\fP will close the
|
|
communication pipes and wait to receive a SIGCHLD from the module,
|
|
indicating that it has detected the pipe closure and has exited. If
|
|
modules fail to detect the pipe closure \fIfvwm\fP will exit after
|
|
approximately 30 seconds anyway. The number of simultaneously
|
|
executing modules is limited by the operating system's maximum number
|
|
of simultaneously open files, usually between 60 and 256.
|
|
|
|
Modules simply transmit text commands to the \fIfvwm\fP built-in command
|
|
engine. Text commands are formatted just as in the case of a mouse
|
|
binding in the .fvwmrc setup file. Certain auxiliary information is
|
|
also transmitted, as in the sample module GoodStuff. The GoodStuff
|
|
module is documented in its own man page.
|
|
|
|
.SH ICCCM COMPLIANCE
|
|
\fIFvwm\fP attempts to be ICCCM 1.1 compliant. As of this (1.20l) colormap
|
|
handling is not completely ICCCM compliant. In addition, ICCCM states
|
|
that it should be possible for applications to receive ANY keystroke,
|
|
which is not consistent with the keyboard shortcut approach used in
|
|
\fIfvwm\fP and most other window managers.
|
|
|
|
.SH M4 PREPROCESSING
|
|
.PP
|
|
If \fIfvwm\fP is compiled with the M4 option, \fIfvwm\fP uses
|
|
\fIm4(1)\fP to preprocess its setup files before parsing. This way you
|
|
can use \fIm4\fP macros to perform operations at runtime. This makes
|
|
it very easy to work with different displays with
|
|
different characteristics.
|
|
|
|
For example, depending on your mood, you might want
|
|
different color schemes. One way of doing this is by using the
|
|
\fI-m4opt\fP to specify your mood. For a sunny mood use \fI-m4opt
|
|
-DSunny\fP; for a dark mood use \fI-m4opt -DDark\fP. Your .fvwmrc file
|
|
might then contain:
|
|
.EX 0
|
|
ifdef(`Sunny',`
|
|
StdForeColor Black
|
|
StdBackColor LightSkyBlue
|
|
HiForeColor yellow
|
|
HiBackColor PeachPuff1
|
|
PagerBackColor BlanchedAlmond ')
|
|
|
|
ifdef(`Dark',`
|
|
StdForeColor Black
|
|
StdBackColor #60a0c0
|
|
HiForeColor black
|
|
HiBackColor #c06077
|
|
PagerBackColor #5c54c0
|
|
PagerForeColor orchid
|
|
StickyForeColor Black
|
|
StickyBackColor #60c0a0 ')
|
|
.EE
|
|
|
|
The following \fIm4\fP symbols are predefined by \fIfvwm\fP:
|
|
.TP 24
|
|
.B "BITS_PER_RGB"
|
|
The number of significant bits in an RGB color. (log base 2 of the number
|
|
of distinct colors that can be created. This is often different from the
|
|
number of colors that can be displayed at once.)
|
|
.TP 24
|
|
.B "CLASS"
|
|
Your visual class. Will return one of \fBStaticGray\fP, \fBGrayScale\fP,
|
|
\fBStaticColor\fP, \fBPseudoColor\fP, \fBTrueColor\fP, \fBDirectColor\fP,
|
|
or, if it cannot determine what you have, \fBNonStandard\fP.
|
|
.TP 24
|
|
.B "CLIENTHOST"
|
|
The machine that is running the clients.
|
|
.TP 24
|
|
.B "COLOR"
|
|
This will be either 'Yes' or 'No'. This is just a wrapper around the CLASS
|
|
definition. Returns 'Yes' on \fB*Color\fP and 'No' on \fBStaticGray\fP
|
|
and \fBGrayScale\fP.
|
|
.TP 24
|
|
.B "FVWMDIR"
|
|
This is set to the path where the modules were configured to be installed.
|
|
.TP 24
|
|
.B "FVWM_VERSION"
|
|
This is a string containing the version of \fIfvwm\fP.
|
|
.TP 24
|
|
.B "HEIGHT"
|
|
The height of your display in pixels.
|
|
.TP 24
|
|
.B "HOME"
|
|
The user's home directory. Obtained from the environment.
|
|
.TP 24
|
|
.B "HOSTNAME"
|
|
The canonical hostname running the clients (ie. a fully-qualified
|
|
version of \fBCLIENTHOST\fP).
|
|
.TP 24
|
|
.B "OPTIONS"
|
|
This is a string of compile time options used. Each option is separated
|
|
from the other by a space.
|
|
.TP 24
|
|
.B "PLANES"
|
|
The number of bit planes your display supports in the default root window.
|
|
.TP 24
|
|
.B "RELEASE"
|
|
The release number of your X server. For MIT X11R5 this is \fB5\fP.
|
|
.TP 24
|
|
.B "REVISION"
|
|
The X minor protocol revision. As seen by ProtocolRevision(3).
|
|
.TP 24
|
|
.B "SERVERHOST"
|
|
This variable is set to the name of the machine that is running the X
|
|
server.
|
|
.TP 24
|
|
.B "TWM_TYPE"
|
|
Tells which \fItwm\fP offshoot is running. It will always be set to
|
|
the string "fvwm" in this program. This is useful for protecting
|
|
parts of your \fI.twmrc\fP file that \fIfvwm\fP proper won't understand
|
|
(like \fBWorkSpaces\fP) so that it is still usable with other
|
|
\fItwm\fP programs.
|
|
.TP 24
|
|
.B "USER"
|
|
The name of the user running the program. Obtained from the environment.
|
|
.TP 24
|
|
.B "VENDOR"
|
|
The vendor of your X server. For example: \fBMIT X Consortium\fP.
|
|
.TP 24
|
|
.B "VERSION"
|
|
The X major protocol version. As seen by ProtocolVersion(3).
|
|
.TP 24
|
|
.B "WIDTH"
|
|
The width of your display in pixels.
|
|
.TP 24
|
|
.B "X_RESOLUTION"
|
|
The X resolution of your display in pixels per meter.
|
|
.TP 24
|
|
.B "Y_RESOLUTION"
|
|
The Y resolution of your display in pixels per meter.
|
|
.PP
|
|
You may well find that if you research the \fIm4(1)\fP manual well
|
|
and understand the power of \fIm4\fP, this will be a \fBvery\fP
|
|
useful and powerful tool. But if you use any of the symbols
|
|
which are predefined by \fIm4\fP, you are in severe danger! For example,
|
|
Sun's \fIm4\fP predefines \fBinclude\fP, so if you use that name in your .fvwmrc,
|
|
you are out of luck. The correct solution to this problem is to put a
|
|
set of quotes around the troublesome word: \fB`include'\fP.
|
|
.PP
|
|
To help alleviate this problem, the following options may be useful.
|
|
To change the quoting characters used by \fIm4\fP, use the options
|
|
\fI-m4-squote\fP and \fI-m4-equote\fP. Be sure to specify both
|
|
options otherwise \fIm4\fP will be confused. When these are given, a
|
|
\fIchangequote\fP macro is given before the users fvwmrc file is
|
|
processed.
|
|
.PP
|
|
\fBNOTE:\fP Some versions of \fIm4\fP are broken with respect to
|
|
changing quoting characters and included files. When the quoting
|
|
strings are longer than one character, the macro "include(<<file>>)",
|
|
where "<<" and ">>" are the quoting characters, contains extra
|
|
characters around the contents of the included file. This will
|
|
confuse fvwm. SunOS 4.1.3 is known to have this problem.
|
|
.PP
|
|
If you are using GNU \fIm4\fP an additional option is available. By
|
|
specifying \fI-m4-prefix\fP when starting \fIfvwm\fP, \fIm4\fP is
|
|
instructed to prefix all builtin macros with \fIm4_\fP. Thus,
|
|
\fIinclude\fP becomes \fIm4_include\fP.
|
|
.PP
|
|
The availability of the m4 preprocessing is subject to the compilation
|
|
define M4.
|
|
|
|
.SH OPTIONS
|
|
These are the command line options that are recoginzed by \fIfvwm\fP:
|
|
.IP "\fB-f\fP \fIconfig_file\fP"
|
|
Causes \fIfvwm\fP to use \fIconfig_file\fP in the user's home directory
|
|
instead of .fvwmrc as the window manager configuration file.
|
|
.IP "\fB-debug\fP"
|
|
Puts X transactions in synchronous mode, which dramatically slows things
|
|
down, but guarantees that \fIfvwm\fP's internal error messages are correct.
|
|
.IP "\fB-d\fP \fIdisplayname\fP"
|
|
Manage the display called "displayname" instead of the name obtained from
|
|
the environment variable $DISPLAY.
|
|
.IP "\fB-s\fP"
|
|
On a multi-screen display, run \fIfvwm\fP only on the screen named in
|
|
the $DISPLAY environment variable or provided through the -d
|
|
option. Normally, \fIfvwm\fP will attempt to start up on all screens
|
|
of a multi-screen display.
|
|
.IP "\fB-version\fP"
|
|
Print the version of \fIfvwm\fP to stderr.
|
|
.PP
|
|
The following options are available only if fvwm is compiled with the
|
|
M4 option.
|
|
.IP "\fB-no-m4\fP"
|
|
Do not use \fIm4\fP to preprocess the .fvwmrc. The default is to preprocess
|
|
the startup file using \fIm4(1)\fP.
|
|
.IP "\fB-m4-prefix\fP"
|
|
If GNU \fIm4\fP is available, cause \fIm4\fP to prefix all builtin commands with
|
|
\fIm4_\fP.
|
|
.IP "\fB-m4opt\fP \fIoption\fP"
|
|
Pass this option to \fIm4\fP. The \fIoption\fP can be any string of
|
|
characters without spaces. This option can occur multiple times. If
|
|
GNU \fIm4\fP is available, \fBDO NOT\fP pass the \fI-P\fP option here.
|
|
Use \fB-m4-prefix\fP instead.
|
|
.IP "\fB-m4-squote\fP \fIstring\fP"
|
|
Use this given \fBstring\fP as the starting quote characters. You
|
|
must also specify \fB-m4-equote\fI.
|
|
.IP "\fB-m4-equote\fP \fIstring\fP"
|
|
Use this given \fBstring\fP as the ending quote characters. You
|
|
must also specify \fB-m4-squote\fI.
|
|
.IP "\fB-m4prog\fP \fIpath\fP
|
|
Use \fIpath\fP as the location of the desired m4 processor. By
|
|
default, m4prog is set to "m4" which must exist somewhere on the
|
|
user's path. This option allows the user to explicitly choose the
|
|
version of m4 to use.
|
|
|
|
.SH CONFIGURATION FILES
|
|
The configuration file is used to describe mouse and button bindings,
|
|
colors, the virtual display size, and related items. This section
|
|
describes the configuration options. Lines beginning with '#' will be
|
|
ignored by \fIfvwm\fP. Lines starting with '*' are expected to contain
|
|
module configuration commands (rather than configuration commands for
|
|
\fIfvwm\fP itself).
|
|
|
|
.IP "AppsBackingStore"
|
|
Causes application windows to request backing store. This
|
|
option compromises the ICCCM compliance of the window manager. While
|
|
this option can speed things up in an X-terminal, where redraws of
|
|
windows are expensive, it may not help much on regular workstations.
|
|
|
|
.IP "AutoRaise \fIdelay\fP"
|
|
Enables auto-raising of windows and specifies the time delay (in
|
|
milliseconds) between when a window acquires the input focus and when
|
|
it is automatically raised. This option works in focus-follows-mouse
|
|
mode, and in click-to-focus mode if the focus is changed by clicking
|
|
in the application window instead of a decoration window. In
|
|
click-to-focus mode, you can suppress the raise-on-focus behavior by
|
|
specifying a negative delay value.
|
|
|
|
.IP "BackingStore"
|
|
Causes \fIfvwm\fP decorations to request backing store. See the discussion
|
|
on AppsBackingStore.
|
|
|
|
.IP "BoundaryWidth \fIWidth\fP"
|
|
Changes the boundary width on decorated windows to the specified value.
|
|
The default is 6 pixels.
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying BoundaryWidth.
|
|
|
|
.IP "ButtonStyle \fIbutton# Width\fPx\fIHeight\fP"
|
|
Defines the rectangular decoration shape to be used in a title-bar button.
|
|
\fIbutton#\fP is the title-bar button number, and is between 0 and 9.
|
|
A description of title-bar button numbers is given in the Mouse section below.
|
|
Width is the percentage of the full button width which is to be used. Height
|
|
is the percentage of the full height to be used. Negative numbers cause the
|
|
shading to be inverted.
|
|
|
|
And that's not all! If you use a line like:
|
|
.EX
|
|
ButtonStyle : 2 4 50x30@1 70x70@0 30x70@0 50x30@1
|
|
.EE
|
|
then the button 2 decoration will use a 4-point pattern consisting of
|
|
a line from (x=50,y=30) to (70,70) in the shadow color (@0), and
|
|
then to (30,70) in the shadow color, and finally to (50,30) in the
|
|
highlight color (@1). Is that too confusing? See the sample system.fvwmrc.
|
|
|
|
.IP "CenterOnCirculate"
|
|
When circulating, the desktop page containing the window which the
|
|
pointer is moving to is automatically selected. If CenterOnCirculate
|
|
is selected then \fIfvwm\fP will do its best to center the target
|
|
window in the desktop viewport, rather than just lining up to the
|
|
closest page.
|
|
|
|
.IP "CirculateSkip \fIwindowname\fP"
|
|
Causes windows with the indicated name to be skipped over when the
|
|
circulate-up or circulate-down functions are invoked. \fIwindowname\fP
|
|
can be a window's name or its class.
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying CirculateSkip.
|
|
|
|
.IP "CirculateSkipIcons"
|
|
Causes circulate and warp operations to skip over iconified windows.
|
|
|
|
.IP "ClickTime \fIdelay\fP"
|
|
Specifies the maximum delay (in milliseconds) between a button press and
|
|
a button release for the Function built-in to consider the action a
|
|
mouse click. The default delay is 150 milliseconds.
|
|
|
|
.IP "ClickToFocus"
|
|
Normally keyboard input goes to the window the mouse pointer is in. If
|
|
this option is set the keyboard input stays with one window until the
|
|
mouse is clicked with the pointer positioned in a new window.
|
|
|
|
.IP "Cursor \fI cursor_num cursor_type\fP"
|
|
This provides a very awkward way of changing cursor styles. \fICursor_num\fP
|
|
tells which cursor you are changing, and is a number between 0 and 12, as
|
|
follows:
|
|
.nf
|
|
.sp
|
|
.in +.25i
|
|
0 POSITION - used when initially placing windows.
|
|
1 TITLE - used in a window title-bar.
|
|
2 DEFAULT - used in windows that don't set their cursor.
|
|
3 SYS - used in one of the title-bar buttons.
|
|
4 MOVE - used when moving or resizing windows.
|
|
5 WAIT - used during an EXEC builtin command.
|
|
6 MENU - used in menus.
|
|
7 SELECT - used for various builtin commands such as iconify.
|
|
8 DESTROY - used for DESTROY and DELETE built-ins.
|
|
9 TOP - used in the top side-bar of a window.
|
|
10 RIGHT - used in the right side-bar of a window.
|
|
11 BOTTOM - used in the bottom side-bar of a window.
|
|
12 LEFT - used in the left side-bar of a window.
|
|
13 TOP_LEFT - used in the top left corner of a window.
|
|
14 TOP_RIGHT - used in the top right corner of a window.
|
|
15 BOTTOM_LEFT - used in the bottom left corner of a window.
|
|
16 BOTTOM_RIGHT - used in the bottom right corner of a window.
|
|
.in -.25i
|
|
.sp
|
|
.fi
|
|
The \fIcursor_type\fP argument is a number which tells the cursor
|
|
shape to use. The available numbers can be found in
|
|
/usr/include/X11/cursorfont.h and are currently even numbers between 0
|
|
and 152. At the current time, the following cursor types are
|
|
available:
|
|
.nf
|
|
.sp
|
|
.in +.25i
|
|
0 X_cursor 2 arrow
|
|
4 based_arrow_down 6 based_arrow_up
|
|
8 boat 10 bogosity
|
|
12 bottom_left_corner 14 bottom_right_corner
|
|
16 bottom_side 18 bottom_tee
|
|
20 box_spiral 22 center_ptr
|
|
24 circle 26 clock
|
|
28 coffee_mug 30 cross
|
|
32 cross_reverse 34 crosshair
|
|
36 diamond_cross 38 dot
|
|
40 dotbox 42 double_arrow
|
|
44 draft_large 46 draft_small
|
|
48 draped_box 50 exchange
|
|
52 fleur 54 gobbler
|
|
56 gumby 58 hand1
|
|
60 hand2 62 heart
|
|
64 icon 66 iron_cross
|
|
68 left_ptr 70 left_side
|
|
72 left_tee 74 leftbutton
|
|
76 ll_angle 78 lr_angle
|
|
80 man 82 middlebutton
|
|
84 mouse 86 pencil
|
|
88 pirate 90 plus
|
|
92 question_arrow 94 right_ptr
|
|
96 right_side 98 right_tee
|
|
100 rightbutton 102 rtl_logo
|
|
104 sailboat 106 sb_down_arrow
|
|
108 sb_h_double_arrow 110 sb_left_arrow
|
|
112 sb_right_arrow 114 sb_up_arrow
|
|
116 sb_v_double_arrow 118 shuttle
|
|
120 sizing 122 spider
|
|
124 spraycan 126 star
|
|
128 target 130 tcross
|
|
132 top_left_arrow 134 top_left_corner
|
|
136 top_right_corner 138 top_side
|
|
140 top_tee 142 trek
|
|
144 ul_angle 146 umbrella
|
|
148 ur_angle 150 watch
|
|
152 xterm
|
|
.in -.25i
|
|
.sp
|
|
.fi
|
|
|
|
.IP "DecorateTransients"
|
|
Causes transient windows, which are normally left undecorated, to be given the
|
|
usual \fIfvwm\fP decorations. Note that some pop-up windows, such as the xterm
|
|
menus, are not managed by the window manager and still do not receive
|
|
decorations.
|
|
|
|
.IP "DeskTopScale \fIScale\fP"
|
|
Defines the virtual desktop scale with respect to the screen.
|
|
|
|
.IP "DeskTopSize \fIHorizontal\fPx\fIVertical\fP"
|
|
Defines the virtual desktop size in units of the physical screen size.
|
|
|
|
.IP "DontMoveOff"
|
|
Prevents windows from being moved off or initially placed off of the desktop.
|
|
A few programs will not work correctly if you use this option. This only keeps
|
|
windows from being completely lost off the edge of the desktop. It insists on
|
|
keeping 16 pixels on the desktop but doesn't care a bit about keeping the
|
|
whole window on the desk. See EdgeResistance if you don't like having windows
|
|
partially off the screen.
|
|
|
|
.IP "EdgeResistance \fIscrolling moving\fP"
|
|
Tells how hard it should be to change the desktop viewport by moving the
|
|
mouse over the edge of the screen and how hard it should be to move a
|
|
window over the edge of the screen.
|
|
|
|
The first parameter tells how milliseconds the pointer must spend on the screen
|
|
edge before \fIfvwm\fP will move the viewport. This is intended for people who
|
|
use "EdgeScroll 100 100" but find themselves accidentally flipping pages when
|
|
they don't want to.
|
|
|
|
The second parameter
|
|
tells how many pixels over the edge of the screen a window's edge must
|
|
move before it actually moves partially off the screen.
|
|
|
|
Note that, with "EdgeScroll 0 0", it is still possible to move or resize windows
|
|
across the edge of the current screen. By making the first parameter to
|
|
EdgeResistance 10000 this type of motion is impossible. With EdgeResistance
|
|
less than 10000 but greater than 0 moving over pages becomes difficult
|
|
but not impossible.
|
|
|
|
.IP "EdgeScroll \fIhorizontal vertical\fP"
|
|
Specifies the percentage of a page to scroll when the cursor hits the edge of
|
|
a page. If you don't want any paging or scrolling when you hit the edge of a
|
|
page include "EdgeScroll 0 0" in your .fvwmrc file. If you want whole pages, use
|
|
"EdgeScroll 100 100". Both horizontal and vertical should be positive numbers.
|
|
|
|
If the horizontal and vertical percentages are multiplied by 1000
|
|
then scrolling will wrap around at the edge of the desktop. If
|
|
"EdgeScroll 100000 100000" is used \fIfvwm\fP will scroll by whole pages,
|
|
wrapping around at the edge of the desktop.
|
|
|
|
.IP "Font \fIfontname\fP"
|
|
Makes \fIfvwm\fP use font \fIfontname\fP instead of "fixed" for menus,
|
|
the resize indicators, and icon labels (if IconFont is not specified).
|
|
|
|
.IP "Function \fIFunctionName\fP"
|
|
Starts the definition of a complex function, composed of the \fIfvwm\fP
|
|
built-in functions, which will later be bound to a mouse button or
|
|
key. \fIFunctionName\fP must be enclosed in quotes. Function entries
|
|
are included on lines following the Function keyword. The definition
|
|
ends with the key word EndFunction. Function entries are specified as
|
|
shown in the following example. The first word on each line is the
|
|
built-in function which will be performed, followed the type of event
|
|
which should trigger the action (enclosed in quotes), followed by any
|
|
additional arguments needed by the built-in function. Menus can be
|
|
specified by using the Popup built-in as long as the menu was defined
|
|
earlier in the configuration file.
|
|
|
|
The trigger actions which are recognized are Immediate, Motion, Click,
|
|
and DoubleClick. Immediate actions are executed as soon as the
|
|
function is activated, even if a window has not been selected. If
|
|
there are actions other than immediate ones, \fIfvwm\fP will wait to
|
|
see if the user is clicking, double-clicking, or dragging the
|
|
mouse. After the decision is made, \fIfvwm\fP will execute only the
|
|
built-ins from the function definition whose trigger action matches the
|
|
action performed by the user.
|
|
|
|
If the following example were bound to button 1 in a window title-bar,
|
|
then, when button 1 is pressed, \fIfvwm\fP would wait 150 msec to see
|
|
if the button is released. If the button is not released \fIfvwm\fP
|
|
will start a move operation. When the move operation is complete a
|
|
raise operation will be performed. If a button release is detected
|
|
then \fIfvwm\fP will wait another 150 msec for a second click. If only
|
|
one click is detected then the window will be raised. If two clicks
|
|
are detected the window will be alternately raised and lowered. The
|
|
150 msec wait duration can be altered using the ClickTime option.
|
|
.EX
|
|
Function "Move-or-Raise"
|
|
Move "Motion"
|
|
Raise "Motion"
|
|
Raise "Click"
|
|
RaiseLower "DoubleClick"
|
|
EndFunction
|
|
.EE
|
|
The clicking and double clicking concepts do not carry through to using
|
|
keyboard shortcuts.
|
|
|
|
Two special functions exist: InitFunction and RestartFunction. The
|
|
InitFunction will be called when \fIfvwm\fP is started for the first
|
|
time in any X session and can be used to start modules, set
|
|
background patterns, and begin programs. The restart function will be
|
|
called when \fIfvwm\fP is restarted. It can be used to start modules
|
|
and set background patterns but probably should not be used to start
|
|
programs.
|
|
|
|
.IP "HiBackColor \fIcolorname\fP"
|
|
Sets the background color of the selected window to
|
|
\fIcolorname\fP. When using a monochrome screen this option is
|
|
ignored and white is used.
|
|
|
|
.IP "HiForeColor \fIcolorname\fP"
|
|
Sets the color of the selected window's title to \fIcolorname\fP. When
|
|
using a monochrome screen this option is ignored and black is used.
|
|
|
|
.IP "Icon \fIwindowname bitmap-file\fP"
|
|
Specifies the bitmap to be used for a window when it is iconified.
|
|
The \fIwindowname\fP can be an application's window name or class name
|
|
and must be enclosed in quotes. The \fIbitmap-file\fP is either the
|
|
full path name to a standard X11 bitmap file or a file in the
|
|
IconPath or PixmapPath. The specified bitmap/pixmap is used in
|
|
preference to any icon supplied by the window itself.
|
|
|
|
If \fIfvwm\fP is compiled with XPM support for color icons then \fIbitmap\fP
|
|
can be an XPM pixmap file.
|
|
|
|
\fIwindowname\fP should be enclosed in double quotes but \fIbitmap-file\fP
|
|
should not. Environment variables should not be used in the \fIbitmap-file\fP
|
|
specification.
|
|
|
|
If \fIwindowname\fP is an empty string then the specified file is the
|
|
default icon, and will be used if no other icon bitmap or pixmap can be found:
|
|
.EX
|
|
Icon "" my-favorite-icon
|
|
.EE
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying Icon.
|
|
|
|
.IP "IconBox \fIleft top right bottom\fP"
|
|
Defines regions of the screen in which to place icons. Up to four icon
|
|
boxes can be defined. If an IconBox line is provided then icons will
|
|
automatically be placed in them, if possible. Each time a window is
|
|
iconified a new place is found for it. Icon boxes are searched for
|
|
space going left to right, then top to bottom. Icons will not be
|
|
auto-placed on top of other icons but they may be placed underneath
|
|
application windows. If \fIleft\fP or \fIright\fP is negative, then
|
|
\fIfvwm\fP will add the screen width to it. If \fItop\fP or
|
|
\fIbottom\fP is negative, then \fIfvwm\fP will add the screen height
|
|
to it. NOTE: -0 is not parsed as the right or bottom pixel on the
|
|
screen. You have to use -1 instead.
|
|
|
|
If no IconBox line is provided or all icon boxes are full, then \fIfvwm\fP
|
|
will place icons near the current pointer location.
|
|
|
|
.IP "IconFont \fIfontname\fP"
|
|
Makes \fIfvwm\fP use font \fIfontname\fP for icon labels. If omitted,
|
|
the menu font (specified by the Font configuration parameter) will be
|
|
used instead.
|
|
|
|
.IP "IconPath \fIpath\fP"
|
|
Specifies a colon separated list of full path names of directories
|
|
where bitmap (monochrome) icons can be found. Each path should start
|
|
with a slash. Note: if the M4 patches are included when \fIfvwm\fP is
|
|
built, then \fIm4\fP will want to mangle the word "include" which will
|
|
frequently show up in the IconPath or PixmapPath command. To fix this
|
|
add undefine(`include') prior to the IconPath command.
|
|
|
|
.IP "Key \fIkeyname Context Modifiers Function\fP"
|
|
Binds a keyboard key to a specified \fIfvwm\fP built-in function.
|
|
Definition is the same as for a mouse binding except that the mouse button
|
|
number is replaced with a key name. The \fIkeyname\fP is one of the entries
|
|
from /usr/include/X11/keysymdef.h, with the leading XK_ omitted. The
|
|
\fIContext\fP and \fIModifiers\fP fields are defined as in the mouse binding.
|
|
|
|
Binding a key to a title-bar button will not cause that button to appear
|
|
unless a mouse binding also exists.
|
|
|
|
.IP "Lenience"
|
|
The ICCCM states that if an application sets the input field of the
|
|
wm_hints structure to False, then it never wants the window manager to
|
|
give it the input focus. The only application that I know of which
|
|
needs this is sxpm, and that is a silly bug with a trivial fix and
|
|
has no overall effect on the program anyway. Rumor is that some older
|
|
applications have problems too.
|
|
|
|
If this parameter is set then \fIfvwm\fP will ignore this ICCCM convention.
|
|
|
|
.IP "MenuBackColor \fIcolorname\fP"
|
|
Sets the menu background color. When using monochrome this option is
|
|
ignored. This option is only available if \fIfvwm\fP is compiled with
|
|
MENUCOLOR defined.
|
|
|
|
.IP "MenuForeColor \fIcolorname\fP"
|
|
Sets the menu foreground color. When using monochrome this option is
|
|
ignored. This option is only available if \fIfvwm\fP is compiled with
|
|
MENUCOLOR defined.
|
|
|
|
.IP "MenuStippleColor \fIcolorname\fP"
|
|
Sets the color for shaded out entries in menus (for functions which
|
|
are not allowed on the currently selected window). When using
|
|
monochrome this option is ignored and a stipple pattern is used.
|
|
This option is only available if \fIfvwm\fP is compiled with MENUCOLOR
|
|
defined.
|
|
|
|
.IP "Module \fIModuleName\fP"
|
|
Specifies a module which should be spawned during initialization. At
|
|
the current time the available modules are FvwmAudio, FvwmBacker,
|
|
FvwmBanner, FvwmClean, FvwmDebug, FvwmIconBox, FvwmIdent,
|
|
FvwmPager, FvwmSave, FvwmSaveDesk, FvwmScroll, FvwmWinList, and
|
|
GoodStuff. These modules have their own man pages. \fIModule\fP can
|
|
also be used as a built-in. Modules can be short lived transient
|
|
programs or, like GoodStuff, can remain for the
|
|
duration of the X session. Modules will be terminated by the window
|
|
manager prior to restarts and quits, if possible. See the introductory
|
|
section on modules.
|
|
|
|
.IP "ModulePath"
|
|
Specifies a colon separated list of paths for \fIfvwm\fP to search
|
|
when looking for a module to load. Individual directories do not need
|
|
trailing slashes.
|
|
|
|
.IP "Mouse \fIButton Context Modifiers Function\fP"
|
|
Defines a mouse binding. \fIButton\fP is the mouse button number. If
|
|
\fIButton\fP is zero then any button will perform the specified function.
|
|
\fIContext\fP describes where the binding applies. Valid contexts
|
|
are R for the root window, W for an application window, T for a window title
|
|
bar, S for a window side, top, or bottom bar, F for a window frame
|
|
(the corners), I for an Icon window, or 0 through 9 for title-bar buttons, or
|
|
any combination of these letters. A is for any context except for title-bar
|
|
buttons. For instance, a context of FST will apply when the mouse is anywhere
|
|
in a window's border except the title-bar buttons.
|
|
|
|
\fIModifiers\fP is any combination of N for no modifiers, C for
|
|
control, S for shift, M for Meta, or A for any modifier. For example,
|
|
a modifier of SM will apply when both the Meta and shift keys are
|
|
down. X11 modifiers mod1 through mod5 are represented as the digits
|
|
1 through 5.
|
|
|
|
\fIFunction\fP is one of \fIfvwm\fP's built-in functions.
|
|
|
|
The title bar buttons are numbered with odd numbered buttons on the
|
|
left side of the title bar and even numbers on the
|
|
right. Smaller-numbered buttons are displayed toward the outside of
|
|
the window while larger-numbered buttons appear toward the middle of
|
|
the window (0 is short for 10). In summary, the buttons are
|
|
numbered:
|
|
.EX
|
|
1 3 5 7 9 0 8 6 4 2
|
|
.EE
|
|
The highest odd numbered button which has
|
|
an action bound to it determines the number of buttons drawn on the left
|
|
side of the title bar. The highest even number determines the number or right
|
|
side buttons which are drawn. Actions can be bound to either mouse buttons or
|
|
keyboard keys.
|
|
|
|
.IP "MWMBorders"
|
|
Substitutes MWM style 1 pixel wide relief lines instead of \fIfvwm\fP's 2 pixel
|
|
borders.
|
|
|
|
.IP "MWMButtons"
|
|
Disables button press feedback for all decorations except the title bar
|
|
and title-bar buttons, as in MWM.
|
|
|
|
.IP "MWMDecorHints"
|
|
Causes \fIfvwm\fP to read the MOTIF_WM_HINTS atom from application
|
|
windows and to parse and attempt to replicate the Motif behavior with
|
|
regard to window decorations. Note that mwm allows function hints to
|
|
affect window decorations but these effects are not replicated by
|
|
this option.
|
|
|
|
.IP "MWMFunctionHints"
|
|
Causes \fIfvwm\fP to read the MOTIF_WM_HINTS atom from application
|
|
windows and to parse and attempt to replicate the Motif behavior with
|
|
regard to allowed window functions. Unlike mwm, which simply removes
|
|
prohibited functions from the window's menus, \fIfvwm\fP simply shades
|
|
out the prohibited functions. Also, because \fIfvwm\fP implements some
|
|
functions in user defined macros that mwm implements internally, the
|
|
mapping of prohibited functions is partially based on the menu item
|
|
label.
|
|
|
|
.IP "MWMHintOverride"
|
|
If MWMFunctionHints is used then maximization and iconfication are
|
|
prohibited for transients. Also, windows can specify that the
|
|
window manager should not destroy or delete them. Since these MWM
|
|
rules are kind of stupid, especially with regard to the transient
|
|
windows, I provide this MWMHintOverride option. When it is used menu
|
|
items will be shaded out if MWM would prohibit their use, but the
|
|
user can go ahead and select that item and it will operate as
|
|
expected.
|
|
|
|
The override should be used cautiously because some applications will
|
|
break if you override their mwm hints.
|
|
|
|
.IP "MWMMenus"
|
|
Substitutes MWM look and feel menus in place of the standard
|
|
\fIfvwm\fP versions. This option also triggers a few other mwm-style
|
|
options, such as centering the size/resize window on the screen,
|
|
instead of leaving it in the upper left, and switches the
|
|
resize-on-initial-placement trigger action to shift-button-1 instead
|
|
of the \fItwm\fP style press-button-2
|
|
|
|
.IP "NoBorder \fIwindowname\fP"
|
|
Keeps \fIfvwm\fP from putting decorative borders on windows
|
|
named \fIwindowname\fP. This command has no effect on the title-bar.
|
|
This is handy for clocks and similar gadgets that you don't want to take up too
|
|
much space. \fIwindowname\fP can be a window's name or its class.
|
|
|
|
If you specify both NoBorder \fIwindowname\fP and NoTitle \fIwindowname\fP
|
|
for the same window in your .fvwmrc file the window will be completely
|
|
undecorated.
|
|
|
|
\fIWindowname\fP can contain the wildcards "*" and "?" which match
|
|
window names in the normal Unix filename matching manner. Actual "*",
|
|
"?", and "\\" characters in a window name can be entered by preceding the
|
|
character with a "\\".
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying NoBorder.
|
|
|
|
.IP "NoBoundaryWidth \fIWidth\fP"
|
|
Changes the width of the decorations for windows with no titles and no borders.
|
|
The default is 1. Any positive or zero value is acceptable.
|
|
Decorations for these undecorated windows have the same context
|
|
as the side-bars on normally decorated windows.
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying NoBoundaryWidth.
|
|
|
|
.IP "NoPPosition"
|
|
Instructs \fIfvwm\fP to ignore the PPosition field when adding new windows.
|
|
Adherence to the PPosition field is required for some applications,
|
|
but if you don't have one of those its a real headache.
|
|
|
|
.IP "NoTitle \fIwindowname\fP"
|
|
Keeps \fIfvwm\fP from putting a title-bar in the decorations for
|
|
windows named \fIwindowname\fP. This is handy for clocks and similar
|
|
gadgets that you don't want to take up too much
|
|
space. \fIwindowname\fP can be a window's name or its class.
|
|
|
|
\fIWindowname\fP can contain the wildcards "*" and "?" which match
|
|
window names in the normal Unix filename matching manner. Actual "*",
|
|
"?", and "\\" characters in a window name can be entered by preceding the
|
|
character with a "\\".
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying NoTitle.
|
|
|
|
.IP "OpaqueMove \fIpercentage\fP"
|
|
Tells \fIfvwm\fP the maximum size window with which opaque window movement should be
|
|
used. The percentage is percent of the total screen area. With "OpaqueMove 0"
|
|
all windows will be moved using the traditional rubber-band outline. With
|
|
"OpaqueMove 100" all windows will be move as solid windows. The default is
|
|
"OpaqueMove 5", which allows small windows to be moved in an opaque manner but
|
|
large windows are moved as rubber-bands.
|
|
|
|
.IP "OpaqueResize"
|
|
Causes resize operations to be done with the window itself instead of
|
|
an outline.
|
|
|
|
.IP "Pager \fI X_Location Y_Location\fP"
|
|
Enables a paging style of moving across the desktop. A Pager window
|
|
(not a pop-up) will appear at (X_Location, Y_Location). Miniature
|
|
versions of all the non-sticky windows on the virtual desktop are
|
|
shown in the pager. The color of the miniature version is the same as
|
|
the color of the full-size window's border.
|
|
|
|
In the Pager window, pressing mouse button 1 will move the desktop viewport
|
|
to the selected page (in click-to-focus mode; it will also move the keyboard
|
|
focus to the window whose miniature you click on).
|
|
Pressing button 2 on a window in the pager will begin a window move, using the
|
|
miniature to quickly move the window anywhere on the desktop.
|
|
Pressing button 3 will move the top-left corner of the viewport
|
|
to the location of the button press, even if it does not line up with a page.
|
|
Dragging button 3 will cause the selected viewport to scroll as you move the
|
|
pointer. The Pager is automatically sticky but does not automatically
|
|
stay on top.
|
|
|
|
.IP "PagerForeColor \fIcolorname\fP"
|
|
Causes the pager foreground color to be \fIcolorname\fP instead of black.
|
|
This is the color used to highlight the current viewport in the pager window.
|
|
On a monochrome screen this option is ignored. If the NO_PAGER option is set
|
|
when building \fIfvwm\fP this option is unavailable.
|
|
|
|
.IP "PagerBackColor \fIcolorname\fP"
|
|
Causes the pager background color to be \fIcolorname\fP instead of white.
|
|
On a monochrome screen this option is ignored. If the NO_PAGER option is set
|
|
when building \fIfvwm\fP this option is unavailable.
|
|
|
|
.IP "PagerFont \fIfontname\fP"
|
|
Makes \fIfvwm\fP use font \fIfontname\fP for writing window icon names in the
|
|
window's representation in the pager. If this option is omitted no
|
|
names are written in the pager windows.
|
|
|
|
.IP "PagingDefault \fIpagingdefaultvalue\fP"
|
|
Tells \fIfvwm\fP if it should start up with paging enabled or disabled.
|
|
"PagingDefault 0" will start \fIfvwm\fP with paging disabled; "PagingDefault 1"
|
|
will start \fIfvwm\fP with paging enabled by default.
|
|
|
|
.IP "PixmapPath \fIpath\fP"
|
|
Specifies a colon separated list of full path names of directories
|
|
where pixmap (color) icons can be found. Each path should start with a
|
|
slash.
|
|
|
|
.IP "Popup \fIPopupName\fP"
|
|
Starts the definition of a pop-up menu which will later be bound to a mouse
|
|
button or key. \fIPopupName\fP must be enclosed in quotes.
|
|
Menu entries are included
|
|
on lines following the Popup keyword. The menu definition ends with the key
|
|
word EndPopup. Menu entries are specified as shown in the following example.
|
|
The first word on each line is the built-in function which will be performed,
|
|
followed by the caption (enclosed in quotes) which will be shown in the menu,
|
|
followed by any additional arguments needed by the built-in function. Sub-menus
|
|
can be specified by using the Popup built-in as long as the sub-menu
|
|
was defined earlier in the configuration file.
|
|
.EX
|
|
Popup "Window Ops"
|
|
Title "Window Ops"
|
|
Move "Move"
|
|
Resize "Resize"
|
|
Raise "Raise"
|
|
Lower "Lower"
|
|
Iconify "(De)Iconify"
|
|
Nop " "
|
|
Destroy "Destroy"
|
|
Title "HARDCOPY"
|
|
Exec "Hardcopy" exec xdpr &
|
|
Exec "Hardcopy RV" exec xdpr -rv &
|
|
EndMenu
|
|
.EE
|
|
Note that if a tab character is embedded in the caption of a menu entry then
|
|
the text following the tab will be entered into a second column in the menu
|
|
and the entire menu will be left-adjusted. This is intended for shortcut
|
|
labeling. The tab character must really be a tab. If it is expanded into
|
|
spaces it will not work! For example:
|
|
.EX
|
|
Popup "Window Ops"
|
|
Title "Window Ops Alt-F1"
|
|
.
|
|
.
|
|
.
|
|
.EE
|
|
Is the start of a left adjusted menu. Alt-F1 will be placed toward the
|
|
right side of the menu.
|
|
|
|
Shortcut keys may be specified in the menu definition by preceding the
|
|
character with an ampersand. The ampersand will not be displayed but
|
|
the character after it will be displayed underlined, and if the user
|
|
presses the corresponding key then that item will be activated as if
|
|
the user had clicked on it with the mouse. Only alphabetic and
|
|
numeric characters may be used as shortcut keys. The shift state of
|
|
the keyboard is ignored when testing shortcut characters. For
|
|
example:
|
|
.EX
|
|
Popup "Window Ops"
|
|
Maximize "Ma&ximise" 100 100
|
|
EndMenu
|
|
.EE
|
|
When this menu is popped up the 'x' will be underlined and pressing
|
|
the 'x' key will cause the current window to be maximized. Shortcut
|
|
keys are not operative unless MENU_HOTKEYS was defined when
|
|
building \fIfvwm\fP. If WINDOWLIST_HOTKEYS was also defined then hot keys
|
|
are automatically added to the WindowList when it is displayed.
|
|
|
|
.IP "RandomPlacement"
|
|
Causes windows which would normally require user placement to be
|
|
automatically placed in ever-so-slightly random locations. For the
|
|
best of all possible worlds use both RandomPlacement and
|
|
SmartPlacement.
|
|
|
|
.IP "SaveUnders"
|
|
Causes the \fIfvwm\fP decoration frames to request save-unders. This can
|
|
significantly improve the performance during opaque moves but it
|
|
causes a significant increase in memory usage.
|
|
|
|
.IP "SloppyFocus"
|
|
This focusing mode is like focus-follows-mouse (the default)
|
|
except that the focus will not be removed from a window until your
|
|
mouse enters a new window. Exiting a window to enter the root window
|
|
will leave the focus unchanged.
|
|
|
|
.IP "SmartPlacement"
|
|
Causes windows which would normally require user placement to be
|
|
automatically placed in a smart location - a location in which they do
|
|
not overlap any other windows on the screen. If no such position can
|
|
be found user placement or random placement will be used as a
|
|
fall-back method. For the best of all possible worlds use both
|
|
RandomPlacement and SmartPlacement.
|
|
|
|
.IP "StartsOnDesk \fIwindowname desk-number\fP"
|
|
This command causes windows whose name or class is \fIwindowname\fP to
|
|
be initially placed on desktop number \fIdesk-number\fP.
|
|
\fIwindowname\fP should be enclosed in double quotes. If the window
|
|
requires interactive placement, an outline will be displayed on the
|
|
current desk but the window will appear on the specified desk.
|
|
|
|
\fIWindowname\fP can contain the wildcards "*" and "?" which match
|
|
window names in the normal Unix filename matching manner. Actual "*",
|
|
"?", and "\\" characters in a window name can be entered by preceding the
|
|
character with a "\\".
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying StartsOnDesk.
|
|
|
|
.IP "StaysOnTop \fIwindowname\fP"
|
|
These windows always try to stay on top of the other windows. This might be
|
|
handy for clocks or mailboxes that you would always like to be visible. If the
|
|
window is explicitly lowered it will not try to force its way back to the top
|
|
until it is explicitly raised. \fIwindowname\fP can be a window's name or its
|
|
class.
|
|
|
|
\fIWindowname\fP can contain the wildcards "*" and "?" which match
|
|
window names in the normal Unix filename matching manner. Actual "*",
|
|
"?", and "\\" characters in a window name can be entered by preceding the
|
|
character with a "\\".
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying StaysOnTop.
|
|
|
|
.IP "StdBackColor \fIcolorname\fP"
|
|
Sets the background color for menus and non-selected
|
|
windows to \fIcolorname\fP. When using a monochrome screen this option is
|
|
ignored and white is used.
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying StdBackColor.
|
|
|
|
.IP "StdForeColor \fIcolorname\fP"
|
|
Sets the foreground color for menus and non-selected window
|
|
titles to \fIcolorname\fP. When using a monochrome screen this option is
|
|
ignored and black is used.
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying StdForeColor.
|
|
|
|
.IP "StickyBackColor \fIcolorname\fP"
|
|
Sets the background color for non-selected sticky
|
|
windows to \fIcolorname\fP. When using a monochrome screen this option is
|
|
ignored and white is used. Only available if -DMORE_COLORS is used
|
|
when compiling.
|
|
|
|
.IP "StickyForeColor \fIcolorname\fP"
|
|
Sets the foreground color for non-selected sticky window
|
|
titles to \fIcolorname\fP. When using a monochrome screen this option is
|
|
ignored and black is used. Only available if -DMORE_COLORS is used
|
|
when compiling.
|
|
|
|
.IP "Sticky \fIwindowname\fP"
|
|
Sticky windows "stick to the screen's glass." That is, they don't move the
|
|
the viewport into the virtual desktop changes. \fIwindowname\fP can be a
|
|
window's name or its class.
|
|
|
|
\fIWindowname\fP can contain the wildcards "*" and "?" which match
|
|
window names in the normal Unix filename matching manner. Actual "*",
|
|
"?", and "\\" characters in a window name can be entered by preceding the
|
|
character with a "\\".
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying Sticky.
|
|
|
|
.IP "StickyIcons"
|
|
Causes icons to always stick to the screen's glass. That is, icons always
|
|
follow you around the desktop. When a window is de-iconified it gets
|
|
un-stuck. Some people find this a useful way of moving windows around.
|
|
|
|
.IP "StubbornIcons"
|
|
Changes de-iconification behavior a bit. Instead of having windows
|
|
always de-iconify themselves on the current page they de-iconify into
|
|
their original position.
|
|
|
|
.IP "StubbornIconPlacement"
|
|
When used with IconBoxes, causes icons to avoid placing themselves
|
|
underneath existing windows.
|
|
|
|
.IP "StubbornPlacement"
|
|
When using SmartPlacement, causes new windows to avoid placing
|
|
themselves over icons.
|
|
|
|
.IP "Style \fIwindowname options\fP"
|
|
This command is intended to replace the commands NoBorder, NoTitle,
|
|
StartsOnDesk, Sticky, StaysOnTop, Icon, WindowListSkip, CirculateSkip,
|
|
SuppressIcons, BoundaryWidth, NoBoundaryWidth, StdForeColor, and
|
|
StdBackColor with a single flexible and comprehensive command. This
|
|
command is used to set attributes of a window to values other than the
|
|
default or to set the window manager default styles.
|
|
|
|
\fIwindowname\fP can be a window's name, class, or resource string. It
|
|
can contain the wildcards * and/or ?, which are matched in the usual
|
|
Unix filename manner.
|
|
|
|
\fIoptions\fP is a comma separated list containing some or all of the
|
|
keywords BorderWidth, HandleWidth,NoIcon/Icon, NoTitle/Title,
|
|
NoHandles/Handles, WindowListSkip/WindowListHit,
|
|
CirculateSkip/CirculateHit, StaysOnTop/StaysPut, Sticky/Slippery,
|
|
StartIconic/StartNormal, Color, ForeColor, BackColor,
|
|
StartsOnDesk/StartsAnyWhere, IconTitle/NoIconTitle, and
|
|
NoButton/Button.
|
|
|
|
In the above list some options are listed as
|
|
style-option/opposite-style-option. The opposite-style-option for
|
|
entries that have them describes the \fIfvwm\fP default behavior and can be
|
|
used if you want to change the \fIfvwm\fP default behavior.
|
|
|
|
Icon takes an (optional) unquoted string argument which is the icon
|
|
bitmap or pixmap to use.
|
|
|
|
StartsOnDesk takes a numeric argument which
|
|
is the desktop number on which the window should be initially placed.
|
|
|
|
BorderWidth takes a numeric argument which is the width of the border
|
|
to place the window if it does not have resize-handles.
|
|
|
|
HandleWidth
|
|
takes a numeric argument which is the width of the border to place the
|
|
window if it does have resize-handles.
|
|
|
|
Button and NoButton take a
|
|
numeric argument which is the number of the title-bar button which is
|
|
to be included/omitted.
|
|
|
|
Color takes two arguments. The first is the window-label text color
|
|
and the second is the window decoration's normal background color.
|
|
The two colors are separated with a slash. If the use of a slash
|
|
causes problems then the seperate ForeColor and BackColor options
|
|
can be used.
|
|
|
|
An example:
|
|
.EX
|
|
# Change default fvwm behavior to no title-bars on windows!
|
|
# Also define a default icon.
|
|
Style "*" NoTitle,Icon unknown1.xpm, BorderWidth 4,HandleWidth 5
|
|
|
|
# now, window specific changes:
|
|
Style "Fvwm*" NoHandles,Sticky,WindowListSkip,BorderWidth 0
|
|
Style "Fvwm Pager" StaysOnTop, BorderWidth 0
|
|
Style "*lock" NoHandles,Sticky,StaysOnTop,WindowListSkip
|
|
Style "xbiff" Sticky, WindowListSkip
|
|
Style "GoodStuff" NoHandles,Sticky,WindowListSkip
|
|
Style "sxpm" NoHandles
|
|
Style "makerkit"
|
|
|
|
# Put title-bars back on xterms only!
|
|
Style "xterm" Title, Color black/grey
|
|
|
|
Style "rxvt" Icon term.xpm
|
|
Style "xterm" Icon rterm.xpm
|
|
Style "xcalc" Icon xcalc.xpm
|
|
Style "xbiff" Icon mail1.xpm
|
|
Style "xmh" Icon mail1.xpm, StartsOnDesk 2
|
|
Style "xman" Icon xman.xpm
|
|
Style "matlab" Icon math4.xpm, StartsOnDesk 3
|
|
Style "xmag" Icon magnifying_glass2.xpm
|
|
Style "xgraph" Icon graphs.xpm
|
|
Style "GoodStuff" Icon toolbox.xpm
|
|
|
|
Style "Maker" StartsOnDesk 1
|
|
Style "signal" StartsOnDesk 3
|
|
.EE
|
|
Note that all properties for a window will be OR'ed together. In the
|
|
above example "FvwmPager" gets the property StaysOnTop via an exact
|
|
window name match but also gets NoHandles, Sticky, and
|
|
WindowListSkip by a match to "Fvwm*". It will get NoTitle by virtue of
|
|
a match to "*". If conflicting styles are specified for a window, then
|
|
the last style specified will be used.
|
|
|
|
If the NoIcon attribute is set then the specified window will simply
|
|
disappear when it is iconified. The window can be recovered through
|
|
the window-list. If Icon is set without an argument then the NoIcon
|
|
attribute is cleared but no icon is specified. An example which
|
|
allows only the FvwmPager module icon to exist:
|
|
.EX
|
|
Style "*" NoIcon
|
|
Style "Fvwm Pager" Icon
|
|
.EE
|
|
|
|
.IP "SuppressIcons"
|
|
Prevents icon windows from being created or drawn. When used with the
|
|
window-list this provides a sort of icon manager.
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying SuppressIcons.
|
|
|
|
.IP "WindowFont \fIfontname\fP"
|
|
Makes \fIfvwm\fP use font \fIfontname\fP instead of "fixed" for the window
|
|
title bar.
|
|
|
|
.IP "WindowListSkip \fIwindowname\fP"
|
|
Causes windows with the indicated name to be left out of the window list.
|
|
|
|
\fIWindowname\fP can contain the wildcards "*" and "?" which match
|
|
window names in the normal Unix filename matching manner. Actual "*",
|
|
"?", and "\\" characters in a window name can be entered by preceding the
|
|
character with a "\\".
|
|
|
|
The Style command provides another (more general) method for
|
|
specifying WindowListSkip.
|
|
|
|
.IP "XORvalue \fInumber\fP"
|
|
Changes the value with which bits are XOR'ed when doing rubber-band
|
|
window moving or resizing. Setting this value is a trial-and-error
|
|
process.
|
|
|
|
.SH BUILT IN FUNCTIONS
|
|
\fIFvwm\fP supports a set of built-in functions which can be bound to
|
|
keyboard or mouse buttons:
|
|
|
|
.IP "Beep"
|
|
Makes the computer beep.
|
|
|
|
.IP "CirculateDown [ \fIname window_name\fP ]"
|
|
Causes the pointer to move to the next window in the list of windows for which
|
|
CirculateSkip has not not been specified.
|
|
|
|
If the
|
|
optional arguments are supplied then the focus will move to the
|
|
first window whose name (or icon name or class) matches \fIwindow_name\fP.
|
|
The optional argument \fIname\fP is required if \fIwindow_name\fP is supplied
|
|
and is enclosed in quotes. This argument is the name which appears
|
|
in menus if the function is called from a menu, but serves no purpose
|
|
if the function is not called from a menu.
|
|
|
|
.IP "CirculateUp [ \fIname window_name\fP ]"
|
|
Causes the pointer to move to the previous window in the list of windows for
|
|
which CirculateSkip has not not been specified.
|
|
|
|
If the
|
|
optional arguments are supplied then the focus will move to the
|
|
first window whose name (or icon name or class) matches \fIwindow_name\fP.
|
|
The optional argument \fIname\fP is required if \fIwindow_name\fP is supplied
|
|
and is enclosed in quotes. This argument is the name which appears
|
|
in menus if the function is called from a menu, but serves no purpose
|
|
if the function is not called from a menu
|
|
|
|
Here's an example that move the focus to an xterm window when Alt-F1 is pressed:
|
|
.EX
|
|
Key F1 A M CirculateUp "whatever" xterm
|
|
.EE
|
|
|
|
.IP "Close"
|
|
If the window accepts the delete window protocol a message is sent to
|
|
the window asking it to gracefully remove itself. If the window does
|
|
not understand the delete window protocol then the window is
|
|
destroyed.
|
|
|
|
.IP "CursorMove \fIhorizonal vertical\fP"
|
|
Moves the mouse pointer by \fIhorizontal\fP pages in the
|
|
X direction and \fIvertical\fP pages in the Y direction. Either or both
|
|
entries may be negative. Both horizontal and vertical values are expressed
|
|
in percent of pages, so "CursorMove 100 100" means to move down and left by one
|
|
full page. "CursorMove 50 25" means to move left half a page and down a
|
|
quarter of a page. The CursorMove function should not be called from
|
|
pop-up menus.
|
|
|
|
.IP "Delete"
|
|
Sends a message to a window asking that it remove itself, frequently causing
|
|
the application to exit.
|
|
|
|
.IP "Desk \fIarg1 arg2\fP"
|
|
Changes to another desktop (workspace, room).
|
|
|
|
If \fIarg1\fP is non zero then the next desktop number will be the current
|
|
desktop number plus \fIarg1\fP. Desktop numbers can be negative.
|
|
|
|
If \fIarg1\fP is zero then the new desktop number will be \fIarg2\fP.
|
|
|
|
The number of active desktops is determined dynamically. Only desktops
|
|
which contain windows or are currently being displayed are
|
|
active. Desktop numbers must be between 2147483647 and -2147483648 (is
|
|
that enough?).
|
|
|
|
.IP "Destroy"
|
|
Destroys a window. Guaranteed to get rid of the window, but is a fairly violent
|
|
way to terminate an application.
|
|
|
|
.IP "Exec \fIname command\fP"
|
|
Executes \fIcommand\fP. \fIcommand\fP is not quoted but \fIname\fP is.
|
|
\fIname\fP is the name that appears in a menu, if that is where the function is
|
|
called from. \fIname\fP is required even if the function is not called from a
|
|
menu.
|
|
|
|
The following example binds function key F1 in the root window, with no
|
|
modifiers, to the exec function. The program rxvt will be started
|
|
with an assortment of options.
|
|
.EX
|
|
Key F1 R N Exec "rxvt" exec rxvt -fg yellow -bg blue -e /bin/tcsh &
|
|
.EE
|
|
|
|
.IP "Focus"
|
|
Moves the viewport or window as needed to make the selected window visible.
|
|
Sets the keyboard focus to the selected window. Raises the window if
|
|
needed to make it visible. Warps the pointer into
|
|
the selected window in focus-follows-mouse mode.
|
|
Does not de-iconify. This function is primarily for use with
|
|
a module such as FvwmWinList.
|
|
|
|
.IP "Function \fI\"FunctionName\"\fP"
|
|
Used to bind a previously defined function to a key or mouse button.
|
|
|
|
The following example binds mouse button 1 to a function called
|
|
"Move-or-Raise", whose definition was provided as an example earlier in
|
|
this man page. After performing this binding \fIfvwm\fP will execute to
|
|
move-or-raise function whenever button 1 is pressed in a window title-bar.
|
|
.EX
|
|
Mouse 1 T A Function "Move-or-Raise"
|
|
.EE
|
|
|
|
.IP "GotoPage x y"
|
|
Moves the desktop viewport to page (x,y). The upper left page is (0,0), the
|
|
upper right is (N,0), where N is one less than the current number of horizontal
|
|
pages specified in the DeskTopSize command. The lower left page is (0,M),
|
|
and the lower right page is (N,M), where M is the desktop's vertical size
|
|
as specified in the DeskTopSize command. The GotoPage function should not be
|
|
used in a pop-up menu.
|
|
|
|
.IP "Iconify [ \fIvalue\fP ]"
|
|
Iconifies a window if it is not already iconified or de-iconifies it
|
|
if it is already iconified. If the optional argument \fIvalue\fP is
|
|
positive the only iconification will be allowed. It the optional
|
|
argument is negative only de-iconification will be allowed.
|
|
|
|
.IP "Lower"
|
|
Allows the user to lower a window.
|
|
|
|
.IP "Maximize [ \fI horizontal vertical\fP ]"
|
|
Without its optional arguments Maximize causes the window to alternately
|
|
switch from a full-screen size to its normal size.
|
|
|
|
With the optional arguments horizontal and vertical, which are
|
|
expressed as percentage of a full screen, the user can control the new
|
|
size of the window. If horizontal is greater than 0 then the
|
|
horizontal dimension of the window will be set to
|
|
horizontal*screen_width/100. The vertical resizing is similar. For
|
|
example, the following will add a title-bar button to switch a window
|
|
to the full vertical size of the screen:
|
|
.EX
|
|
Mouse 0 4 A Maximize 0 100
|
|
.EE
|
|
The following causes windows to be stretched to the full width:
|
|
.EX
|
|
Mouse 0 4 A Maximize 100 0
|
|
.EE
|
|
This makes a window that is half the screen size in each direction:
|
|
.EX
|
|
Mouse 0 4 A Maximize 50 50
|
|
.EE
|
|
Values larger than 100 can be used with caution.
|
|
|
|
If the letter "p" is appended to each coordinate (horizontal and/or
|
|
vertical), then the scroll amount will be measured in pixels.
|
|
|
|
.IP "Module \fIname ModuleName\fP"
|
|
Specifies a module which should be spawned. Modules can be
|
|
short lived transient programs or can
|
|
remain for the duration of the X session. Modules will be terminated by
|
|
the window manager prior to restarts and quits, if possible.
|
|
\fIname\fP is a double-qouted string which has absolutely no
|
|
significance, but must exist.
|
|
|
|
.IP "Move [ \fIx y\fP ]"
|
|
Allows the user to move a window. If called from somewhere in a window or its
|
|
border, then that window will be moved. If called from the root window then
|
|
the user will be allowed to select the target window.
|
|
|
|
If the optional arguments x and y are provided, then the window will
|
|
be moved so that its upper left corner is at location (x,y). The
|
|
units of x and y are percent-of-screen, unless a letter "p" is
|
|
appended to each coordinate, in which case the location is specified
|
|
in pixels.
|
|
|
|
Examples:
|
|
.EX
|
|
Mouse 1 T A Move
|
|
Mouse 2 T A Move 10 10
|
|
Mouse 3 T A Move 10p 10p
|
|
.EE
|
|
In the first example, an interactive move is indicated. In the second,
|
|
the window whose title-bar is selected will be moved so that its upper
|
|
left hand corner is 10 percent of the screen width in from the left of
|
|
the screen, and 10 percent down from the top. The final example moves
|
|
the window to coordinate (10,10) pixels.
|
|
|
|
.IP "Nop"
|
|
Does nothing. This is used to insert a blank line or separator in a menu. If
|
|
the menu item specification is Nop " ", then a blank line is inserted. If it
|
|
looks like Nop "", then a separator line is inserted.
|
|
|
|
.IP "Popup \fI\"PopupName\"\fP"
|
|
This built-in has two purposes: to bind a menu to a key or mouse
|
|
button, and to bind a sub-menu into a menu. The formats for the two
|
|
purposes differ slightly.
|
|
|
|
To bind a previously defined pop-up menu to a key or mouse button:
|
|
.sp
|
|
.in +.25i
|
|
The following example binds mouse buttons 2 and 3 to a pop-up called
|
|
"Window Ops", whose definition was provided as an example earlier in
|
|
this man page. The menu will pop up if the buttons 2 or 3 are pressed
|
|
in the window frame, side-bar, or title-bar, with no modifiers (none
|
|
of shift, control, or meta).
|
|
.EX
|
|
Mouse 2 FST N Popup "Window Ops"
|
|
Mouse 3 FST N Popup "Window Ops"
|
|
.EE
|
|
Pop-ups can be bound to keys through the use of the key modifier. Pop-ups can
|
|
be operated without using the mouse by binding to keys and operating via the
|
|
up arrow, down arrow, and enter keys.
|
|
.in -.25i
|
|
.sp
|
|
To bind a previously defined pop-up menu to another menu, for use as a
|
|
sub-menu:
|
|
.sp
|
|
.in +.25i
|
|
The following example defines a sub menu, "Quit-Verify" and binds it into a
|
|
main menu, called "Utilities":
|
|
.EX
|
|
Popup "Quit-Verify"
|
|
Title "Really Quit Fvwm?"
|
|
Quit "Yes, Really Quit"
|
|
Restart "Restart Fvwm" fvwm
|
|
Nop ""
|
|
Nop "No, Don't Quit"
|
|
EndPopup
|
|
|
|
Popup "Utilities"
|
|
Title "Utilities"
|
|
Exec "Xterm" exec xterm &
|
|
Exec "Rxvt" exec rxvt &
|
|
Exec "Top" exec rxvt -T Top -n Top -e top &
|
|
Exec "Calculator" exec xcalc &
|
|
Exec "Xman" exec xman &
|
|
Exec "Xmag" exec xmag &
|
|
Nop ""
|
|
Popup "Exit Fvwm" Quit-Verify
|
|
EndPopup
|
|
.EE
|
|
Sub-menus must be defined prior to the main menu in which they are bound.
|
|
Sub-menu nesting can be arbitrarily deep.
|
|
.in -.25i
|
|
.sp
|
|
|
|
.IP "Quit"
|
|
Exits \fIfvwm\fP, generally causing X to exit too.
|
|
|
|
.IP "Raise"
|
|
Allows the user to raise a window.
|
|
|
|
.IP "RaiseLower"
|
|
Alternately raises and lowers a window.
|
|
|
|
.IP "Refresh"
|
|
Causes all windows on the screen to redraw themselves.
|
|
|
|
.IP "Resize [ \fIx y\fP ]"
|
|
Allows the user to resize a window.
|
|
|
|
If the optional arguments x and y are provided, then the window will
|
|
be moved so that its upper left corner is at location (x,y). The
|
|
units of x and y are percent-of-screen, unless a letter "p" is
|
|
appended to each coordinate, in which case the location is specified
|
|
in pixels.
|
|
|
|
.IP "Restart \fIname WindowManagerName\fP "
|
|
Causes \fIfvwm\fP to restart itself if WindowManagerName is "fvwm", or
|
|
to switch to an alternate window manager if WindowManagerName is other
|
|
than "fvwm". If the window manager is not in your default search
|
|
path, then you should use the full path name for
|
|
\fIWindowManagerName\fP.
|
|
|
|
\fIWindowManagerName \fP is not quoted but \fIname\fP is.
|
|
\fIname\fP is the name that appears in a menu, if that is where the function is
|
|
called from. \fIname\fP is required even if the function is not called from a
|
|
menu.
|
|
|
|
This command should not have a trailing ampersand or any command line
|
|
arguments and should not make use
|
|
of any environmental variables. Of the following examples, the first three are
|
|
sure losers, but the third is OK:
|
|
.EX
|
|
Key F1 R N Restart " " fvwm &
|
|
Key F1 R N Restart " " $(HOME)/bin/fvwm
|
|
Key F1 R N Restart " " twm -f .mystartupfile
|
|
Key F1 R N Restart " " /home/nation/bin/fvwm
|
|
.EE
|
|
|
|
.IP "Stick"
|
|
Makes a window sticky if it is not already sticky, or non-sticky if it
|
|
is already sticky.
|
|
|
|
.IP "Scroll \fIhorizonal vertical\fP"
|
|
Scrolls the virtual desktop's viewport by \fIhorizontal\fP pages in the
|
|
x-direction and \fIvertical\fP pages in the y-direction. Either or both
|
|
entries may be negative. Both horizontal and vertical values are expressed
|
|
in percent of pages, so "Scroll 100 100" means to scroll down and left by one
|
|
full page. "Scroll 50 25" means to scroll left half a page and down a quarter of
|
|
a page. The scroll function should not be called from pop-up menus. Normally,
|
|
scrolling stops at the edge of the desktop.
|
|
|
|
If the horizontal and vertical percentages are multiplied by 1000 then
|
|
scrolling will wrap around at the edge of the desktop. If "Scroll 100000 0" is
|
|
executed over and over \fIfvwm\fP will move to the next desktop page on each
|
|
execution and will wrap around at the edge of the desktop, so that every
|
|
page is hit in turn.
|
|
|
|
If the letter "p" is appended to each coordinate (horizontal and/or
|
|
vertical), then the scroll amount will be measured in pixels.
|
|
|
|
.IP "Title"
|
|
Does nothing. This is used to insert a title line in a popup or menu.
|
|
|
|
.IP TogglePage
|
|
Temporarily disables edge scrolling. Edge scrolling can be re-enabled
|
|
by calling this again.
|
|
|
|
.IP "Wait \fIname\fP"
|
|
This built-in is intended to be used in \fIfvwm\fP functions only. It causes
|
|
execution of a function to pause until a new window name \fIname\fP
|
|
appears. \fIFvwm\fP remains fully functional during a wait. This is
|
|
particularly useful in the InitFunction if you are trying to start
|
|
windows on specific desktops:
|
|
.EX
|
|
Function "InitFunction"
|
|
Exec "I" exec xterm -geometry 80x64+0+0
|
|
Wait "I" xterm
|
|
Desk "I" 0 2
|
|
Exec "I" exec xmh -font fixed -geometry 507x750+0+0 &
|
|
Wait "I" xmh
|
|
Desk "I" 0 0
|
|
EndFunction
|
|
.EE
|
|
The above function starts an xterm on the current desk, waits for it
|
|
to map itself, then switches to desk 2 and starts an xmh. After the
|
|
xmh window appears control moves to desk 0.
|
|
|
|
.IP "Warp [ \fIname window_name\fP ]"
|
|
Same as CirculateDown but de-iconifies any iconified windows as it focuses
|
|
on them.
|
|
|
|
.IP "WindowsDesk \fInew_desk\fP"
|
|
Moves the selected window the the desktop specified as \fInew_desk\fP.
|
|
|
|
.IP "WindowList \fIarg1 arg2\fP"
|
|
Generates a pop-up menu (and pops it up) in which the title and geometry of
|
|
each of the windows currently on the desk top are shown. The geometry of
|
|
iconified windows is shown in brackets. Selecting an item from the window list
|
|
pop-up menu will cause that window to be moved onto the desktop if it is
|
|
currently not on it, will move the desktop viewport to the page containing the
|
|
upper left hand corner of the window, will de-iconify the window if it is
|
|
iconified, and will raise the window.
|
|
|
|
If \fIarg1\fP is an even number then the windows will be listed using
|
|
the window name (the name that shows up in the title-bar). If it is
|
|
odd then the window's icon name is used.
|
|
|
|
If \fIarg1\fP is less than 2 then all windows on all desktops (except
|
|
those listed in WindowListSkip directives) will be shown.
|
|
|
|
If \fIarg1\fP is 2 or 3 then only windows on the current desktop will
|
|
be shown.
|
|
|
|
If \fIarg1\fP is 4 or 5 then only windows on desktop number \fIarg2\fP will
|
|
be shown.
|
|
|
|
.SH KEYBOARD SHORTCUTS
|
|
All (I think) window manager operations can be performed from the keyboard
|
|
so mouseless operation should be possible. In addition to scrolling
|
|
around the virtual desktop by binding the Scroll built-in to appropriate keys,
|
|
pop-ups, move, resize, and most other built-ins can be bound to keys. Once a
|
|
built-in function is started the pointer is moved by using the up, down,
|
|
left, and right arrows, and the action is terminated by pressing return.
|
|
Holding down the shift key will cause the pointer movement to go in larger
|
|
steps and holding down the control key will cause the cursor movement to
|
|
go in smaller steps. Standard emacs and vi cursor
|
|
movement controls (^n, ^p, ^f, ^b, and ^j, ^k, ^h, ^l) can be used
|
|
instead of the arrow keys.
|
|
|
|
.SH SUPPLIED CONFIGURATION
|
|
A sample configuration file, system.fvwmrc, is supplied with the \fIfvwm\fP
|
|
distribution. It is well commented and can be used as a source of examples
|
|
for \fIfvwm\fP configuration.
|
|
|
|
|
|
.SH USE ON MULTI-SCREEN DISPLAYS
|
|
If the -s command line argument is not given, \fIfvwm\fP will
|
|
automatically start up on every screen on the specified display. After
|
|
\fIfvwm\fP starts each screen is treated independently. Restarts of
|
|
\fIfvwm\fP need to be performed separately on each screen. The use of
|
|
EdgeScroll 0 0 is strongly recommended for multi-screen displays.
|
|
|
|
You may need to quit on each screen to quit from the X session completely.
|
|
|
|
Multi-screen support is only available if \fIfvwm\fP is compiled with
|
|
-DMULTIPLE_SCREENS
|
|
|
|
|
|
.SH BUGS
|
|
As of fvwm 0.99 there were exactly 39.342 unidentified bugs. Identified
|
|
bugs have mostly been fixed, though. Since then 9.34 bugs have been fixed.
|
|
Assuming that there are at least 10 unidentified bugs for every identified
|
|
one, that leaves us with 39.342 - 9.32 + 10 * 9.34 = 123.402 unidentified
|
|
bugs. If we follow this to its logical conclusion we will have
|
|
an infinite number of unidentified bugs before the number of bugs
|
|
can start to diminish, at which point the program will be bug-free.
|
|
Since this is a computer program infinity = 3.4028e+38 if
|
|
you don't insist on double-precision. At the current rate of bug discovery
|
|
we should expect to achieve this point in 3.37e+27 years. I guess I better
|
|
plan on passing this thing on to my children....
|
|
|
|
Binding a key to a window decoration but not to the window itself is
|
|
discouraged because when the key-press event finally gets to the window
|
|
it will be marked as SYNTHETIC and will be ignored by many applications.
|
|
|
|
Bug reports can be sent to fvwm@wonderland.org.
|
|
|
|
|
|
.SH AUTHOR
|
|
Robert Nation with help from
|
|
many people, based on \fItwm\fP code, which was written by Thomas LaStrange.
|