This file documents the 'Screen' virtual terminal manager.

   Copyright (c) 1993-2003 Free Software Foundation, Inc.

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

   Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.

Screen
******

This file documents the 'Screen' virtual terminal manager, version
4.1.0.

1 Overview
**********

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 ISO 6429 (ECMA 48, ANSI
X3.64) 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 the user to
move text regions between windows.

   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 the current window, view a list of the active
windows, turn output logging on and off, copy text between windows, view
the scrollback history, switch between windows, etc.  All windows run
their programs completely independent of each other.  Programs continue
to run when their window is currently not visible and even when the
whole screen session is detached from the user's terminal.

   When a program terminates, 'screen' (per default) kills the window
that contained it.  If this window was in the foreground, the display
switches to the previously displayed 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 (see Command Character)
and all the key bindings (see Key Binding) can be fully
customized to be anything you like, though they are always two
characters in length.

   'Screen' does not understand the prefix 'C-' to mean control.  Please
use the caret notation ('^A' instead of 'C-a') as arguments to e.g.  the
'escape' command or the '-e' option.  'Screen' will also print out
control characters in caret notation.

   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 or at the 'C-a :' command line) 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 (specified in the $STY
environment variable) 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.  - Note that you cannot transport environment
variables from the invoking shell to the application (emacs in this
case), because it is forked from the parent screen process, not from the
invoking shell.

   If '/var/run/utmp' is writable by 'screen', an appropriate record
will be written to this file for each window, and removed when the
window is closed.  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 terminal's own record is removed from the utmp file.
See Login.

2 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', 'qterm', or
just 'set term=mytermtype', 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 ?' (see Key Binding).
Typing these two characters will display a list of the
available 'screen' commands and their bindings.  Each keystroke is
discussed in the section on keystrokes (see Default Key Bindings).
Another section (see Customization) deals with the contents of your
'.screenrc'.

   If your terminal is a "true" auto-margin terminal (it doesn't allow
the last position on the screen to be updated without scrolling the
screen) consider using 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.  Most terminals
nowadays have "magic" margins (automatic margins plus usable last
column).  This is the VT100 style type and perfectly suited for
'screen'.  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.

   See Special Capabilities, for more information about telling
'screen' what kind of terminal you have.

3 Invoking 'Screen'
*******************

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 when
     attaching to resizable terminals (those with 'WS' in their
     descriptions, e.g.  'suncmd' or some varieties of 'xterm').

'-c FILE'
     Use FILE as the user's configuration file instead of the default of
     '$HOME/.screenrc'.

'-d [PID.SESSIONNAME]'
'-D [PID.SESSIONNAME]'
     Do not start 'screen', but instead detach a 'screen' session
     running elsewhere (see Detach).  '-d' has the same effect as
     typing 'C-a d' from the controlling terminal for the session.  '-D'
     is the equivalent to the power detach key.  If no session can be
     detached, this option is ignored.  In combination with the
     '-r'/'-R' option more powerful effects can be achieved:

     '-d -r'
          Reattach a session and if necessary detach it first.
     '-d -R'
          Reattach a session and if necessary detach or even create it
          first.
     '-d -RR'
          Reattach a session and if necessary detach or create it.  Use
          the first session if more than one session is available.
     '-D -r'
          Reattach a session.  If necessary detach and logout remotely
          first.
     '-D -R'
          Attach here and now.  In detail this means: If a session is
          running, then reattach.  If necessary detach and logout
          remotely first.  If it was not running create it and notify
          the user.  This is the author's favorite.
     '-D -RR'
          Attach here and now.  Whatever that means, just do it.

     _Note_: It is a good idea to check the status of your sessions with
     'screen -list' before using this option.

'-e XY'
     Set the command character to X, and the character generating a
     literal command character (when typed after the command character)
     to Y.  The defaults are 'C-a' and 'a', which can be specified as
     '-e^Aa'.  When creating a 'screen' session, this option sets the
     default command character.  In a multiuser session all users added
     will start off with this command character.  But when attaching to
     an already running session, this option only changes the command
     character of the attaching user.  This option is equivalent to the
     commands 'defescape' or 'escape' respectively.  (see Command Character).

'-f'
'-fn'
'-fa'
     Set flow-control to on, off, or automatic switching mode,
     respectively.  This option is equivalent to the 'defflow' command
     (see Flow Control).

'-h NUM'
     Set the history scrollback buffer to be NUM lines high.  Equivalent
     to the 'defscrollback' command (see Copy).

