[comp.sources.x] v09i008: TWM with a virtual root window, Part07/09

toml@marvin.Solbourne.COM (Tom LaStrange) (08/30/90)

Submitted-by: toml@marvin.Solbourne.COM (Tom LaStrange)
Posting-number: Volume 9, Issue 8
Archive-name: tvtwm/part07

#! /bin/sh
# This is a shell archive, meaning:
# 1.  Remove everything above the #! /bin/sh line.
# 2.  Save the resulting test in a file
# 3.  Execute the file with /bin/sh (not csh) to create the files:
#
#tvtwm.man
#
# Created by toml () on Wed Aug 29 08:43:38 MDT 1990
#
if test -f 'tvtwm.man'
then
    echo shar: will not over-write existing file "tvtwm.man"
else
echo extracting "tvtwm.man"
sed 's/^X//' >tvtwm.man <<'SHAR_EOF'
X.de EX		\"Begin example
X.ne 5
X.if n .sp 1
X.if t .sp .5
X.nf
X.in +.5i
X..
X.de EE
X.fi
X.in -.5i
X.if n .sp 1
X.if t .sp .5
X..
X.ta .3i .6i .9i 1.2i 1.5i 1.8i
X.TH TVTWM 1 "Release 4" "X Version 11"
X.SH NAME
Xtvtwm - Tom's Virtual Tab Window Manager for the X Window System
X.SH SYNTAX
X.PP
X\fBtvtwm \fP[-display \fIdpy\fP] [-s] [-f \fIinitfile\fP] [-v]
X.PP
X.SH DESCRIPTION
X.PP
X\fITvtwm\fP is a window manager for the X Window System based
Xon the X11R4 version of \fItwm\fP.  It includes a ``Virtual Desktop''
Xfeature that effectively makes the root window of the screen 
Xlarger than the physical limits of the display.  To change 
Xas little as possible in this manual, from here on the window
Xmanager is referred to as \fItwm\fP.
X.PP
X\fITwm\fP is a window manager for the X Window System.  It provides 
Xtitlebars, shaped windows,
Xseveral forms of icon management, user-defined macro functions, 
Xclick-to-type and pointer-driven keyboard focus, and user-specified 
Xkey and pointer button bindings.
X.PP
XThis program is usually started by the user's session manager or
Xstartup script.  When used from \fIxdm(1)\fP or \fIxinit(1)\fP without
Xa session manager, \fItwm\fP is frequently executed in the foreground
Xas the last client.  When run this way, exiting \fItwm\fP causes the 
Xsession to be terminated (i.e. logged out).
X.PP
XBy default, application windows are surrounded by a ``frame'' with a 
Xtitlebar at the top and a special border around the window.  The titlebar 
Xcontains the window's name, a rectangle that is lit when the window is
Xreceiving keyboard input, and function boxes known as ``titlebuttons'' at
Xthe left and right edges of the titlebar.
X.PP
XPressing pointer Button1 (usually the left-most
Xbutton unless it has been changed with \fIxmodmap\fP) on a 
Xtitlebutton will invoke the function associated with the button.
XIn the default interface, windows are iconified by clicking (pressing
Xand then immediately releasing) the left titlebutton (which looks
Xlike a small X).  Conversely, windows are deiconified by clicking in the
Xassociated icon or entry in the icon manager
X(see description of the variable
X\fBShowIconManager\fP and of the function \fBf.showiconmgr\fP).
X.PP
XWindows are resized by pressing the right titlebutton (which resembles
Xgroup of nested squares), dragging the pointer over edge that is to be
Xmoved, and releasing the pointer when the outline of the window is the desired
Xsize.  Similarly, windows are moved by pressing in the title or highlight
Xregion, dragging a window outline to the new location, and then releasing
Xwhen the outline is in the desired position.  Just
Xclicking in the title or highlight region raises the window without moving it.
X.PP
XWhen new windows are created, \fItwm\fP will honor any size and location
Xinformation requested by the user (usually through \fI-geometry\fP
Xcommand line argument or resources for the individual applications).  
XOtherwise, an outline of the window's default size, its titlebar, and lines 
Xdividing the 
Xwindow into a 3x3 grid that track the pointer are displayed.
XClicking pointer Button1
Xwill position the window at the current position and give it the default
Xsize.  Pressing pointer Button2 (usually the middle pointer button) 
Xand dragging the outline
Xwill give the window its current position but allow the sides to be resized as
Xdescribed above.  Clicking pointer Button3 (usually the right pointer button)
Xwill give the window its current position but attempt to make it long enough
Xto touch the bottom the screen.
X.SH OPTIONS
X\fITwm\fP accepts the following command line options:
X.PP
X.TP 8
X.B \-display \fIdpy\fP
XThis option specifies the X server to use.
X.TP 8
X.B \-s
XThis option indicates that only the default screen (as specified by 
X\fB\-display\fP or by the \fBDISPLAY\fP environment variable) should be
Xmanaged.  By default, \fItwm\fP will attempt to manage
Xall screens on the display.
X.TP 8
X.B \-f \fIfilename\fP
XThis option specifies the name of the startup file to use.  By default,
X\fItwm\fP will look in the user's home directory for files 
Xnamed \fI.twmrc.num\fP (where \fInum\fP is a screen number) or \fI.twmrc\fP.
X.TP 8
X.B \-v
XThis option indicates that \fItwm\fP should print error messages whenever
Xan unexpected X Error event is received.  This can be useful when debugging
Xapplications but can be distracting in regular use.
X.SH CUSTOMIZATION
X.PP
XMuch of \fItwm\fP's appearance and behavior can be controlled by providing
Xa startup file in one of the following locations (searched in order for
Xeach screen being managed when \fItwm\fP begins):
X.TP 8
X.B "$HOME/.tvtwmrc.\fIscreennumber\fP"
XThe \fIscreennumber\fP is a small positive number (e.g. 0, 1, etc.)
Xrepresenting the screen number (e.g. the last number in the DISPLAY environment
Xvariable \fIhost:displaynum.screennum\fP) that would be used to contact that 
Xscreen of the display.  This is intended for displays with multiple screens of 
Xdiffering visual types.
X.TP 8
X.B "$HOME/.tvtwmrc"
XThis is the usual name for an individual user's startup file.
X.TP 8
X.B "$HOME/.twmrc.\fIscreennumber\fP"
XSame as \fB.tvtwmrc.\fIscreennumber\fR.
X.TP 8
X.B "$HOME/.twmrc"
XSame as \fB.tvtwmrc\fP.
X.TP 8
X.B "/usr/lib/X11/twm/system.twmrc"
XIf neither of the preceding files are found, \fItwm\fP will look in this
Xfile for a 
Xdefault configuration.  This is often tailored by the site administrator to
Xprovide convenient menus or familiar bindings for novice users.
X.PP
XIf no startup files are found, \fItwm\fP will use the built-in defaults
Xdescribed above.  The only resource used by \fItwm\fP is 
X\fIbitmapFilePath\fP for a colon-separated list of directories to search
Xwhen looking for bitmap files (for more information, see the \fIAthena
XWidgets\fP manual and \fIxrdb(1)\fP).
X.PP
X\fITwm\fP startup files are logically broken up into three types of 
Xspecifications:  \fIVariables\fP, \fIBindings\fP, \fIMenus\fP.  The 
X\fIVariables\fP section must come first and is used to describe the
Xfonts, colors, cursors, border widths, icon and window placement, highlighting,
Xautoraising, layout of titles, warping, use of the icon manager.
XThe \fIBindings\fP section usually comes second and is used to specify
Xthe functions that should be
Xto be invoked when keyboard and pointer buttons are pressed in
Xwindows, icons, titles, and frames.  The \fIMenus\fP section gives any 
Xuser-defined menus (containing functions to be invoked or
Xcommands to be executed).
X.PP
XVariable names and keywords are case-insensitive.  Strings must be surrounded
Xby double quote characters (e.g. "blue") and are case-sensitive.
XA pound sign (#) outside
Xof a string causes the remainder of the line in which the character appears to
Xbe treated as a comment.
X.SH VIRTUAL DESKTOP
XThe Virtual Desktop feature of \fItvtwm\fP was modeled after the same feature
Xin swm (Solbourne Window Manager).  The Virtual Desktop effectively
Xmakes the ``root'' window of the display larger than the physical 
Xscreen size.  The Virtual Desktop is panned in one of two ways, either
Xby executing one of the \fBf.scroll\fP commands or by using the panner.
X.PP
XThe panner is a special window that shows a miniature view of windows
Xon the desktop.  The small windows in the panner will have the same
Xcolors as the titlebars and icons of their associated client 
Xwindows.  The panner is very simply to operate.  Mouse button one
Xpressed inside the panner allows you to move the outline indicating
Xyour current view on the desktop.  Releasing the button will reposition
Xthe desktop to the point at which the outline is displayed.
XMouse button two
Xpressed in one of the small ``virtual'' windows allows you to move 
Xthe small window to another portion of the desktop.  If during
Xthe move operation, you would like to place the window in your
Xcurrent view of the desktop, simply moving the pointer out of
Xthe panner will result in the window outline changing from the
Xsmall outline to a large outline showing the dimensions of the 
Xclient window.  The converse is true of any move operation
Xstarted outside of the panner:  if the pointer is moved into
Xthe panner window, the outline will change to a small outline 
Xallowing you to place the window anywhere on the desktop.
XAnother feature of the panner is that if you resize it, the 
XVirtual Desktop will resize a corresponding amount.  During
Xthe resize, the dimensions shown reflect the
XVirtual Desktop size.
X.PP
XThere are two hints that client windows may use when asking the
Xwindow manager to position top level windows:  User Specified
XPosition (USPosition) and Program Specified Position (PPosition).
X\fItvtwm\fP handles each of these two hints in a different manner.
XIf USPosition hints are set, the window will be placed at the
Xpixel location requested.  If PPosition hints are set, the window
Xwill be placed at the requested location plus the offsets 
Xof the current Virtual Desktop position.  For example, if the
Xdesktop is positioned at +100+300 and a window is mapped at
X+100+100 with PPosition hints set, the window would be placed
Xat +200+400 on the Virtual Desktop.
X.PP
XAlong with the Virtual Desktop comes a concept called ``sticky''
Xwindows.  Sticky windows can be thought of as stuck to the glass
Xof the display.  Sticky windows do not scroll when the desktop
Xis scrolled.  Sticky windows are also always above non-sticky 
Xwindows, they cannot be lowered behind non-sticky windows.
X.SH VARIABLES
X.PP
XMany of the aspects of \fItwm\fP's user interface are controlled by variables
Xthat may be set in the user's startup file.  Some of the options are
Xenabled or disabled simply by the presence of a particular keyword.  Other
Xoptions require keywords, numbers, strings, or lists of all of these.
X.PP
XLists are surrounded by braces and are usually separated by
Xwhitespace or a newline.  For example:
X.EX 0
X\fBAutoRaise\fP { "emacs" "XTerm" "Xmh" }
X.EE
Xor
X.EX 0
X\fBAutoRaise\fP
X{
X	"emacs"
X	"XTerm"
X	"Xmh"
X}
X.EE
XWhen a variable containing a list of strings representing windows is searched 
X(e.g. to determine whether or not to enable autoraise as shown above), a string
Xis considered to match a window if it is a case-sensitive prefix for
Xthe window's name name (given by the WM_NAME window property), resource name 
Xor class name (both given by the WM_CLASS window property).  The preceding
Xexample would enable autoraise on windows named ``emacs'' as well as any
X\fIxterm\fP (since they are of class ``XTerm'') or xmh windows 
X(which are of class ``Xmh'').
X.PP
XString arguments that are interpreted as filenames (see the \fBPixmaps\fP,
X\fBCursors\fP, and \fBIconDirectory\fP below) will 
Xprepend the user's directory
X(specified by the \fBHOME\fP environment variable) if the first character is a
Xtilde (~).  If, instead, the first character is a colon (:), the name is
Xassumed to refer to one of the internal bitmaps that are used to
Xcreate the default titlebars symbols:  \fB:xlogo\fP 
Xor \fB:iconify\fP (both refer to the
XX used for the iconify button), \fB:resize\fP (the nested squares used by the
Xresize button), and \fB:question\fP (the question mark used for non-existent
Xbitmap files).
X.PP
XThe following variables may be specified at the top of a \fItwm\fP startup
Xfile.  Lists of Window name prefix strings are indicated by \fIwin-list\fP.
XOptional arguments are shown in square brackets:
X.IP "\fBAutoRaise\fP { \fIwin-list\fP }" 8
XThis variable specifies a list of windows that should automatically be
Xraised whenever the pointer enters the window.  This action can be
Xinteractively
Xenabled or disabled on individual windows using the function \fBf.autoraise\fP.
X.IP "\fBAutoRelativeResize\fP" 8
XThis variable indicates that dragging out a window size (either when
Xinitially sizing the window with pointer Button2 or when resizing it) 
Xshould not wait until the pointer has crossed the window edges.
XInstead, moving
Xthe pointer automatically causes the nearest edge or edges to move by the
Xsame amount.  This allows allows the resizing windows that extend off 
Xthe edge of the screen.
XIf the pointer is
Xin the center of the window, or if the resize is begun by pressing a 
Xtitlebutton, \fItwm\fP will still wait for the pointer to cross a window
Xedge (to prevent accidents).  This option is
Xparticularly useful for people who like the press-drag-release method of
Xsweeping out window sizes.
X.IP "\fBBorderColor\fP \fIstring\fP [{ \fIwincolorlist\fP }]" 8
XThis variable specifies the default color of the border to be placed around 
Xall 
Xnon-iconified windows, and may only be given within a \fBColor\fP or 
X\fBMonochrome\fP list.  The optional \fIwincolorlist\fP specifies a list
Xof window and color name pairs for specifying particular border colors for
Xdifferent types of windows.  For example:
X.EX 0
X\fBBorderColor\fP "gray50"
X{
X	"XTerm"	"red"
X	"xmh"	"green"
X}
X.EE
XThe default is "black".
X.IP "\fBBorderTileBackground\fP \fIstring\fP [{ \fIwincolorlist\fP }]" 8
XThis variable specifies the default background color in the gray pattern 
Xused in unhighlighted borders (only if \fBNoHighlight\fP hasn't been set),
Xand may only be given within a \fBColor\fP or \fBMonochrome\fP list.  The
Xoptional \fIwincolorlist\fP allows per-window colors to be specified.
XThe default  is "black".
X.IP "\fBBorderTileForeground\fP \fIstring\fP [{ \fIwincolorlist\fP }]" 8
XThis variable specifies the default foreground color in the gray pattern
Xused in unhighlighted borders (only
Xif \fBNoHighlight\fP hasn't been set), and may only be given within a 
X\fBColor\fP or \fBMonochrome\fP list.  The optional \fIwincolorlist\fP allows
Xper-window colors to be specified.  The default is "white".
X.IP "\fBBorderWidth\fP \fIpixels\fP" 8
XThis variable specifies the width in pixels of the border surrounding
Xall client window frames if \fBClientBorderWidth\fP has not been specified.
XThis value is also used to set the border size of windows created by \fItwm\fP
X(such as the icon manager).  The default is 2.
X.IP "\fBButtonIndent\fP \fIpixels\fP" 8
XThis variable specifies the amount by which titlebuttons should be 
Xindented on all sides.  Positive values cause the buttons to be smaller than
Xthe window text and highlight area so that they stand out.  Setting this
Xand the \fBTitleButtonBorderWidth\fP variables to 0 makes titlebuttons be as
Xtall and wide as possible.  The default is 1.
X.IP "\fBClientBorderWidth\fP" 8
XThis variable indicates that border width of a window's frame should be set to
Xthe initial border width of the window, rather than to the value of
X\fBBorderWidth\fP.
X.IP "\fBColor\fP { \fIcolors-list\fP }" 8
XThis variable specifies a list of color assignments to be made if the default
Xdisplay is capable of displaying more than simple black and white.  The
X\fIcolors-list\fP is made up of the following color variables and their values:
X\fBDefaultBackground\fP,
X\fBDefaultForeground\fP,
X\fBMenuBackground\fP,
X\fBMenuForeground\fP,
X\fBMenuTitleBackground\fP,
X\fBMenuTitleForeground\fP, and
X\fBMenuShadowColor\fP.
X\fBVirtualDesktopBackground\fP.
X\fBVirtualDesktopForeground\fP.
X\fBPannerBackground\fP.
X\fBPannerForeground\fP.
XThe following
Xcolor variables may also be given a list of window and color name pairs to
Xallow per-window colors to be specified (see \fBBorderColor\fP for details):
X\fBBorderColor\fP,
X\fBIconManagerHighlight\fP,
X\fBBorderTitleBackground\fP,
X\fBBorderTitleForeground\fP,
X\fBTitleBackground\fP,
X\fBTitleForeground\fP,
X\fBIconBackground\fP,
X\fBIconForeground\fP,
X\fBIconBorderColor\fP,
X\fBIconManagerBackground\fP, and
X\fBIconManagerForeground\fP.
XFor example:
X.EX 0
X\fBColor\fP
X{
X	MenuBackground		"gray50"
X	MenuForeground		"blue"
X	BorderColor			"red" { "XTerm" "yellow" }
X	TitleForeground		"yellow"
X	TitleBackground		"blue"
X}
X.EE
XAll of these color variables may also be specified for the \fBMonochrome\fP 
Xvariable, allowing the same initialization file to be used on both color and
Xmonochrome displays.
X.IP "\fBConstrainedMoveTime\fP \fImilliseconds\fP" 8
XThis variable specifies the length of time between button clicks needed to
Xbegin
Xa constrained move operation.  Double clicking within this amount
Xof time when invoking \fBf.move\fP will cause the window only be moved 
Xin a horizontal or vertical direction.  Setting this value to 0 will disable
Xconstrained moves.  The default is 400 milliseconds.
X.IP "\fBCursors\fP { \fIcursor-list\fP }" 8
XThis variable specifies the glyphs that \fItwm\fP should use for various
Xpointer cursors.  Each cursor
Xmay be defined either from the \fBcursor\fP font or from two bitmap files.
XShapes from the \fBcursor\fP font may be specified directly as:
X.EX 0
X	\fIcursorname\fP	"\fIstring\fP"
X.EE
Xwhere \fIcursorname\fP is one of the cursor names listed below, and
X\fIstring\fP is the name of a glyph as found in the file
X/usr/include/X11/cursorfont.h (without the ``XC_'' prefix).
XIf the cursor is to be defined
Xfrom bitmap files, the following syntax is used instead:
X.EX 0
X	\fIcursorname\fP	"\fIimage\fP"	"\fImask\fP"
X.EE
XThe \fIimage\fP and \fImask\fP strings specify the names of files containing
Xthe glyph image and mask in \fIbitmap(1)\fP form.
XThe bitmap files are located in the same manner as icon bitmap files.
XThe following example shows the default cursor definitions:
X.EX 0
X\fBCursors\fP
X{
X	Frame		"top_left_arrow"
X	Title		"top_left_arrow"
X	Icon		"top_left_arrow"
X	IconMgr	"top_left_arrow"
X	Move		"fleur"
X	Resize		"fleur"
X	Menu		"sb_left_arrow"
X	Button		"hand2"
X	Wait		"watch"
X	Select		"dot"
X	Destroy	"pirate"
X}
X.EE
X.IP "\fBDecorateTransients\fP" 8
XThis variable indicates that transient windows (those containing a 
XWM_TRANSIENT_FOR property) should have titlebars.  By default, transients 
Xare not reparented.
X.IP "\fBDefaultBackground\fP \fIstring\fP" 8
XThis variable specifies the background color to be used for sizing and
Xinformation windows.  The default is "white".
X.IP "\fBDefaultForeground\fP \fIstring\fP" 8
XThis variable specifies the foreground color to be used for sizing and
Xinformation windows.  The default is "black".
X.IP "\fBDontIconifyByUnmapping\fP { \fIwin-list\fP }" 8
XThis variable specifies a list of windows that should not be iconified by
Xsimply unmapping the window (as would be the case if \fBIconifyByUnmapping\fP
Xhad been set).  This is frequently used to force some windows to be treated
Xas icons while other windows are handled by the icon manager.
X.IP "\fBDontMoveOff\fP" 8
XThis variable indicates that windows should not be allowed to be moved off the
Xscreen.  It can be overridden by the \fBf.forcemove\fP function.
X.IP "\fBDontSqueezeTitle\fP [{ \fIwin-list\fP }] " 8
XThis variable indicates that titlebars should not be squeezed to their 
Xminimum size as described under \fBSqueezeTitle\fP below.
XIf the optional window list is supplied, only those windows will be
Xprevented from being squeezed.
X.IP "\fBForceIcons\fP" 8
XThis variable indicates that icon pixmaps specified in the \fBIcons\fP
Xvariable should override any client-supplied pixmaps.
X.IP "\fBFramePadding\fP \fIpixels\fP" 8
XThis variable specifies the distance between the titlebar decorations (the
Xbutton and text) and the window frame.  The default is 2 pixels.
X.IP "\fBIconBackground\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the background color of icons, and may
Xonly be specified inside of a \fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.  See the \fBBorderColor\fP
Xvariable for a complete description of the \fIwin-list\fP.
XThe default is "white".
X.IP "\fBIconBorderColor\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the color of the border used for icon windows, and
Xmay only be specified inside of a \fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.  See the \fBBorderColor\fP
Xvariable for a complete description of the \fIwin-list\fP. 
XThe default is "black".
X.IP "\fBIconBorderWidth\fP \fIpixels\fP" 8
XThis variable specifies the width in pixels of the border surrounding
Xicon windows.  The default is 2.
X.IP "\fBIconDirectory\fP \fIstring\fP" 8
XThis variable specifies the directory that should be searched if 
Xif a bitmap file cannot be found in any of the directories
Xin the \fBbitmapFilePath\fP resource.
X.IP "\fBIconFont\fP \fIstring\fP" 8
XThis variable specifies the font to be used to display icon names within
Xicons.  The default is "8x13".
X.IP "\fBIconForeground\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the foreground color to be used when displaying icons,
Xand may only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.  See the \fBBorderColor\fP
Xvariable for a complete description of the \fIwin-list\fP.
XThe default is "black".
X.IP "\fBIconifyByUnmapping [{ \fIwin-list\fP }]\fP" 8
XThis variable indicates that windows should be iconified by being unmapped
Xwithout trying to map any icons.  This assumes that the user is will 
Xremap the window through the icon manager, the \fBf.warpto\fP function, or
Xthe \fITwmWindows\fP menu.
XIf the optional \fIwin-list\fP is provided, only those windows will be
Xiconified by simply unmapping.  Windows that have both this and the
X\fBIconManagerDontShow\fP options set may not be accessible if no binding
Xto the \fITwmWindows\fP menu is set in the user's startup file.
X.IP "\fBIconManagerBackground\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the background color to use for icon manager entries,
Xand may only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.  See the \fBBorderColor\fP
Xvariable for a complete description of the \fIwin-list\fP.
XThe default is "white".
X.IP "\fBIconManagerDontShow\fP [{ \fIwin-list\fP }]" 8
XThis variable indicates that the icon manager should not display any
Xwindows.  If the optional \fIwin-list\fP is given, only those windows will
Xnot be displayed.  This variable is used to prevent windows that are rarely
Xiconified (such as \fIxclock\fP or \fIxload\fP) from taking up space in
Xthe icon manager.
X.IP "\fBIconManagerFont\fP \fIstring\fP" 8
XThis variable specifies the font to be used when displaying icon manager
Xentries.  The default is "8x13".
X.IP "\fBIconManagerForeground\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the foreground color to be used when displaying
Xicon manager entries, and may only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.  See the \fBBorderColor\fP
Xvariable for a complete description of the \fIwin-list\fP.
XThe default is "black".
X.IP "\fBIconManagerGeometry\fP \fIstring\fP [ \fIcolumns\fP ]" 8
XThis variable specifies the geometry of the icon manager window.  The 
X\fIstring\fP argument is standard geometry specification that indicates 
Xthe initial full size of the icon manager.  The icon manager window is
Xthen broken into \fIcolumns\fP pieces and scaled according to the number
Xof entries in the icon manager.  Extra entries are wrapped to form
Xadditional rows.  The default number of columns is 1.
X.IP "\fBIconManagerHighlight\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the border color to be used when highlighting
Xthe icon manager entry that currently has the focus,
Xand can only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.  See the \fBBorderColor\fP
Xvariable for a complete description of the \fIwin-list\fP.
XThe default is "black".
X.IP "\fBIconManagers\fP { \fIiconmgr-list\fP }" 8
XThis variable specifies a list of icon managers to create.  Each item in the
X\fIiconmgr-list\fP has the following format:
X.EX 0
X	"\fIwinname\fP" ["\fIiconname\fP"]	"\fIgeometry\fP" \fIcolumns\fP
X.EE
Xwhere \fIwinname\fP is the name of the windows that should be put into this
Xicon manager, \fIiconname\fP is the name of that icon manager window's icon, 
X\fIgeometry\fP is a standard geometry specification, and \fIcolumns\fP is
Xthe number of columns in this icon manager as described in
X\fBIconManagerGeometry\fP.  For example:
X.EX 0
X\fBIconManagers\fP
X{
X	"XTerm"	"=300x5+800+5"	5
X	"myhost"	"=400x5+100+5"	2
X}
X.EE
XClients whose name or class is ``XTerm'' will have an entry created
Xin the ``XTerm'' icon manager.  Clients whose name was ``myhost'' would
Xbe put into the ``myhost'' icon manager.
X.IP "\fBIconManagerShow\fP { \fIwin-list\fP }" 8
XThis variable specifies a list of windows that should appear in the icon
Xmanager.  When used in conjunction with the \fBIconManagerDontShow\fP
Xvariable, only the windows in this list will be shown in the icon manager.
X.IP "\fBIconRegion\fP \fIgeomstring\fP \fIvgrav hgrav gridwidth gridheight\fP"
XThis variable specifies an area on the root window in which icons are placed
Xif no specific icon location is provided by the client.  The \fIgeomstring\fP
Xis a quoted string containing a standard geometry specification.
XIf more than one
X\fBIconRegion\fP lines are given,
Xicons will be put into the succeeding icon regions when the first is full.
XThe \fIvgrav\fP argument should be either \fBNorth\fP or \fBSouth\fP and
Xcontrol and is used to control whether icons are first filled in from the
Xtop or bottom of the icon region.  Similarly, the \fIhgrav\fP argument should
Xbe either \fBEast\fP or \fBWest\fP and is used to control whether icons should
Xbe filled in from left from the right.  Icons are laid out within the region
Xin a grid with cells \fIgridwidth\fP pixels wide and \fIgridheight\fP pixels 
Xhigh.
X.IP "\fBIcons\fP { \fIwin-list\fP }" 8
XThis variable specifies a list of window names and the bitmap filenames that
Xshould be used as their icons.  For example:
X.EX 0
X\fBIcons\fP
X{
X	"XTerm"	"xterm.icon"
X	"xfd"		"xfd_icon"
X}
X.EE
XWindows that match ``XTerm'' and would not be iconified by unmapping, and 
Xwould try to use 
Xthe icon bitmap in the file ``xterm.icon''.  If \fBForceIcons\fP is
Xspecified, this bitmap will be used even if the client has requested its
Xown icon pixmap.
X.IP "\fBInterpolateMenuColors\fP" 8
XThis variable indicates that menu entry colors should be interpolated between
Xentry specified colors.  In the example below:
X.EX 0
X\fBMenu\fP "mymenu"
X{
X	"Title"		("black":"red")		f.title
X	"entry1"				f.nop
X	"entry2"				f.nop
X	"entry3"	("white":"green")	f.nop
X	"entry4"				f.nop
X	"entry5"	("red":"white")		f.nop
X}
X.EE
Xthe foreground colors for ``entry1'' and ``entry2'' will be interpolated
Xbetween black and white, and the background colors between red and green.
XSimilarly, the foreground for ``entry4'' will be half-way between white and
Xred, and the background will be half-way between green and white.
X.IP "\fBMakeTitle\fP { \fIwin-list\fP }" 8
XThis variable specifies a list of windows on which a titlebar should be placed
Xand is used to request titles on specific windows when \fBNoTitle\fP has been
Xset.
X.IP "\fBMaxWindowSize\fP \fIstring\fP" 8
XThis variable specifies a geometry in which the width and height
Xgive the maximum size for a given window.  This is typically used to 
Xrestrict windows to the size of the screen.  The default is "30000x30000".
X.IP "\fBMenuBackground\fP \fIstring\fP" 8
XThis variable specifies the background color used for menus,
Xand can only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.  The default is "white".
X.IP "\fBMenuFont\fP \fIstring\fP" 8
XThis variable specifies the font to use when displaying menus.  The default
Xis "8x13".
X.IP "\fBMenuForeground\fP \fIstring\fP" 8
XThis variable specifies the foreground color used for menus,
Xand can only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.  The default is "black".
X.IP "\fBMenuShadowColor\fP \fIstring\fP" 8
XThis variable specifies the color of the shadow behind pull-down menus
Xand can only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.  The default is "black".
X.IP "\fBMenuTitleBackground\fP \fIstring\fP" 8
XThis variable specifies the background color for \fBf.title\fP entries in
Xmenus, and
Xcan only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.  The default is "white".
X.IP "\fBMenuTitleForeground\fP \fIstring\fP" 8
XThis variable specifies the foreground color for \fBf.title\fP entries in
Xmenus and
Xcan only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.  The default is "black".
X.IP "\fBMonochrome\fP { \fIcolors\fP }" 8
XThis variable specifies a list of color assignments that should be made if
Xthe screen has a depth of 1.  See the description of \fBColors\fP.
X.IP "\fBMoveDelta\fP \fIpixels\fP" 8
XThis variable specifies the number of pixels the pointer
Xmust move before the \fBf.move\fP function starts working.  Also
Xsee the \fBf.deltastop\fP function.  The default is zero pixels.
X.IP "\fBNoBackingStore\fP" 8
XThis variable indicates that \fItwm\fP's menus should not request backing
Xstore to minimize repainting of menus.  This is typically
Xused with servers that can repaint faster than they can handle backing store.
X.IP "\fBNoCaseSensitive\fP" 8
XThis variable indicates that case should be ignored when sorting icon names
Xin an icon manager.  This option is typically used with applications that 
Xcapitalize the first letter of their icon name.
X.IP "\fBNoDefaults\fP" 8
XThis variable indicates that \fItwm\fP should not supply the default 
Xtitlebuttons and bindings.  This option should only be used if the startup
Xfile contains a completely new set of bindings and definitions.
X.IP "\fBNoGrabServer\fP" 8
XThis variable indicates that \fItwm\fP should not grab the server
Xwhen popping up menus and moving opaque windows.
X.IP "\fBNoHighlight\fP [{ \fIwin-list\fP }]" 8
XThis variable indicates that borders should not be highlighted to track the
Xlocation of the pointer.  If the optional \fIwin-list\fP is given, highlighting
Xwill only be disabled for those windows.
XWhen the border is highlighted, it will
Xbe drawn in the current \fBBorderColor\fP.  When the border is not
Xhighlighted, it will be stippled with an gray pattern using the
Xcurrent \fBBorderTileForeground\fP and \fBBorderTileBackground\fP colors.
X.IP "\fBNoIconManagers\fP" 8
XThis variable indicates that no icon manager should be created.
X.IP "\fBNoMenuShadows\fP" 8
XThis variable indicates that menus should not have drop shadows drawn behind
Xthem.  This is typically used with slower servers since it speeds up menu
Xdrawing at the expense of making the menu slightly harder to read.
X.IP "\fBNoRaiseOnDeiconify\fP" 8
XThis variable indicates that windows that are deiconified should not be 
Xraised.
X.IP "\fBNoRaiseOnMove\fP" 8
XThis variable indicates that windows should not be raised when moved.  This
Xis typically used to allow windows to slide underneath each other.
X.IP "\fBNoRaiseOnResize\fP" 8
XThis variable indicates that windows should not be raised when resized.  This
Xis typically used to allow windows to be resized underneath each other.
X.IP "\fBNoRaiseOnWarp\fP" 8
XThis variable indicates that windows should not be raised when the pointer
Xis warped into them with the \fBf.warpto\fP function.  If this option is set,
Xwarping to an occluded window may result in the pointer ending up in the
Xoccluding window instead the desired window (which causes unexpected behavior
Xwith \fBf.warpring\fP). 
X.IP "\fBNoSaveUnders\fP" 8
XThis variable indicates that menus should not request save-unders to minimize
Xwindow repainting following menu selection.  It is typically used with displays
Xthat can repaint faster than they can handle save-unders.
X.IP "\fBNoStackMode\fP [{ \fIwin-list\fP }]" 8
XThis variable indicates that client window requests to change stacking order 
Xshould be ignored.  If the optional \fIwin-list\fP is given, only requests on 
Xthose windows will be ignored.  This is typically used to prevent applications
Xfrom relentlessly popping themselves to the front of the window stack.
X.IP "\fBNoTitle\fP [{ \fIwin-list\fP }] " 8
XThis variable indicates that windows should not have titlebars.  If the 
Xoptional \fIwin-list\fP is given, only those windows will not have titlebars.
X\fBMakeTitle\fP may be used with this option to force titlebars to be put
Xon specific windows.
X.IP "\fBNoTitleFocus\fP" 8
XThis variable indicates that \fItwm\fP should not set keyboard input focus to
Xeach window as it is entered.  Normally, \fItwm\fP sets the focus
Xso that focus and key events from the titlebar and
Xicon managers are delivered to the application.  If the pointer is moved
Xquickly and \fItwm\fP is slow to respond, input can be directed to the old
Xwindow instead of the new.  This option is typically
Xused to prevent this ``input lag'' and to 
Xwork around bugs in older applications that have problems with focus events.
X.IP "\fBNoTitleHighlight\fP [{ \fIwin-list\fP }]" 8
XThis variable indicates that the highlight area of the titlebar, which is
Xused to indicate the window that currently has the input focus, should not
Xbe displayed.  If the optional \fIwin-list\fP is given, only those windows
Xwill not have highlight areas.  This and the \fBSqueezeTitle\fP options
Xcan be set to substantially reduce the amount of screen space required by
Xtitlebars.
X.IP "\fBOpaqueMove\fP" 8
XThis variable indicates that the \fBf.move\fP function should actually move
Xthe window instead of just an outline so that the user can immediately see
Xwhat the window will look like in the new position.  This option is typically
Xused on fast displays (particularly if \fBNoGrabServer\fP is set).
X.IP "\fBPannerBackgroundPixmap\fP \fIstring\fP" 8
XThis variable specifies the filename of a bitmap file to be
Xused as the background image of the panner.  The 
X\fBPannerBackground\fP and \fBPannerForeground\fP
Xcolors are used when constructing the background.
X.IP "\fBPannerGeometry\fP \fIstring\fP" 8
XThis variable specifies the position of the Virtual Desktop panner.
XThe default geometry is "-0-0".
X.IP "\fBPannerScale\fP \fIscale\fP" 8
XThis variable specifies that scale of the Virtual Desktop Panner
Xin relation to the actual screen.  The default scale is 20.
X.IP "\fBPannerState\fP \fIstring\fP" 8
XThis variable specifies the initial state of the Virtual Desktop
Xpanner window.  Possible initial state values include
X"normal", "iconic", or "withdrawn".  The default initial state is
X"normal".
X.IP "\fBPixmaps\fP { \fIpixmaps\fP }" 8
XThis variable specifies a list of pixmaps that define the appearance of various
Ximages.  Each entry is a keyword indicating the pixmap to set, followed by a 
Xstring giving the name of the bitmap file.  The following pixmaps 
Xmay be specified:
X.EX 0
X\fBPixmaps\fP
X{
X	TitleHighlight	"gray1"
X}
X.EE
XThe default for \fITitleHighlight\fP is to use an even stipple pattern.
X.IP "\fBRandomPlacement\fP" 8
XThis variable indicates that windows with no specified geometry should should
Xbe placed in a pseudo-random location instead of having the user drag out
Xan outline.
X.IP "\fBResizeFont\fP \fIstring\fP" 8
XThis variable specifies the font to be used for in the dimensions window when
Xresizing windows.  The default is "fixed".
X.IP "\fBRestartPreviousState\fP" 8
XThis variable indicates that 
X\fItwm\fP should attempt to use the WM_STATE property on client windows
Xto tell which windows should be iconified and which should be left visible.
XThis is typically used to make try to regenerate the state that the screen
Xwas in before the previous window manager was shutdown.
X.IP "\fBShowIconManager\fP" 8
XThis variable indicates that the icon manager window should be displayed when
X\fItwm\fP is started.  It can always be brought up using the
X\fBf.showiconmgr\fP function.
X.IP "\fBSortIconManager\fP" 8
XThis variable indicates that entries in the icon manager should be 
Xsorted alphabetically rather than by simply appending new windows to 
Xthe end.
X.IP "\fBSqueezeTitle\fP [{ \fIsqueeze-list\fP }] " 8
XThis variable indicates that \fItwm\fP should attempt to use the SHAPE
Xextension to make titlebars occupy only as much screen space as they need,
Xrather than extending all the way across the top of the window.
XThe optional \fIsqueeze-list\fP
Xmay be used to control the location of the squeezed titlebar along the
Xtop of the window.  It contains entries of the form:
X.EX 0
X	"\fIname\fP"		\fIjustification\fP	\fInum\fP	\fIdenom\fP
X.EE
Xwhere \fIname\fP is a window name, \fIjustification\fP is either \fBleft\fP,
X\fBcenter\fP, or \fBright\fP, and \fInum\fP and \fIdenom\fP
Xare numbers specifying a ratio giving the relative position about which
Xthe titlebar is justified.  The ratio is measured from left to right if
Xthe numerator is positive, and right to left if negative.  A denominator
Xof 0 indicates that the numerator should be measured in pixels.  For 
Xconvenience, the ratio 0/0 is the same as 1/2 for \fBcenter\fP and -1/1
Xfor \fBright\fP.  For example:
X.EX 0
X\fBSqueezeTitle\fP
X{
X	"XTerm"	left		0	0
X	"xterm1"	left		1	3
X	"xterm2"	left		2	3
X	"oclock"	center		0	0
X	"emacs"	right		0	0
X}
X.EE
XThe \fBDontSqueezeTitle\fP list can be used to turn off squeezing on 
Xcertain titles.
X.IP "\fBStartIconified\fP [{ \fIwin-list\fP }] " 8
XThis variable indicates that client windows should initially be left as
Xicons until explicitly deiconified by the user.  If the optional \fIwin-list\fP
Xis given, only those windows will be started iconic.  This is useful for
Xprograms that do not support an \fI-iconic\fP command line option or
Xresource.
X.IP "\fBSticky\fP [{ \fIwin-list\fP }]" 8
XThis variable is a list of client windows that will be sticky
Xby default.  See the \fBVIRTUAL DESKTOP\fP section for a full
Xdescription of sticky windows.
X.IP "\fBTitleBackground\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the background color used in titlebars,
Xand may only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.
XThe default is "white".
X.IP "\fBTitleButtonBorderWidth\fP \fIpixels\fP" 8
XThis variable specifies the width in pixels of the border surrounding
Xtitlebuttons.  This is typically set to 0 to allow titlebuttons to take up as
Xmuch space as possible and to not have a border.
XThe default is 1.
X.IP "\fBTitleFont\fP \fIstring\fP" 8
XThis variable specifies the font to used for displaying window names in
Xtitlebars.  The default is "8x13".
X.IP "\fBTitleForeground\fP \fIstring\fP [{ \fIwin-list\fP }]" 8
XThis variable specifies the foreground color used in titlebars, and
Xmay only be specified inside of a 
X\fBColor\fP or \fBMonochrome\fP list.
XThe optional \fIwin-list\fP is a list of window names and colors so that
Xper-window colors may be specified.
XThe default is "black".
X.IP "\fBTitlePadding\fP \fIpixels\fP" 8
XThis variable specifies the distance between the various buttons, text, and
Xhighlight areas in the titlebar.  The default is 8 pixels.
X.IP "\fBUnknownIcon\fP \fIstring\fP" 8
XThis variable specifies the filename of a bitmap file to be
Xused as the default icon.  This bitmap will be used as the icon of all
Xclients which do not provide an icon bitmap and are not listed
Xin the \fBIcons\fP list.
X.IP "\fBUsePPosition\fP \fIstring\fP" 8
XThis variable specifies whether or not \fItwm\fP should honor 
Xprogram-requested locations (given by the \fBPPosition\fP flag in the
XWM_NORMAL_HINTS property) in the absence of a user-specified position.
XThe argument \fIstring\fP may have one of three values:  \fB"off"\fP
X(the default) 
Xindicating that \fItwm\fP
Xshould ignore the program-supplied position, 
X\fB"on"\fP indicating that the position
Xshould be used, and 
X\fB"non-zero"\fP indicating that the position should used if
Xit is other than (0,0).  The latter option is for working around a bug in 
Xolder toolkits.
X.IP "\fBVirtualDesktop\fP \fIstring\fP" 8
XThis variable enables the Virtual Desktop feature and specifies
Xthe initial size of the desktop in pixels.
XThe size is specified as a standard geometry string.
XIf the width and height values are smaller than the width and
Xheight of the physical display, they are defaulted to two times
Xthe width or height.  So to get a 2x2 sized Virtual Desktop
Xacross all platforms, one could use the string "1x1" to enable
Xthe desktop.
X.IP "\fBVirtualDesktopBackgroundPixmap\fP \fIstring\fP" 8
XThis variable specifies the filename of a bitmap file to be
Xused as the background image of the Virtual Desktop.  The 
X\fBVirtualDesktopBackground\fP and \fBVirtualDesktopForeground\fP
Xcolors are used when constructing the background.
X.IP "\fBWarpCursor\fP [{ \fIwin-list\fP }]" 8
XThis variable indicates that the pointer should be warped into windows when
Xthey are deiconified.  If the optional \fIwin-list\fP is given, the pointer
Xwill only be warped when those windows are deiconified.
X.IP "\fBWindowRing\fP { \fIwin-list\fP }" 8
XThis variable specifies a list of windows along which the \fBf.warpring\fP 
Xfunction cycles.
X.IP "\fBWarpUnmapped\fP" 8
XThis variable indicates that that the \fBf.warpto\fP function should deiconify
Xany iconified windows it encounters.  This is typically used to make a key
Xbinding that will pop a particular window (such as \fIxmh\fP), no matter
Xwhere it is.  The default is for \fBf.warpto\fP to ignore iconified windows.
X.IP "\fBXorValue\fP \fInumber\fP" 8
XThis variable specifies the value to use when drawing window outlines for
Xmoving and resizing.  This should be set to a value that will result in a 
Xvariety of
Xof distinguishable colors when exclusive-or'ed with the contents of the
Xuser's typical screen.  Setting this variable to 1 often gives nice results
Xif adjacent colors in the default colormap are distinct.  By default, 
X\fItwm\fP will attempt to cause temporary lines to appear at the opposite 
Xend of the colormap from the graphics.
X.IP "\fBZoom\fP [ \fIcount\fP ]" 8
XThis variable indicates that outlines suggesting movement of a window
Xto and from its iconified state should be displayed whenever a window is
Xiconified or deiconified.  The optional \fIcount\fP argument specifies the
Xnumber of outlines to be drawn.  The default count is 8.
X.PP
XThe following variables must be set after the fonts have been
Xassigned, so it is usually best to put them at the end of the variables
Xor beginning of the bindings sections:
X.IP "\fBDefaultFunction\fP \fIfunction\fP" 8
XThis variable specifies the function to be executed when a key or button
Xevent is received for which no binding is provided.  This is typically
Xbound to \fBf.nop\fP, \fBf.beep\fP, or a menu containing window operations.
X.IP "\fBWindowFunction\fP \fIfunction\fP" 8
XThis variable specifies the function to execute when a window is selected 
Xfrom the \fBTwmWindows\fP menu.  If this variable is not set, the window
Xwill be deiconified and raised.
X.SH BINDINGS
X.PP
XAfter the desired variables have been set, functions may be attached 
Xtitlebuttons and key and pointer buttons.  Titlebuttons may be added
Xfrom the left or right side and appear in the titlebar from left-to-right 
Xaccording to the
Xorder in which they are specified.  Key and pointer button
Xbindings may be given in any order.
X.PP
XTitlebuttons specifications must include the name of the pixmap to use in
Xthe button box and the function to be invoked when a pointer button is 
Xpressed within them:
X.EX 0
X\fBLeftTitleButton\fP "\fIbitmapname\fP"	= \fIfunction\fP
X.EE
Xor
X.EX 0
X\fBRightTitleButton\fP "\fIbitmapname\fP"	= \fIfunction\fP
X.EE
XThe \fIbitmapname\fP may refer to one of the  built-in bitmaps
X(which are scaled to match \fBTitleFont\fP) by using the appropriate
Xcolon-prefixed name described above.
X.PP
XKey and pointer button specifications must give the modifiers that must
Xbe pressed, over which parts of the screen the pointer must be, and what
Xfunction is to be invoked.  Keys are given as strings containing the 
Xappropriate
Xkeysym name; buttons are given as the keywords \fBButton1\fP-\fBButton5\fP:
X.EX 0
X"FP1"		= \fImodlist\fP : \fIcontext\fP : \fIfunction\fP
X\fBButton1\fP	= \fImodlist\fP : \fIcontext\fP : \fIfunction\fP
X.EE
XThe \fImodlist\fP is any combination of the modifier names \fBshift\fP,
X\fBcontrol\fP, \fBlock\fP, \fBmeta\fP, \fBmod1\fP, \fBmod2\fP, \fBmod3\fP,
X\fBmod4\fP, or \fBmod1\fP (which may be abbreviated as 
X\fBs\fP, \fBc\fP, \fBl\fP, \fBm\fP, \fBm1\fP, \fBm2\fP, \fBm3\fP, \fBm4\fP, 
X\fBm5\fP, respectively) separated by a vertical bar (\(or).
XSimilarly, the \fIcontext\fP is any combination of 
X\fBwindow\fP,
X\fBtitle\fP,
X\fBicon\fP,
X\fBroot\fP,
X\fBframe\fP,
X\fBiconmgr\fP, their first letters (\fBiconmgr\fP abbreviation is \fBm\fP),
Xor \fBall\fP,
Xseparated by a vertical bar.  The \fIfunction\fP is any of the \fBf.\fP 
Xkeywords described below.  For example, the default startup
Xfile contains the following bindings:
X.EX 0
XButton1	=	: root		: f.menu "TwmWindows"
XButton1	= m	: window | icon	: f.function "move-or-lower"
XButton2	= m	: window | icon	: f.iconify
XButton3	= m	: window | icon	: f.function "move-or-raise"
XButton1	=	: title		: f.function "move-or-raise"
XButton2	=	: title		: f.raiselower
XButton1	=	: icon		: f.function "move-or-iconify"
XButton2	=	: icon		: f.iconify
XButton1	=	: iconmgr	: f.iconify
XButton2	=	: iconmgr	: f.iconify
X.EE
XA user who wanted to be able to manipulate windows from the keyboard could
Xuse the following bindings:
X.EX 0
X"F1"		=	: all		: f.iconify
X"F2"		=	: all		: f.raiselower
X"F3"		=	: all		: f.warpring "next"
X"F4"		=	: all		: f.warpto "xmh"
X"F5"		=	: all		: f.warpto "emacs"
X"F6"		=	: all		: f.colormap "next"
X"F7"		=	: all		: f.colormap "default"
X"F20"		=	: all		: f.warptoscreen "next"
X"Left"		= m	: all		: f.backiconmgr
X"Right"	= m | s	: all		: f.forwiconmgr
X"Up"		= m	: all		: f.upiconmgr
X"Down"	= m | s	: all		: f.downiconmgr
X.EE
X\fITwm\fP provides many more window manipulation primitives than can be
Xconveniently stored in a titlebar, menu, or set of key bindings.  Although
Xa small set of defaults are supplied (unless the \fBNoDefaults\fP is 
Xspecified), most users will want to have their most common operations
Xbound to key and button strokes.  To do this, \fItwm\fP associates names
Xwith each of the primitives and provides \fIuser-defined functions\fP for
Xbuilding higher level primitives and \fImenus\fP for interactively selecting 
Xamong groups of functions. 
X.PP
XUser-defined functions contain the name by which they are referenced in
Xcalls to \fBf.function\fP and a list of other functions to execute.  For
Xexample:
X.EX 0
XFunction "move-or-lower"	{ f.move f.deltastop f.lower }
XFunction "move-or-raise"	{ f.move f.deltastop f.raise }
XFunction "move-or-iconify"	{ f.move f.deltastop f.iconify }
XFunction "restore-colormap"	{ f.colormap "default" f.lower }
X.EE
XThe function name must be used in \fBf.function\fP exactly as it appears in 
Xthe function specification.
X.PP
XIn the descriptions below, if the function is said to operate on the selected
Xwindow, but is invoked from a root menu, the cursor will be changed to
Xthe \fBSelect\fP cursor and the next window to receive a button press will
Xbe chosen:
X.IP "\fB!\fP \fIstring\fP" 8
XThis is an abbreviation for \fBf.exec\fP \fIstring\fP.
X.\"OBSOLETE - use a clipboard client
X.\".IP "\fB^\fP \fIstring\fP" 8
X.\"This is an abbreviation for \fBf.cut\fP \fIstring\fP.
X.IP "\fBf.autoraise\fP" 8
XThis function toggles whether or not the selected window is raised whenever
Xentered by the pointer.  See the description of the variable \fBAutoRaise\fP.
X.IP "\fBf.backiconmgr\fI" 8
XThis function warps the pointer to the previous column in the 
Xcurrent icon manager, wrapping back to the previous row if necessary.
X.IP "\fBf.beep\fP" 8
XThis function sounds the keyboard bell.
X.IP "\fBf.bottomzoom\fP" 8
XThis function is similar to the \fBf.fullzoom\fP function, but
Xresizes the window to fill only the bottom half of the screen.
X.IP "\fBf.circledown\fP" 8
XThis function lowers the top-most window that occludes another window.
X.IP "\fBf.circleup\fP" 8
XThis function raises the bottom-most window that is occluded by another window.
X.IP "\fBf.colormap\fP \fIstring\fP" 8
XThis function rotates the colormaps (obtained from the WM_COLORMAP_WINDOWS
Xproperty on the window) that \fItwm\fP will display when the pointer
Xis in this window.  The argument \fIstring\fP may have one of the following 
Xvalues: \fB"next"\fP, \fB"prev"\fP, and \fB"default"\fP.
X.\"OBSOLETE - should go away and use a clipboard.
X.\".IP "\fBf.cut\fP \fIstring\fP" 8
X.\"This function places the specified \fIstring\fP (followed by a newline
X.\"character) into the root window property CUT_BUFFER0.  
X.\".IP "\fBf.cutfile\fP" 8
X.\"This function reads the file indicated by the contents of the CUT_BUFFER0
X.\"window property and replaces the cut buffer.
X.IP "\fBf.deiconify\fP" 8
XThis function deiconifies the selected window.  If the window is not an icon, 
Xthis function does nothing.
X.IP "\fBf.delete\fP" 8
XThis function sends the WM_DELETE_WINDOW message to the selected window if
Xthe client application has requested it through the WM_PROTOCOLS window
Xproperty.  The application is supposed to respond to the message by removing
Xthe indicated window.  If the window has not requested
XWM_DELETE_WINDOW messages, the keyboard bell will be rung indicating that 
Xthe user should choose an alternative method.
X.IP "\fBf.deltastop\fP" 8
XThis function allows a user-defined function to be aborted if the pointer has 
Xbeen moved more than \fIMoveDelta\fP pixels.  See the example definition
Xgiven for \fBFunction "move-or-raise"\fP at the beginning of the section.
X.IP "\fBf.destroy\fP" 8
XThis function instructs the X server to close the display connection of the
Xclient that created the selected window.  This should only be used as a last 
Xresort for shutting down runaway clients.  
X.IP "\fBf.downiconmgr\fI" 8
XThis function warps the pointer to the next row in the current icon manger,
Xwrapping to the beginning of the next column if necessary.
X.IP "\fBf.exec\fP \fIstring\fP" 8
XThis function passes the argument \fIstring\fP to /bin/sh for execution.
XIn multiscreen mode, if \fIstring\fP starts a new X client without
Xgiving a display argument, the client will appear on the screen from
Xwhich this function was invoked.
X.\".IP "\fBf.file\fP \fIstring\fP" 8
X.\"This function assumes \fIstring\fP is a file name.  This file is read into
X.\"the window server's cut buffer.
X.IP "\fBf.focus\fP" 8
XThis function toggles the keyboard focus of the server to the
Xselected window, changing the focus rule from pointer-driven if necessary.
XIf the selected window already was focused, this function executes an
X\fBf.unfocus\fP.  
X.IP "\fBf.forcemove\fP" 8
XThis function is like \fBf.move\fP except that it ignores the \fBDontMoveOff\fP
Xvariable.
X.IP "\fBf.forwiconmgr\fI" 8
XThis function warps the pointer to the next column in the current icon
Xmanager, wrapping to the beginning of the next row if necessary.
X.IP "\fBf.fullzoom\fP" 8
XThis function resizes the selected window to the full size of the display or
Xelse restores the original size if the window was already zoomed.
X.IP "\fBf.function\fP \fIstring\fP" 8
XThis function executes the user-defined function whose name is specified
Xby the argument \fIstring\fP.  
X.IP "\fBf.hbzoom\fP" 8
XThis function is a synonym for \fBf.bottomzoom\fP.
X.IP "\fBf.hideiconmgr\fP" 8
XThis function unmaps the current icon manager.
X.IP "\fBf.horizoom\fP" 8
XThis variable is similar to the \fBf.zoom\fP function except that the 
Xselected window is resized to the full width of the display.
X.IP "\fBf.htzoom\fP" 8
XThis function is a synonym for \fBf.topzoom\fP.
X.IP "\fBf.hzoom\fP" 8
XThis function is a synonym for \fBf.horizoom\fP.
X.IP "\fBf.iconify\fP" 8
XThis function iconifies or deiconifies the selected window or icon, 
Xrespectively.
X.IP "\fBf.identify\fP" 8
XThis function displays a summary of the name and geometry of the
Xselected window.  Clicking the pointer or pressing a key in the window
Xwill dismiss it.
X.IP "\fBf.lefticonmgr\fI" 8
XThis function similar to \fBf.backiconmgr\fP except that wrapping does not
Xchange rows.
X.IP "\fBf.leftzoom\fP" 8
XThis variable is similar to the \fBf.bottomzoom\fP function but causes
Xthe selected window is only resized to the left half of the display.
X.IP "\fBf.lower\fP" 8
XThis function lowers the selected window.
X.IP "\fBf.menu\fP \fIstring\fP" 8
XThis function invokes the menu specified by the argument \fIstring\fP.
XCascaded menus may be built by nesting calls to \fBf.menu\fP.
X.IP "\fBf.move\fP" 8
XThis function drags an outline of the selected window (or the window itself
Xif the \fBOpaqueMove\fP variable is set) until the invoking pointer button
Xis released.  Double clicking within the number of milliseconds given by
X\fBConstrainedMoveTime\fP warps
Xthe pointer to the center of the window and
Xconstrains the move to be either horizontal or vertical depending on which
Xgrid line is crossed.
XTo abort a move, press another button before releasing the
Xfirst button.
X.IP "\fBf.nexticonmgr\fI" 8
XThis function warps the pointer to the next icon manager containing any windows
Xon the current or any succeeding screen.
X.IP "\fBf.nop\fP" 8
XThis function does nothing and is typically used with the \fBDefaultFunction\fP
Xor \fBWindowFunction\fP variables or to introduce blank lines in menus.
X.IP "\fBf.panner\fI" 8
XThis function toggles the display of the panner window.
X.IP "\fBf.previconmgr\fI" 8
XThis function warps the pointer to the previous icon manager containing any
Xwindows on the current or preceding screens.
X.IP "\fBf.quit\fP" 8
XThis function causes \fItwm\fP to restore the window's borders and exit.  If
X\fItwm\fP is the first client invoked from \fIxdm\fP, this will result in a
Xserver reset.
X.IP "\fBf.raise\fP" 8
XThis function raises the selected window.
X.IP "\fBf.raiselower\fP" 8
XThis function raises the selected window to the top of the stacking order if
Xit is occluded by any windows, otherwise the window will be lowered.
X.IP "\fBf.refresh\fP" 8
XThis function causes all windows to be refreshed.
X.IP "\fBf.resize\fP" 8
XThis function displays an outline of the selected window.  Crossing a border
X(or setting \fBAutoRelativeResize\fP) will cause the outline to begin to 
Xrubber band until the invoking button is released.  To abort a resize,
Xpress another button before releasing the first button.
X.IP "\fBf.restart\fP" 8
XThis function kills and restarts \fItwm\fP.
X.IP "\fBf.righticonmgr\fI" 8
XThis function is similar to \fBf.nexticonmgr\fP except that wrapping does
Xnot change rows.
X.IP "\fBf.rightzoom\fP" 8
XThis variable is similar to the \fBf.bottomzoom\fP function except that
Xthe selected window is only resized to the right half of the display.
X.IP "\fBf.saveyourself\fP" 8
XThis function sends a WM_SAVEYOURSELF message to the selected window if it
Xhas requested the message in its WM_PROTOCOLS window property.  Clients that
Xaccept this message are supposed to checkpoint all state associated with the
Xwindow and update the WM_COMMAND property as specified in the ICCCM.  If
Xthe selected window has not selected for this message, the keyboard bell
Xwill be rung.
X.IP "\fBf.scrolldown\fP" 8
XThis function scrolls the Virtual Desktop down one screenful.
X.IP "\fBf.scrollhome\fP" 8
XThis function scrolls the Virtual Desktop to the home location.
X.IP "\fBf.scrollleft\fP" 8
XThis function scrolls the Virtual Desktop left one screenful.
X.IP "\fBf.scrollright\fP" 8
XThis function scrolls the Virtual Desktop right one screenful.
X.IP "\fBf.scrollup\fP" 8
XThis function scrolls the Virtual Desktop up one screenful.
X.IP "\fBf.showiconmgr\fP" 8
XThis function maps the current icon manager.
X.IP "\fBf.sorticonmgr\fP" 8
XThis function sorts the entries in the current icon manager alphabetically.
XSee the variable \fBSortIconManager\fP.
X.\".IP "\fBf.source\fP \fIstring\fP" 8
X.\"This function assumes \fIstring\fP is a file name.  The file is read 
X.\"and parsed as a \fItwm\fP startup file.
X.\"This
X.\"function is intended to be used only to re-build pull-down menus.  None
X.\"of the \fItwm\fP variables are changed.
X.IP "\fBf.stick\fP" 8
XThis funtion toggles making a window sticky.
X.IP "\fBf.title\fP" 8
XThis function provides a centered, unselectable item in a menu definition.  It
Xshould not be used in any other context.
X.IP "\fBf.topzoom\fP" 8
XThis variable is similar to the \fBf.bottomzoom\fP function except that 
Xthe selected window is only resized to the top half of the display.
X.\".IP "\fBf.twmrc\fP" 8
X.\"This function causes the startup customization file to be re-read.  This
X.\"function is exactly like the \fBf.source\fP function without having to
X.\"specify the filename.
X.IP "\fBf.unfocus\fP" 8
XThis function resets the focus back to pointer-driven.  This should be used
Xwhen a focused window is no longer desired.
X.IP "\fBf.upiconmgr\fI" 8
XThis function warps the pointer to the previous row in the current icon
Xmanager, wrapping to the last row in the same column if necessary.
X.\".IP "\fBf.version\fI" 8
X.\"This function causes the \fItwm\fP version window to be displayed.  This
X.\"window will be displayed until a pointer button is pressed or the
X.\"pointer is moved from one window to another.
X.IP "\fBf.vlzoom\fP" 8
XThis function is a synonym for \fBf.leftzoom\fP.
X.IP "\fBf.vrzoom\fP" 8
XThis function is a synonym for \fBf.rightzoom\fP.
X.IP "\fBf.warpring\fP \fIstring\fP" 8
XThis function warps the pointer to the next or previous window (as indicated
Xby the argument \fIstring\fP, which may be \fB"next"\fP or \fB"prev"\fP) 
Xspecified in the \fBWindowRing\fP variable.
X.IP "\fBf.warpto\fP \fIstring\fP" 8
XThis function warps the pointer to the window which has a name or class 
Xthat matches \fIstring\fP.  If the window is iconified, it will be deiconified
Xif the variable \fBWarpUnmapped\fP is set or else ignored.  In addition
Xto warpping the pointer to the window the Virtual Desktop
Xwill be scrolled to the logical quadrant that contains the window.
X.IP "\fBf.warptoiconmgr\fP \fIstring\fP" 8
XThis function warps the pointer to the icon manager entry 
Xassociated with the window containing the pointer in the icon manager
Xspecified by the argument \fIstring\fP.  If \fIstring\fP is empty (i.e. ""),
Xthe current icon manager is chosen.
X.IP "\fBf.warptoscreen\fP \fIstring\fP" 8
XThis function warps the pointer to the screen specified by the
Xargument \fIstring\fP.  \fIString\fP may be a number (e.g. \fB"0"\fP or
X\fB"1"\fP), the word \fB"next"\fP (indicating the current screen plus 1,
Xskipping over any unmanaged screens), 
Xthe word \fB"back"\fP (indicating the current screen minus 1, skipping over
Xany unmanaged screens), or the word
X\fB"prev"\fP (indicating the last screen visited.
X.IP "\fBf.winrefresh\fP" 8
XThis function is similar to the \fBf.refresh\fP function except that only the
Xselected window is refreshed.
X.IP "\fBf.zoom\fP" 8
XThis function is similar to the \fBf.fullzoom\fP function, except that
Xthe only the height of the selected window is changed.
X.SH MENUS
X.PP
XFunctions may be grouped and interactively selected using pop-up
X(when bound to a pointer button) or pull-down (when associated
Xwith a titlebutton) menus.  Each menu specification contains the name of the 
Xmenu as it will be referred to by \fBf.menu\fP, optional default 
Xforeground and background colors, the list of item names and the functions
Xthey should invoke, and optional foreground and background colors for 
Xindividual items:
X.EX 0
X\fBMenu\fP "\fImenuname\fP" [ ("\fIdeffore\fP":"\fIdefback\fP") ]
X{
X	\fIstring1\fP	[ ("\fIfore1\fP":"\fIbackn\fP")]	\fIfunction1\fP
X	\fIstring2\fP	[ ("\fIfore2\fP":"\fIbackn\fP")]	\fIfunction2\fP
X		.
X		.
X		.
X	\fIstringN\fP	[ ("\fIforeN\fP":"\fIbackN\fP")]	\fIfunctionN\fP
X}
X.EE
X.PP
XThe \fImenuname\fP is case-sensitive.
XThe optional \fIdeffore\fP and \fIdefback\fP arguments specify the foreground
Xand background colors used on a color display 
Xto highlight menu entries.
XThe \fIstring\fP portion
Xof each menu entry will be the text which will appear in the menu.
XThe optional \fIfore\fP and \fIback\fP arguments specify the foreground
Xand background colors of the menu entry when the pointer is not in
Xthe entry.  These colors will only be used on a color display.  The
Xdefault is to use the colors specified by the 
X\fBMenuForeground\fP and \fBMenuBackground\fP variables.
XThe \fIfunction\fP portion of the menu entry is one of the functions,
Xincluding any user-defined functions, or additional menus.
X.PP
XThere is a special menu named \fBTwmWindows\fP which contains the names of
Xall of the client and \fItwm\fP-supplied windows.  Selecting an entry will
Xcause the
X\fBWindowFunction\fP to be executed on that window.  If \fBWindowFunction\fP
Xhasn't been set, the window will be deiconified and raised.  If the Virtual
XDesktop is enabled, the desktop will also be scrolled to the logical quadrant
Xthat contains the windows.
X.SH ICONS
X\fITwm\fP supports several different ways of manipulating iconified windows.
XThe common pixmap-and-text style may be laid out by hand or automatically
Xarranged as described by the \fBIconRegion\fP variable.  In addition, a
Xterse grid of icon names, called an icon manager, provides a more efficient
Xuse of screen space as well as the ability to navigate among windows from
Xthe keyboard.
X.PP
XAn icon manager is a window that contains names of selected or all
Xwindows currently on the display.  In addition to the window name,
Xa small button using the default iconify symbol will be displayed to the 
Xleft of the name when the window is iconified.  By default, clicking on an 
Xentry in the icon manager performs \fBf.iconify\fP.
XTo change the actions taken in the icon manager, use the 
Xthe \fBiconmgr\fP context when specifying button and keyboard bindings.
X.PP
XMoving the pointer into the icon manager also directs keyboard focus to
Xthe indicated window (setting the focus explicitly or else sending synthetic
Xevents \fBNoTitleFocus\fP is set).
XUsing the \fBf.upiconmgr\fP, \fBf.downiconmgr\fP
X\fBf.lefticonmgr\fP, and
X\fBf.righticonmgr\fP functions,
Xthe input focus can be changed between windows directly from the keyboard.
X.SH BUGS
XThe resource manager should have been used instead of all of the window
Xlists.
X.PP
XThe \fBIconRegion\fP variable should take a list.
X.PP
XDouble clicking very fast to get the constrained move function will sometimes
Xcause the window to move, even though the pointer is not moved.
X.PP
XIf \fBIconifyByUnmapping\fP is on and windows are listed in 
X\fBIconManagerDontShow\fP but not in \fBDontIconifyByUnmapping\fP, 
Xthey may be lost if they are iconified and no bindings to 
X\fBf.menu "TwmWindows"\fP or \fBf.warpto\fP are setup.
X.SH FILES
X.PP
X.nf
X $HOME/.twmrc.<screen number>
X $HOME/.twmrc
X /usr/lib/X11/twm/system.twmrc
X.fi
X.SH "ENVIRONMENT VARIABLES"
X.IP "DISPLAY" 8
XThis variable is used to determine which X server to use.  It is also set
Xduring \fBf.exec\fP so that programs come up on the proper screen.
X.IP "HOME" 8
XThis variable is used as the prefix for files that begin with a tilde and
Xfor locating the \fItwm\fP startup file.
X.SH "SEE ALSO"
X.PP
XX(1), Xserver(1), xdm(1), xrdb(1)
X.SH COPYRIGHT
XPortions copyright 1988 Evans & Sutherland Computer Corporation; portions
Xcopyright 1989 Hewlett-Packard Company and the Massachusetts Institute of
XTechnology,  See \fIX(1)\fP for a full statement of rights and permissions.
X.SH AUTHORS
XTom LaStrange, Solbourne Computer; Jim Fulton, MIT X Consortium;
XSteve Pitschke, Stardent Computer; Keith Packard, MIT X Consortium;
XDave Payne, Apple Computer.
X.PP
XVirtual Desktop added by Tom LaStrange, Solbourne Computer.
SHAR_EOF
if test 63393 -ne "`wc -c < tvtwm.man`"
then
    echo shar: error transmitting "tvtwm.man" '(should have been 63393 characters)'
fi
fi
# end of shell archive
exit 0

dan
----------------------------------------------------
O'Reilly && Associates   argv@sun.com / argv@ora.com
Opinions expressed reflect those of the author only.