TWM(1)              X Version 11 (Release 5)               TWM(1)


     NAME
          twm - Tab Window Manager for the X Window System

     SYNTAX
          twm [-display dpy] [-s] [-f initfile] [-v]

     DESCRIPTION
          Twm is a window manager for the X Window System.  It
          provides titlebars, shaped windows, several forms of icon
          management, user-defined macro functions, click-to-type and
          pointer-driven keyboard focus, and user-specified key and
          pointer button bindings.

          This program is usually started by the user's session
          manager or startup script.  When used from xdm(1) or
          xinit(1) without a session manager, twm is frequently
          executed in the foreground as the last client.  When run
          this way, exiting twm causes the session to be terminated
          (i.e. logged out).

          By default, application windows are surrounded by a
          ``frame'' with a titlebar at the top and a special border
          around the window.  The titlebar contains the window's name,
          a rectangle that is lit when the window is receiving
          keyboard input, and function boxes known as ``titlebuttons''
          at the left and right edges of the titlebar.

          Pressing pointer Button1 (usually the left-most button
          unless it has been changed with xmodmap) on a titlebutton
          will invoke the function associated with the button.  In the
          default interface, windows are iconified by clicking
          (pressing and then immediately releasing) the left
          titlebutton (which looks like a Dot).  Conversely, windows
          are deiconified by clicking in the associated icon or entry
          in the icon manager (see description of the variable
          ShowIconManager and of the function f.showiconmgr).

          Windows are resized by pressing the right titlebutton (which
          resembles a group of nested squares), dragging the pointer
          over edge that is to be moved, and releasing the pointer
          when the outline of the window is the desired size.
          Similarly, windows are moved by pressing in the title or
          highlight region, dragging a window outline to the new
          location, and then releasing when the outline is in the
          desired position.  Just clicking in the title or highlight
          region raises the window without moving it.

          When new windows are created, twm will honor any size and
          location information requested by the user (usually through
          -geometry command line argument or resources for the
          individual applications). Otherwise, an outline of the
          window's default size, its titlebar, and lines dividing the


          window into a 3x3 grid that track the pointer are displayed.
          Clicking pointer Button1 will position the window at the
          current position and give it the default size.  Pressing
          pointer Button2 (usually the middle pointer button) and
          dragging the outline will give the window its current
          position but allow the sides to be resized as described
          above.  Clicking pointer Button3 (usually the right pointer
          button) will give the window its current position but
          attempt to make it long enough to touch the bottom the
          screen.

     OPTIONS
          Twm accepts the following command line options:

          -display dpy
                  This option specifies the X server to use.

          -s      This option indicates that only the default screen
                  (as specified by -display or by the DISPLAY
                  environment variable) should be managed.  By
                  default, twm will attempt to manage all screens on
                  the display.

          -f filename
                  This option specifies the name of the startup file
                  to use.  By default, twm will look in the user's
                  home directory for files named .twmrc.num (where num
                  is a screen number) or .twmrc.

          -v      This option indicates that twm should print error
                  messages whenever an unexpected X Error event is
                  received.  This can be useful when debugging
                  applications but can be distracting in regular use.

     CUSTOMIZATION
          Much of twm's appearance and behavior can be controlled by
          providing a startup file in one of the following locations
          (searched in order for each screen being managed when twm
          begins):

          $HOME/$LANG(full-name)/.twmrc.screennumber
                  The $LANG(full-name) is the name of the predefined
                  setting for locale. If the value of locale is set,
                  Multibyte string can use in the startup file. Locale
                  has a expression style as "lang_territory.codeset".
                  For example:

                       wr_WR.ct
                       ja_JP.ujis
                       zh_CN.ugb
                       ko_KR.euc


                  The screennumber is a small positive number (e.g 0,
                  1, etc.)  representing the screen number (e.g. the
                  last number in the DISPLAY environments variable
                  host:displaynum.screennum) that would be used to
                  contact that screen of the display.  This is
                  intended for displays with multiple screens of
                  differing visual types.

          $HOME/$LANG(full-name)/.twmrc

          $HOME/$LANG(non-codeset)/.twmrc.screennumber
                  The  $LANG(non-codeset) means a abbreviation of
                  codeset in the locale. For example:

                       wr_WR
                       ja_JP
                       zh_CN
                       ko_KR


          $HOME/$LANG(non-codeset)/.twmrc

          $HOME/.twmrc.screennumber

          $HOME/.twmrc
                  This is the usual name for an individual user's
                  startup file.

          /usr/lib/X11/$LANG(full-name)/system.twmrc

          /usr/lib/X11/$LANG(non-codeset)/twm/system.twmrc

          /usr/lib/X11/twm/system.twmrc
                  If neither of the preceding files are found, twm
                  will look in one of these three files for a default
                  configuration.  This is often tailored by the site
                  administrator to provide convenient menus or
                  familiar bindings for novice users.

          If no startup files are found, twm will use the built-in
          defaults described above.  The only resource used by twm is
          bitmapFilePath for a colon-separated list of directories to
          search when looking for bitmap files (for more information,
          see the Athena Widgets manual and xrdb(1)).

          Twm startup files are logically broken up into three types
          of specifications:  Variables, Bindings, Menus.  The
          Variables section must come first and is used to describe
          the fonts, colors, cursors, border widths, icon and window
          placement, highlighting, autoraising, layout of titles,
          warping, use of the icon manager.  The Bindings section
          usually comes second and is used to specify the functions


          that should be to be invoked when keyboard and pointer
          buttons are pressed in windows, icons, titles, and frames.
          The Menus section gives any user-defined menus (containing
          functions to be invoked or commands to be executed).

          Variable names and keywords are case-insensitive.  Strings
          must be surrounded by double quote characters (e.g. "blue")
          and are case-sensitive.  A pound sign (#) outside of a
          string causes the remainder of the line in which the
          character appears to be treated as a comment.

     VARIABLES
          Many of the aspects of twm's user interface are controlled
          by variables that may be set in the user's startup file.
          Some of the options are enabled or disabled simply by the
          presence of a particular keyword.  Other options require
          keywords, numbers, strings, or lists of all of these.

          Lists are surrounded by braces and are usually separated by
          whitespace or a newline.  For example:

               AutoRaise { "emacs" "XTerm" "Xmh" }

          or

               AutoRaise
               {
                    "emacs"
                    "XTerm"
                    "Xmh"
               }

          When a variable containing a list of strings representing
          windows is searched (e.g. to determine whether or not to
          enable autoraise as shown above), a string must be an exact,
          case-sensitive match to the window's name (given by the
          WM_NAME window property), resource name or class name (both
          given by the WM_CLASS window property).  The preceding
          example would enable autoraise on windows named ``emacs'' as
          well as any xterm (since they are of class ``XTerm'') or xmh
          windows (which are of class ``Xmh'').

          String arguments that are interpreted as filenames (see the
          Pixmaps, Cursors, and IconDirectory below) will prepend the
          user's directory (specified by the HOME environment
          variable) if the first character is a tilde (~).  If,
          instead, the first character is a colon (:), the name is
          assumed to refer to one of the internal bitmaps that are
          used to create the default titlebars symbols:  :xlogo or
          :iconify (both refer to the X used for the iconify button),
          :resize (the nested squares used by the resize button), and
          :question (the question mark used for non-existent bitmap


          files).

          The following variables may be specified at the top of a twm
          startup file.  Lists of Window name prefix strings are
          indicated by win-list.  Optional arguments are shown in
          square brackets:

          AutoRaise { win-list }
                  This variable specifies a list of windows that
                  should automatically be raised whenever the pointer
                  enters the window.  This action can be interactively
                  enabled or disabled on individual windows using the
                  function f.autoraise.

          AutoRelativeResize
                  This variable indicates that dragging out a window
                  size (either when initially sizing the window with
                  pointer Button2 or when resizing it) should not wait
                  until the pointer has crossed the window edges.
                  pInstead, moving the pointer automatically causes
                  the nearest edge or edges to move by the same
                  amount.  This allows the resizing of windows that
                  extend off the edge of the screen.  If the pointer
                  is in the center of the window, or if the resize is
                  begun by pressing a titlebutton, twm will still wait
                  for the pointer to cross a window edge (to prevent
                  accidents).  This option is particularly useful for
                  people who like the press-drag-release method of
                  sweeping out window sizes.

          BorderColor string [{ wincolorlist }]
                  This variable specifies the default color of the
                  border to be placed around all non-iconified
                  windows, and may only be given within a Color or
                  Monochrome list.  The optional wincolorlist
                  specifies a list of window and color name pairs for
                  specifying particular border colors for different
                  types of windows.  For example:

                       BorderColor "gray50"
                       {
                            "XTerm"   "red"
                            "xmh"     "green"
                       }

                  The default is "black".

          BorderTileBackground string [{ wincolorlist }]
                  This variable specifies the default background color
                  in the gray pattern used in unhighlighted borders
                  (only if NoHighlight hasn't been set), and may only
                  be given within a Color or Monochrome list.  The


                  optional wincolorlist allows per-window colors to be
                  specified.  The default  is "white".

          BorderTileForeground string [{ wincolorlist }]
                  This variable specifies the default foreground color
                  in the gray pattern used in unhighlighted borders
                  (only if NoHighlight hasn't been set), and may only
                  be given within a Color or Monochrome list.  The
                  optional wincolorlist allows per-window colors to be
                  specified.  The default is "black".

          BorderWidth pixels
                  This variable specifies the width in pixels of the
                  border surrounding all client window frames if
                  ClientBorderWidth has not been specified.  This
                  value is also used to set the border size of windows
                  created by twm (such as the icon manager).  The
                  default is 2.

          ButtonIndent pixels
                  This variable specifies the amount by which
                  titlebuttons should be indented on all sides.
                  Positive values cause the buttons to be smaller than
                  the window text and highlight area so that they
                  stand out.  Setting this and the
                  TitleButtonBorderWidth variables to 0 makes
                  titlebuttons be as tall and wide as possible.  The
                  default is 1.

          ClientBorderWidth
                  This variable indicates that border width of a
                  window's frame should be set to the initial border
                  width of the window, rather than to the value of
                  BorderWidth.

          Color { colors-list }
                  This variable specifies a list of color assignments
                  to be made if the default display is capable of
                  displaying more than simple black and white.  The
                  colors-list is made up of the following color
                  variables and their values:  DefaultBackground,
                  DefaultForeground, MenuBackground, MenuForeground,
                  MenuTitleBackground, MenuTitleForeground, and
                  MenuShadowColor.  The following color variables may
                  also be given a list of window and color name pairs
                  to allow per-window colors to be specified (see
                  BorderColor for details):  BorderColor,
                  IconManagerHighlight, BorderTitleBackground,
                  BorderTitleForeground, TitleBackground,
                  TitleForeground, IconBackground, IconForeground,
                  IconBorderColor, IconManagerBackground, and


                  IconManagerForeground.  For example:

                       Color
                       {
                            MenuBackground      "gray50"
                            MenuForeground      "blue"
                            BorderColor              "red" { "XTerm" "yellow" }
                            TitleForeground          "yellow"
                            TitleBackground          "blue"
                       }

                  All of these color variables may also be specified
                  for the Monochrome variable, allowing the same
                  initialization file to be used on both color and
                  monochrome displays.

          ConstrainedMoveTime milliseconds
                  This variable specifies the length of time between
                  button clicks needed to begin a constrained move
                  operation.  Double clicking within this amount of
                  time when invoking f.move will cause the window only
                  be moved in a horizontal or vertical direction.
                  Setting this value to 0 will disable constrained
                  moves.  The default is 400 milliseconds.

          Cursors { cursor-list }
                  This variable specifies the glyphs that twm should
                  use for various pointer cursors.  Each cursor may be
                  defined either from the cursor font or from two
                  bitmap files.  Shapes from the cursor font may be
                  specified directly as:

                            cursorname     "string"

                  where cursorname is one of the cursor names listed
                  below, and string is the name of a glyph as found in
                  the file /usr/include/X11/cursorfont.h (without the
                  ``XC_'' prefix).  If the cursor is to be defined
                  from bitmap files, the following syntax is used
                  instead:

                            cursorname     "image"   "mask"

                  The image and mask strings specify the names of
                  files containing the glyph image and mask in
                  bitmap(1) form.  The bitmap files are located in the
                  same manner as icon bitmap files.  The following
                  example shows the default cursor definitions:

                       Cursors
                       {
                            Frame          "top_left_arrow"


                            Title          "top_left_arrow"
                            Icon      "top_left_arrow"
                            IconMgr   "top_left_arrow"
                            Move      "fleur"
                            Resize         "fleur"
                            Menu      "sb_left_arrow"
                            Button         "hand2"
                            Wait      "watch"
                            Select         "dot"
                            Destroy   "pirate"
                       }


          DecorateTransients
                  This variable indicates that transient windows
                  (those containing a WM_TRANSIENT_FOR property)
                  should have titlebars.  By default, transients are
                  not reparented.

          DefaultBackground string
                  This variable specifies the background color to be
                  used for sizing and information windows.  The
                  default is "white".

          DefaultForeground string
                  This variable specifies the foreground color to be
                  used for sizing and information windows.  The
                  default is "black".

          DontIconifyByUnmapping { win-list }
                  This variable specifies a list of windows that
                  should not be iconified by simply unmapping the
                  window (as would be the case if IconifyByUnmapping
                  had been set).  This is frequently used to force
                  some windows to be treated as icons while other
                  windows are handled by the icon manager.

          DontMoveOff
                  This variable indicates that windows should not be
                  allowed to be moved off the screen.  It can be
                  overridden by the f.forcemove function.

          DontSqueezeTitle [{ win-list }]
                  This variable indicates that titlebars should not be
                  squeezed to their minimum size as described under
                  SqueezeTitle below.  If the optional window list is
                  supplied, only those windows will be prevented from
                  being squeezed.

          ForceIcons
                  This variable indicates that icon pixmaps specified
                  in the Icons variable should override any client-


                  supplied pixmaps.

          FramePadding pixels
                  This variable specifies the distance between the
                  titlebar decorations (the button and text) and the
                  window frame.  The default is 2 pixels.

          IconBackground string [{ win-list }]
                  This variable specifies the background color of
                  icons, and may only be specified inside of a Color
                  or Monochrome list.  The optional win-list is a list
                  of window names and colors so that per-window colors
                  may be specified.  See the BorderColor variable for
                  a complete description of the win-list.  The default
                  is "white".

          IconBorderColor string [{ win-list }]
                  This variable specifies the color of the border used
                  for icon windows, and may only be specified inside
                  of a Color or Monochrome list.  The optional win-
                  list is a list of window names and colors so that
                  per-window colors may be specified.  See the
                  BorderColor variable for a complete description of
                  the win-list. The default is "black".

          IconBorderWidth pixels
                  This variable specifies the width in pixels of the
                  border surrounding icon windows.  The default is 2.

          IconDirectory string
                  This variable specifies the directory that should be
                  searched if if a bitmap file cannot be found in any
                  of the directories in the bitmapFilePath resource.

          IconFontSet string
                  This variable specifies the font to be used to
                  display icon names within icons.  The default is
                  "variable".

          IconForeground string [{ win-list }]
                  This variable specifies the foreground color to be
                  used when displaying icons, and may only be
                  specified inside of a Color or Monochrome list.  The
                  optional win-list is a list of window names and
                  colors so that per-window colors may be specified.
                  See the BorderColor variable for a complete
                  description of the win-list.  The default is
                  "black".

          IconifyByUnmapping [{ win-list }]
                  This variable indicates that windows should be
                  iconified by being unmapped without trying to map


                  any icons.  This assumes that the user is will remap
                  the window through the icon manager, the f.warpto
                  function, or the TwmWindows menu.  If the optional
                  win-list is provided, only those windows will be
                  iconified by simply unmapping.  Windows that have
                  both this and the IconManagerDontShow options set
                  may not be accessible if no binding to the
                  TwmWindows menu is set in the user's startup file.

          IconManagerBackground string [{ win-list }]
                  This variable specifies the background color to use
                  for icon manager entries, and may only be specified
                  inside of a Color or Monochrome list.  The optional
                  win-list is a list of window names and colors so
                  that per-window colors may be specified.  See the
                  BorderColor variable for a complete description of
                  the win-list.  The default is "white".

          IconManagerDontShow [{ win-list }]
                  This variable indicates that the icon manager should
                  not display any windows.  If the optional win-list
                  is given, only those windows will not be displayed.
                  This variable is used to prevent windows that are
                  rarely iconified (such as xclock or xload) from
                  taking up space in the icon manager.

          IconManagerFontSet string
                  This variable specifies the font to be used when
                  displaying icon manager entries.  The default is
                  "variable".

          IconManagerForeground string [{ win-list }]
                  This variable specifies the foreground color to be
                  used when displaying icon manager entries, and may
                  only be specified inside of a Color or Monochrome
                  list.  The optional win-list is a list of window
                  names and colors so that per-window colors may be
                  specified.  See the BorderColor variable for a
                  complete description of the win-list.  The default
                  is "black".

          IconManagerGeometry string [ columns ]
                  This variable specifies the geometry of the icon
                  manager window.  The string argument is standard
                  geometry specification that indicates the initial
                  full size of the icon manager.  The icon manager
                  window is then broken into columns pieces and scaled
                  according to the number of entries in the icon
                  manager.  Extra entries are wrapped to form
                  additional rows.  The default number of columns is
                  1.


          IconManagerHighlight string [{ win-list }]
                  This variable specifies the border color to be used
                  when highlighting the icon manager entry that
                  currently has the focus, and can only be specified
                  inside of a Color or Monochrome list.  The optional
                  win-list is a list of window names and colors so
                  that per-window colors may be specified.  See the
                  BorderColor variable for a complete description of
                  the win-list.  The default is "black".

          IconManagers { iconmgr-list }
                  This variable specifies a list of icon managers to
                  create.  Each item in the iconmgr-list has the
                  following format:

                            "winname" ["iconname"]   "geometry" columns

                  where winname is the name of the windows that should
                  be put into this icon manager, iconname is the name
                  of that icon manager window's icon, geometry is a
                  standard geometry specification, and columns is the
                  number of columns in this icon manager as described
                  in IconManagerGeometry.  For example:

                       IconManagers
                       {
                            "XTerm"   "=300x5+800+5" 5
                            "myhost"  "=400x5+100+5" 2
                       }

                  Clients whose name or class is ``XTerm'' will have
                  an entry created in the ``XTerm'' icon manager.
                  Clients whose name was ``myhost'' would be put into
                  the ``myhost'' icon manager.

          IconManagerShow { win-list }
                  This variable specifies a list of windows that
                  should appear in the icon manager.  When used in
                  conjunction with the IconManagerDontShow variable,
                  only the windows in this list will be shown in the
                  icon manager.

          IconRegion geomstring vgrav hgrav gridwidth gridheight
                  This variable specifies an area on the root window
                  in which icons are placed if no specific icon
                  location is provided by the client.  The geomstring
                  is a quoted string containing a standard geometry
                  specification.  If more than one IconRegion lines
                  are given, icons will be put into the succeeding
                  icon regions when the first is full.  The vgrav
                  argument should be either North or South and control
                  and is used to control whether icons are first


                  filled in from the top or bottom of the icon region.
                  Similarly, the hgrav argument should be either East
                  or West and is used to control whether icons should
                  be filled in from left from the right.  Icons are
                  laid out within the region in a grid with cells
                  gridwidth pixels wide and gridheight pixels high.

          Icons { win-list }
                  This variable specifies a list of window names and
                  the bitmap filenames that should be used as their
                  icons.  For example:

                       Icons
                       {
                            "XTerm"   "xterm.icon"
                            "xfd"          "xfd_icon"
                       }

                  Windows that match ``XTerm'' and would not be
                  iconified by unmapping, and would try to use the
                  icon bitmap in the file ``xterm.icon''.  If
                  ForceIcons is specified, this bitmap will be used
                  even if the client has requested its own icon
                  pixmap.

          InterpolateMenuColors
                  This variable indicates that menu entry colors
                  should be interpolated between entry specified
                  colors.  In the example below:

                       Menu "mymenu"
                       {
                            "Title"        ("black":"red")          f.title
                            "entry1"                 f.nop
                            "entry2"                 f.nop
                            "entry3"  ("white":"green")   f.nop
                            "entry4"                 f.nop
                            "entry5"  ("red":"white")          f.nop
                       }

                  the foreground colors for ``entry1'' and ``entry2''
                  will be interpolated between black and white, and
                  the background colors between red and green.
                  Similarly, the foreground for ``entry4'' will be
                  half-way between white and red, and the background
                  will be half-way between green and white.

          MakeTitle { win-list }
                  This variable specifies a list of windows on which a
                  titlebar should be placed and is used to request
                  titles on specific windows when NoTitle has been
                  set.


          MaxWindowSize string
                  This variable specifies a geometry in which the
                  width and height give the maximum size for a given
                  window.  This is typically used to restrict windows
                  to the size of the screen.  The default is
                  "30000x30000".

          MenuBackground string
                  This variable specifies the background color used
                  for menus, and can only be specified inside of a
                  Color or Monochrome list.  The default is "white".

          MenuFontSet string
                  This variable specifies the font to use when
                  displaying menus.  The default is "variable".

          MenuForeground string
                  This variable specifies the foreground color used
                  for menus, and can only be specified inside of a
                  Color or Monochrome list.  The default is "black".

          MenuShadowColor string
                  This variable specifies the color of the shadow
                  behind pull-down menus and can only be specified
                  inside of a Color or Monochrome list.  The default
                  is "black".

          MenuTitleBackground string
                  This variable specifies the background color for
                  f.title entries in menus, and can only be specified
                  inside of a Color or Monochrome list.  The default
                  is "white".

          MenuTitleForeground string
                  This variable specifies the foreground color for
                  f.title entries in menus and can only be specified
                  inside of a Color or Monochrome list.  The default
                  is "black".

          Monochrome { colors }
                  This variable specifies a list of color assignments
                  that should be made if the screen has a depth of 1.
                  See the description of Colors.

          MoveDelta pixels
                  This variable specifies the number of pixels the
                  pointer must move before the f.move function starts
                  working.  Also see the f.deltastop function.  The
                  default is zero pixels.

          NoBackingStore
                  This variable indicates that twm's menus should not


                  request backing store to minimize repainting of
                  menus.  This is typically used with servers that can
                  repaint faster than they can handle backing store.

          NoCaseSensitive
                  This variable indicates that case should be ignored
                  when sorting icon names in an icon manager.  This
                  option is typically used with applications that
                  capitalize the first letter of their icon name.

          NoDefaults
                  This variable indicates that twm should not supply
                  the default titlebuttons and bindings.  This option
                  should only be used if the startup file contains a
                  completely new set of bindings and definitions.

          NoGrabServer
                  This variable indicates that twm should not grab the
                  server when popping up menus and moving opaque
                  windows.

          NoHighlight [{ win-list }]
                  This variable indicates that borders should not be
                  highlighted to track the location of the pointer.
                  If the optional win-list is given, highlighting will
                  only be disabled for those windows.  When the border
                  is highlighted, it will be drawn in the current
                  BorderColor.  When the border is not highlighted, it
                  will be stippled with an gray pattern using the
                  current BorderTileForeground and
                  BorderTileBackground colors.

          NoIconManagers
                  This variable indicates that no icon manager should
                  be created.

          NoMenuShadows
                  This variable indicates that menus should not have
                  drop shadows drawn behind them.  This is typically
                  used with slower servers since it speeds up menu
                  drawing at the expense of making the menu slightly
                  harder to read.

          NoRaiseOnDeiconify
                  This variable indicates that windows that are
                  deiconified should not be raised.

          NoRaiseOnMove
                  This variable indicates that windows should not be
                  raised when moved.  This is typically used to allow
                  windows to slide underneath each other.


          NoRaiseOnResize
                  This variable indicates that windows should not be
                  raised when resized.  This is typically used to
                  allow windows to be resized underneath each other.

          NoRaiseOnWarp
                  This variable indicates that windows should not be
                  raised when the pointer is warped into them with the
                  f.warpto function.  If this option is set, warping
                  to an occluded window may result in the pointer
                  ending up in the occluding window instead the
                  desired window (which causes unexpected behavior
                  with f.warpring).

          NoSaveUnders
                  This variable indicates that menus should not
                  request save-unders to minimize window repainting
                  following menu selection.  It is typically used with
                  displays that can repaint faster than they can
                  handle save-unders.

          NoStackMode [{ win-list }]
                  This variable indicates that client window requests
                  to change stacking order should be ignored.  If the
                  optional win-list is given, only requests on those
                  windows will be ignored.  This is typically used to
                  prevent applications from relentlessly popping
                  themselves to the front of the window stack.

          NoTitle [{ win-list }]
                  This variable indicates that windows should not have
                  titlebars.  If the optional win-list is given, only
                  those windows will not have titlebars.  MakeTitle
                  may be used with this option to force titlebars to
                  be put on specific windows.

          NoTitleFocus
                  This variable indicates that twm should not set
                  keyboard input focus to each window as it is
                  entered.  Normally, twm sets the focus so that focus
                  and key events from the titlebar and icon managers
                  are delivered to the application.  If the pointer is
                  moved quickly and twm is slow to respond, input can
                  be directed to the old window instead of the new.
                  This option is typically used to prevent this
                  ``input lag'' and to work around bugs in older
                  applications that have problems with focus events.

          NoTitleHighlight [{ win-list }]
                  This variable indicates that the highlight area of
                  the titlebar, which is used to indicate the window
                  that currently has the input focus, should not be


                  displayed.  If the optional win-list is given, only
                  those windows will not have highlight areas.  This
                  and the SqueezeTitle options can be set to
                  substantially reduce the amount of screen space
                  required by titlebars.

          OpaqueMove
                  This variable indicates that the f.move function
                  should actually move the window instead of just an
                  outline so that the user can immediately see what
                  the window will look like in the new position.  This
                  option is typically used on fast displays
                  (particularly if NoGrabServer is set).

          Pixmaps { pixmaps }
                  This variable specifies a list of pixmaps that
                  define the appearance of various images.  Each entry
                  is a keyword indicating the pixmap to set, followed
                  by a string giving the name of the bitmap file.  The
                  following pixmaps may be specified:

                       Pixmaps
                       {
                            TitleHighlight "gray1"
                       }

                  The default for TitleHighlight is to use an even
                  stipple pattern.

          RandomPlacement
                  This variable indicates that windows with no
                  specified geometry should be placed in a pseudo-
                  random location instead of having the user drag out
                  an outline.

          ResizeFontSet string
                  This variable specifies the font to be used for in
                  the dimensions window when resizing windows.  The
                  default is "fixed".

          RestartPreviousState
                  This variable indicates that twm should attempt to
                  use the WM_STATE property on client windows to tell
                  which windows should be iconified and which should
                  be left visible.  This is typically used to try to
                  regenerate the state that the screen was in before
                  the previous window manager was shutdown.

          SaveColor { colors-list }
                  This variable indicates a list of color assignments
                  to be stored as pixel values in the root window
                  property _MIT_PRIORITY_COLORS.  Clients may elect to


                  preserve these values when installing their own
                  colormap.  Note that use of this mechanism is a way
                  an for application to avoid the "technicolor"
                  problem, whereby useful screen objects such as
                  window borders and titlebars disappear when a
                  programs custom colors are installed by the window
                  manager.  For example:

                       SaveColor
                       {
                               BorderColor
                               TitleBackground
                               TitleForeground
                               "red"
                               "green"
                               "blue"
                       }

                  This would place on the root window 3 pixel values
                  for borders and titlebars, as well as the three
                  color strings, all taken from the default colormap.

          ShowIconManager
                  This variable indicates that the icon manager window
                  should be displayed when twm is started.  It can
                  always be brought up using the f.showiconmgr
                  function.

          SortIconManager
                  This variable indicates that entries in the icon
                  manager should be sorted alphabetically rather than
                  by simply appending new windows to the end.

          SqueezeTitle [{ squeeze-list }]
                  This variable indicates that twm should attempt to
                  use the SHAPE extension to make titlebars occupy
                  only as much screen space as they need, rather than
                  extending all the way across the top of the window.
                  The optional squeeze-list may be used to control the
                  location of the squeezed titlebar along the top of
                  the window.  It contains entries of the form:

                            "name"         justification  num  denom

                  where name is a window name, justification is either
                  left, center, or right, and num and denom are
                  numbers specifying a ratio giving the relative
                  position about which the titlebar is justified.  The
                  ratio is measured from left to right if the
                  numerator is positive, and right to left if
                  negative.  A denominator of 0 indicates that the
                  numerator should be measured in pixels.  For


                  convenience, the ratio 0/0 is the same as 1/2 for
                  center and -1/1 for right.  For example:

                       SqueezeTitle
                       {
                            "XTerm"   left      0    0
                            "xterm1"  left      1    3
                            "xterm2"  left      2    3
                            "oclock"  center         0    0
                            "emacs"   right          0    0
                       }

                  The DontSqueezeTitle list can be used to turn off
                  squeezing on certain titles.

          StartIconified [{ win-list }]
                  This variable indicates that client windows should
                  initially be left as icons until explicitly
                  deiconified by the user.  If the optional win-list
                  is given, only those windows will be started iconic.
                  This is useful for programs that do not support an
                  -iconic command line option or resource.

          TitleBackground string [{ win-list }]
                  This variable specifies the background color used in
                  titlebars, and may only be specified inside of a
                  Color or Monochrome list.  The optional win-list is
                  a list of window names and colors so that per-window
                  colors may be specified.  The default is "white".

          TitleButtonBorderWidth pixels
                  This variable specifies the width in pixels of the
                  border surrounding titlebuttons.  This is typically
                  set to 0 to allow titlebuttons to take up as much
                  space as possible and to not have a border.  The
                  default is 1.

          TitleFontSet string
                  This variable specifies the font to used for
                  displaying window names in titlebars.  The default
                  is "variable".

          TitleForeground string [{ win-list }]
                  This variable specifies the foreground color used in
                  titlebars, and may only be specified inside of a
                  Color or Monochrome list.  The optional win-list is
                  a list of window names and colors so that per-window
                  colors may be specified.  The default is "black".

          TitlePadding pixels
                  This variable specifies the distance between the
                  various buttons, text, and highlight areas in the


                  titlebar.  The default is 8 pixels.

          UnknownIcon string
                  This variable specifies the filename of a bitmap
                  file to be used as the default icon.  This bitmap
                  will be used as the icon of all clients which do not
                  provide an icon bitmap and are not listed in the
                  Icons list.

          UsePPosition string
                  This variable specifies whether or not twm should
                  honor program-requested locations (given by the
                  PPosition flag in the WM_NORMAL_HINTS property) in
                  the absence of a user-specified position.  The
                  argument string may have one of three values:  "off"
                  (the default) indicating that twm 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.

          WarpCursor [{ win-list }]
                  This variable indicates that the pointer should be
                  warped into windows when they are deiconified.  If
                  the optional win-list is given, the pointer will
                  only be warped when those windows are deiconified.

          WindowRing { win-list }
                  This variable specifies a list of windows along
                  which the f.warpring function cycles.

          WarpUnmapped
                  This variable indicates that the f.warpto function
                  should deiconify any iconified windows it
                  encounters.  This is typically used to make a key
                  binding that will pop a particular window (such as
                  xmh), no matter where it is.  The default is for
                  f.warpto to ignore iconified windows.

          XorValue number
                  This variable specifies the value to use when
                  drawing window outlines for moving and resizing.
                  This should be set to a value that will result in a
                  variety of of distinguishable colors when
                  exclusive-or'ed with the contents of the user's
                  typical screen.  Setting this variable to 1 often
                  gives nice results if adjacent colors in the default
                  colormap are distinct.  By default, twm will attempt
                  to cause temporary lines to appear at the opposite
                  end of the colormap from the graphics.


          Zoom [ count ]
                  This variable indicates that outlines suggesting
                  movement of a window to and from its iconified state
                  should be displayed whenever a window is iconified
                  or deiconified.  The optional count argument
                  specifies the number of outlines to be drawn.  The
                  default count is 8.

          The following variables must be set after the fonts have
          been assigned, so it is usually best to put them at the end
          of the variables or beginning of the bindings sections:

          DefaultFunction function
                  This variable specifies the function to be executed
                  when a key or button event is received for which no
                  binding is provided.  This is typically bound to
                  f.nop, f.beep, or a menu containing window
                  operations.

          WindowFunction function
                  This variable specifies the function to execute when
                  a window is selected from the TwmWindows menu.  If
                  this variable is not set, the window will be
                  deiconified and raised.

     BINDINGS
          After the desired variables have been set, functions may be
          attached titlebuttons and key and pointer buttons.
          Titlebuttons may be added from the left or right side and
          appear in the titlebar from left-to-right according to the
          order in which they are specified.  Key and pointer button
          bindings may be given in any order.

          Titlebuttons specifications must include the name of the
          pixmap to use in the button box and the function to be
          invoked when a pointer button is pressed within them:

               LeftTitleButton "bitmapname"  = function

          or

               RightTitleButton "bitmapname" = function

          The bitmapname may refer to one of the  built-in bitmaps
          (which are scaled to match TitleFontSet) by using the
          appropriate colon-prefixed name described above.

          Key and pointer button specifications must give the
          modifiers that must be pressed, over which parts of the
          screen the pointer must be, and what function is to be
          invoked.  Keys are given as strings containing the
          appropriate keysym name; buttons are given as the keywords


          Button1-Button5:

               "FP1"          = modlist : context : function
               Button1   = modlist : context : function

          The modlist is any combination of the modifier names shift,
          control, lock, meta, mod1, mod2, mod3, mod4, or mod5 (which
          may be abbreviated as s, c, l, m, m1, m2, m3, m4, m5,
          respectively) separated by a vertical bar (|).  Similarly,
          the context is any combination of window, title, icon, root,
          frame, iconmgr, their first letters (iconmgr abbreviation is
          m), or all, separated by a vertical bar.  The function is
          any of the f. keywords described below.  For example, the
          default startup file contains the following bindings:

               Button1   =    : root         : f.menu "TwmWindows"
               Button1   = m  : window | icon     : f.function "move-or-lower"
               Button2   = m  : window | icon     : f.iconify
               Button3   = m  : window | icon     : f.function "move-or-raise"
               Button1   =    : title        : f.function "move-or-raise"
               Button2   =    : title        : f.raiselower
               Button1   =    : icon         : f.function "move-or-iconify"
               Button2   =    : icon         : f.iconify
               Button1   =    : iconmgr : f.iconify
               Button2   =    : iconmgr : f.iconify

          A user who wanted to be able to manipulate windows from the
          keyboard could use the following bindings:

               "F1"      =    : all          : f.iconify
               "F2"      =    : all          : f.raiselower
               "F3"      =    : all          : f.warpring "next"
               "F4"      =    : all          : f.warpto "xmh"
               "F5"      =    : all          : f.warpto "emacs"
               "F6"      =    : all          : f.colormap "next"
               "F7"      =    : all          : f.colormap "default"
               "F20"          =    : all          : f.warptoscreen "next"
               "Left"         = m  : all          : f.backiconmgr
               "Right"   = m | s   : all          : f.forwiconmgr
               "Up"      = m  : all          : f.upiconmgr
               "Down"    = m | s   : all          : f.downiconmgr

          Twm provides many more window manipulation primitives than
          can be conveniently stored in a titlebar, menu, or set of
          key bindings.  Although a small set of defaults are supplied
          (unless the NoDefaults is specified), most users will want
          to have their most common operations bound to key and button
          strokes.  To do this, twm associates names with each of the
          primitives and provides user-defined functions for building
          higher level primitives and menus for interactively
          selecting among groups of functions.


          User-defined functions contain the name by which they are
          referenced in calls to f.function and a list of other
          functions to execute.  For example:

               Function "move-or-lower" { f.move f.deltastop f.lower }
               Function "move-or-raise" { f.move f.deltastop f.raise }
               Function "move-or-iconify"    { f.move f.deltastop f.iconify }
               Function "restore-colormap"   { f.colormap "default" f.lower }

          The function name must be used in f.function exactly as it
          appears in the function specification.

          In the descriptions below, if the function is said to
          operate on the selected window, but is invoked from a root
          menu, the cursor will be changed to the Select cursor and
          the next window to receive a button press will be chosen:

          ! string
                  This is an abbreviation for f.exec string.

          f.autoraise
                  This function toggles whether or not the selected
                  window is raised whenever entered by the pointer.
                  See the description of the variable AutoRaise.

          f.backiconmgr
                  This function warps the pointer to the previous
                  column in the current icon manager, wrapping back to
                  the previous row if necessary.

          f.beep  This function sounds the keyboard bell.

          f.bottomzoom
                  This function is similar to the f.fullzoom function,
                  but resizes the window to fill only the bottom half
                  of the screen.

          f.circledown
                  This function lowers the top-most window that
                  occludes another window.

          f.circleup
                  This function raises the bottom-most window that is
                  occluded by another window.

          f.colormap string
                  This function rotates the colormaps (obtained from
                  the WM_COLORMAP_WINDOWS property on the window) that
                  twm will display when the pointer is in this window.
                  The argument string may have one of the following
                  values: "next", "prev", and "default".  It should be
                  noted here that in general, the installed colormap


                  is determined by keyboard focus.  A pointer driven
                  keyboard focus will install a private colormap upon
                  entry of the window owning the colormap.  Using the
                  click to type model, private colormaps will not be
                  installed until the user presses a mouse button on
                  the target window.

          f.deiconify
                  This function deiconifies the selected window.  If
                  the window is not an icon, this function does
                  nothing.

          f.delete
                  This function sends the WM_DELETE_WINDOW message to
                  the selected window if the client application has
                  requested it through the WM_PROTOCOLS window
                  property.  The application is supposed to respond to
                  the message by removing the indicated window.  If
                  the window has not requested WM_DELETE_WINDOW
                  messages, the keyboard bell will be rung indicating
                  that the user should choose an alternative method.
                  Note this is very different from f.destroy.  The
                  intent here is to delete a single window,  not
                  necessarily the entire application.

          f.deltastop
                  This function allows a user-defined function to be
                  aborted if the pointer has been moved more than
                  MoveDelta pixels.  See the example definition given
                  for Function "move-or-raise" at the beginning of the
                  section.

          f.destroy
                  This function instructs the X server to close the
                  display connection of the client that created the
                  selected window.  This should only be used as a last
                  resort for shutting down runaway clients.  See also
                  f.delete.

          f.downiconmgr
                  This function warps the pointer to the next row in
                  the current icon manger, wrapping to the beginning
                  of the next column if necessary.

          f.exec string
                  This function passes the argument string to /bin/sh
                  for execution.  In multiscreen mode, if string
                  starts a new X client without giving a display
                  argument, the client will appear on the screen from
                  which this function was invoked.

          f.focus This function toggles the keyboard focus of the


                  server to the selected window, changing the focus
                  rule from pointer-driven if necessary.  If the
                  selected window already was focused, this function
                  executes an f.unfocus.

          f.forcemove
                  This function is like f.move except that it ignores
                  the DontMoveOff variable.

          f.forwiconmgr
                  This function warps the pointer to the next column
                  in the current icon manager, wrapping to the
                  beginning of the next row if necessary.

          f.fullzoom
                  This function resizes the selected window to the
                  full size of the display or else restores the
                  original size if the window was already zoomed.

          f.function string
                  This function executes the user-defined function
                  whose name is specified by the argument string.

          f.hbzoom
                  This function is a synonym for f.bottomzoom.

          f.hideiconmgr
                  This function unmaps the current icon manager.

          f.horizoom
                  This variable is similar to the f.zoom function
                  except that the selected window is resized to the
                  full width of the display.

          f.htzoom
                  This function is a synonym for f.topzoom.

          f.hzoom This function is a synonym for f.horizoom.

          f.iconify
                  This function iconifies or deiconifies the selected
                  window or icon, respectively.

          f.identify
                  This function displays a summary of the name and
                  geometry of the selected window.  Clicking the
                  pointer or pressing a key in the window will dismiss
                  it.

          f.lefticonmgr
                  This function similar to f.backiconmgr except that
                  wrapping does not change rows.


          f.leftzoom
                  This variable is similar to the f.bottomzoom
                  function but causes the selected window is only
                  resized to the left half of the display.

          f.lower This function lowers the selected window.

          f.menu string
                  This function invokes the menu specified by the
                  argument string.  Cascaded menus may be built by
                  nesting calls to f.menu.

          f.move  This function drags an outline of the selected
                  window (or the window itself if the OpaqueMove
                  variable is set) until the invoking pointer button
                  is released.  Double clicking within the number of
                  milliseconds given by ConstrainedMoveTime warps the
                  pointer to the center of the window and constrains
                  the move to be either horizontal or vertical
                  depending on which grid line is crossed.  To abort a
                  move, press another button before releasing the
                  first button.

          f.nexticonmgr
                  This function warps the pointer to the next icon
                  manager containing any windows on the current or any
                  succeeding screen.

          f.nop   This function does nothing and is typically used
                  with the DefaultFunction or WindowFunction variables
                  or to introduce blank lines in menus.

          f.previconmgr
                  This function warps the pointer to the previous icon
                  manager containing any windows on the current or
                  preceding screens.

          f.quit  This function causes twm to restore the window's
                  borders and exit.  If twm is the first client
                  invoked from xdm, this will result in a server
                  reset.

          f.raise This function raises the selected window.

          f.raiselower
                  This function raises the selected window to the top
                  of the stacking order if it is occluded by any
                  windows, otherwise the window will be lowered.

          f.refresh
                  This function causes all windows to be refreshed.


          f.resize
                  This function displays an outline of the selected
                  window.  Crossing a border (or setting
                  AutoRelativeResize) will cause the outline to begin
                  to rubber band until the invoking button is
                  released.  To abort a resize, press another button
                  before releasing the first button.

          f.restart

                  This function kills and restarts twm.

          f.righticonmgr
                  This function is similar to f.nexticonmgr except
                  that wrapping does not change rows.

          f.rightzoom
                  This variable is similar to the f.bottomzoom
                  function except that the selected window is only
                  resized to the right half of the display.

          f.saveyourself
                  This function sends a WM_SAVEYOURSELF message to the
                  selected window if it has requested the message in
                  its WM_PROTOCOLS window property.  Clients that
                  accept this message are supposed to checkpoint all
                  state associated with the window and update the
                  WM_COMMAND property as specified in the ICCCM.  If
                  the selected window has not selected for this
                  message, the keyboard bell will be rung.

          f.showiconmgr
                  This function maps the current icon manager.

          f.sorticonmgr
                  This function sorts the entries in the current icon
                  manager alphabetically.  See the variable
                  SortIconManager.

          f.title This function provides a centered, unselectable item
                  in a menu definition.  It should not be used in any
                  other context.

          f.topzoom
                  This variable is similar to the f.bottomzoom
                  function except that the selected window is only
                  resized to the top half of the display.

          f.unfocus
                  This function resets the focus back to pointer-
                  driven.  This should be used when a focused window
                  is no longer desired.


          f.upiconmgr
                  This function warps the pointer to the previous row
                  in the current icon manager, wrapping to the last
                  row in the same column if necessary.

          f.vlzoom
                  This function is a synonym for f.leftzoom.

          f.vrzoom
                  This function is a synonym for f.rightzoom.

          f.warpring string
                  This function warps the pointer to the next or
                  previous window (as indicated by the argument
                  string, which may be "next" or "prev") specified in
                  the WindowRing variable.

          f.warpto string
                  This function warps the pointer to the window which
                  has a name or class that matches string.  If the
                  window is iconified, it will be deiconified if the
                  variable WarpUnmapped is set or else ignored.

          f.warptoiconmgr string
                  This function warps the pointer to the icon manager
                  entry associated with the window containing the
                  pointer in the icon manager specified by the
                  argument string.  If string is empty (i.e. ""), the
                  current icon manager is chosen.

          f.warptoscreen string
                  This function warps the pointer to the screen
                  specified by the argument string.  String may be a
                  number (e.g. "0" or "1"), the word "next"
                  (indicating the current screen plus 1, skipping over
                  any unmanaged screens), the word "back" (indicating
                  the current screen minus 1, skipping over any
                  unmanaged screens), or the word "prev" (indicating
                  the last screen visited.

          f.winrefresh
                  This function is similar to the f.refresh function
                  except that only the selected window is refreshed.

          f.zoom  This function is similar to the f.fullzoom function,
                  except that the only the height of the selected
                  window is changed.

     MENUS
          Functions may be grouped and interactively selected using
          pop-up (when bound to a pointer button) or pull-down (when
          associated with a titlebutton) menus.  Each menu


          specification contains the name of the menu as it will be
          referred to by f.menu, optional default foreground and
          background colors, the list of item names and the functions
          they should invoke, and optional foreground and background
          colors for individual items:

               Menu "menuname" [ ("deffore":"defback") ]
               {
                    string1   [ ("fore1":"backn")]     function1
                    string2   [ ("fore2":"backn")]     function2
                         .
                         .
                         .
                    stringN   [ ("foreN":"backN")]     functionN
               }


          The menuname is case-sensitive.  The optional deffore and
          defback arguments specify the foreground and background
          colors used on a color display to highlight menu entries.
          The string portion of each menu entry will be the text which
          will appear in the menu.  The optional fore and back
          arguments specify the foreground and background colors 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 colors specified by the MenuForeground and
          MenuBackground variables.  The function portion of the menu
          entry is one of the functions, including any user-defined
          functions, or additional menus.

          There is a special menu named TwmWindows which contains the
          names of all of the client and twm-supplied windows.
          Selecting an entry will cause the WindowFunction to be
          executed on that window.  If WindowFunction hasn't been set,
          the window will be deiconified and raised.

     ICONS
          Twm supports several different ways of manipulating
          iconified windows.  The common pixmap-and-text style may be
          laid out by hand or automatically arranged as described by
          the IconRegion variable.  In addition, a terse grid of icon
          names, called an icon manager, provides a more efficient use
          of screen space as well as the ability to navigate among
          windows from the keyboard.

          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 button using the default iconify symbol
          will be displayed to the left of the name when the window is
          iconified.  By default, clicking on an entry in the icon
          manager performs f.iconify.  To change the actions taken in
          the icon manager, use the the iconmgr context when


          specifying button and keyboard bindings.

          Moving the pointer into the icon manager also directs
          keyboard focus to the indicated window (setting the focus
          explicitly or else sending synthetic events NoTitleFocus is
          set).  Using the f.upiconmgr, f.downiconmgr f.lefticonmgr,
          and f.righticonmgr functions, the input focus can be changed
          between windows directly from the keyboard.

     BUGS
          The resource manager should have been used instead of all of
          the window lists.

          The IconRegion variable should take a list.

          Double clicking very fast to get the constrained move
          function will sometimes cause the window to move, even
          though the pointer is not moved.

          If IconifyByUnmapping is on and windows are listed in
          IconManagerDontShow but not in DontIconifyByUnmapping, they
          may be lost if they are iconified and no bindings to f.menu
          "TwmWindows" or f.warpto are setup.

     FILES
           $HOME/$LANG(full-name)/.twmrc.<screen number>
           $HOME/$LANG(full-name)/.twmrc
           $HOME/$LANG(non-codeset)/.twmrc.<screen number>
           $HOME/$LANG(non-codeset)/.twmrc
           $HOME/.twmrc.<screen number>
           $HOME/.twmrc
           /usr/lib/X11/$LANG(full-name)/twm/system.twmrc
           /usr/lib/X11/$LANG(non-codeset)/twm/system.twmrc
           /usr/lib/X11/twm/system.twmrc

     ENVIRONMENT VARIABLES
          DISPLAY This variable is used to determine which X server to
                  use.  It is also set during f.exec so that programs
                  come up on the proper screen.

          HOME    This variable is used as the prefix for files that
                  begin with a tilde and for locating the twm startup
                  file.

          LANG    This variable is used for searching the twm startup
                  file. This variable means predefined setting for
                  locale, and has a style of lang_territory.codeset.

     SEE ALSO
          X(1), Xserver(1), xdm(1), xrdb(1)

     COPYRIGHT


          Portions copyright 1988 Evans & Sutherland Computer
          Corporation; portions copyright 1989 Hewlett-Packard Company
          and the Massachusetts Institute of Technology,  See X(1) for
          a full statement of rights and permissions.

     AUTHORS
          Tom LaStrange, Solbourne Computer; Jim Fulton, MIT X
          Consortium; Steve Pitschke, Stardent Computer; Keith
          Packard, MIT X Consortium; Dave Sternlicht, MIT X
          Consortium; Dave Payne, Apple Computer.


     Page 30                                         (printed 7/20/06)