'-i'
     Cause the interrupt key (usually 'C-c') to interrupt the display
     immediately when flow control is on.  This option is equivalent to
     the 'interrupt' argument to the 'defflow' command (see Flow Control).
     Its use is discouraged.

'-l'
'-ln'
     Turn login mode on or off (for '/var/run/utmp' updating).  This
     option is equivalent to the 'deflogin' command (see Login).

'-ls [MATCH]'
'-list [MATCH]'
     Do not start 'screen', but instead print a list of session
     identification strings (usually of the form PID.TTY.HOST; see
     Session Name) and the corresponding creation timestamps.
     Sessions marked 'detached' can be resumed with 'screen -r'.  Those
     marked 'attached' are running and have a controlling terminal.  If
     the session runs in multiuser mode, it is marked 'multi'.  Sessions
     marked as 'unreachable' either live on a different host or are
     dead.  An unreachable session is considered dead, when its name
     matches either the name of the local host, or the specified
     parameter, if any.  See the '-r' flag for a description how to
     construct matches.  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.

'-L'
     Tell 'screen' to turn on automatic output logging for the windows.

'-m'
     Tell 'screen' to ignore the '$STY' environment variable.  When this
     option is used, a new session will always be created, regardless of
     whether 'screen' is being called from within another 'screen'
     session or not.  This flag has a special meaning in connection with
     the '-d' option:
     '-d -m'
          Start 'screen' in _detached_ mode.  This creates a new session
          but doesn't attach to it.  This is useful for system startup
          scripts.
     '-D -m'
          This also starts 'screen' in _detached_ mode, but doesn't fork
          a new process.  The command exits if the session terminates.

'-O'
     Select 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 the 'termcap' command.

'-p NAME_OR_NUMBER|-|=|+'
     Preselect a window.  This is useful when you want to reattach to a
     specific window or you want to send a command via the '-X' option
     to a specific window.  As with screen's select command, '-' selects
     the blank window.  As a special case for reattach, '=' brings up
     the windowlist on the blank window, while a '+' will create new
     window.  The command will not be executed if the specified window
     could not be found.

'-q'
     Suppress printing of error messages.  In combination with '-ls' the
     exit value is set as follows: 9 indicates a directory without
     sessions.  10 indicates a directory with running but not attachable
     sessions.  11 (or more) indicates 1 (or more) usable sessions.  In
     combination with '-r' the exit value is as follows: 10 indicates
     that there is no session to resume.  12 (or more) indicates that
     there are 2 (or more) sessions to resume and you should specify
     which one to choose.  In all other cases '-q' has no effect.

'-Q'
     Some commands now can be queried from a remote session using this
     flag, e.g.  'screen -Q windows'.  The commands will send the
     response to the stdout of the querying process.  If there was an
     error in the command, then the querying process will exit with a
     non-zero status.

     The commands that can be queried now are: 'echo' 'info' 'lastmsg'
     'number' 'select' 'time' 'title' 'windows'

'-r [PID.SESSIONNAME]'
'-r SESSIONOWNER/[PID.SESSIONNAME]'
     Resume a detached 'screen' session.  No other options (except
     combinations with '-d' or '-D') may be specified, though the
     session name (see Session Name) may be needed to distinguish
     between multiple detached 'screen' sessions.  The second form is
     used to connect to another user's screen session which runs in
     multiuser mode.  This indicates that screen should look for
     sessions in another user's directory.  This requires setuid-root.

'-R'
     Resume the most-recently created appropriate detached 'screen'
     session.  If successful, all other command-line options are
     ignored.  If no detached session exists, start a new session using
     the specified options, just as if '-R' had not been specified.
     This option is set by default if screen is run as a login-shell
     (actually screen uses '-xRR' in that case).  For combinations with
     the '-D'/'-d' option see there.  'Note:' Time-based session
     selection is a Debian addition.

'-s PROGRAM'
     Set the default shell to be PROGRAM.  By default, 'screen' uses the
     value of the environment variable '$SHELL', or '/bin/sh' if it is
     not defined.  This option is equivalent to the 'shell' command
     (see Shell).

'-S SESSIONNAME'
     Set the name of the new session to SESSIONNAME.  This option can be
     used to specify a meaningful name for the session in place of the
     default TTY.HOST suffix.  This name identifies the session for the
     'screen -list' and 'screen -r' commands.  This option is equivalent
     to the 'sessionname' command (see Session Name).

'-t NAME'
     Set the title (name) for the default shell or specified program.
     This option is equivalent to the 'shelltitle' command (see
     Shell).

'-T TERM'
     Set the $TERM enviroment varible using the spcified _term_ as
     opposed to the defualt setting of 'screen'.

