.de EX \"Begin example .ne 5 .if n .sp 1 .if t .sp .5 .nf .in +.5i .. .de EE .fi .in -.5i .if n .sp 1 .if t .sp .5 .. .ta .3i .6i .9i 1.2i 1.5i 1.8i .TH TWM 1 "7 March 1989" "X Version 11" .SH NAME .PP twm - a window manager for X11 (Tom's Window Manager) .PP .SH SYNTAX .PP \fBtwm \fP[-display \fIdisplay\fP] [-singlescreen] [-f \fIinitfile\fP ] .PP .SH DESCRIPTION .PP \fITwm\fP is a window manager for the X Window System. Some of its special features include: title bars, several forms of icon management, user-defined macro functions, click-to-type and pointer-driven keyboard focus, and user-specified pointer and key bindings. .PP By default, application windows are surrounded by a ``frame'' consisting of a title bar at the top and a special border around the window. The title bar contains the window's name, a rectangle that is lit when the window is receiving keyboard input, and several function ``buttons''. .PP Pressing the left-most button in the title bar (which looks like an X in a box) causes the window to be iconified. In addition to the common picture and text style of icons (with manual or automatic layout), \fItwm\fP supports menus-oriented lists of windows called ``icon managers'' that use less screen space and are easier to manipulate. .PP Pressing the right-most button (which looks like a group of nested squares) and touching one or more edges of the window while the button is still down causes a rubber band representing the outline of the window to appear. When the button is released, the window will be resized to fit the rubber band. .SH OPTIONS .PP .IP "\fB-display\fP \fIdisplay\fP Specifies the X server to contact. .IP "\fB-singlescreen\fP" Indicates that only a single screen should be managed by \fItwm\fP. By default, \fItwm\fP attempts to manage each unmanaged screen of the specified display. .SH CUSTOMIZATION .PP Much of \fItwm\fP's appearance and operation may be customized. When \fItwm\fP starts executing, it will use the first file that it finds in the list below for each screen of the display: .TP 8 .B "$HOME/.twmrc.\fIscreennumber\fP" The \fIscreennumber\fP is a small positive number (e.g. 0, 1, etc.) representing the screen number (e.g. the last number in the DISPLAY environment variable \fIhost:displaynum.screennum\fP) that would be used to contact that screen of the display. .TP 8 .B "$HOME/.twmrc" If no special handling is desired for multi-screen displays, the user's startup file should be named \fI.twmrc\fP in the home directory. .TP 8 .B "/usr/lib/X11/twm/system.twmrc" If neither of the preceeding files are found, \fItwm\fP will look for a default configuration. This is often tailored by the site administrator to provide convenient menus or familiar bindings for novice users. .PP The \fItwm\fP startup file has three logical sections: the variables section, the buttons section, and the menus section. The variables section must come first, followed by either the buttons section or the menus section. .PP All variables and keywords may be entered in any combination of upper and lower case letters. Functions must be entered in lower case. A pound sign (#) character in the startup file indicates a comment which is terminated by the newline character. A \fIstring\fP in the startup file is a series of characters enclosed by double quotes. .PP .SH VARIABLES SECTION .PP Variables must be entered first, at the top of the startup file. Variables are initialized only once, when \fItwm\fP begins execution. They will not be affected when a subsequent \fBf.twmrc\fP function is executed. It is probably a good idea to initialize the color variables first. .PP Several variables take filenames as arguments. Filenames are processed as follows. \fItwm\fP checks to see if the first character in the filename is a tilde (~), if it is, \fItwm\fP prepends the user's \fBHOME\fP environment variable to the filename. In the case of variables requiring bitmap files, if the above expansion does not produce a path to a valid bitmap file, the following steps are taken. If the \fBIconDirectory\fP variable has been set, and the filename does not start with a slash (/), the \fBIconDirectory\fP variable is prepended to the filename. If that path does not produce a valid bitmap file, the string "/usr/include/X11/bitmaps/" is prepended to the original filename. .PP The following describes the \fItwm\fP variables: .IP "\fBAutoRaise\fP { \fIlist\fP }" 8 This variable is a list of window names that will automatically raise to the top of the stacking order whenever the pointer enters the window. See also the \fBf.autoraise\fP action below. The window names in the list are the first characters in the window name to check for. For example: .EX 0 \fBAutoRaise\fP { "xterm" "xclock" } .EE The above list contains two names which will match window names beginning with the string "xterm" or "xclock". The following window names will match and be in auto-raise mode: "xterm", "xterm_iguana", "xclock". .IP "\fBAutoRelativeResize\fP" 8 This variable instructs \fItwm\fP to automatically begin rubberbanding whenever resizing is done, rather than waiting for the pointer to cross a window boundary. When a window is initially mapped, pressing Button2 with this option enabled will cause the rubber band to appear with the lower right hand corner attached to the pointer (as if the lower right hand corner of the window had been crossed). Similarly, when resizing an already mapped window, this option causes the rubberbanding to begin immediately with the closest end or corner. If the resize is started in the center of the window, \fItwm\fP will wait for the pointer to cross an edge even if this option is set. .IP "\fBBorderColor\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the color of the border to placed around all non-iconified windows. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The \fIstring\fP specifies the default color, the optional list contains window names and colors so that client specific colors can be specified. For example: .EX 0 \fBBorderColor\fP "red" { "xclock" "blue" "xterm" "green" } .EE This example specifies a default border color of red and a border color of blue for all windows named "xclock" and a border color of green for all windows named "xterm". The default is "black". .IP "\fBBorderTileForeground\fP \fIstring\fP [ { \fIlist\fP} ]" 8 This variable sets the foreground color of the "grey" bitmap used in non-highlighted borders. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "black". .IP "\fBBorderTileBackground\fP \fIstring\fP [ { \fIlist\fP} ]" 8 This variable sets the background color of the "grey" bitmap used in non-highlighted borders. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "white". .IP "\fBBorderWidth\fP \fIpixels\fP" 8 This variable specifies the width in pixels of of the border surrounding all windows. The default is 2. .IP "\fBButtonIndent\fP \fIpixels\fP" 8 This variable specifies the amount by which title bar buttons should be indented on all size. Positive values cause the buttons to be smaller than the window text and highlight area. The default is 1. .IP "\fBClientBorderWidth\fP" 8 This variable causes \fItwm\fP to use a window's border width for the border width of the frame. The \fIBorderWidth\fP variable is still used for the borders of windows created by \fItwm\fP. .IP "\fBColor\fP { \fIcolors\fP }" 8 This variable is a list of color assignments to be made if the default display has a depth greater than one, or in other words, has the ability to display more than black and white. For example: .EX 0 \fBColor\fP { BorderColor "red" TitleForeground "yellow" TitleBackground "blue" } .EE The various color variables may be found in this section of the manual page. There is also a \fBMonochrome\fP list of colors that may be specified. This enables you to use the same initialization file on a color or monochrome display. .IP "\fBConstrainedMoveTime\fP \fImilliseconds\fP" 8 This variable specifies the length of time between button clicks when beginning a constrained move operation. This value should be set to 0 to disable constrained moves. The default is 400 milliseconds. .IP "\fBCursors\fP { \fIcursors\fP }" 8 This variable is a list of cursors that define the appearance of the pointer cursor while it is in the various \fItwm\fP windows. Each cursor may be defined either from the \fBcursor\fP font or from two bitmap files. If the desired cursor shape is in the \fBcursor\fP font, then the syntax of the cursor entry is as follows: .EX 0 \fICursor\fP "\fIstring\fP" .EE Where \fICursor\fP is one of the cursor names listed below, and \fIstring\fP is the name of the cursor from the \fBcursor\fP font. Valid cursor font names may be found in the file /usr/include/X11/cursorfont.h. Simply remove the "XC_" prefix from an entry in cursorfont.h and use the remaining string to select the cursor shape. If the cursor is to be defined from bitmap files then the syntax for a cursor entry is as follows: .EX 0 \fICursor\fP "\fIimage\fP" "\fImask\fP" .EE Where \fICursor\fP is again, one of the cursor names listed below. The \fIimage\fP parameter is the image bitmap of the cursor. The \fImask\fP parameter is the mask bitmap for the cursor which defines which pixels in the \fIimage\fP bitmap will be displayed. The bitmap files are searched for in the same manner as icon bitmap files. The following example shows the default cursor definitions and where and/or when the cursor is displayed: .EX 0 \fBCursors\fP { Frame "top_left_arrow" # window frame Title "top_left_arrow" # title bar Icon "top_left_arrow" # icon IconMgr "top_left_arrow" # icon managers Move "fleur" # during window movement Resize "fleur" # during window resizing Menu "sb_left_arrow" # in a pop up menu Button "center_ptr" # in title and iconmgr buttons Wait "watch" # when twm is busy Select "dot" # waiting to select a window Destroy "pirate" # following f.destroy } .EE .IP "\fBDecorateTransients\fP" 8 This variable causes \fItwm\fP to put a title bar on transient windows. By default, transient windows will not be re-parented. .IP "\fBDefaultFunction\fP \fIfunction\fP" 8 This variable defines a default window manager function to be performed if no function is assigned to a combination of modifier keys and mouse buttons. A useful function to execute might be \fBf.beep\fP. .IP "\fBDontIconifyByUnmapping\fP { \fIlist\fP }" 8 This variable is a list of windows to not iconify by simply unmapping the window. This may be used when specifying \fBIconifyByUnmapping\fP to selectively choose windows that will iconify by mapping an icon window. .IP "\fBDontMoveOff\fP" 8 If this variable is set, windows will not be allowed to be moved off the display. .IP "\fBForceIcons\fP" 8 This variable is only meaningful if a \fBIcons\fP list is defined. It forces the icon bitmaps listed in the \fBIcons\fP list to be used as window icons even if client programs supply their own icons. The default is to not force icons. .IP "\fBFramePadding\fP \fIpixels\fP" 8 This variable specifies the distance between the title bar decorations (the button and text) and the window frame. The default is 2 pixels. .IP "\fBIcons\fP { \fIlist\fP }" 8 This variable is a list of window names and bitmap filenames to be used as icons. For example: .EX 0 \fBIcons\fP { "xterm" "xterm.icon" "xfd" "xfd_icon" } .EE The names "xterm" and "xfd" are added to a list that is searched when the client window is reparented by \fItwm\fP. The window names specified are just the first portion of the name to match. In the above example, "xterm" would match "xtermfred" and also "xterm blob". The client window names are checked against those specified in this list in addition to the class name of the client if it is specified. By using the class name, all xterm windows can be given the same icon by the method used above even though the names of the windows may be different. .IP "\fBIconBackground\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the background color of icons. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "white". .IP "\fBIconBorderColor\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the color of the border around icons. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "black". .IP "\fBIconDirectory\fP \fIstring\fP" 8 This variable names the directory in which to search for icon bitmap files. The default is to have no icon directory. .IP "\fBIconFont\fP \fIstring\fP" 8 This variable names the font to be displayed within icons. The default is "8x13". .IP "\fBIconForeground\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the foreground color of icons. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "black". .IP "\fBIconifyByUnmapping [ { \fIlist\fP } ]\fP" 8 This variable causes \fItwm\fP to iconify windows by simply unmapping them. The icon window will not be made visible. The optional \fIlist\fP is a list of window names to iconify by unmapping. This \fIlist\fP may be used if only certain windows need to be iconified in this manner. This variable can be used in conjunction with the \fBDontIconifyByUnmapping\fP list. The default is to iconify by unmapping the window and mapping a seperate icon window. .IP "\fBIconManagerBackground\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the background color for icon manager entries. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "white". .IP "\fBIconManagerDontShow\fP [ { \fIlist\fP } ]" 8 If this variable is specified alone, no windows will appear in the icon manager. The optional \fIlist\fP is a list of window names that will not be displayed in the icon manager window. This may be useful in specifying windows that are rarely iconified such as "xclock." .IP "\fBIconManagerFont\fP \fIstring\fP" 8 This variable names the font to be displayed within icon managers. The default is "8x13". .IP "\fBIconManagerForeground\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the foreground color for icon manager entries. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "black". .IP "\fBIconManagerGeometry\fP \fIstring\fP [ \fIcolumns\fP ]" 8 This variable sets the geometry of the icon manager window. The \fIstring\fP is of the form: .nf \fI=x{+-}{+-}\fP .fi The height of the icon manager window is not very important because the height of the window will be changing as windows are created and destroyed. The optional \fIcolumns\fP argument is the number of columns to display in the icon manager. The width of each column will be the width of the icon manager window divided by the number of columns. The default number of columns is one. .IP "\fBIconManagerHighlight\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the highlight color for the icon manager entries. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "black". .IP "\fBIconManagers\fP { \fIlist\fP }" 8 This variable is a list of icon managers to create. Each item in the \fIlist\fP has the following format: .nf "\fIname\fP" ["\fIicon name\fP"] "\fIgeometry\fP" \fIcolumns\fP .fi The \fIname\fP field is a double-quoted string containing the name of this icon manager. The \fIname\fP will be used to match client applications to a specific icon manager. For example: .EX 0 \fBIconManagers\fP { "XTerm" "=300x5+800+5" 5 "myhost" "=400x5+100+5" 2 } .EE This sample will create two new icon managers called "XTerm" and "myhost". Client programs whose name or class is "XTerm" will have an entry created in the "XTerm" icon manager. Likewise with clients named "myhost". If you were to create an xterm that had a name of "myhost". It would be placed in the "myhost" icon manager rather than the "XTerm" icon manager. The optional argument \fIicon name\fP specifies the name to be associated with the icon when the icon manager is iconified. The geometry is a standard X geometry string which will provide the position and the size of the icon manager. The \fIcolumns\fP argument is the number of columns to display in the icon manager. A column's width will be the width of the icon manager divided by the number of columns. .IP "\fBIconManagerShow\fP { \fIlist\fP }" 8 This variable is a list of windows you wish to appear in the icon manager. When used in conjunction with the \fBIconManagerDontShow\fP variable, only windows in this list will be shown in the icon manager. .IP "\fBIconRegion\fP ``geometry'' grav-a grav-b x-space y-space" This is more a command than a variable, as multiple IconRegions may be specified. An IconRegion is an area of the root window in which icons are placed if no specific position is given. grav-a specifies the way in which icons are placed in the area, NORTH gravity attempts to bunch icons at the top of the window, similarly for the other 3 cardinal directions. grav-b specifies a secondary ordering, and should be orthogonal to grav-a. x-space and y-space create a grid within the icon region which icons are bound to, this tends to organize the icons in neat rows/columns. .IP "\fBInterpolateMenuColors\fP" 8 This variable causes menu entry colors to be interpolated between entry specified colors. For example: .EX 0 \fBMenu\fP "foo" { "Title" ("black":"red") f.title "entry1" f.nop "entry2" f.nop "entry3" ("white":"green") f.nop "entry4" f.nop "entry5" ("red":"white") f.nop } .EE If \fBInterpolateMenuColors\fP had been specified, "entry1", and "entry2" would have forground colors interpolated between black and white and a background colors interpolated from red to green. The entry named entry4 would have a forground color half way between white and red and a background color half way between green and white. .IP "\fBMakeTitle\fP { \fIlist\fP }" 8 This variable is a list of windows on which a title bar should be placed. This variable, used in conjunction with the \fBNoTitle\fP variable enables you to create a list of windows which will have a title bar. .IP "\fBMenuBackground\fP \fIstring\fP" 8 This variable sets the background color of menus. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The default is "white". .IP "\fBMenuFont\fP \fIstring\fP" 8 This variable names the font to be displayed within menus. The default is "8x13". .IP "\fBMenuForeground\fP \fIstring\fP" 8 This variable sets the foreground color of menus. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The default is "black". .IP "\fBMenuShadowColor\fP \fIstring\fP" 8 This variable sets the color of the shadow behind pull-down menus. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The default is "black". .IP "\fBMenuTitleBackground\fP \fIstring\fP" 8 This variable sets the background color for \fBf.title\fP entries in menus. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The default is "white". .IP "\fBMenuTitleForeground\fP \fIstring\fP" 8 This variable sets the foreground color for \fBf.title\fP entries in menus. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The default is "black". .IP "\fBMonochrome\fP { \fIcolors\fP }" 8 This variable is a list of color assignments to be made if the default display has a depth equal to one, or in other words can only display black and white pixels. For example: .EX 0 \fBMonochrome\fP { BorderColor "black" TitleForeground "black" TitleBackground "white" } .EE The various color variables may be found in this section of the manual page. There is also a \fBColor\fP list of colors that may be specified. This enables you to use the same initialization file on a color or monochrome display. .IP "\fBMoveDelta\fP \fIpixels\fP" 8 This variable is the number of pixels the pointer must move before the \fBf.move\fP function starts working. The default is zero pixels. .IP "\fBNoBackingStore\fP" 8 \fItwm\fP menus attempt to use backing store to minimize menu repainting. If your server has implemented backing store but you would rather not use this feature, this variable will disable \fItwm\fP from using backing store. .IP "\fBNoGrabServer\fP" 8 If this variable is specified, \fItwm\fP will not grab the server when performing certain operations. By default, \fItwm\fP will grab the server when necessary. .IP "\fBNoHighlight\fP [ { \fIlist\fP } ]" 8 This variable turns off border highlighting. An optional list may be specified with window names to selectively turn off border highlighting. The default is to highlight the borders of all windows when the cursor enters the window. When the border is highlighted, it will be drawn in the current \fBBorderColor\fP. When the border is not highlighted, it will be rendered with a "grey" bitmap using the current \fBBorderTileForeground\fP and \fBBorderTileBackground\fP colors. .IP "\fBNoMenuShadows\fP" 8 If this variable is specified, menus will not have shadows drawn behind them. This options speeds up drawing of menus, which is useful for slower machines. .IP "\fBNoRaiseOnDeiconify\fP" 8 If this variable is specified, windows will not be raised to the top of the stacking order when de-iconified. .IP "\fBNoRaiseOnMove\fP" 8 If this variable is specified, windows will not be raised to the top of the stacking order following a move. .IP "\fBNoRaiseOnResize\fP" 8 If this variable is specified, windows will not be raised to the top of the stacking order following a resize. .IP "\fBNoSaveUnder\fP" 8 \fItwm\fP menus attempt to use save unders to minimize window repainting following menu selections. If your server has implemented save unders but you would rather not use this feature, this variable will disable \fItwm\fP from using save unders. .IP "\fBNoTitle\fP [ { \fIlist\fP } ] " 8 This variable is a list of window names that will NOT have a title bar created for them. If \fBNoTitle\fP is specified with no window name list, \fItwm\fP will not put title bars on any windows. The list of windows and how they match window names is exactly like the \fBAutoRaise\fP variable described above. .IP "\fBNoTitleFocus\fP" 8 If this variable is specified, input focus will not be directed to windows when the pointer is in the title bar. The default is to focus input to a client when the pointer is in the title bar. .IP "\fBNoTitleHighlight\fP [ { \fIlist\fP } ]" 8 This variable turns off title bar highlighting. An optional list may be specified with window names to selectively turn off title bar highlighting. The default is to highlight the title bar of all windows when the cursor enters the window. .IP "\fBNoVersion\fP" 8 This variable tells \fItwm\fP to not display the version window when starting up. The default is to display a window containing the version number when \fItwm\fP finishes initialization. If this variable is set, it is still possible to see the version window by using the \fBf.version\fP function. .IP "\fBOpaqueMove\fP" 8 This variable causes the \fBf.move\fP function to drag the window around on the display rather than an outline of the window. .IP "\fBPixmaps\fP { \fIpixmaps\fP }" 8 This variable is a list of pixmaps that define the appearance of various images. Each entry is a keyword indicating which pixmap to set followed by a string giving the name of the bitmap file. The following pixmaps may be specified: .EX 0 \fBPixmaps\fP { TitleHighlight "gray1" # for title highlight window } .EE The default for \fITitleHighlight\fP is to use a set of horizontal stripes (but, a gray pattern is much better for interlaced monitors). .IP "\fBRandomPlacement\fP" 8 This causes windows with no specified geometry to be placed on the display in a random (kind of) position when they are created. The default is to allow the user to position the window interactively. .IP "\fBResizeFont\fP \fIstring\fP" 8 This variable names the font to be displayed in the dimensions window during window resize operations. The default is "fixed". .IP "\fBRestartPreviousState\fP" 8 This causes \fItwm\fP to attempt to use the WM_STATE property on client windows to tell which windows should be iconified and which should be left visible. If this variable is not set, the window manager will use the WM_NORMAL_HINTS to determine the desired initial state of each window. .IP "\fBStartIconified\fP [ { \fIlist\fP } ] " 8 This variable is a list of window names that will be started up iconified. It is useful for programs that do not support the Xt "-iconic" flag yet. The list of windows and how they match window names is exactly like the \fBAutoRaise\fP variable described above. .IP "\fBTitleFont\fP \fIstring\fP" 8 This variable names the font to be displayed within the window title bar. Note that the title bar is only 17 pixels in height, so the largest practical font would be something like "9x15". The default is "8x13". .IP "\fBShowIconManager\fP" 8 This variable causes the icon manager window to be displayed when twm is started. The default is to not display the icon manager window. .IP "\fBSortIconManager\fP" 8 This variable causes entries in the icon manager to be sorted alphabetically. The default is to simply add new windows to the end of the icon manager. .IP "\fBTitleBackground\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the background color for the title bars. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "white". .IP "\fBDefaultForeground\fP \fIstring\fP" 8 This variable sets the foreground color to be used for twm sizing windows, etc. The default is "black". .IP "\fBDefaultBackground\fP \fIstring\fP" 8 This variable sets the background color to be used for twm sizing windows, etc. The default is "white". .IP "\fBTitleForeground\fP \fIstring\fP [ { \fIlist\fP } ]" 8 This variable sets the foreground color for the title bars. It can only be specified inside of a \fBColor\fP or \fBMonochrome\fP list. The optional \fIlist\fP is a list of window names and colors so that client specific colors may be specified. See the \fBBorderColor\fP variable for a complete description of the \fIlist\fP. The default is "black". .IP "\fBTitlePadding\fP \fIpixels\fP" 8 This variable specifies the distance between the various buttons, text, and highlight areas in the title bar. The default is 8 pixels. .IP "\fBUnknownIcon\fP \fIstring\fP" 8 This variable specifies the file name of a bitmap format file to be used as the default icon. This bitmap will be used for the icon of all clients which do not provide an icon bitmap and are not listed in the \fBIcons\fP list. The default is to use no bitmap. .IP "\fBUsePPosition\fP \fIstring\fP" 8 This variable specifies how \fItwm\fP should deal with laying out windows for which the default position was specified by the application and not the user (i.e. PPosition was set in the size hints instead of USPosition). The string may have three values: "off" (the default) indicating that \fItwm\fP should ignore the program-supplied position, "on" indicating that the position should be used, and "non-zero" indicating that the position should used if it is other than (0,0). The latter option is for working around a bug in older toolkits. .IP "\fBWarpCursor\fP" 8 This variable causes the pointer cursor to be warped to a window which is being deiconified. The default is to not warp the cursor. .IP "\fBWindowFunction\fP \fIfunction\fP" 8 This variable specifies the function to perform when a window is selected from the \fBTwmWindows\fP menu. If this variable is not set, a window selected from the \fBTwmWindows\fP menu will be deiconified (if it is an icon) and then raised to the top of the window stacking order. .IP "\fBXORValue\fP \fInumber\fP" 8 This variable specifies the value to use when drawing temporary lines when resizing or moving a window. The default is to use a value that causes colors at the opposite end of the colormap to be displayed. However, if your default colormap tends to have distinct colors next to one and another, setting this variable to 1 or 15 (make sure the low bit is set if you are using a monochrome display) often yields nice results. .IP "\fBZoom\fP [ \fIcount\fP ]" 8 This variable causes a series of outlines to be drawn when a window is iconified or deiconified. The optional count is a number which will be the number of outlines to be drawn. The default is to not draw the outlines. The default outline count is 8. .PP .SH BUTTONS SECTION .PP The buttons section of the startup file contains definitions of functions to perform when pointer buttons or specific keyboard keys are pressed. Functions are assigned either to a pointer button, a keyboard key, or a menu entry. Functions are assigned to pointer buttons as follows: .EX 0 \fBButton\fP\fIn\fP = \fIkeys\fP : \fIcontext\fP : \fIfunction\fP .EE The \fIn\fP following \fBButton\fP can be a number between 1 and 5 to indicate which pointer button the function is to be tied to. The \fBkeys\fP field is used to specify which modifier keys must be pressed in conjunction with the pointer button. The \fBkeys\fP field may contain any combination of the letters \fBs\fP, \fBc\fP, and \fBm\fP, which stand for Shift, Control, and Meta, respectively. The \fBcontext\fP field specifies the context in which to look for the button press. Valid contexts are: \fBicon\fP, \fBroot\fP, \fBtitle\fP, \fBframe\fP, \fBwindow\fP, \fBiconmgr\fP, and \fBall\fP. The \fBall\fP context allows you to execute a function no matter where the cursor is positioned on the screen. Shorthand specifications for the contexts may be specified similar to the \fIkeys\fP field by using the following letters: \fBr\fP for \fBroot\fP, \fBf\fP for \fBframe\fP, \fBt\fP for \fBtitle\fP, \fBw\fP for \fBwindow\fP, \fBi\fP for \fBicon\fP, and \fBm\fP for \fBiconmgr\fP. The \fBfunction\fP field specifies the window manager function to perform. Now for some examples: .EX 0 Button2 = : title : f.move # 1 Button1 = : root : f.menu "menu 1" # 2 Button1 = m : icon : f.menu "icon menu 1" # 3 Button3 = msc : window : f.menu "menu3 1" # 4 Button3 = : twfm : f.raise # 5 .EE Line 1 specifies that when pointer button 2 is pressed in the title bar with no modifier keys pressed, the \fBf.move\fP function is to be executed. Line 2 specifies that when pointer button 1 is pressed in the root window with no modifier keys pressed, the menu "menu 1" is popped up. Line 3 specifies that when pointer button 1 is pressed in an icon window with the meta key pressed, the menu "icon menu 1" is popped up. Line 4 specifies that when pointer button 3 is pressed in a client window with the shift, control, and meta keys pressed, the menu "menu 3" is popped up. Line 5 specifies that when the pointer is in the title bar, window, frame, or icon manager entry and a button is pressed, the associated window should be raised to the top of the stacking order. .PP .SH Function Key Specifications .PP \fItwm\fP allows you execute functions when any key on the keyboard is pressed. The specification of a function key is exactly like the button specification described above, except instead of \fBButton[1-5]\fP, a function key name in double quotes is used. In addition to the normal contexts that may be specified, a window name may be used, and the function will be applied to all windows matching the name. For example: .EX 0 "F1" = : window : f.iconify "F2" = m : root : f.refresh "F3" = m : "window_name" : f.iconify "Up" = : iconmgr : f.upiconmgr "Down" = : iconmgr : f.downiconmgr .EE Keyboard key names can be found in /usr/include/X11/keysymdef.h. Simply remove the \fBXK_\fP and you have the name that the X server will recognize. The \fBiconmgr\fP context is particularly useful for keyboard functions. A function such as \fBf.raise\fP executed in an icon manager entry from a keyboard key will cause the window to be raised. Functions such as this, used in conjunction with the \fBf.<\fIup,down,left,right\fP>iconmgr\fP functions allow you to configure an environment where you can raise, lower, iconify, deiconify, and change the input focus of windows without ever moving your hands from the keyboard. .PP .SH TWM Functions .PP .IP "\fB!\fP \fIstring\fP" 8 This function causes \fIstring\fP to be sent to /bin/sh for execution. In multiscreen mode, if \fIstring\fP starts a new X client without giving a display argument, the client will appear on the screen from which this function was invoked. .IP "\fB^\fP \fIstring\fP" 8 This function causes \fIstring\fP followed by a new line character to be placed in the window server's cut buffer. .IP "\fBf.autoraise\fP" 8 This function toggles the .I auto_raise attribute of a window. Windows with this attribute rise to the top of the stacking order whenever the cursor enters them. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window whose attribute is changed. Windows that match any of the names in the .B AutoRaise list initially have this attribute set (see description of the .B AutoRaise variable above). Other windows initially have this attribute turned off. .IP "\fBf.backiconmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is warped to the previous icon manager entry in the current icon manager. The previous entry means warping to the previous column or the last column of the previous row if the current entry is in the first column. .IP "\fBf.beep\fP" 8 This function causes the bell of the workstation to be sounded. .IP "\fBf.bottomzoom\fP" 8 This function is similar to the \fBf.fullzoom\fP function, but resizes the to fill the bottom half of your screen. It is also a toggle function like \fBf.iconify\fP and \fBf.fullzoom\fP. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is zoomed/unzoomed. .IP "\fBf.circledown\fP" 8 This function causes the top window that is obscuring another window to drop to the bottom of the stack of windows. .IP "\fBf.circleup\fP" 8 This function raises the lowest window that is obscured by other windows. .IP "\fBf.cutfile\fP" 8 This function takes the contents of the window server's cut buffer and uses it as a filename to read into the server's cut buffer. .IP "\fBf.delete\fP" 8 This function asks the client application to remove the indicated window if the window has subscribed to the WM_DELETE_WINDOW window manager protocol. If the indicated window is an icon manager, \fItwm\fP will hide it. If the window does not have WM_DELETE_WINDOW in its WM_PROTOCOLS list, the bell will be wrung and no action taken. .IP "\fBf.deiconify\fP" 8 This function deiconifies a window. If the window is not an icon, this function does nothing. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is deiconified. .IP "\fBf.deltastop\fP" 8 This function allows you to abort a user-defined function if the pointer has been moved more than \fIMoveDelta\fP pixels. This is useful for emulating the "move-or-raise" semantics provided by other window managers: .EX 0 Function "move-or-raise" { f.move f.deltastop f.raise } Button3 = m : window|icon|frame|title : f.function "move-or-raise" .EE .IP "\fBf.destroy\fP" 8 This function allows you to destroy a window client. If executed from a menu, the cursor is changed to the \fBDestroy\fP and the next window to receive a button press will be destroyed. .IP "\fBf.downiconmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is moved to the next entry in the icon manager. If the pointer is in the bottom entry, it is warped to the top entry. This function allows changing the current keyboard focus without using the mouse. .IP "\fBf.file\fP \fIstring\fP" 8 This function assumes \fIstring\fP is a file name. This file is read into the window server's cut buffer. .IP "\fBf.focus\fP" 8 This function implements the same function as the keyboard focus button in the title bar. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window to receive a button press will gain the input focus. .IP "\fBf.forcemove\fP" 8 This function allows you to move a window. If \fBDontMoveOff\fP is set, \fBf.forcemove\fP allows you to move a window partially off the display. If executed from a menu, the cursor is changed to the \fBMove\fP cursor and the next window that receives a button press will be the window that is moved. .IP "\fBf.forwiconmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is warped to the next icon manager entry in the current icon manager. The next entry means warping to the next column or the first column of the next row if the current entry is in the last column. .IP "\fBf.fullzoom\fP" 8 This function resizes the current window to the full size of your display. It is a toggle function so it is really a fullzoom/unfullzoom function. In order to undo the fullzoom, you invoke f.fullzoom again - similar to \fBf.iconify\fP. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is fullzoomed/unfullzoomed. .IP "\fBf.function\fP \fIstring\fP" 8 This function executes the user defined function stream specified by \fIstring\fP. A function stream is zero or more \fItwm\fP functions that will be executed in order as if they were a single function. To define a function stream the syntax is: .EX 0 \fBFunction\fP "\fIfunction name\fP" { \fIfunction\fP \fIfunction\fP . . \fIfunction\fP } .EE for example: .EX 0 \fBFunction\fP "raise-n-focus" { f.raise f.focus } .EE .IP "\fBf.hideiconmgr\fP" 8 This function causes the icon manager window to become unmapped (not visible). .IP "\fBf.horizoom\fP" 8 This variable is similar to the \fBf.zoom\fP function but causes the window to be resized to the full width of the display. .IP "\fBf.iconify\fP" 8 This function implements the same function as the iconify button in the title bar. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window to receive a button press will be iconified or de-iconified depending on .IP "\fBf.identify\fP" 8 This function pops up a window and displays information about the selected window. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is selected. A button press or key press in the information window will cause it to be unmapped. .IP "\fBf.lefticonmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is moved to the icon manager entry to the left of the current one. If the pointer is in the leftmost entry, it is warped to the rightmost entry in the current row. This function allows changing the current keyboard focus without using the mouse. the current state of the window. .IP "\fBf.leftzoom\fP" 8 This variable is similar to the \fBf.bottomzoom\fP function but causes the window to be resized to the left half of the display. .IP "\fBf.lower\fP" 8 This function lowers the window to the bottom of the stacking order. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is lowered. .IP "\fBf.menu\fP \fIstring\fP" 8 This function assigns the pull-down menu named \fIstring\fP to a pointer button. If this function is used as an entry in a pull-down menu a pull-right menu will be assigned to the menu entry. .IP "\fBf.move\fP" 8 This function allows you to move a window. If executed from a menu, the cursor is changed to the \fBMove\fP cursor and the next window that receives a button press will be the window that is moved. Double clicking the pointer button tied to this function causes a constrained move function to be executed. The pointer will be warped to the center of the grid. Moving the pointer to one of the grid lines will cause the window to begin moving in either an up-down motion or a left-right motion depending on which grid line the pointer was moved across. .IP "\fBf.nexticonmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is warped to the next icon manager which is displayed and has one or more windows listed in it. The next icon manager means the next icon manager in the list of icon managers for this screen or the next visible icon manager on the next screen. This function will wrap around to the current icon manager if it is the only one that is valid. .IP "\fBf.nop\fP" 8 This function does nothing. .IP "\fBf.previconmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is warped to the previous icon manager which is displayed and has one or more windows listed in it. The previous icon manager means the icon manager preceeding the current one in the list of icon managers for this screen or the previous visible icon manager on the previous screen. This function will wrap around to the current icon manager if it is the only one that is valid. .IP "\fBf.quit\fP" 8 This function causes \fItwm\fP to exit. There is no function to exit the X Window System from a window manager; at present you must save the X Server's PID in a variable and send it "kill -TERM". This can easily be done in TWM by the ! function (see example below). .IP "\fBf.raise\fP" 8 This function raises the window to the top of the stacking order. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is raised. .IP "\fBf.raiselower\fP" 8 This function raises the window to the top of the stacking order if it is obscured in any way. If the window is unobscured, the window is lowered to the bottom of the stacking order. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is raised or lowered. .IP "\fBf.refresh\fP" 8 This function causes all windows to be refreshed. .IP "\fBf.resize\fP" 8 This function implements the window resize function of the resize button in the title bar. If executed from a menu, the cursor is changed to the \fBResize\fP cursor and the next window that receives a button press will be the window that is resized. .IP "\fBf.restart\fP" 8 This function kills and restarts \fItwm\fP. .IP "\fBf.righticonmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is moved to the icon manager entry to the right of the current one. If the pointer is in the rightmost entry, it is warped to the leftmost entry in the current row. This function allows changing the current keyboard focus without using the mouse. the current state of the window. .IP "\fBf.rightzoom\fP" 8 This variable is similar to the \fBf.bottomzoom\fP function but causes the window to be resized to the right half of the display. .IP "\fBf.saveyourself\fP" 8 This function asks the client application to checkpoint all state associated with the indicated window if that window subscribes to the WM_SAVEYOURSELF window manager protocol. Otherwise, the bell is wrung and no action is taken. .IP "\fBf.showiconmgr\fP" 8 This function causes the icon manager window to become mapped (visible). .IP "\fBf.sorticonmgr\fP" 8 This function must be executed within an icon manager and causes the entries in the icon manager to be sorted. .IP "\fBf.source\fP \fIstring\fP" 8 This function assumes \fIstring\fP is a file name. The file is read and parsed as a \fItwm\fP startup file. This function is intended to be used only to re-build pull-down menus. None of the \fItwm\fP variables are changed. .IP "\fBf.title\fP" 8 This function is to be used as an entry in a pull-down menu. It centers the menu entry string in a menu entry and outlines it with a border. This function may be used more than once in a pull-down menu. .IP "\fBf.topzoom\fP" 8 This variable is similar to the \fBf.bottomzoom\fP function but causes the window to be resized to the top half of the display. .IP "\fBf.twmrc\fP" 8 This function causes the \fI$HOME/.twmrc\fP file to be re-read. This function is exactly like the \fBf.source\fP function without having to specify the filename. .IP "\fBf.unfocus\fP" 8 This function assigns input focus to the root window. .IP "\fBf.upiconmgr\fI" 8 This function is meant to be executed from a keyboard key. When the function is executed, the pointer is moved to the previous entry in the icon manager. If the pointer is in the top entry, it is warped to the bottom entry. This function allows changing the current keyboard focus without using the mouse. .IP "\fBf.version\fI" 8 This function causes the \fItwm\fP version window to be displayed. This window will be displayed until a pointer button is pressed or the pointer is moved from one window to another. .IP "\fBf.warpto\fP \fIstring\fP" 8 This function warps the pointer to the window which has a name or class that matches \fIstring\fP. .IP "\fBf.warptoiconmgr\fP" 8 This function warps the pointer to the icon manager entry which matches associated with the window that the pointer is currently in. .IP "\fBf.warptoscreen\fP \fIstring\fP" 8 This function warps the pointer to the indicated screen. Screens are specified by number (e.g. "0" or "1"), relative to the current screen (i.e. "next" or "prev"), or the most recently visited screen ("back"). The keywords "next" and "back" will wrap and will ignore any unmanaged screens. .IP "\fBf.winrefresh\fP" 8 This function is similar to the \fBf.refresh\fP function, but allows you to refresh a single window. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is refreshed. .IP "\fBf.zoom\fP" 8 This function is similar to the \fBf.fullzoom\fP function, but resizes the height to the maximum height of your screen, not the width. It is also a toggle function like \fBf.iconify\fP and \fBf.fullzoom\fP. If executed from a menu, the cursor is changed to the \fBSelect\fP cursor and the next window that receives a button press will be the window that is zoomed/unzoomed. .PP .SH MENUS SECTION .PP The menus section is where pull-down menus are defined. Entries in menus consist of functions as described in the Buttons Section. The syntax to define a menu is: .EX 0 \fBMenu\fP "\fImenu name\fP" [ ("\fIfore\fP":"\fIback\fP") ] { \fIstring\fP [ ("\fIfore\fP":"\fIback\fP")] \fIfunction\fP \fIstring\fP [ ("\fIfore\fP":"\fIback\fP")] \fIfunction\fP . . \fIstring\fP [ ("\fIfore\fP":"\fIback\fP")] \fIfunction\fP } .EE .PP The \fImenu name\fP should be an identical string to one being used with an \fBf.menu\fP function. Note that the \fImenu name\fP is case sensative. The optional \fIfore\fP and \fIback\fP arguments specify the foreground and background colors used to highlight a menu entry when the pointer enters the menu entry. These colors will only take effect on a color display. The default is to invert the foreground and background colors of the menu entry. The \fIstring\fP portion of each menu entry will be the text which will appear in the menu. The optional \fIfore\fP and \fIback\fP arguments specify the foreground and background color of the menu entry when the pointer is not in the entry. These colors will only be used on a color display. The default is to use the \fBMenuForeground\fP and \fBMenuBackground\fP colors. The \fIfunction\fP portion of the menu entry is one of the functions described in the previous section. .PP There is a special menu called \fBTwmWindows\fP. This menu contains a list of all windows known to \fItwm\fP. Selecting one of these window names will cause the \fBWindowFunction\fP to be executed. If \fBWindowFunction\fP has not been set, the window will be deiconified (if it is an icon) and then raised to the top of the window stacking order. .PP .SH ICONS .PP Icons are no "active" icons. By this I mean you may now move the pointer onto an icon and type characters from the keyboard and they will be directed to the iconified window. .PP .SH ICON MANAGER .PP An icon manager is a window that contains names of selected or all windows currently on the display. In addition to the window name, a small "window-pane" iconify button will be displayed to the left of the name when the window is in an iconic state. If the window is not currently an icon, a pointer button press when the pointer is on the window name will cause the window to be iconified. If the window is iconic, a pointer button press when the pointer is either on the window name or on the iconify button will by default, cause the window to be deiconified. These default actions may be changed using the \fBiconmgr\fP context when specifying button and keyboard actions. Moving the pointer into the icon manager also has the feature of directing the keyboard focus to the window pointed to in the icon manager. Using the \fBf.upiconmgr\fP, \fBf.downiconmgr\fP \fBf.lefticonmgr\fP, and \fBf.righticonmgr\fP functions allow you to change keyboard focus between windows without moving your hands from the keyboard. .PP .SH WINDOW STARTUP .PP When a client is started, \fItwm\fP does one of twm things. If the \fBRandomPlacement\fP variable has been set and the window has not specified an initial geometry, the window will be placed in a random (kind of) position the display. If the \fBRandomPlacement\fP variable has not been set and the client has not specified both \fBUser Specified Size\fP hints and \fBUser Specified Position\fP hints, \fItwm\fP will put up a rubberband box indicating the initial window size. If pointer Bbutton1 is pressed, the client window is created with the window position equal to the current pointer position. If pointer Button2 is pressed, \fItwm\fP allows the window to be resized. The resizing operation takes place until button two is released. If pointer Button3 is pressed, the client window is created at the current position, with the height set to the distance to the bottom of the screen and a width clipped to the right edge of the screen. While the initial positioning of the window is taking place, \fItwm\fP will place a window in the upper-left corner of the display showing the window's name. If resizing is taking place, \fItwm\fP will also place a window in the upper-left corner, indicating the current window size. .PP .SH EXAMPLES .PP The following is an example \fItwm\fP startup file: .EX 0 #********************************************************************** # # .twmrc # #********************************************************************** WarpCursor BorderWidth 2 TitleFont "8x13" MenuFont "8x13" IconFont "8x13" Color { BorderColor "red" { "system1" "blue" "system2" "green" } BorderTileForeground "blue" BorderTileBackground "yellow" TitleForeground "white" TitleBackground "blue" MenuForeground "yellow" MenuBackground "darkgreen" MenuTitleForeground "red" MenuTitleBackground "blue" IconForeground "darkgreen" IconBackground "cadetblue" IconBorderColor "green" } #Button = KEYS : CONTEXT : FUNCTION #---------------------------------- Button1 = : root : f.menu "button1" Button2 = : root : f.menu "button2" Button3 = : root : f.menu "button3" Button1 = m : window : f.menu "button1" Button2 = m : window : f.menu "button2" Button3 = m : window : f.menu "button3" Button1 = m : title : f.menu "button1" Button2 = m : title : f.menu "button2" Button3 = m : title : f.menu "button3" Button1 = : title : f.function "raise-lower-move" "Up" = : iconmgr : f.upiconmgr "Down" = : iconmgr : f.downiconmgr "Left" = : iconmgr : f.lefticonmgr "Right" = : iconmgr : f.righticonmgr ForceIcons IconDirectory "~/icons" Icons { "xterm" "xterm.icon" # obtained from IconDirectory "xfd" "xfd_icon" # obtained from /usr/include/X11/bitmaps } UnknownIcon "default.icon" NoTitle MakeTitle { "xterm" # only put tile bars on xterm windows and "hpterm" # hpterm windows. } # The following lines create a raise/lower/move function MoveDelta 5 Function "raise-lower-move" { f.move f.raiselower } # Now for some menus menu "button1" { "Sun Systems" f.title "iguana" !"xterm -T iguana =80x24+100+100 -e rlogin iguana &" "worm" !"xterm -T worm =80x24+100+100 &" "shiva" !"xterm -T shiva =80x24+200+200 -e rlogin shiva &" "tegus" !"xterm -T tegus =80x24+200+200 -e rlogin tegus &" "Vax Systems" f.title "shade" !"xterm -T shade =80x24+200+200 -e rlogin shade &" "bilbo" !"xterm -T bilbo =80x24+250+250 -e rlogin bilbo &" "frodo" !"xterm -T frodo =80x24+300+300 -e rlogin frodo &" "esunix" !"xterm -T esunix =80x24+350+350 -e rlogin esunix &" "lynx8" !"xterm -T lynx8 =80x24+390+390 -e rlogin lynx8 &" } menu "button2" { "Window Ops" f.title "Refresh" f.refresh "Focus on Root" f.unfocus "Re-read .twmrc" f.twmrc "Source something" f.source "something" "twm Version" f.version "(De)Iconify" f.iconify "Move Window" f.move "Resize Window" f.resize "Raise Window" f.raise "Lower Window" f.lower "Focus on Window" f.focus "Destroy Window" f.destroy "Exit TWM (only)" f.quit "Exit X Windows" !"kill -TERM $XTOOLSPID" } menu "button3" { "Cut Buffer" f.title "Procedure Header" f.file "/usr/ias_soft/tlastrange/src/proc.twm" "File Header" f.file "/usr/ias_soft/tlastrange/src/file.twm" "pull right" f.menu "blob" } menu "blob" { "pull right" f.menu "final" "another" ^"some text" } menu "final" { "entry 1" f.nop "entry 2" f.nop "entry 3" f.nop "entry 4" f.nop } .EE .PP .SH BUGS .PP Pull-right menus may still have some problems. They may sometimes stay around when all pointer buttons have been released. .PP Double clicking very fast to get the constrained move function will sometimes cause the window to move, even though the pointer is not moved. .PP The window auto-raise feature does not work consistently when the mouse is moved very fast over auto-raise windows. .PP .SH FILES .PP .nf $HOME/.twmrc. $HOME/.twmrc /usr/lib/X11/twm/system.twmrc .fi .PP .SH SEE ALSO .PP X(1), Xserver(1) .SH COPYRIGHT .ce 4 COPYRIGHT 1988 Evans & Sutherland Computer Corporation Salt Lake City, Utah All Rights Reserved. .PP .ce 2 COPYRIGHT 1989 Hewlett-Packard Company and the Massachusetts Institute of Technology .PP THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY EVANS & SUTHERLAND, HEWLETT-PACKARD, OR M.I.T.. EVANS & SUTHERLAND, HEWLETT-PACKARD, AND M.I.T. MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF THIS SOFTWARE FOR ANY PURPOSE. IT IS SUPPLIED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. .PP IF THE SOFTWARE IS MODIFIED IN A MANNER CREATING DERIVATIVE COPYRIGHT RIGHTS, APPROPRIATE LEGENDS MAY BE PLACED ON THE DERIVATIVE WORK IN ADDITION TO THAT SET FORTH ABOVE. .PP 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 the copyright notice and this permission notice appear in supporting documentation, and that the names of Evans & Sutherland, Hewlett-Packard, and M.I.T. not be used in advertising or publicity pertaining to distribution of the software without specific, written prior permission. .SH AUTHORS Tom LaStrange, Solbourne Computer; Jim Fulton, MIT X Consortium; Dave Payne, Apple Computer; Keith Packard, MIT X Consortium