screen(1)


NAME
     screen - screen manager with VT100/ANSI terminal emulation

SYNOPSIS
     screen [ -options ] [ cmd [ args ] ]
     screen -r [ [pid.]tty[.host] ]

DESCRIPTION
     Screen is a  full-screen  window  manager  that  multiplexes  a  physical
     terminal  between several processes (typically interactive shells).  Each
     virtual terminal provides the functions of the DEC VT100 terminal and, in
     addition,  several  control  functions from the ANSI X3.64 (ISO 6429) and
     ISO 2022 standards (e.g. insert/delete  line  and  support  for  multiple
     character  sets).   There is a scrollback history buffer for each virtual
     terminal and a copy-and-paste mechanism that allows moving  text  regions
     between windows.

     The name of this program was changed to iScreen to be able to distinguish
     it from Oliver Laumann's original screen program. Despite that fact, this
     manual will continue to use the name screen.  This is, because often  the
     binary is installed as 'screen'.

     When screen is called, it creates a single window with a shell in it  (or
     the  specified command) and then gets out of your way so that you can use
     the program as you normally would.  Then, at any time, you can create new
     (full-screen)  windows  with  other  programs  in  them  (including  more
     shells), kill existing windows, view a list of the current windows,  turn
     output  logging on and off, copy-and-paste text between windows, view the
     scrollback history, switch between windows in whatever manner  you  wish,
     etc.   When  a program terminates, screen kills the window that contained
     it.  If this window was in the foreground, the display  switches  to  the
     previous window; if none are left, screen exits.

     Everything you type is sent to the program running in the current window.
     The  only exception to this is the one keystroke that is used to initiate
     a command to the window manager.  By default, each command begins with  a
     control-a  (abbreviated  C-a  from  now on), and is followed by one other
     keystroke.  The command character and all the key bindings can  be  fully
     customized to be anything you like, though they are always two characters
     in length.

     The standard way to create a new window is to type "C-a c".  This creates
     a  new  window  running  a shell and switches to that window immediately,
     regardless of the state of the process running  in  the  current  window.
     Similarly,  you  can  create  a new window with a custom command in it by
     first binding the command to a keystroke (in  your  .screenrc  file)  and
     then  using  it  just like the "C-a c" command.  In addition, new windows
     can be created by running a command like:


          screen emacs prog.c

     from a shell prompt within a previously created window.   This  will  not
     run  another copy of screen, but will instead supply the command name and
     its arguments to the window manager who will use it  to  create  the  new
     window.   The above example would start the emacs editor (editing prog.c)
     and switch to its window.

     If "/etc/utmp" is writable by  screen,  an  appropriate  record  will  be
     written  to  this  file  for  each window, and removed when the window is
     terminated.   This  is  useful  for  working   with   "talk",   "script",
     "shutdown",  "rsend", "sccs" and other similar programs that use the utmp
     file to determine who you are. As  long  as  screen  is  active  on  your
     terminal,  the  terminals  own  record is removed from the utmp file. See
     also "C-a L".