'-U'
     Run screen in UTF-8 mode.  This option tells screen that your
     terminal sends and understands UTF-8 encoded characters.  It also
     sets the default encoding for new windows to 'utf8'.

'-v'
     Print the version number.

'-wipe [MATCH]'
     List available screens like 'screen -ls', but remove destroyed
     sessions instead of marking them as 'dead'.  An unreachable session
     is considered dead, when its name matches either the name of the
     local host, or the explicitly given parameter, if any.  See the
     '-r' flag for a description how to construct matches.

'-x'
     Attach to a session which is already attached elsewhere
     (multi-display mode).  'Screen' refuses to attach from within
     itself.  But when cascading multiple screens, loops are not
     detected; take care.

'-X'
     Send the specified command to a running screen session.  You can
     use the '-d' or '-r' option to tell screen to look only for
     attached or detached screen sessions.  Note that this command
     doesn't work if the session is password protected.

4 Customizing 'Screen'
**********************

You can modify the default settings for 'screen' to fit your tastes
either through a personal '.screenrc' file which contains commands to be
executed at startup, or on the fly using the 'colon' command.

4.1 The '.screenrc' file
========================

When 'screen' is invoked, it executes initialization commands from the
files '.screenrc' in the user's home directory and '/etc/screenrc'.
These defaults can be overridden in the following ways: For the global
screenrc file 'screen' searches for the environment variable
'$SYSSCREENRC' (this override feature may be disabled at compile-time).
The user specific screenrc file is searched for in '$SCREENRC', then
'$HOME/.screenrc'.  The command line option '-c' specifies which file to
use (see Invoking Screen.  Commands in these files are used to set
options, bind commands to keys, and to automatically establish one or
more 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
incompatibility with previous 'screen' versions, as now the
'$'-character has to be protected with '\' if no variable substitution
is intended.  A string in single-quotes is also protected from variable
substitution.

   Two configuration files are shipped as examples with your screen
distribution: 'etc/screenrc' and 'etc/etcscreenrc'.  They contain a
number of useful examples for various commands.

4.2 Source
==========

 -- Command: source file
     (none)
     Read and execute commands from file FILE.  Source commands may be
     nested to a maximum recursion level of ten.  If FILE is not an
     absolute path and screen is already processing a source command,
     the parent directory of the running source command file is used to
     search for the new command file before screen's current directory.

     Note that termcap/terminfo/termcapinfo commands only work at
     startup and reattach time, so they must be reached via the default
     screenrc files to have an effect.

4.3 Colon
=========

Customization can also be done online, with this command:

 -- Command: colon
     ('C-a :')
     Allows you to enter '.screenrc' command lines.  Useful for
     on-the-fly modification of key bindings, specific window creation
     and changing settings.  Note that the 'set' keyword no longer
     exists, as of version 3.3.  Change default settings with commands
     starting with 'def'.  You might think of this as the 'ex' command
     mode of 'screen', with 'copy' as its 'vi' command mode (see Copy and Paste).

5 Commands
**********

A command in 'screen' can either be bound to a key, invoked from a
screenrc file, or called from the 'colon' prompt (see
Customization).  As of version 3.3, all commands can be bound to keys,
although some may be less useful than others.  For a number of real life
working examples of the most important commands see the files
'etc/screenrc' and 'etc/etcscreenrc' of your screen distribution.

   In this manual, a command definition looks like this:

- Command: command [-n] ARG1 [ARG2] ...
     (KEYBINDINGS)
     This command does something, but I can't remember what.

   An argument in square brackets ('[]') is optional.  Many commands
take an argument of 'on' or 'off', which is indicated as STATE in the
definition.

5.1 Default Key Bindings
========================

As mentioned previously, each keyboard 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, both 'C-a c' and 'C-a C-c' can be used to create a window.

   The following table shows the default key bindings:

'C-a ''
     (select)
     Prompt for a window identifier and switch.  See Selecting.

'C-a "'
     (windowlist -b)
     Present a list of all windows for selection.  See Selecting.

'C-a 0...9, -'
     (select 0...select 9, select -)
     Switch to window number 0...9, or the blank window.  See
     Selecting.

'C-a <Tab>'
     (focus)
     Switch the input focus to the next region.  See Regions.

'C-a C-a'
     (other)
     Toggle to the window displayed previously.  If this window does no
     longer exist, 'other' has the same effect as 'next'.  See
     Selecting.

'C-a a'
     (meta)
     Send the command character (C-a) to window.  See 'escape' command.
     See Command Character.

'C-a A'
     (title)
     Allow the user to enter a title for the current window.  See
     Naming Windows.

'C-a b'
'C-a C-b'
     (break)
     Send a break to the tty.  See Break.

'C-a B'
     (pow_break)
     Close and reopen the tty-line.  See Break.

'C-a c'
'C-a C-c'
     (screen)
     Create a new window with a shell and switch to that window.  See
     Screen Command.

'C-a C'
     (clear)
     Clear the screen.  See Clear.

'C-a d'
'C-a C-d'
     (detach)
     Detach 'screen' from this terminal.  See Detach.

'C-a D D'
     (pow_detach)
     Detach and logout.  See Power Detach.

'C-a f'
'C-a C-f'
     (flow)
     Cycle flow among 'on', 'off' or 'auto'.  See Flow.

'C-a F'
     (fit)
     Resize the window to the current region size.  See Fit.

'C-a C-g'
     (vbell)
     Toggle visual bell mode.  See Bell.

'C-a h'
     (hardcopy)
     Write a hardcopy of the current window to the file "hardcopy.N".
     See Hardcopy.

'C-a H'
     (log)
     Toggle logging of the current window to the file "screenlog.N".
     See Log.

'C-a i'
'C-a C-i'
     (info)
     Show info about the current window.  See Info.

'C-a k'
'C-a C-k'
     (kill)
     Destroy the current window.  See Kill.

'C-a l'
'C-a C-l'
     (redisplay)
     Fully refresh the current window.  See Redisplay.

'C-a L'
     (login)
     Toggle the current window's login state.  See Login.

'C-a m'
'C-a C-m'
     (lastmsg)
     Repeat the last message displayed in the message line.  See Last Message.

'C-a M'
     (monitor) Toggle monitoring of the current window.  See
     Monitor.

'C-a <SPC>'
'C-a n'
'C-a C-n'
     (next)
     Switch to the next window.  See Selecting.

'C-a N'
     (number)
     Show the number (and title) of the current window.  See Number.

'C-a p'
'C-a C-p'
'C-a C-h'
'C-a <BackSpace>'
     (prev)
     Switch to the previous window (opposite of 'C-a n').  See
     Selecting.

'C-a q'
'C-a C-q'
     (xon)
     Send a ^Q (ASCII XON) to the current window.  See XON/XOFF.

'C-a Q'
     (only)
     Delete all regions but the current one.  See Regions.

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

'C-a s'
'C-a C-s'
     (xoff)
     Send a ^S (ASCII XOFF) to the current window.  See XON/XOFF.

'C-a S'
     (split)
     Split the current region horizontally into two new ones.  See
     Regions.

'C-a t'
'C-a C-t'
     (time)
     Show the load average and xref.  See Time.

'C-a v'
     (version)
     Display the version and compilation date.  See Version.

'C-a C-v'
     (digraph)
     Enter digraph.  See Digraph.

'C-a w'
'C-a C-w'
     (windows)
     Show a list of active windows.  See Windows.

'C-a W'
     (width)
     Toggle between 80 and 132 columns.  See Window Size.

'C-a x'
'C-a C-x'
     (lockscreen)
     Lock your terminal.  See Lock.

'C-a X'
     (remove)
     Kill the current region.  See Regions.

'C-a z'
'C-a C-z'
     (suspend)
     Suspend 'screen'.  See Suspend.

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

'C-a .'
     (dumptermcap)
     Write out a '.termcap' file.  See Dump Termcap.

'C-a ?'
     (help)
     Show key bindings.  See Help.

'C-a \'
     (quit)
     Kill all windows and terminate 'screen'.  See Quit.

'C-a :'
     (colon)
     Enter a command line.  See Colon.

'C-a ['
'C-a C-['
'C-a <ESC>'
     (copy)
     Enter copy/scrollback mode.  See Copy.

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

'C-a {'
'C-a }'
     (history)
     Copy and paste a previous (command) line.  See History.

'C-a >'
     (writebuf)
     Write the paste buffer out to the screen-exchange file.  See
     Screen Exchange.

'C-a <'
     (readbuf)
     Read the screen-exchange file into the paste buffer.  See Screen Exchange.

'C-a ='
     (removebuf)
     Delete the screen-exchange file.  See Screen Exchange.

'C-a _'
     (silence)
     Start/stop monitoring the current window for inactivity.  See
     Monitor.

'C-a |'
     (split -v)
     Split the current region vertically into two new ones.  See
     Regions.

'C-a ,'
     (license)
     Show the copyright page.  See License.

'C-a *'
     (displays)
     Show the listing of attached displays.  See Displays.

5.2 Command Summary
===================

'acladd USERNAMES'
     Allow other users in this session.  See Multiuser Session.
'aclchg USERNAMES PERMBITS LIST'
     Change a user's permissions.  See Multiuser Session.
'acldel USERNAME'
     Disallow other user in this session.  See Multiuser Session.
'aclgrp USRNAME [GROUPNAME]'
     Inherit permissions granted to a group leader.  See Multiuser Session.
'aclumask [USERS]+/-BITS ...'
     Predefine access to new windows.  See Umask.
'activity MESSAGE'
     Set the activity notification message.  See Monitor.
'addacl USERNAMES'
     Synonym to 'acladd'.  See Multiuser Session.
'allpartial STATE'
     Set all windows to partial refresh.  See Redisplay.
'altscreen STATE'
     Enables support for the "alternate screen" terminal capability.
     See Redisplay.
'at [IDENT][#|*|%] COMMAND [ARGS]'
     Execute a command at other displays or windows.  See At.
'attrcolor ATTRIB [ATTRIBUTE/COLOR-MODIFIER]'
     Map attributes to colors.  See Attrcolor.
'autodetach STATE'
     Automatically detach the session on SIGHUP. See Detach.
'autonuke STATE'
     Enable a clear screen to discard unwritten output.  See
     Autonuke.
'backtick ID LIFESPAN AUTOREFRESH COMMAND [ARGS]'
     Define a command for the backtick string escape.  See Backtick.
'bce [STATE]'
     Change background color erase.  See Character Processing.
'bell_msg [MESSAGE]'
     Set the bell notification message.  See Bell.
'bind [-c CLASS] KEY [COMMAND [ARGS]]'
     Bind a command to a key.  See Bind.
'bindkey [OPTS] [STRING [CMD ARGS]]'
     Bind a string to a series of keystrokes.  See Bindkey.
'blanker'
     Blank the screen.  See Screen Saver.
'blankerprg'
     Define a blanker program.  See Screen Saver.
'break [DURATION]'
     Send a break signal to the current window.  See Break.
'breaktype [TCSENDBREAK | TCSBRK | TIOCSBRK]'
     Specify how to generate breaks.  See Break.
'bufferfile [EXCHANGE-FILE]'
     Select a file for screen-exchange.  See Screen Exchange.
'c1 [STATE]'
     Change c1 code processing.  See Character Processing.
'caption MODE [STRING]'
     Change caption mode and string.  See Regions.
'chacl USERNAMES PERMBITS LIST'
     Synonym to 'aclchg'.  See Multiuser Session.
'charset SET'
     Change character set slot designation.  See Character Processing.
'chdir [DIRECTORY]'
     Change the current directory for future windows.  See Chdir.
'clear'
     Clear the window screen.  See Clear.
'colon'
     Enter a 'screen' command.  See Colon.
'command [-c CLASS]'
     Simulate the screen escape key.  See Command Character.
'compacthist [STATE]'
     Selects compaction of trailing empty lines.  See Scrollback.
'console [STATE]'
     Grab or ungrab console output.  See Console.
'copy'
     Enter copy mode.  See Copy.
'copy_reg [KEY]'
     Removed.  Use 'paste' instead.  See Registers.
'crlf STATE'
     Select line break behavior for copying.  See Line Termination.
'debug STATE'
     Suppress/allow debugging output.  See Debug.
'defautonuke STATE'
     Select default autonuke behavior.  See Autonuke.
'defbce STATE'
     Select background color erase.  See Character Processing.
'defbreaktype [TCSENDBREAK | TCSBRK | TIOCSBRK]'
     Specify the default for generating breaks.  See Break.
'defc1 STATE'
     Select default c1 processing behavior.  See Character Processing.
'defcharset [SET]'
     Change defaul character set slot designation.  See Character Processing.
'defencoding ENC'
     Select default window encoding.  See Character Processing.
'defescape XY'
     Set the default command and 'meta' characters.  See Command Character.
'defflow FSTATE'
     Select default flow control behavior.  See Flow.
'defgr STATE'
     Select default GR processing behavior.  See Character Processing.
'defhstatus [STATUS]'
     Select default window hardstatus line.  See Hardstatus.
'deflog STATE'
     Select default window logging behavior.  See Log.
'deflogin STATE'
     Select default utmp logging behavior.  See Login.
'defmode MODE'
     Select default file mode for ptys.  See Mode.
'defmonitor STATE'
     Select default activity monitoring behavior.  See Monitor.
'defmousetrack ON|OFF'
     Select the default mouse tracking behavior.  See Mousetrack.
'defnonblock STATE|NUMSECS'
     Select default nonblock mode.  See Nonblock.
'defobuflimit LIMIT'
     Select default output buffer limit.  See Obuflimit.
'defscrollback NUM'
     Set default lines of scrollback.  See Scrollback.
'defshell COMMAND'
     Set the default program for new windows.  See Shell.
'defsilence STATE'
     Select default idle monitoring behavior.  See Monitor.
'defslowpaste MSEC'
     Select the default inter-character timeout when pasting.  See
     Paste.
'defutf8 STATE'
     Select default character encoding.  See Character Processing.
'defwrap STATE'
     Set default line-wrapping behavior.  See Wrap.
'defwritelock ON|OFF|AUTO'
     Set default writelock behavior.  See Multiuser Session.
'defzombie [KEYS]'
     Keep dead windows.  See Zombie.
'detach [-h]'
     Disconnect 'screen' from the terminal.  See Detach.
'digraph [PRESET [UNICODE-VALUE]]'
     Enter a digraph sequence.  See Digraph.
'dinfo'
     Display terminal information.  See Info.
'displays'
     List currently active user interfaces.  See Displays.
'dumptermcap'
     Write the window's termcap entry to a file.  See Dump Termcap.
'echo [-n] MESSAGE'
     Display a message on startup.  See Startup.
'encoding ENC [DENC]'
     Set the encoding of a window.  See Character Processing.
'escape XY'
     Set the command and 'meta' characters.  See Command Character.
'eval COMMAND1 [COMMAND2 ...]'
     Parse and execute each argument.  See Eval.
'exec [[FDPAT] COMMAND [ARGS ...]]'
     Run a subprocess (filter).  See Exec.
'fit'
     Change window size to current display size.  See Window Size.
'flow [FSTATE]'
     Set flow control behavior.  See Flow.
'focus'
     Move focus to next region.  See Regions.
'focusminsize'
     Force the current region to a certain size.  See Focusminsize.
'gr [STATE]'
     Change GR charset processing.  See Character Processing.
'group [GROUPTITLE]'
     Change or show the group the current window belongs to.  See
     Window Groups.
'hardcopy [-h] [FILE]'
     Write out the contents of the current window.  See Hardcopy.
'hardcopy_append STATE'
     Append to hardcopy files.  See Hardcopy.
'hardcopydir DIRECTORY'
     Place, where to dump hardcopy files.  See Hardcopy.
'hardstatus [STATE]'
     Use the hardware status line.  See Hardware Status Line.
'height [LINES [COLS]]'
     Set display height.  See Window Size.
'help [-c CLASS]'
     Display current key bindings.  See Help.
'history'
     Find previous command beginning ....  See History.
'hstatus STATUS'
     Change the window's hardstatus line.  See Hardstatus.
'idle [TIMEOUT [CMD ARGS]]'
     Define a screen saver command.  See Screen Saver.
'ignorecase [on|off]'
     Ignore character case in searches.  See Searching.
'info'
     Display window settings.  See Info.
'ins_reg [KEY]'
     Removed, use 'paste' instead.  See Registers.
'kill'
     Destroy the current window.  See Kill.
'lastmsg'
     Redisplay the last message.  See Last Message.
'layout new [TITLE]'
     Create a layout.  See Layout.
'layout remove [N|TITLE]'
     Delete a layout.  See Layout.
'layout next'
     Select the next layout.  See Layout.
'layout prev'
     Select the previous layout.  See Layout.
'layout select [N|TITLE]'
     Jump to a layout.  See Layout.
'layout show'
     List the available layouts.  See Layout.
'layout title [TITLE]'
     Show or set the title of a layout.  See Layout.
'layout number [N]'
     Show or set the number of a layout.  See Layout.
'layout attach [TITLE|:last]'
     Show or set which layout to reattach to.  See Layout.
'layout save [N|TITLE]'
     Remember the organization of a layout.  See Layout.
'layout autosave [ON|OFF]'
     Show or set the status of layout saving.  See Layout.
'layout dump [filename]'
     Save the layout arrangement to a file.  See Layout.
'license'
     Display licensing information.  See Startup.
'lockscreen'
     Lock the controlling terminal.  See Lock.
'log [STATE]'
     Log all output in the current window.  See Log.
'logfile FILENAME'
     Place where to collect logfiles.  See Log.
'login [STATE]'
     Log the window in '/var/run/utmp'.  See Login.
'logtstamp [STATE]'
     Configure logfile time-stamps.  See Log.
'mapdefault'
     Use only the default mapping table for the next keystroke.  See
     Bindkey Control.
'mapnotnext'
     Don't try to do keymapping on the next keystroke.  See Bindkey Control.
'maptimeout N'
     Set the inter-character timeout used for keymapping.  See Bindkey Control.
'markkeys STRING'
     Rebind keys in copy mode.  See Copy Mode Keys.
'maxwin N'
     Set the maximum window number.  See Maxwin.
'meta'
     Insert the command character.  See Command Character.
'monitor [STATE]'
     Monitor activity in window.  See Monitor.
'mousetrack [ON|OFF]'
     Enable selecting split regions with mouse clicks.  See
     Mousetrack.
'msgminwait SEC'
     Set minimum message wait.  See Message Wait.
'msgwait SEC'
     Set default message wait.  See Message Wait.
'multiuser STATE'
     Go into single or multi user mode.  See Multiuser Session.
'nethack STATE'
     Use 'nethack'-like error messages.  See Nethack.
'next'
     Switch to the next window.  See Selecting.
'nonblock [STATE|NUMSECS]'
     Disable flow control to the current display.  See
     Nonblock.|NUMSECS]
