EnglishFrenchSpanish

Run servers | Ubuntu > | Fedora > |


OnWorks favicon

fvwm1 - Online in the Cloud

Run fvwm1 in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command fvwm1 that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


fvwm1 - F(?) Virtual Window Manager for X11, version 1.x

SYNOPSIS


fvwm1 [ options ]

DESCRIPTION


Fvwm is a window manager for X11. It is a derivative of twm, 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
twm, due primarily to a redesign of twm's method of storing mouse bindings. In addition,
many of the configurable options of twm 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.)

STATUS OF THIS SOFTWARE


Since the release of FVWM 2.2 in March 1999, this release is officially deprecated and no
longer supported. Please do not report any bugs in this software. Also, for Debian
users, the module manpages for this release of FVWM will be found as FvwmAudio1(1x) etc.

SPECIAL NOTE FOR XFREE86 USERS


XFree86 provides a virtual screen whose operation can be confusing when used in
conjunction with fvwm. 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 fvwm'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 fvwm 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 fvwm you may want to re-enable XFree86's virtual screen.

COPYRIGHTS


Since fvwm is derived from twm code it shares twm's copyrights.

fvwm 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.

ANATOMY OF A WINDOW


Fvwm 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.

THE VIRTUAL DESKTOP


Fvwm 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:
xterm -geometry +0+0
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:
xterm -geometry +1000+1000
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:
xterm -geometry -5-5
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:
xterm -xrm "*Desk:1"
will start an xterm on desk number 1. Not all applications understand this option,
however.

INITIALIZATION


During initialization, fvwm 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, fvwm will search for a file named .fvwmrc in the users home directory.
Failing that, it will look for /etc/X11/fvwm/system.fvwmrc for system-wide defaults. If
that file is not found, fvwm will exit.

Fvwm will set two environment variables which will be inherited by its children. These are
$DISPLAY which describes the display on which fvwm 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.

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.

ICONS


The basic Fvwm configuration uses monochrome bitmap icons, similar to twm. 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.

MODULES


A module is a separate program which runs as a separate Unix process but transmits
commands to fvwm to execute. Future releases are expected to provide a means for these
modules to extract window information from fvwm. Users can write their own modules to do
any weird or bizarre manipulations without affecting the integrity of fvwm itself.

Modules MUST be spawned by fvwm so that it can set up two pipes for fvwm 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 fvwm 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
fvwm is told to quit, then fvwm 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 fvwm 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 fvwm 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.

ICCCM COMPLIANCE


Fvwm 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 fvwm and most other window managers.

M4 PREPROCESSING


If fvwm is compiled with the M4 option, fvwm uses m4(1) to preprocess its setup files
before parsing. This way you can use m4 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 -m4opt to specify your mood. For a sunny mood use -m4opt
-DSunny; for a dark mood use -m4opt -DDark. Your .fvwmrc file might then contain:
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 ')

The following m4 symbols are predefined by fvwm:

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.)

CLASS Your visual class. Will return one of StaticGray, GrayScale,
StaticColor, PseudoColor, TrueColor, DirectColor, or, if it cannot
determine what you have, NonStandard.

CLIENTHOST The machine that is running the clients.

COLOR This will be either 'Yes' or 'No'. This is just a wrapper around
the CLASS definition. Returns 'Yes' on *Color and 'No' on
StaticGray and GrayScale.

FVWMDIR This is set to the path where the modules were configured to be
installed.

FVWM_VERSION This is a string containing the version of fvwm.

HEIGHT The height of your display in pixels.

HOME The user's home directory. Obtained from the environment.

HOSTNAME The canonical hostname running the clients (ie. a fully-qualified
version of CLIENTHOST).

OPTIONS This is a string of compile time options used. Each option is
separated from the other by a space.

PLANES The number of bit planes your display supports in the default root
window.

RELEASE The release number of your X server. For MIT X11R5 this is 5.

REVISION The X minor protocol revision. As seen by ProtocolRevision(3).

SERVERHOST This variable is set to the name of the machine that is running
the X server.

TWM_TYPE Tells which twm offshoot is running. It will always be set to the
string "fvwm" in this program. This is useful for protecting
parts of your .twmrc file that fvwm proper won't understand (like
WorkSpaces) so that it is still usable with other twm programs.