GETTING STARTED
     Before you begin to  use  screen  you'll  need  to  make  sure  you  have
     correctly  selected  your  terminal type, just as you would for any other
     termcap/terminfo program.  (You can do this by using tset  or  stty,  for
     example.)

     If you're impatient and want to get started  without  doing  a  lot  more
     reading,  you  should  remember this one command:  "C-a ?".  Typing these
     two characters will display a list of the available screen  commands  and
     their  bindings.  Each  keystroke  is  discussed  in the section "COMMAND
     KEYS". The manual section "CUSTOMIZATION" deals with the contents of your
     .screenrc.

     If possible, choose  a  version  of  your  terminal's  termcap  that  has
     automatic  margins  turned off.  This will ensure an accurate and optimal
     update of the screen in all circumstances.  The next  best  thing  is  an
     auto-margin  terminal  that  allows the last position on the screen to be
     updated without scrolling the screen (such as a vt100).  This also allows
     the  entire  screen to be updated.  Lastly, if all you've got is a "true"
     auto-margin terminal screen will be content to use  it,  but  updating  a
     character  put  into  the last position on the screen may not be possible
     until the screen scrolls or the character is moved into a  safe  position
     in  some other way.  This delay can be shortened by using a terminal with
     insert-character capability.

     If your terminal is of the second type  (firm-margined  `am'),  you  will
     want  to  let  screen  know  about  this,  since a normal termcap doesn't
     distinguish this type of automatic margins from a "true"  `am'  terminal.
     You  do  this  by specifying the `LP' capability in your termcap (see the
     "termcap" .screenrc command), or by using  the  -L  command-line  option.
     Screen needs this information to correctly update the screen.



     If you are using a "true" auto-margin terminal  (no  `LP')  at  low  baud
     rates,  you  may  want to turn on a more optimal output mode by including
     the flag `OP' in your termcap entry, or by specifying the -O command-line
     option.   The  trade-off is that screen will no-longer accurately emulate
     the vt100's line-end quirks (e.g. the screen will  scroll  after  putting
     one character in the last screen position).

COMMAND KEYS
     As mentioned, each screen command consists of a  "C-a"  followed  by  one
     other  character.   For  your convenience, all commands that are bound to
     lower-case letters are also bound to their control character counterparts
     (with the exception of "C-a a"; see below), thus, "C-a c" as well as "C-a
     C-c" can be used to create a window.

     The following keystroke commands are available:

     C-a 0  -  C-a 9   (select0 - select9)
          Switch to the window with the number 0 through 9.  When a new window
          is  established,  the  first available number from the range 0..9 is
          assigned to this window.  Thus, the first window can be activated by
          "C-a  0"  (there  can  be no more than 10 windows present at any one
          time).

     C-a C-a   (other)
          Switch to the window displayed previously.  Note that this  function
          defaults  to  the  command character typed twice, unless overridden;
          for instance, if you use the option "-e]x",  this  function  becomes
          "]]", not "]C-a".

     C-a a
          Send the command character (C-a) to the  processes  in  the  current
          window.

     C-a A   (aka)
          Allow the user to enter an a.k.a (also-known-as).  for  the  current
          window.

     C-a c  or  C-a C-c   (shell)
          Create a new window with a shell and switch to that window.

     C-a C   (clear)
          Clear the screen (saves image to scrollback buffer).

     C-a d  or  C-a C-d   (detach)
          Detach screen (disconnect it from the terminal and put it  into  the
          background).   A  detached  screen can be resumed by invoking screen
          with the -r option. (See also section "COMMAND-LINE OPTIONS".)



     C-a D   (pow_detach)
          Power detach. Mainly the same as above,  but  also  sends  a  HANGUP
          signal  to  the parent process of screen.  CAUTION: This will result
          in a logout, when screen was started from your login shell.

     C-a f  or  C-a C-f   (flow)
          Cycles the current window's flow-control setting from "automatic" to
          "on" to "off", see the section titled FLOW-CONTROL for details.

     C-a C-g   (vbell)
          Toggles screen's visual bell mode. If your terminal does not support
          a visual bell, a `vbell-message' is displayed in the status line.

     C-a h  or  C-a C-h   (hardcopy)
          Write a hardcopy of the current window to the file  "hardcopy.n"  in
          the window's default directory, where n is the number of the current
          window.

     C-a H   (log)
          Begins/ends logging of the current window to the file  "screenlog.n"
          in  the  window's  default  directory,  where n is the number of the
          current window.   The  session  log  is  appended  to  the  previous
          contents  of the file if it already exists. The current contents and
          the contents of the scrollback  history  are  not  included  in  the
          session log.

     C-a i  or  C-a C-i   (info)
          Uses the message line to display some information about the  current
          window:   the  cursor  position  in the form "(column,row)" starting
          with "(1,1)", the terminal width and height plus  the  size  of  the
          scrollback  buffer  in  lines,  like  in  "(80,24)+50", various flag
          settings  (flow-control,  insert  mode,  origin  mode,  wrap   mode,
          application-keypad  mode,  output  logging, activity monitoring, and
          redraw (`+' indicates  enabled,  `-'  not)),  the  currently  active
          character  set  (G0,  G1,  G2,  or  G3),  and in square brackets the
          terminal character sets that are currently designated as G0  through
          G3.  For system information use "C-a t".

     C-a k  or  C-a C-k   (kill)
          Kill the current window  and  switch  to  the  previously  displayed
          window.   Note:   Emacs users should keep this command in mind, when
          killing a line.  It is recommended not to use "C-a"  as  the  screen
          escape key or that kill is rebound to "C-a K".

     C-a l  or  C-a C-l   (redisplay)
          Redisplay the current window.

     C-a L   (login)
          Adds or removes the entry in /etc/utmp file for the current  window.
          This  controls  if  the  window  is  `logged  in'.  See  also above.
          Additionally to that toggle, it is convenient having a `log in'  and
          a  `log  out'  key. E.g. `bind I set login on' and `bind O set login
          off' will map these keys to be C-a I and C-a O.

     C-a m  or  C-a C-m   (lastmsg)
          Repeat the last message displayed in the message  line.   Useful  if
          you're  typing when a message appears, because (unless your terminal
          has a status line) the message goes away when you press a key.

     C-a M   (monitor)
          Toggles monitoring of the current window.  When monitoring is turned
          on and the affected window is switched into the background, you will
          receive the activity notification message in the status line at  the
          first  sign of output and the window will also be marked with an `@'
          in the window-status display.  Monitoring is initially off  for  all
          windows.

     C-a space  or  C-a n  or  C-a C-n   (next)
          Switch to the next window.  This function can be used repeatedly  to
          cycle  through  the list of windows.  (Some terminals require you to
          release the control key before pressing space.)

     C-a p  or  C-a C-p   (prev)
          Switch to the previous window (the opposite of C-a n).

     C-a q  or  C-a C-q   (xon)
          Send a control-q to the program in the current window.

     C-a r  or  C-a C-r   (wrap)
          Toggle the current window's  line-wrap  setting  (turn  the  current
          window's automatic margins on and off).

     C-a s  or  C-a C-s   (xoff)
          Send a control-s to the program in the current window.

     C-a t  or  C-a C-t   (time)
          Uses the message line to display the time of day, the host name, and
          the load averages over 1, 5, and 15 minutes (if this is available on
          your system).  For window specific information use "C-a i".

     C-a v  or  C-a C-v   (version)
          Display the version and compilation date.

     C-a w  or  C-a C-w   (windows)
          Uses the message line to display a list of all  the  windows.   Each
          window  is  listed  by number with the name of process that has been
          started in the window (or its a.k.a.); the current window is  marked
          with  a  `*';  the  previous  window  is  marked with a `-'; all the
          windows that are "logged in" are marked with  a  `$';  a  background
          window  that  has received a bell is marked with a `!'; a background
          window that is being monitored and has had activity occur is  marked
          with  an  `@'; a window which has output logging turned on is marked
          with `(L)'.

     C-a W   (width)
          Toggle the window width between 80 and 132 columns. As this  command
          became  a  toggle,  "C-a N" is no longer supported.  This requires a
          capable terminal and the termcap entries "Z0"  and  "Z1".   See  the
          "termcap" command in section "CUSTOMIZATION" for more information.

     C-a x  or  C-a C-x   (lock)
          Call a screenlock program  (/local/bin/lck  or  /usr/bin/lock  or  a
          builtin,  if  no  other  is  available).  Screen does not accept any
          command keys until this program terminates. Meanwhile  processes  in
          the  windows  may  continue,  as  the  windows are in the `detached'
          state. The screenlock program may be changed through the environment
          variable  $LOCKPRG (which must be set in the shell from which screen
          is started) and is executed with the user's uid and gid.

     C-a z  or  C-a C-z   (suspend)
          Suspend screen.  The windows are  in  the  `detached'  state,  while
          screen is suspended.

     C-a Z   (reset)
          Reset the virtual terminal to its "power-on" values.

     C-a .   (termcap)
          Write the termcap entry for the virtual terminal  of  the  currently
          active  window  to the file ".termcap" in the user's "$HOME/.screen"
          directory (or wherever screen stores its sockets.  See  the  "FILES"
          section below).  This termcap entry is identical to the value of the
          environment variable $TERMCAP that is set  up  by  screen  for  each
          window.  For terminfo based systems you will need to run a converter
          like captoinfo and then compile the entry with tic.

     C-a ?   (help)
          Displays a help screen showing you all the key bindings.  The  first
          pages  list  all  the  internal commands followed by their bindings.
          Subsequent pages will display the custom commands, one  command  per
          key.   Press  space when you're done reading each page, or return to
          exit early.  All  other  characters  are  ignored,  except  for  the
          command  character,  which  will  exit  the help display and begin a
          command.

     C-a C-\   (quit)
          Kill all windows and terminate screen.   Note  that  on  vt100-style
          terminals  the keys C-4 and C-\ are identical.  So be careful not to
          write C-a C-4 when selecting window  no.  4.   Use  the  empty  bind
          command (as in "bind '^'") to remove a key binding.

     C-a :   (colon)
          Allows you to enter ".screenrc" command lines as well  as  names  of
          key-bound-functions.  Useful  for  on-the-fly  modification  of  key
          bindings, specific window creation and changing  settings.  Settings
          of  the  current window can be changed by prepending the command (if
          appropriate) with the keyword "set".  If you consider  this  as  the
          `Ex  command  mode'  of  screen, you may regard "C-a esc" as its `Vi
          command mode'.

     C-a [  or  C-a C-[  or  C-a esc   (copy)
          Enter copy/scrollback mode. This allows you to copy  text  from  the
          current window and its history into the paste buffer. In this mode a
          vi-like `full screen editor' is active:
          Movement keys:
          h, j, k, l move the cursor line by line or column by column.
          0, ^ and $ move to the leftmost column, to the first  or  last  non-
          whitespace character on the line.
          H, M and L move the cursor to the leftmost column of the top, center
          or bottom line of the window.
          + and - positions one line up and down.
          G moves to the specified absolute line (default: end of buffer).
          | moves to the specified absolute column.
          w, b, e move the cursor word by word.
          C-u and C-d scroll the display up/down by the  specified  amount  of
          lines   while   preserving   the  cursor  position.  (Default:  half
          screenfull).
          C-b and C-f scroll the display up/down a full screen.
          g moves to the beginning of the buffer, whereas
          % jumps to the specified percentage.
          Note:  Emacs style movement keys can be customized  by  a  .screenrc
          command. (E.g.  markkeys "h=^B:l=^F:$=^E") There is no simple method
          for a full emacs-style  keymap,  as  this  involves  multi-character
          codes.
          Marking:
          The copy range is specified by setting two marks. The  text  between
          these  marks  will  be  highlighted. Press space to set the first or
          second mark respectively.
          Y and y can be used to mark one whole line or to mark from start  of
          line.
          W marks exactly one word.
          Repeat count:
          Any of these commands can be prefixed with  a  number  (by  pressing
          digits  0..9)  which is taken as a repeat count. Example: "C-a C-[ H
          10 j 5 Y" will copy lines 11 to 15 into the pastebuffer.
          Specials:
          There are however some keys that act differently here and in vi.  Vi
          does  not allow to yank rectangular blocks of text, but screen does.
          Press
          c or C to set the left or right margin respectively.  If  no  repeat
          count  is  given,  both  default to the current cursor position. Try
          this on a rather full text screen as an example: "C-A  [  S-M  20  l
          SPACE c 10 l 5 j S-C SPACE".
          J joins lines. It toggles between 3  modes:  lines  separated  by  a
          newline  character (012), lines glued seamless, lines separated by a
          single whitespace. Note that you can prepend the  newline  character
          with a carriage return character, by issuing a "set crlf on".
          v is for all the vi users with ":set numbers" - it toggles the  left
          margin between column 9 and 1.
          Press a before the final space key to toggle in  append  mode.  Thus
          the  contents  of  the  pastebuffer  will  not  be  overwritten, but
          appended to.
          A toggles in append mode and sets a (second) mark.
          > sets the (second) mark and writes the contents of  the  copybuffer
          to  the screen-exchange file (/tmp/screen-exchange per default) once
          copy-mode is finished. This example demonstrates  how  to  dump  the
          whole scrollback buffer to that file: "C-A [ g SPACE G $ >".
          ? gives information about the current line and column.

     C-a ]  or  C-a C-]   (paste)
          Paste. Write the contents of the paste buffer to the stdin queue  of
          the current window.

     C-a {   (history)
          Usually users work with a shell that allows easy access to  previous
          commands.   E.g. csh has the command "!!" to repeat the last command
          executed. Screen allows you to have a primitive  way  of  re-calling
          "the  command  that  started ...": You just type the first letter of
          that command, then hit `C-a {' and screen tries to find  a  previous
          line  that  matches  with  the `prompt character' to the left of the
          cursor. This line is pasted into this window's  input  queue.   Thus
          you  have a crude command history (made up by the visible window and
          its scrollback buffer).

     C-a >   (write_buffer)
          Writes the contents of the  paste  buffer  to  a  public  accessible
          screen-exchange  file.  This  is  thought of as a primitive means of
          communication between screen users on the same host. See  also  "C-a
          esc".

     C-a <   (read_buffer)
          Reads the screen-exchange file into the pastebuffer. See  also  "C-a
          ]".

     C-a =   (kill_buffer)
          Removes the exchange file used by "C-a <" and "C-a >".





COMMAND-LINE OPTIONS
     Screen has the following command-line options:

     -a   include all  capabilities  (with  some  minor  exceptions)  in  each
          window's termcap, even if screen must redraw parts of the display in
          order to implement a function.

     -A   Adapt the sizes of all windows to  the  size  of  the  display.   By
          default, screen may try to restore its old window sizes.

     -c file
          override the default configuration file  from  "$HOME/.screenrc"  to
          file.

     -d|-D [pid.tty.host]
          does not start screen,  but  detach  the  elsewhere  running  screen
          session.  It  has  the  same  effect as typing "C-a d" from screen's
          controlling terminal. -D is the equivalent to the power detach  key.
          If  no  session  can  be  detached,  this  option  is  ignored.  The
          combination "screen -D -r" can be used to `transport' the  elsewhere
          running  session  to  this  terminal and logout there. Note: It is a
          good idea to have the status of your sessions checked  by  means  of
          "screen -list".

     -e xy
          specifies the command character to be x and the character generating
          a  literal  command  character  to  y  (when typed after the command
          character).  The default is "C-a" and `a', which can be specified as
          "-e^Aa".  See the "escape" .screenrc command for more details.

     -f, -fn, and -fa
          turns flow-control on, off, or "automatic switching mode".  This can
          also be defined through the "flow" .screenrc command.

     -h num
          Specifies the history scrollback buffer to be num lines high.

     -i   will cause the interrupt key (usually C-c) to interrupt the  display
          immediately  when  flow-control  is  on.   See  the "flow" .screenrc
          command for details.

     -l and -ln
          turns login mode on or off (for /etc/utmp updating).  This can  also
          be defined through the "login" .screenrc command.

     -ls and -list
          does not start screen, but prints a  list  of  pid.tty.host  strings
          identifying your screen sessions.  Sessions marked `detached' can be
          resumed with "screen -r". Those marked `attached'  are  running  and
          have  a  controlling  terminal.  Sessions marked as `dead' should be
          thoroughly checked and removed. Ask your system administrator if you
          are not sure. Remove sessions with the -wipe option.

     5    -m disables looking in environment variable $STY  for  an  alternate
          socket name.

     -t name or -k name
          sets the title (a.k.a.) for the default shell or specified  program.
          See also the "shellaka" .screenrc command.

     -wipe
          does the same  as  "screen  -ls",  but  removes  destroyed  sessions
          instead of marking them as `dead'.

     -L   tells screen your auto-margin terminal has a writable  last-position
          on the screen.  This can also be set in your .screenrc by specifying
          `LP' in a "termcap" command.

     -O   selects a more optimal output mode for  your  terminal  rather  than
          true  vt100  emulation  (only  affects auto-margin terminals without
          `LP').  This can also be set in your .screenrc by specifying `OP' in
          a "termcap" command.

     -r [pid.tty.host]
          resumes a detached screen session.  No other options (except "-d -r"
          or  "-D  -r")  may  be  specified,  though  an  optional  prefix  of
          [pid.]tty.host  may  be  needed  to  distinguish  between   multiple
          detached screen sessions.

     -R   attempts to resume the first detached screen session it  finds.   If
          successful,  all  other  command-line  options  are  ignored.  If no
          detached session exists, starts a new session  using  the  specified
          options, just as if -R were not specified.

     -s   sets the default shell to the  program  specified,  instead  of  the
          value  in  the  environment  variable  $SHELL  (or  "/bin/sh" if not
          defined).  This can also be defined through  the  "shell"  .screenrc
          command.

CUSTOMIZATION
     The "socket directory" defaults either to $HOME/.screen or preferably  to
     /local/screens.   If   screen   is   installed   setuid-root,   then  the
     administrator should compile screen with an adequate  (not  NFS  mounted)
     SOCKDIR.  If  screen is not running setuid-root, the user can specify any
     mode 777 directory in the environment variable $SCREENDIR.

     When screen is invoked, it  executes  initialization  commands  from  the
     files "/local/etc/screenrc" and ".screenrc" in the user's home directory.
     These are the "programmer's defaults"  that  can  be  overridden  in  the
     following  ways:  For  the  global  screenrc file screen searches for the
     environment variable $SYSSCREENRC. The user  specific  screenrc  file  is
     searchend  in  $ISCREENRC,  then  $SCREENRC,  then  $HOME/.iscreenrc  and
     finally defaults to $HOME/.screenrc. The command  line  option  -c  takes
     precedence over the user specific screenrc file.  Commands in these files
     are used to set options, bind functions to  keys,  and  to  automatically
     establish  one  or  more  extra  windows  at the beginning of your screen
     session.  Commands are listed  one  per  line,  with  empty  lines  being
     ignored.   A command's arguments are separated by tabs or spaces, and may
     be surrounded by single or double quotes.  A `#' turns the  rest  of  the
     line  into  a comment, except in quotes.  Unintelligible lines are warned
     about and  ignored.   Commands  may  contain  references  to  environment
     variables.  The  syntax  is the shell-like "$VAR " or "${VAR}". Note that
     this causes incompatibilities with previous screen versions, as  now  the
     '$'-sign has to be protected with '' if no variable substitution shall be
     performed.

     Customization can also be done 'on-line'. To enter the command mode  type
     `C-a  :'.  Setting  flags  (like scrollback, login, etc.) on-line may not
     have the desired effect, as e.g. the command "C-a : login on" will affect
     only  the  settings  for  the  creation  of new windows (just like within
     .screenrc).  If you intend to change flags of the  current  window,  then
     prepend  the  command  with the keyword "set". E.g.  "C-a : set login on"
     will log this window in.

     The following initialization commands are available:

     activity message

     When any activity occurs in a background window that is being  monitored,
     screen  displays  a  notification  in the message line.  The notification
     message can be re-defined by  means  of  the  "activity"  command.   Each
     occurrence  of  `%' in message is replaced by the number of the window in
     which activity has occurred, and each occurrence of `~'  is  replaced  by
     the  definition  for bell in your termcap (usually an audible bell).  The
     default message is

           'Activity in window %'

     Note that monitoring is off for  all  windows  by  default,  but  can  be
     altered by use of the "monitor" command (C-a M).

     autodetach on|off

     Sets whether screen will automatically detach upon  hangup,  which  saves
     all  your  running  programs  until  they  are  resumed  with a screen -r
     command.  When turned off, a hangup signal will terminate screen and  all
     the processes it contains. Autodetach is on by default.



     bell message

     When a bell character is sent to a background window, screen  displays  a
     notification  in  the  message line.  The notification message can be re-
     defined by means of the  "bell"  command.   Each  occurrence  of  `%'  in
     message  is replaced by the number of the window to which a bell has been
     sent, and each occurrence of `~' is replaced by the definition  for  bell
     in your termcap (usually an audible bell).  The default message is

           'Bell in window %'

     An empty message can be supplied to the "bell" command to suppress output
     of a message line (bell "").

     bind key [function [args]]

     Bind a function to a key.  By default, each function provided  by  screen
     is  bound  to  one or more keys as indicated by the above table, e.g. the
     function to create a new window is bound to "C-c" and  "c".   The  "bind"
     command  can  be  used  to  redefine  the  key bindings and to define new
     bindings.  The key argument is either a single character, a two-character
     sequence  of  the  form  "^x" (meaning "C-x"), a backslash followed by an
     octal number (specifying the ASCII code of the character), or a backslash
     followed  by  a second character, such as "\^" or "\\".  The argument can
     also be quoted, if you like.   If  no  further  argument  is  given,  any
     previously  established  binding  for  this key is removed.  The function
     argument can be one of the following keywords:

           select0        Switch to window #0
             ...
           select9        Switch to window #9
           aka            Change the current window's a.k.a.
           clear          Clear the screen
           colon          Enter one ".screenrc" command on-the-fly.
           copy           Select a piece of text.
           detach         Detach screen
           flow           Toggle the current window's flow-control setting
           hardcopy       Make hardcopy of current window
           history        Use cut&paste to fetch a recently displayed line.
           help           Display a list of the key bindings in effect
           info           Display the current window's status information
           kill           Kill the current window
           lastmsg        Redisplay the last message line
           lock           Run a screenlock program.
           log            Begin/end logging of the current window's output
           login          Toggle  the  window's  "login"  setting   (/etc/utmp
     entry)
           monitor        Toggle activity monitoring of the current window
           next           Switch to the next window
           other          Switch to the window displayed previously
           paste          Paste in a selected piece of text.
           pow_detach     Detach screen and logout.
           prev           Switch to the previous window
           quit           Kill all windows and terminate
           readbuffer     Take text from the exchange file.
           redisplay      Redisplay current window
           reset          Reset the window to its "power-on" settings
           screen         Create a new window with the specified command
           shell          Create a new window with a shell
           suspend        Suspend screen
           termcap        Write screen's termcap entry to $HOME/.screencap
           vbell          Toggle the window's "vbell" setting.
           version        Display the version numbers and date last modified
           width          Toggle the terminal width between 80 and 132 columns
           windows        Display a list of all windows
           wrap           Toggle the current window's line-wrap setting
           writebuffer    Store the selected text in the exchange file.
           xoff           Send a control-s to the current program
           xon            Send a control-q to the current program

     Some examples:

           bind ' ' windows
           bind ^f screen telnet foobar
           bind \033 screen -ln -t root -h 1000 9 su

     would bind the space key to the function that displays a list of  windows
     (so  that  the  function  usually  invoked  by  "C-a  C-w"  would also be
     available as "C-a space"), bind "C-f" to the function  "create  a  window
     with  a  TELNET  connection to foobar", and bind "escape" to the function
     that creates an non-login window with a.k.a. "root" in slot  #9,  with  a
     super-user shell and a scrollbackbuffer of 1000 lines.

     bufferfile exchange-file

     Change the filename used for reading and  writing  with  the  copybuffer.
     The  default  is "/tmp/screen-exchange". The following example will paste
     the system's password file into the screen window:

           C-a : bufferfile /etc/passwd
           C-a < C-a ]

     chdir [directory]

     Change the current directory of screen to the specified directory or,  if
     called  without  an  argument,  to  your home directory (the value of the
     environment variable $HOME).  All windows that are created  by  means  of
     the "screen" command from within ".screenrc" or by means of "C-a : screen
     ..." or "C-a c" use this as their default  directory.   Without  a  chdir
     command,  this  would  be  the  directory  from which screen was invoked.
     Hardcopy and log  files  are  always  written  to  the  window's  default
     directory,  not  the  current  directory  of  the  process running in the
     window.  You can use this command multiple times  in  your  .screenrc  to
     start  various  windows  in  different  default directories, but the last
     chdir value will affect all the windows you create interactively.

     crlf on|off

     This affects the copying of text regions with the `C-a [' command. If  it
     is  set  to  `on',  lines will be separated by the two character sequence
     `CR' - `LF'. Otherwise only `LF' is used.

     echo [-n] message

     The echo command may be used to annoy screen users with a 'message of the
     day'.  Typically  installed  in  a  global  /local/etc/screenrc. See also
     "sleep".   Echo  is  also  useful  for  online  checking  of  environment
     variables.

     escape xy

     Set the command character to x and the  character  generating  a  literal
     command  character  to  y (just like in the -e option).  Each argument is
     either a single character, a two-character  sequence  of  the  form  "^x"
     (meaning  "C-x"), a backslash followed by an octal number (specifying the
     ASCII code of the  character),  or  a  backslash  followed  by  a  second
     character,  such  as  "\^"  or  "\\".   The default is "^Aa", but "``" is
     recommended by one of the authors.

     flow on|off|auto [interrupt]

     Sets the default flow-control mode for  new  windows.   Specifying  "flow
     auto  interrupt" is the same as the command-line options -fa and -i.  See
     the discussion on FLOW-CONTROL later on in this document for full details
     and note, that this is subject to change in future releases.

     hardcopy_append on|off

     If set to "on", screen will append to the "hardcopy.n" files  created  by
     the command "C-a h", otherwise these files are overwritten each time.

     hardstatus on|off

     Toggles the use of the terminals hardware status line.  If  "on",  screen
     will  use  this  facility  to  display one line messages. Otherwise these
     messages are overlayed in reverse video mode at the  display  line.  Note
     that  the hardstatus feature should only be used, if the termcap/terminfo
     capabilities "hs", "ts", "fs" and "ds" are set properly.


     login on|off

     Sets the login flag which determines if new windows should have /etc/utmp
     entries added for them.  The login state is also changeable on-the-fly by
     using the bindable version of the "login" command (C-a L) of by means  of
     "C-a  :  set login on|off".  The default should be "on" for a screen that
     runs under suid-root.

     markkeys string

     This is a method of changing the keymap used for copy/history mode.   The
     string  is  made  up of oldchar=newchar pairs which are separated by `:'.
     Example: The string "B=^B:F=^F" will change the keys `C-b' and `C-f' from
     their  (original  emacs-style  bindings)  to the vi style binding (scroll
     up/down full page), which is the default meaning of `B' and `F'.

     mode mode

     The mode of each newly allocated pseudo-tty is set to mode.  Mode  is  an
     octal number.  When no "mode" command is given, mode 0622 is used.

     monitor on|off

     Toggles activity monitoring of windows.  When monitoring is turned on and
     an  affected window is switched into the background, you will receive the
     activity notification message in the status line at  the  first  sign  of
     output  and  the  window  will  also be marked with an `@' in the window-
     status display.  Monitoring is initially off for all windows.

     msgminwait sec

     Defines  the  time  screen  delays  all  activity  after  a  message  was
     dispayled. The default is 1 second.

     msgwait sec

     Defines the time a message is displayed, if screen is  not  disturbed  by
     other activity. The default is 5 seconds.

     nethack on|off

     Changes the kind of error messages used by screen.  When you are familiar
     with  the  game "nethack", you may enjoy the nethack-style messages which
     will often blur the facts a little, but are much funnier to read. Anyway,
     standard messages often tend to be unclear as well.
     This option is only available if screen was  compiled  with  the  NETHACK
     flag  defined.  The default setting is then determined by the presence of
     the environment variable $NETHACKOPTIONS.


     password [crypted_pw]

     Present a crypted password in your ".screenrc" file and screen  will  ask
     for  it,  whenever  a  detached  session  is tried to be resumed. This is
     useful, if you have privileged programs running under screen and you want
     to  protect  your session from reattach attempts by users that managed to
     have your uid. (I.e. any superuser.)

     pow_detach_msg message

     The message specified here  is  output  whenever  a  `Power  detach'  was
     performed.  It  may  be  used as a replacement for a logout message or to
     reset baud rate, etc.

     screen [-opts] [n] [cmd [args]]

     Establish a new window.  The flow-control  options  (-f,  -fn  and  -fa),
     title  (a.k.a.)  option  (-t), login options (-l and -ln) , terminal type
     option (-T <term>) and scrollback option (-h <num>) may be specified  for
     each  command.   If  an optional number n in the range 0..9 is given, the
     window number n is assigned to the newly  created  window  (or,  if  this
     number  is  already  in-use, the next available number).  If a command is
     specified after "screen", this command  (with  the  given  arguments)  is
     started  in  the  window;  otherwise,  a shell is created.  Thus, if your
     ".screenrc" contains the lines

           # example for .screenrc:
           screen 1
           screen -fn -t foobar 2 telnet foobar

     screen creates a shell window (in window #1) and a window with  a  TELNET
     connection  to  the machine foobar (with no flow-control using the a.k.a.
     "foobar" in window #2).  If you do not include  any  screen  commands  in
     your  ".screenrc"  file,  then screen defaults to creating a single shell
     window, number  zero.   When  the  initialization  is  completed,  screen
     switches to the last window specified in your .screenrc file or, if none,
     it opens default window #0.

     scrollback num

     Set the size of the scrollback buffer for new windows to num lines.   The
     default scrollback is 50 lines.  Use "C-a : set scrollback num" to change
     the scrollback size of the current window and use "C-a  i"  to  view  the
     current setting.

     redraw on|off

     Define whether the display should be refreshed (as  done  with  "C-a  l")
     after switching to the current window. As usual when the "set" keyword is
     given, this command only affects the current  window.  But  unlike  other
     commands, "redraw off" (without "set") affects all  windows,  the  window
     specific settings come into effect again when "redraw on" (without "set")
     is entered.

     shell command

     Set the command to be used to create a new  shell.   This  overrides  the
     value  of  the  environment  variable  $SHELL, or "/bin/sh" if undefined.
     This is useful if you'd like to run a tty-enhancer which is expecting  to
     execute the program specified in $SHELL.

     shellaka a.k.a.

     Set the a.k.a. for all shells created during startup or by  the  C-A  C-c
     command.   For  details  about  what  a.k.a.'s  are,  see  the discussion
     entitled ALSO KNOWN AS.

     sleep num This command will pause the execution of a .screenrc  file  for
     num  seconds.  It may be used to give users a chance to read the messages
     output by "echo".

     slowpaste usec

     Define the speed text is inserted by the paste  ("C-a  ]")  command.  For
     each  80  characters  (IOSIZE)  pasted  screen  will make a pause of usec
     milliseconds to allow the application the processing of input. Use  that,
     if you have to fear that your underlying system chokes on large pastes.

     startup_message on|off

     Select whether to display the copyright notice when screen starts up.

     term term

     In each window's environment screen opens, it sets the $TERM variable  to
     "screen"  by  default, unless no description for "screen" is installed in
     the local termcap or terminfo data base.  In that case it  pretends  that
     the  terminal  emulator is "vt100". This won't do much harm, as screen is
     VT100/ANSI compatible.  The use of the "term" command is discouraged  for
     non-default  purpose.   That  is,  one  may want to specify special $TERM
     settings (e.g. vt100) for the next "screen rlogin othermachine"  command.
     Use the command "screen -T vt100 rlogin othermachine" rather than setting
     ("term vt100") and resetting ("term screen") the default before and after
     the "screen" command.

     termcap term terminal-tweaks [window-tweaks]
     terminfo term terminal-tweaks [window-tweaks]

     Use this command to modify your terminal's termcap  entry  without  going
     through  all  the  hassles  involved  in creating a custom termcap entry.
     Plus, you can optionally customize the termcap generated for the windows.
     If  your  system  works  with  terminfo-database rather than with termcap
     screen will understand the `terminfo' command which has the same  effects
     as  the  `termcap'  command. Thus users can write one .screenrc file that
     handles both cases, although terminfo syntax is slightly  different  from
     termcap syntax.

     The first argument specifies which terminal(s) should be affected by this
     definition.   You  can specify multiple terminal names by separating them
     with `|'s.  Use `*' to  match  all  terminals  and  `vt*'  to  match  all
     terminals that begin with "vt".

     Each tweak argument contains one or more termcap  defines  (separated  by
     `:'s)  to  be  inserted  at  the  start of the appropriate termcap entry,
     enhancing it or overriding existing values.   The  first  tweak  modifies
     your terminal's termcap, and contains definitions that your terminal uses
     to perform certain functions.   Specify  a  null  string  to  leave  this
     unchanged (e.g. '').  The second (optional) tweak modifies all the window
     termcaps, and should contain definitions that screen understands (see the
     "VIRTUAL TERMINAL" section).

     Some examples:

          termcap xterm*  LP:hs@

     Informs screen that all terminals that begin with `xterm' have firm auto-
     margins  that  allow  the last position on the screen to be updated (LP),
     but they don't really have a status line (no 'hs' -- append `@'  to  turn
     entries off).  Note that we assume `LP' for all terminal names that start
     with "vt", but only if you don't  specify  a  termcap  command  for  that
     terminal.

           termcap vt*  LP
           termcap vt102|vt220  Z0=\E[?3h:Z1=\E[?3l

     Specifies the firm-margined `LP' capability for all terminals that  begin
     with  `vt',  and  the  second  line will also add the escape-sequences to
     switch into (Z0) and back out of (Z1) 132-character-per-line mode if this
     is  a vt102 or vt220.  (You must specify Z0 and Z1 in your termcap to use
     the width-changing commands.)

          termcap vt100  ""  l0=PF1:l1=PF2:l2=PF3:l3=PF4

     This leaves your vt100 termcap alone and adds the function key labels  to
     each window's termcap entry.

          termcap h19|z19  am@:im=\E@:ei=\EO  dc=\E[P



     Takes a h19 or z19 termcap and turns off auto-margins (am@)  and  enables
     the  insert  mode  (im)  and end-insert (ei) capabilities (the `@' in the
     `im' string is after the `=', so it is part of the string).   Having  the
     `im'  and  `ei'  definitions  put into your terminal's termcap will cause
     screen to automatically advertise the character-insert capability in each
     window's  termcap.   Each  window  will  also  get  the  delete-character
     capability (dc) added to its termcap, which screen will translate into  a
     line-update  for  the  terminal  (we're  pretending  it  doesn't  support
     character deletion).

     If you would like to fully  specify  each  window's  termcap  entry,  you
     should  instead set the $SCREENCAP variable prior to running screen.  See
     the discussion  on  the  "VIRTUAL  TERMINAL"  in  this  manual,  and  the
     termcap(5) man page for more information on termcap definitions.

     vbell on|off

     Sets the visual bell setting for new windows. If your terminal  does  not
     support  a  visual  bell  a  message  is  printed to the status line. The
     default message is "Wuff, Wuff!!".

     vbell_msg message

     Sets the visual bell message. message is printed to the  status  line  if
     the window receives a bell character (^G) and vbell is set to "on".

     vbellwait sec

     Define a delay in seconds after each display of  screen  's  visual  bell
     message. The default is 0 seconds.

     wrap on|off

     Sets the line-wrap setting for new windows.  When line-wrap  is  on,  the
     second  consecutive  printable  character  output at the last column of a
     line will wrap to the start of the following line.  As an added  feature,
     backspace  (^H)  will  also  wrap through the left margin to the previous
     line.  Line-wrap is on by default and can  be  toggled  with  the  "wrap"
     command ("C-a r") or by means of "C-a : set wrap on|off".

THE MESSAGE LINE
     Screen displays informational messages and other diagnostics in a message
     line  at  the  bottom  of the screen.  If your terminal has a status line
     defined in its termcap, screen will use this for displaying its messages,
     otherwise the last line of the screen will be temporarily overwritten and
     output  will  be  momentarily   interrupted.    The   message   line   is
     automatically  removed  after  a  few  seconds  delay, but it can also be
     removed early (on terminals without a status line) by beginning to type.


     The message line facility can be used by an application  running  in  the
     current  window  by  means  of the ANSI Privacy message control sequence.
     For instance, from within the shell, try something like:

          echo '<esc>^Hello world<esc>\\'

     where '<esc>' is an escape, '^' is a literal  up-arrow,  and  '\\'  turns
     into a single backslash.

FLOW-CONTROL
     Each window has a flow-control setting that determines how  screen  deals
     with  the  XON and XOFF characters (and perhaps the interrupt character).
     When flow-control  is  turned  off,  screen  ignores  the  XON  and  XOFF
     characters,  which allows the user to send them to the current program by
     simply typing them (useful for the  emacs  editor,  for  instance).   The
     trade-off  is that it will take longer for output from a "normal" program
     to pause in response to an XOFF.  With flow-control turned  on,  XON  and
     XOFF  characters  are used to immediately pause the output of the current
     window.  You can still send these characters to the current program,  but
     you must use the appropriate two-character screen commands (typically "C-
     a q" (xon) and "C-a s" (xoff)).  The xon/xoff commands  are  also  useful
     for typing C-s and C-q past a terminal that intercepts these characters.

     Each window has an initial flow-control value  set  with  either  the  -f
     option  or  the "flow" .screenrc command. Per default the windows are set
     to automatic flow-switching.  It can then be toggled  between  the  three
     states  'fixed  on',  'fixed  off' and 'automatic' interactively with the
     "flow" command bound to "C-a f".

     The automatic flow-switching mode  deals  with  flow  control  using  the
     TIOCPKT  mode  (like  "rlogin"  does). If the tty driver does not support
     TIOCPKT, screen tries to find out the right mode  based  on  the  current
     setting  of the application keypad -- when it is enabled, flow-control is
     turned off and visa versa.  Of course, you  can  still  manipulate  flow-
     control manually when needed.

     If you're running with flow-control enabled and find  that  pressing  the
     interrupt  key (usually C-c) does not interrupt the display until another
     6-8 lines have scrolled by,  try  running  screen  with  the  "interrupt"
     option (add the "interrupt" flag to the "flow" command in your .screenrc,
     or use the -i command-line option).  This causes the output  that  screen
     has  accumulated  from  the  interrupted  program  to  be  flushed.   One
     disadvantage is that the virtual  terminal's  memory  contains  the  non-
     flushed  version  of  the  output,  which  in  rare cases can cause minor
     inaccuracies in the output.  For  example,  if  you  switch  screens  and
     return,  or  update  the screen with "C-a l" you would see the version of
     the output you would have gotten without "interrupt" being on.  Also, you
     might need to turn off flow-control (or use auto-flow mode to turn it off
     automatically) when running a  program  that  expects  you  to  type  the
     interrupt  character  as input, as it is possible to interrupt the output
     of the virtual terminal to your physical terminal  when  flow-control  is
     enabled.   If  this  happens, a simple refresh of the screen with "C-a l"
     will restore it.  Give each mode a try, and use whichever mode  you  find
     more comfortable.

ALSO KNOWN AS (A.K.A.s)
     You can customize each window's name in the window display  (viewed  with
     the  "windows"  command  (C-a  w))  by  setting it with one of the a.k.a.
     commands.  Normally the name displayed is the actual command name of  the
     program  created  in  the  window.   However,  it  is sometimes useful to
     distinguish various programs of the same name or to change the  name  on-
     the-fly to reflect the current state of the window.

     The default name for all shell windows can be  set  with  the  "shellaka"
     command in the .screenrc file, while all other windows are created with a
     "screen" command and thus can have their name set  with  the  -t  option.
     Interactively, there is the AKA-string escape-sequence (<esc>kname<esc>\)
     and the "aka" command  (C-a  A).   The  former  can  be  output  from  an
     application  to control the window's name under software control, and the
     latter will prompt for a name when typed.  You can also bind  pre-defined
     names  to  keys  with  the  "aka"  command  to set things quickly without
     prompting.

     Finally, screen has a shell-specific heuristic that is enabled by setting
     the  window's  name  to  "search|name"  and  arranging to have a null aka
     escape-sequence output as a part of  your  prompt.   The  search  portion
     specifies   an  end-of-prompt  search  string,  while  the  name  portion
     specifies the default shell name for the window.  If the name ends  in  a
     `:'   screen  will add what it believes to be the current command running
     in the window to the end of the window's shell  name  (e.g.  "name:cmd").
     Otherwise  the current command name supersedes the shell name while it is
     running.

     Here's how it works:  you must modify your shell prompt to output a  null
     aka  escape-sequence  (<esc>k<esc>\)  as a part of your prompt.  The last
     part of your prompt must be the same as the string you specified for  the
     search  portion  of  the a.k.a.  Once this is set up, screen will use the
     aka escape-sequence to clear the previous command name and get ready  for
     the  next  command.   Then,  when a newline is received from the shell, a
     search is made for the end of the prompt.  If found,  it  will  grab  the
     first  word  after the matched string and use it as the command name.  If
     the command name begins with either '!', '%', or '^' screen will use  the
     first  word  on  the following line (if found) in preference to the just-
     found name.  This helps csh users get better command names when using job
     control or history recall commands.

     Here's some .screenrc examples:



          screen -t top 2 nice top

     Adding this line to your .screenrc would start a  niced  version  of  the
     "top" command in window 2 name "top" rather than "nice".

           shellaka '> |csh'
           screen 1

     This file would start a shell  using  the  given  shellaka.   The  a.k.a.
     specified  is  an  auto-aka  that  would  expect the prompt and the typed
     command to look something like the following:

          /usr/joe/src/dir> trn

     (it looks after the '> ' for the command name).  The window status  would
     show  the  name  "trn" while the command was running, and revert to "csh"
     upon completion.

          bind R screen -t '% |root:' su

     Having this command in your .screenrc would bind the key sequence "C-a R"
     to  the  "su"  command and give it an auto-aka name of "root:".  For this
     auto-aka to work, the screen could look something like this:

           % !em
           emacs file.c

     Here the  user  typed  the  csh  history  command  "!em"  which  ran  the
     previously  entered  "emacs"  command.   The  window  status  would  show
     "root:emacs" during the execution of the command, and  revert  to  simply
     "root:" at its completion.

           bind o aka
           bind E aka ""
           bind u aka (unknown)

     The first binding doesn't have any arguments, so it would prompt you  for
     an a.k.a. when you type "C-a o".  The second binding would clear an auto-
     aka's current setting (C-a E).  The third binding would set  the  current
     window's a.k.a. to "(unknown)" (C-a u).

     One thing to keep in mind when adding a null aka escape-sequence to  your
     prompt  is  that  some  shells  (like  the csh) count all the non-control
     characters as part of the prompt's length.  If these invisible characters
     aren't  a  multiple  of  8  then backspacing over a tab will result in an
     incorrect display.  One way to get around this is to use  a  prompt  like
     this:



          set prompt='^[[0000m^[k^[\% '

     The escape-sequence  "<esc>[0000m"  not  only  normalizes  the  character
     attributes,  but  all  the  zeros  round  the  length  of  the  invisible
     characters up to 8.  Bash users will probably want  to  echo  the  escape
     sequence in the PROMPT_COMMAND:

          PROMPT_COMMAND='echo -n -e "\033k\033\134"'

     (I used "134" to output a `\' because of a bug in v1.04).

THE VIRTUAL TERMINAL
     Usually screen tries to emulate as much of  the  VT100/ANSI  standard  as
     possible.  But  if your terminal lacks certain capabilities the emulation
     may not be complete. In these cases screen has to tell  the  applications
     that  some  of  the  features are missing. This is no problem on machines
     using termcap, because screen can use the $TERMCAP variable to  customize
     the standard screen termcap.
     But if you do a rlogin on another machine or your machine  supports  only
     terminfo  this  method fails. Because of this screen offers a way to deal
     with these cases. Here is how it works:
     When screen tries to figure out a terminal  name  for  itself,  it  first
     looks for an entry named "screen.<term>", where <term> is the contents of
     your $TERM variable.  If no such entry exists, screen tries "screen"  (or
     "screen-w",  if  the  terminal is wide (132 cols or more)).  If even this
     entry cannot be found, "vt100" is used as a substitute.
     The idea is that  if  you  have  a  terminal  which  doesn't  support  an
     important  feature (e.g. delete char or clear to EOS) you can build a new
     termcap/terminfo entry for screen (named  "screen.<dumbterm>")  in  which
     this  capability  has  been disabled.  If this entry is installed on your
     machines you are  able  to  do  a  rlogin  and  still  keep  the  correct
     termcap/terminfo  entry.   The terminal name is put in the $TERM variable
     of all new windows.  Screen also sets the  $TERMCAP  variable  reflecting
     the  capabilities of the virtual terminal emulated. Notice that, however,
     on machines using the terminfo database  this  variable  has  no  effect.
     Furthermore,  the  variable  $WINDOW  is set to the window number of each
     window.
     The actual set of capabilities supported by the virtual terminal  depends
     on  the  capabilities  supported  by  the  physical  terminal.   If,  for
     instance, the physical terminal does not support underscore mode,  screen
     does  not  put  the `us' and `ue' capabilities into the window's $TERMCAP
     variable, accordingly.  However, a minimum number of capabilities must be
     supported  by  a terminal in order to run screen; namely scrolling, clear
     screen, and direct cursor addressing (in addition, screen does not run on
     hardcopy terminals or on terminals that over-strike).

     Also, you can customize the $TERMCAP value used by screen  by  using  the
     "termcap" .screenrc command, or by defining the variable $SCREENCAP prior
     to startup.  When the latter defined, its value will be  copied  verbatim
     into  each  window's  $TERMCAP  variable.   This  can  either be the full
     terminal definition, or a filename where the  terminal  "screen"  (and/or
     "screen-w") is defined.

     Note that screen honors the "terminfo" .screenrc command  if  the  system
     uses the terminfo database rather than termcap.

     When the boolean `G0' capability is present in the termcap entry for  the
     terminal  on  which  screen  has  been  called, the terminal emulation of
     screen supports multiple character sets.  This allows an  application  to
     make  use  of, for instance, the VT100 graphics character set or national
     character sets.  The  following  control  functions  from  ISO  2022  are
     supported:   lock  shift G0 (SI), lock shift G1 (SO), lock shift G2, lock
     shift G3, single shift G2, and single shift G3.  When a virtual  terminal
     is  created or reset, the ASCII character set is designated as G0 through
     G3.   When  the  `G0'  capability  is  present,  screen   evaluates   the
     capabilities  `S0',  `E0',  and `C0' if present. `S0' is the sequence the
     terminal uses to enable and start the graphics character set rather  than
     SI.  `E0' is the corresponding replacement for SO. `C0' gives a character
     by character translation string that is used during  semi-graphics  mode.
     This string is built like the `acsc' terminfo capability.

     When the `po' and `pf' capabilities are present in the terminal's termcap
     entry,  applications  running  in  a screen window can send output to the
     printer port of the terminal.  This allows a user to have an  application
     in  one  window  sending  output  to a printer connected to the terminal,
     while all other windows are still active (the printer port is enabled and
     disabled  again  for  each  chunk of output).  As a side-effect, programs
     running  in  different  windows  can   send   output   to   the   printer
     simultaneously.  Data sent to the printer is not displayed in the window.

     Some capabilities are only put into the $TERMCAP variable of the  virtual
     terminal if they can be efficiently implemented by the physical terminal.
     For instance, `dl' (delete line) is only put into the  $TERMCAP  variable
     if  the terminal supports either delete line itself or scrolling regions.
     Note that this may provoke confusion, when the session is reattached on a
     different terminal, as the value of $TERMCAP cannot be modified by parent
     processes.

     The following is a list of control sequences recognized by screen.  "(V)"
     and  "(A)"  indicate  VT100-specific and ANSI- or ISO-specific functions,
     respectively.

     ESC E
                               Next Line

     ESC D
                               Index



     ESC M
                               Reverse Index

     ESC H
                               Horizontal Tab Set

     ESC 7               (V) Save Cursor and Attributes

     ESC 8               (V) Restore Cursor and Attributes

     ESC [s              (A) Save Cursor and Attributes

     ESC [u              (A) Restore Cursor and Attributes

     ESC c
                               Reset to Initial State

     ESC =               (V) Application Keypad Mode

     ESC >               (V) Numeric Keypad Mode

     ESC # 8             (V) Fill Screen with E's

     ESC \               (A) String Terminator

     ESC ^               (A) Privacy Message String (Message Line)

     ESC k
                               A.k.a. Definition String

     ESC P               (A) Device Control String
                               Outputs a string directly to the host
                               terminal without interpretation.

     ESC _               (A) Application Program Command (not used)

     ESC ]               (A) Operating System Command (not used)

     Control-N           (A) Lock Shift G1 (SO)

     Control-O           (A) Lock Shift G0 (SI)

     ESC n               (A) Lock Shift G2

     ESC o               (A) Lock Shift G3

     ESC N               (A) Single Shift G2



     ESC O               (A) Single Shift G3

     ESC ( Pcs           (A) Designate character set as G0

     ESC ) Pcs           (A) Designate character set as G1

     ESC * Pcs           (A) Designate character set as G2

     ESC + Pcs           (A) Designate character set as G3

     ESC [ Pn ; Pn H
                               Direct Cursor Addressing

     ESC [ Pn ; Pn f
                               Direct Cursor Addressing

     ESC [ Pn J
                               Erase in Display

         Pn = None or 0
                               From Cursor to End of Screen

              1
                               From Beginning of Screen to Cursor

              2
                               Entire Screen

     ESC [ Pn K
                               Erase in Line

         Pn = None or 0
                               From Cursor to End of Line

              1
                               From Beginning of Line to Cursor

              2
                               Entire Line

     ESC [ Pn A
                               Cursor Up

     ESC [ Pn B
                               Cursor Down

     ESC [ Pn C
                               Cursor Right


     ESC [ Pn D
                               Cursor Left

     ESC [ Ps ;...; Ps m
                               Select Graphic Rendition

         Ps = None or 0
                               Default Rendition

              1
                               Bold

              2          (A) Faint

              3          (A) Standout Mode (ANSI: Italicized)

              4
                               Underlined

              5
                               Blinking

              7
                               Negative Image

              22         (A) Normal Intensity

              23         (A) Standout Mode off (ANSI: Italicized off)

              24         (A) Not Underlined

              25         (A) Not Blinking

              27         (A) Positive Image

     ESC [ Pn g
                               Tab Clear

         Pn = None or 0
                               Clear Tab at Current Position

              3
                               Clear All Tabs

     ESC [ Pn ; Pn r     (V) Set Scrolling Region

     ESC [ Pn I          (A) Horizontal Tab



     ESC [ Pn Z          (A) Backward Tab

     ESC [ Pn L          (A) Insert Line

     ESC [ Pn M          (A) Delete Line

     ESC [ Pn @          (A) Insert Character

     ESC [ Pn P          (A) Delete Character

     ESC [ Ps ;...; Ps h
                               Set Mode

     ESC [ Ps ;...; Ps l
                               Reset Mode

         Ps = 4          (A) Insert Mode

              ?3         (V) Change Terminal Width

              ?5         (V) Visible Bell (On followed by Off)

              ?6         (V) Origin Mode

              ?7         (V) Wrap Mode

     ESC [ 5 i           (A) Start relay to printer (ANSI Media Copy)

     ESC [ 4 i           (A) Stop relay to printer (ANSI Media Copy)

ENVIRONMENT

     COLUMNS             Number of columns on the terminal (overrides  termcap
                         entry).

     HOME                Directory in which to look for .screenrc.

     ISCREENRC           Alternate user screenrc file.

     LINES               Number of lines on the  terminal  (overrides  termcap
                         entry).

     LOCKPRG             Screen lock program.

     NETHACKOPTIONS      Turns on nethack option.

     PATH                Used for locating programs to run.



     SCREENCAP           For customizing a terminal's TERMCAP value.

     SCREENDIR           Alternate socket directory.

     SCREENRC            Alternate user screenrc file.

     SHELL               Default shell program for  opening  windows  (default
                         "/bin/sh").

     STY                 Alternate socket name.

     SYSSCREENRC         Alternate system screenrc file.

     TERM                Terminal name.

     TERMCAP             Terminal description.

FILES
     $SYSSCREENRC
     /local/etc/screenrc      screen initialization commands
     $ISCREENRC
     $SCREENRC
     $HOME/.iscreenrc
     $HOME/.screenrc          Read in after /local/etc/screenrc
     $ISCREENDIR/S-<login>
     $SCREENDIR/S-<login>
     /local/screens/S-<login>  Socket directories (default)
     /usr/tmp/screens/S-<login>  Alternate socket directories.
     <socket directory>/.termcap  Written by the "termcap" output function
     /usr/tmp/screens/screen-exchange  or
     /tmp/screen-exchange     screen `interprocess communication buffer'
     hardcopy.[0-9]           Screen images created by the hardcopy function
     screenlog.[0-9]          Output log files created by the log function
     /usr/lib/terminfo/?/*     or
     /etc/termcap             Terminal capability databases
     /etc/utmp                Login records
     $LOCKPRG                 Program that locks a terminal.

SEE ALSO
     termcap(5), utmp(5), vi(1), captoinfo(1), tic(1)

AUTHORS
     Originally created by Oliver Laumann, this latest version was produced by
     Wayne Davison, Juergen Weigert and Michael Schroeder.

CONTRIBUTORS
     Allan Ball, Bart Schaefer, Doug Siebert, Howard Chu,  Jay  Vassos-Libove,
     John  Kraft,  Larry  Virden, Marc Boucher, Nathan Glasser, Patrick Wolfe,
     Rudolf Koenig.  Toerless Eckert,

VERSION
     This is version 3.2. It's roots are a merge of a custom version 2.3PR7 by
     Wayne  Davison  and several enhancements to Oliver Laumann's version 2.0.
     Note that all versions numbered 2.x are copyright by Oliver Laumann.


BUGS
     `dm' (delete mode), `xn', and `xs' are not handled  correctly  (they  are
     ignored).

     The GR set of ISO 2022 is not supported.

     There is no keyboard input translation to VT100 sequences.

     It is not possible to  change  the  environment  variable  $TERMCAP  when
     reattaching under a different terminal type.

     The support of terminfo based  systems  is  very  limited.  Adding  extra
     capabilities to $TERMCAP may not have any effects.

     Screen does not make use of hardware tabs.

     Screen must be installed as set-uid with owner root in order to  be  able
     to  correctly  change  the  owner of the tty device file for each window.
     Special permission may also be required to write the file "/etc/utmp".

     Entries in "/etc/utmp"  are  not  removed  when  screen  is  killed  with
     SIGKILL.  This will cause some programs (like "w" or "rwho") to advertise
     that a user is logged on who really isn't.