'number [N]'
     Change/display the current window's number.  See Number.
'obuflimit [LIMIT]'
     Select output buffer limit.  See Obuflimit.
'only'
     Kill all other regions.  See Regions.
'other'
     Switch to the window you were in last.  See Selecting.
'partial STATE'
     Set window to partial refresh.  See Redisplay.
'password [CRYPTED_PW]'
     Set reattach password.  See Detach.
'paste [SRC_REGS [DEST_REG]]'
     Paste contents of paste buffer or registers somewhere.  See
     Paste.
'pastefont [STATE]'
     Include font information in the paste buffer.  See Paste.
'pow_break'
     Close and Reopen the window's terminal.  See Break.
'pow_detach'
     Detach and hang up.  See Power Detach.
'pow_detach_msg [MESSAGE]'
     Set message displayed on 'pow_detach'.  See Power Detach.
'prev'
     Switch to the previous window.  See Selecting.
'printcmd [CMD]'
     Set a command for VT100 printer port emulation.  See Printcmd.
'process [KEY]'
     Treat a register as input to 'screen'.  See Registers.
'quit'
     Kill all windows and exit.  See Quit.
'readbuf [-e ENCODING] [FILENAME]'
     Read the paste buffer from the screen-exchange file.  See Screen Exchange.
'readreg [-e ENCODING] [REG [FILE]]'
     Load a register from paste buffer or file.  See Registers.