USER The name of the user running the program. Obtained from the
environment.

VENDOR The vendor of your X server. For example: MIT X Consortium.

VERSION The X major protocol version. As seen by ProtocolVersion(3).

WIDTH The width of your display in pixels.

X_RESOLUTION The X resolution of your display in pixels per meter.

Y_RESOLUTION The Y resolution of your display in pixels per meter.

You may well find that if you research the m4(1) manual well and understand the power of
m4, this will be a very useful and powerful tool. But if you use any of the symbols which
are predefined by m4, you are in severe danger! For example, Sun's m4 predefines include,
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: `include'.

To help alleviate this problem, the following options may be useful. To change the
quoting characters used by m4, use the options -m4-squote and -m4-equote. Be sure to
specify both options otherwise m4 will be confused. When these are given, a changequote
macro is given before the users fvwmrc file is processed.

NOTE: Some versions of m4 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.

If you are using GNU m4 an additional option is available. By specifying -m4-prefix when
starting fvwm, m4 is instructed to prefix all builtin macros with m4_. Thus, include
becomes m4_include.

The availability of the m4 preprocessing is subject to the compilation define M4.

OPTIONS


These are the command line options that are recoginzed by fvwm:

-f config_file
Causes fvwm to use config_file in the user's home directory instead of .fvwmrc as
the window manager configuration file.

-debug Puts X transactions in synchronous mode, which dramatically slows things down, but
guarantees that fvwm's internal error messages are correct.

-d displayname
Manage the display called "displayname" instead of the name obtained from the
environment variable $DISPLAY.

-s On a multi-screen display, run fvwm only on the screen named in the $DISPLAY
environment variable or provided through the -d option. Normally, fvwm will attempt
to start up on all screens of a multi-screen display.

-version
Print the version of fvwm to stderr.

The following options are available only if fvwm is compiled with the M4 option.

-no-m4 Do not use m4 to preprocess the .fvwmrc. The default is to preprocess the startup
file using m4(1).

-m4-prefix
If GNU m4 is available, cause m4 to prefix all builtin commands with m4_.

-m4opt option
Pass this option to m4. The option can be any string of characters without spaces.
This option can occur multiple times. If GNU m4 is available, DO NOT pass the -P
option here. Use -m4-prefix instead.

-m4-squote string
Use this given string as the starting quote characters. You must also specify
-m4-equote.

-m4-equote string
Use this given string as the ending quote characters. You must also specify
-m4-squote.

-m4prog path
Use path 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.

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 fvwm. Lines starting with '*' are expected to
contain module configuration commands (rather than configuration commands for fvwm
itself).

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.

AutoRaise delay
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.

BackingStore
Causes fvwm decorations to request backing store. See the discussion on
AppsBackingStore.

BoundaryWidth Width
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.

ButtonStyle button# WidthxHeight
Defines the rectangular decoration shape to be used in a title-bar button. button#
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:
ButtonStyle : 2 4 50x30@1 70x70@0 30x70@0 50x30@1
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.

CenterOnCirculate
When circulating, the desktop page containing the window which the pointer is
moving to is automatically selected. If CenterOnCirculate is selected then fvwm
will do its best to center the target window in the desktop viewport, rather than
just lining up to the closest page.

CirculateSkip windowname
Causes windows with the indicated name to be skipped over when the circulate-up or
circulate-down functions are invoked. windowname can be a window's name or its
class.

The Style command provides another (more general) method for specifying
CirculateSkip.

CirculateSkipIcons
Causes circulate and warp operations to skip over iconified windows.

ClickTime delay
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.

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.

Cursor cursor_num cursor_type
This provides a very awkward way of changing cursor styles. Cursor_num tells which
cursor you are changing, and is a number between 0 and 12, as follows:

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.

The cursor_type 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:

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

DecorateTransients
Causes transient windows, which are normally left undecorated, to be given the
usual fvwm 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.

DeskTopScale Scale
Defines the virtual desktop scale with respect to the screen.

DeskTopSize HorizontalxVertical
Defines the virtual desktop size in units of the physical screen size.

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.

EdgeResistance scrolling moving
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 fvwm 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.

EdgeScroll horizontal vertical
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
fvwm will scroll by whole pages, wrapping around at the edge of the desktop.

Font fontname
Makes fvwm use font fontname instead of "fixed" for menus, the resize indicators,
and icon labels (if IconFont is not specified).

Function FunctionName
Starts the definition of a complex function, composed of the fvwm built-in
functions, which will later be bound to a mouse button or key. FunctionName 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, fvwm will wait to see if the user is clicking, double-clicking, or dragging
the mouse. After the decision is made, fvwm 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, fvwm would wait 150 msec to see if the button is released. If
the button is not released fvwm will start a move operation. When the move
operation is complete a raise operation will be performed. If a button release is
detected then fvwm 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.
Function "Move-or-Raise"
Move "Motion"
Raise "Motion"
Raise "Click"
RaiseLower "DoubleClick"
EndFunction
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 fvwm 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 fvwm is restarted. It can be used to start modules and
set background patterns but probably should not be used to start programs.

HiBackColor colorname
Sets the background color of the selected window to colorname. When using a
monochrome screen this option is ignored and white is used.

HiForeColor colorname
Sets the color of the selected window's title to colorname. When using a monochrome
screen this option is ignored and black is used.

Icon windowname bitmap-file
Specifies the bitmap to be used for a window when it is iconified. The windowname
can be an application's window name or class name and must be enclosed in quotes.
The bitmap-file 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 fvwm is compiled with XPM support for color icons then bitmap can be an XPM
pixmap file.

windowname should be enclosed in double quotes but bitmap-file should not.
Environment variables should not be used in the bitmap-file specification.

If windowname 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:
Icon "" my-favorite-icon

The Style command provides another (more general) method for specifying Icon.

IconBox left top right bottom
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 left or right is negative, then fvwm will add the screen
width to it. If top or bottom is negative, then fvwm 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 fvwm will place
icons near the current pointer location.

IconFont fontname
Makes fvwm use font fontname for icon labels. If omitted, the menu font (specified
by the Font configuration parameter) will be used instead.

IconPath path
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 fvwm is built, then m4 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.

Key keyname Context Modifiers Function
Binds a keyboard key to a specified fvwm 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 keyname is one of the entries from /usr/include/X11/keysymdef.h, with the
leading XK_ omitted. The Context and Modifiers 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.

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 fvwm will ignore this ICCCM convention.

MenuBackColor colorname
Sets the menu background color. When using monochrome this option is ignored. This
option is only available if fvwm is compiled with MENUCOLOR defined.

MenuForeColor colorname
Sets the menu foreground color. When using monochrome this option is ignored. This
option is only available if fvwm is compiled with MENUCOLOR defined.

MenuStippleColor colorname
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 fvwm is compiled with
MENUCOLOR defined.

Module ModuleName
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. Module 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.

ModulePath
Specifies a colon separated list of paths for fvwm to search when looking for a
module to load. Individual directories do not need trailing slashes.

Mouse Button Context Modifiers Function
Defines a mouse binding. Button is the mouse button number. If Button is zero then
any button will perform the specified function. Context 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.

Modifiers 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.

Function is one of fvwm'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:
1 3 5 7 9 0 8 6 4 2
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.

MWMBorders
Substitutes MWM style 1 pixel wide relief lines instead of fvwm's 2 pixel borders.

MWMButtons
Disables button press feedback for all decorations except the title bar and title-
bar buttons, as in MWM.

MWMDecorHints
Causes fvwm 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.

MWMFunctionHints
Causes fvwm 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, fvwm simply shades out the prohibited functions. Also, because fvwm
implements some functions in user defined macros that mwm implements internally,
the mapping of prohibited functions is partially based on the menu item label.

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.

MWMMenus
Substitutes MWM look and feel menus in place of the standard fvwm 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 twm style press-button-2

NoBorder windowname
Keeps fvwm from putting decorative borders on windows named windowname. 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. windowname can be a window's
name or its class.

If you specify both NoBorder windowname and NoTitle windowname for the same window
in your .fvwmrc file the window will be completely undecorated.

Windowname 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.

NoBoundaryWidth Width
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.

NoPPosition
Instructs fvwm 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.

NoTitle windowname
Keeps fvwm from putting a title-bar in the decorations for windows named
windowname. This is handy for clocks and similar gadgets that you don't want to
take up too much space. windowname can be a window's name or its class.

Windowname 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.

OpaqueMove percentage
Tells fvwm 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.

OpaqueResize
Causes resize operations to be done with the window itself instead of an outline.

Pager X_Location Y_Location
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.

PagerForeColor colorname
Causes the pager foreground color to be colorname 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 fvwm
this option is unavailable.

PagerBackColor colorname
Causes the pager background color to be colorname instead of white. On a
monochrome screen this option is ignored. If the NO_PAGER option is set when
building fvwm this option is unavailable.

PagerFont fontname
Makes fvwm use font fontname 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.

PagingDefault pagingdefaultvalue
Tells fvwm if it should start up with paging enabled or disabled. "PagingDefault
0" will start fvwm with paging disabled; "PagingDefault 1" will start fvwm with
paging enabled by default.

PixmapPath path
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.

Popup PopupName
Starts the definition of a pop-up menu which will later be bound to a mouse button
or key. PopupName 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.
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
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:
Popup "Window Ops"
Title "Window Ops Alt-F1"
.
.
.
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:
Popup "Window Ops"
Maximize "Ma&ximise" 100 100
EndMenu
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 fvwm. If WINDOWLIST_HOTKEYS was also
defined then hot keys are automatically added to the WindowList when it is
displayed.

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.

SaveUnders
Causes the fvwm decoration frames to request save-unders. This can significantly
improve the performance during opaque moves but it causes a significant increase in
memory usage.

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.

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.

StartsOnDesk windowname desk-number
This command causes windows whose name or class is windowname to be initially
placed on desktop number desk-number. windowname 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.

Windowname 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.

StaysOnTop windowname
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. windowname can be a window's name or its class.

Windowname 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.

StdBackColor colorname
Sets the background color for menus and non-selected windows to colorname. When
using a monochrome screen this option is ignored and white is used.

The Style command provides another (more general) method for specifying
StdBackColor.

StdForeColor colorname
Sets the foreground color for menus and non-selected window titles to colorname.
When using a monochrome screen this option is ignored and black is used.

The Style command provides another (more general) method for specifying
StdForeColor.

StickyBackColor colorname
Sets the background color for non-selected sticky windows to colorname. When using
a monochrome screen this option is ignored and white is used. Only available if
-DMORE_COLORS is used when compiling.

StickyForeColor colorname
Sets the foreground color for non-selected sticky window titles to colorname. When
using a monochrome screen this option is ignored and black is used. Only available
if -DMORE_COLORS is used when compiling.

Sticky windowname
Sticky windows "stick to the screen's glass." That is, they don't move the the
viewport into the virtual desktop changes. windowname can be a window's name or
its class.

Windowname 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.

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.

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.

StubbornIconPlacement
When used with IconBoxes, causes icons to avoid placing themselves underneath
existing windows.

StubbornPlacement
When using SmartPlacement, causes new windows to avoid placing themselves over
icons.

Style windowname options
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.

windowname 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.

options 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 fvwm default
behavior and can be used if you want to change the fvwm 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 separate ForeColor and
BackColor options can be used.

An example:
# 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
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:
Style "*" NoIcon
Style "Fvwm Pager" Icon

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.

WindowFont fontname
Makes fvwm use font fontname instead of "fixed" for the window title bar.

WindowListSkip windowname
Causes windows with the indicated name to be left out of the window list.

Windowname 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.

XORvalue number
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.

BUILT IN FUNCTIONS


Fvwm supports a set of built-in functions which can be bound to keyboard or mouse buttons:

Beep Makes the computer beep.

CirculateDown [ name window_name ]
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 window_name. The optional argument name
is required if window_name 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.

CirculateUp [ name window_name ]
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 window_name. The optional argument name
is required if window_name 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:
Key F1 A M CirculateUp "whatever" xterm

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.

CursorMove horizonal vertical
Moves the mouse pointer by horizontal pages in the X direction and vertical 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.

Delete Sends a message to a window asking that it remove itself, frequently causing the
application to exit.

Desk arg1 arg2
Changes to another desktop (workspace, room).

If arg1 is non zero then the next desktop number will be the current desktop number
plus arg1. Desktop numbers can be negative.

If arg1 is zero then the new desktop number will be arg2.

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?).

Destroy
Destroys a window. Guaranteed to get rid of the window, but is a fairly violent way
to terminate an application.

Exec name command
Executes command. command is not quoted but name is. name is the name that appears
in a menu, if that is where the function is called from. name 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.
Key F1 R N Exec "rxvt" exec rxvt -fg yellow -bg blue -e /bin/tcsh &

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.

Function
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 fvwm will execute to move-or-raise function whenever button
1 is pressed in a window title-bar.
Mouse 1 T A Function "Move-or-Raise"

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.

Iconify [ value ]
Iconifies a window if it is not already iconified or de-iconifies it if it is
already iconified. If the optional argument value is positive the only
iconification will be allowed. It the optional argument is negative only de-
iconification will be allowed.

Lower Allows the user to lower a window.

Maximize [ horizontal vertical ]
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:
Mouse 0 4 A Maximize 0 100
The following causes windows to be stretched to the full width:
Mouse 0 4 A Maximize 100 0
This makes a window that is half the screen size in each direction:
Mouse 0 4 A Maximize 50 50
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.

Module name ModuleName
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. name is
a double-qouted string which has absolutely no significance, but must exist.

Move [ x y ]
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:
Mouse 1 T A Move
Mouse 2 T A Move 10 10
Mouse 3 T A Move 10p 10p
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.

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.

Popup 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:

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).
Mouse 2 FST N Popup "Window Ops"
Mouse 3 FST N Popup "Window Ops"
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.

To bind a previously defined pop-up menu to another menu, for use as a sub-menu:

The following example defines a sub menu, "Quit-Verify" and binds it into a main
menu, called "Utilities":
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
Sub-menus must be defined prior to the main menu in which they are bound. Sub-
menu nesting can be arbitrarily deep.

Quit Exits fvwm, generally causing X to exit too.

Raise Allows the user to raise a window.

RaiseLower
Alternately raises and lowers a window.

Refresh
Causes all windows on the screen to redraw themselves.

Resize [ x y ]
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.

Restart name WindowManagerName
Causes fvwm 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 WindowManagerName.

WindowManagerName is not quoted but name is. name is the name that appears in a
menu, if that is where the function is called from. name 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:
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

Stick Makes a window sticky if it is not already sticky, or non-sticky if it is already
sticky.

Scroll horizonal vertical
Scrolls the virtual desktop's viewport by horizontal pages in the x-direction and
vertical 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 fvwm 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.

Title Does nothing. This is used to insert a title line in a popup or menu.

TogglePage
Temporarily disables edge scrolling. Edge scrolling can be re-enabled by calling
this again.

Wait name
This built-in is intended to be used in fvwm functions only. It causes execution of
a function to pause until a new window name name appears. Fvwm remains fully
functional during a wait. This is particularly useful in the InitFunction if you
are trying to start windows on specific desktops:
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
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.

Warp [ name window_name ]
Same as CirculateDown but de-iconifies any iconified windows as it focuses on them.

WindowsDesk new_desk
Moves the selected window the the desktop specified as new_desk.

WindowList arg1 arg2
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 arg1 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 arg1 is less than 2 then all windows on all desktops (except those listed in
WindowListSkip directives) will be shown.

If arg1 is 2 or 3 then only windows on the current desktop will be shown.

If arg1 is 4 or 5 then only windows on desktop number arg2 will be shown.

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.

SUPPLIED CONFIGURATION


A sample configuration file, system.fvwmrc, is supplied with the fvwm distribution. It is
well commented and can be used as a source of examples for fvwm configuration.

USE ON MULTI-SCREEN DISPLAYS


If the -s command line argument is not given, fvwm will automatically start up on every
screen on the specified display. After fvwm starts each screen is treated independently.
Restarts of fvwm 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 fvwm is compiled with -DMULTIPLE_SCREENS

Use fvwm1 online using onworks.net services


Ad


Ad