'redisplay'
     Redisplay the current window.  See Redisplay.
'register [-e ENCODING] KEY STRING'
     Store a string to a register.  See Registers.
'remove'
     Kill current region.  See Regions.
'removebuf'
     Delete the screen-exchange file.  See Screen Exchange.
'rendition bell | monitor | silence | so ATTR [COLOR]'
     Change text attributes in caption for flagged windows.  See
     Rendition.
'reset'
     Reset the terminal settings for the window.  See Reset.
'resize [(+/-)lines]'
     Grow or shrink a region
'screen [OPTS] [N] [CMD [ARGS] | //group]'
     Create a new window.  See Screen Command.
'scrollback NUM'
     Set size of scrollback buffer.  See Scrollback.
'select [N|-|.]'
     Switch to a specified window.  See Selecting.
'sessionname [NAME]'
     Name this session.  See Session Name.
'setenv [VAR [STRING]]'
     Set an environment variable for new windows.  See Setenv.
'setsid STATE'
     Controll process group creation for windows.  See Setsid.
'shell COMMAND'
     Set the default program for new windows.  See Shell.
'shelltitle TITLE'
     Set the default name for new windows.  See Shell.
'silence [STATE|SECONDS]'
     Monitor a window for inactivity.  See Monitor.
'silencewait SECONDS'
     Default timeout to trigger an inactivity notify.  See Monitor.
'sleep NUM'
     Pause during startup.  See Startup.
'slowpaste MSEC'
     Slow down pasting in windows.  See Paste.
'source FILE'
     Run commands from a file.  See Source.
'sorendition [ATTR [COLOR]]'
     Deprecated.  Use 'rendition so' instead.  See Rendition.
'split'
     Split region into two parts.  See Regions.
'startup_message STATE'
     Display copyright notice on startup.  See Startup.
'stuff [STRING]'
     Stuff a string in the input buffer of a window.  See Paste.
'su [USERNAME [PASSWORD [PASSWORD2]]]'
     Identify a user.  See Multiuser Session.
'suspend'
     Put session in background.  See Suspend.
'term TERM'
     Set '$TERM' for new windows.  See Term.
'termcap TERM TERMINAL-TWEAKS [WINDOW-TWEAKS]'
     Tweak termcap entries for best performance.  See Termcap Syntax.
'terminfo TERM TERMINAL-TWEAKS [WINDOW-TWEAKS]'
     Ditto, for terminfo systems.  See Termcap Syntax.
'termcapinfo TERM TERMINAL-TWEAKS [WINDOW-TWEAKS]'
     Ditto, for both systems.  See Termcap Syntax.
'time [STRING]'
     Display time and load average.  See Time.
'title [WINDOWTITLE]'
     Set the name of the current window.  See Title Command.
'umask [USERS]+/-BITS ...'
     Synonym to 'aclumask'.  See Umask.
'unbindall'
     Unset all keybindings.  See Bind.
'unsetenv VAR'
     Unset environment variable for new windows.  See Setenv.
'utf8 [STATE [DSTATE]]'
     Select character encoding of the current window.  See Character Processing.
'vbell [STATE]'
     Use visual bell.  See Bell.
'vbell_msg [MESSAGE]'
     Set vbell message.  See Bell.
'vbellwait SEC'
     Set delay for vbell message.  See Bell.
'version'
     Display 'screen' version.  See Version.
'wall MESSAGE'
     Write a message to all displays.  See Multiuser Session.
'width [COLS [LINES]]'
     Set the width of the window.  See Window Size.
'windowlist [[-b] [-m] [-g]] | string [STRING] | title [TITLE]'
     Present a list of all windows for selection.  See Windowlist.
'windows'
     List active windows.  See Windows.
'wrap [ on | off ]'
     Control line-wrap behavior.  See Wrap.
'writebuf [-e ENCODING] [FILENAME]'
     Write paste buffer to screen-exchange file.  See Screen Exchange.
'writelock ON|OFF|AUTO'
     Grant exclusive write permission.  See Multiuser Session.
'xoff'
     Send an XOFF character.  See XON/XOFF.
'xon'
     Send an XON character.  See XON/XOFF.
'zmodem [off|auto|catch|pass]'
     Define how screen treats zmodem requests.  See Zmodem.
'zombie [KEYS [onerror] ]'
     Keep dead windows.  See Zombie.

6 New Window
************

This section describes the commands for creating a new window for
running programs.  When a new window is created, the first available
number is assigned to it.  The number of windows is limited at
compile-time by the MAXWIN configuration parameter (which defaults to
40).

6.1 Chdir
=========

 -- Command: chdir [directory]
     (none)
     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.

6.2 Screen Command
==================

 -- Command: screen [opts] [n] [cmd [args] | //GROUP]
     ('C-a c', 'C-a C-c')
     Establish a new window.  The flow-control options ('-f', '-fn' and
     '-fa'), title option ('-t'), login options ('-l' and '-ln') ,
     terminal type option ('-T TERM'), the all-capability-flag ('-a')
     and scrollback option ('-h NUM') may be specified with each
     command.  The option ('-M') turns monitoring on for this window.
     The option ('-L') turns output logging on for this window.  If an
     optional number N in the range 0...MAXWIN-1 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.
     If '//group' is supplied, a container-type window is created in
     which other windows may be created inside it.  See Window Groups.

     Screen has built in some functionality of 'cu' and 'telnet'.  See
     Window Types.

   Thus, if your '.screenrc' contains the lines

     # example for .screenrc:
     screen 1
     screen -fn -t foobar 2 -L 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
title 'foobar' in window #2) and will write a logfile 'screenlog.2' of
the telnet session.  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.

6.3 Setenv
==========

 -- Command: setenv var string
     (none)
     Set the environment variable VAR to value STRING.  If only VAR is
     specified, the user will be prompted to enter a value.  If no
     parameters are specified, the user will be prompted for both
     variable and value.  The environment is inherited by all
     subsequently forked shells.

 -- Command: unsetenv var
     (none)
     Unset an environment variable.

6.4 Shell
=========

 -- Command: shell command
 -- Command: defshell command
     (none)
     Set the command to be used to create a new shell.  This overrides
     the value of the environment variable '$SHELL'.  This is useful if
     you'd like to run a tty-enhancer which is expecting to execute the
     program specified in '$SHELL'.  If the command begins with a '-'
     character, the shell will be started as a login-shell.

     'defshell' is currently a synonym to the 'shell' command.

 -- Command: shelltitle title
     (none)
     Set the title for all shells created during startup or by the C-a
     C-c command.  See Naming Windows, for details about what titles
     are.

6.5 Term
========

 -- Command: term term
     (none)
     In each window '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 and
     resetting the default.