{
    "mode": "info",
    "parameter": "screen",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/info/screen/json",
    "generated": "2026-06-03T04:23:07Z",
    "sections": {
        "Screen": {
            "content": "This file documents the 'Screen' virtual terminal manager, version\n4.9.0.\n\n* Menu:\n\n* Overview::                    Preliminary information.\n* Getting Started::             An introduction to 'screen'.\n* Invoking Screen::             Command line options for 'screen'.\n* Customization::               The '.screenrc' file.\n* Commands::                    List all of the commands.\n* New Window::                  Running a program in a new window.\n* Selecting::                   Selecting a window to display.\n* Session Management::          Suspend/detach, grant access, connect sessions.\n* Regions::\t\t\tSplit-screen commands.\n* Window Settings::             Titles, logging, etc.\n* Virtual Terminal::            Controlling the 'screen' VT100 emulation.\n* Copy and Paste::              Exchanging text between windows and sessions.\n* Subprocess Execution::\tI/O filtering with 'exec'.\n* Key Binding::                 Binding commands to keys.\n* Flow Control::                Trap or pass flow control characters.\n* Termcap::                     Tweaking your terminal's termcap entry.\n* Message Line::                The 'screen' message line.\n* Logging::                     Keeping a record of your session.\n* Startup::                     Functions only useful at 'screen' startup.\n* Miscellaneous::               Various other commands.\n* String Escapes::              Inserting current information into strings\n* Environment::                 Environment variables used by 'screen'.\n* Files::                       Files used by 'screen'.\n* Credits::                     Who's who of 'screen'.\n* Bugs::                        What to do if you find a bug.\n* Installation::                Getting 'screen' running on your system.\n* Concept Index::               Index of concepts.\n* Command Index::               Index of all 'screen' commands.\n* Keystroke Index::             Index of default key bindings.\n\nFile: screen.info,  Node: Overview,  Next: Getting Started,  Prev: Top,  Up: Top\n",
            "subsections": []
        },
        "1 Overview": {
            "content": "Screen is a full-screen window manager that multiplexes a physical\nterminal between several processes, typically interactive shells.  Each\nvirtual terminal provides the functions of the DEC VT100 terminal and,\nin addition, several control functions from the ISO 6429 (ECMA 48, ANSI\nX3.64) and ISO 2022 standards (e.g.  insert/delete line and support for\nmultiple character sets).  There is a scrollback history buffer for each\nvirtual terminal and a copy-and-paste mechanism that allows the user to\nmove text regions between windows.\n\nWhen 'screen' is called, it creates a single window with a shell in\nit (or the specified command) and then gets out of your way so that you\ncan use the program as you normally would.  Then, at any time, you can\ncreate new (full-screen) windows with other programs in them (including\nmore shells), kill the current window, view a list of the active\nwindows, turn output logging on and off, copy text between windows, view\nthe scrollback history, switch between windows, etc.  All windows run\ntheir programs completely independent of each other.  Programs continue\nto run when their window is currently not visible and even when the\nwhole screen session is detached from the user's terminal.\n\nWhen a program terminates, 'screen' (per default) kills the window\nthat contained it.  If this window was in the foreground, the display\nswitches to the previously displayed window; if none are left, 'screen'\nexits.  Shells usually distinguish between running as login-shell or\nsub-shell.  Screen runs them as sub-shells, unless told otherwise (See\n'shell' .screenrc command).\n\nEverything you type is sent to the program running in the current\nwindow.  The only exception to this is the one keystroke that is used to\ninitiate a command to the window manager.  By default, each command\nbegins with a control-a (abbreviated 'C-a' from now on), and is followed\nby one other keystroke.  The command character (*note Command\nCharacter::) and all the key bindings (*note Key Binding::) can be fully\ncustomized to be anything you like, though they are always two\ncharacters in length.\n\n'Screen' does not understand the prefix 'C-' to mean control,\nalthough this notation is used in this manual for readability.  Please\nuse the caret notation ('^A' instead of 'C-a') as arguments to e.g.  the\n'escape' command or the '-e' option.  'Screen' will also print out\ncontrol characters in caret notation.\n\nThe standard way to create a new window is to type 'C-a c'.  This\ncreates a new window running a shell and switches to that window\nimmediately, regardless of the state of the process running in the\ncurrent window.  Similarly, you can create a new window with a custom\ncommand in it by first binding the command to a keystroke (in your\n'.screenrc' file or at the 'C-a :' command line) and then using it just\nlike the 'C-a c' command.  In addition, new windows can be created by\nrunning a command like:\n\nscreen emacs prog.c\n\nfrom a shell prompt within a previously created window.  This will not\nrun another copy of 'screen', but will instead supply the command name\nand its arguments to the window manager (specified in the $STY\nenvironment variable) who will use it to create the new window.  The\nabove example would start the 'emacs' editor (editing 'prog.c') and\nswitch to its window.  - Note that you cannot transport environment\nvariables from the invoking shell to the application (emacs in this\ncase), because it is forked from the parent screen process, not from the\ninvoking shell.\n\nIf '/run/utmp' is writable by 'screen', an appropriate record will be\nwritten to this file for each window, and removed when the window is\nclosed.  This is useful for working with 'talk', 'script', 'shutdown',\n'rsend', 'sccs' and other similar programs that use the utmp file to\ndetermine who you are.  As long as 'screen' is active on your terminal,\nthe terminal's own record is removed from the utmp file.  *Note Login::.\n\nFile: screen.info,  Node: Getting Started,  Next: Invoking Screen,  Prev: Overview,  Up: Top\n",
            "subsections": []
        },
        "2 Getting Started": {
            "content": "Before you begin to use 'screen' you'll need to make sure you have\ncorrectly selected your terminal type, just as you would for any other\ntermcap/terminfo program.  (You can do this by using 'tset', 'qterm', or\njust 'set term=mytermtype', for example.)\n\nIf you're impatient and want to get started without doing a lot more\nreading, you should remember this one command: 'C-a ?' (*note Key\nBinding::).  Typing these two characters will display a list of the\navailable 'screen' commands and their bindings.  Each keystroke is\ndiscussed in the section on keystrokes (*note Default Key Bindings::).\nAnother section (*note Customization::) deals with the contents of your\n'.screenrc'.\n\nIf your terminal is a \"true\" auto-margin terminal (it doesn't allow\nthe last position on the screen to be updated without scrolling the\nscreen) consider using a version of your terminal's termcap that has\nautomatic margins turned off.  This will ensure an accurate and\noptimal update of the screen in all circumstances.  Most terminals\nnowadays have \"magic\" margins (automatic margins plus usable last\ncolumn).  This is the VT100 style type and perfectly suited for\n'screen'.  If all you've got is a \"true\" auto-margin terminal 'screen'\nwill be content to use it, but updating a character put into the last\nposition on the screen may not be possible until the screen scrolls or\nthe character is moved into a safe position in some other way.  This\ndelay can be shortened by using a terminal with insert-character\ncapability.\n\n*Note Special Capabilities::, for more information about telling\n'screen' what kind of terminal you have.\n\nFile: screen.info,  Node: Invoking Screen,  Next: Customization,  Prev: Getting Started,  Up: Top\n",
            "subsections": []
        },
        "3 Invoking 'Screen'": {
            "content": "Screen has the following command-line options:\n\n'-a'\nInclude all capabilities (with some minor exceptions) in each\nwindow's termcap, even if 'screen' must redraw parts of the display\nin order to implement a function.\n\n'-A'\nAdapt the sizes of all windows to the size of the display.  By\ndefault, 'screen' may try to restore its old window sizes when\nattaching to resizable terminals (those with 'WS' in their\ndescriptions, e.g.  'suncmd' or some varieties of 'xterm').\n\n'-c FILE'\nUse FILE as the user's configuration file instead of the default of\n'$HOME/.screenrc'.\n\n'-d [PID.SESSIONNAME]'\n'-D [PID.SESSIONNAME]'\nDo not start 'screen', but instead detach a 'screen' session\nrunning elsewhere (*note Detach::).  '-d' has the same effect as\ntyping 'C-a d' from the controlling terminal for the session.  '-D'\nis the equivalent to the power detach key.  If no session can be\ndetached, this option is ignored.  In combination with the\n'-r'/'-R' option more powerful effects can be achieved:\n\n'-d -r'\nReattach a session and if necessary detach it first.\n'-d -R'\nReattach a session and if necessary detach or even create it\nfirst.\n'-d -RR'\nReattach a session and if necessary detach or create it.  Use\nthe first session if more than one session is available.\n'-D -r'\nReattach a session.  If necessary detach and logout remotely\nfirst.\n'-D -R'\nAttach here and now.  In detail this means: If a session is\nrunning, then reattach.  If necessary detach and logout\nremotely first.  If it was not running create it and notify\nthe user.  This is the author's favorite.\n'-D -RR'\nAttach here and now.  Whatever that means, just do it.\n\nNote: It is a good idea to check the status of your sessions with\n'screen -list' before using this option.\n\n'-e XY'\nSet the command character to X, and the character generating a\nliteral command character (when typed after the command character)\nto Y.  The defaults are 'C-a' and 'a', which can be specified as\n'-e^Aa'.  When creating a 'screen' session, this option sets the\ndefault command character.  In a multiuser session all users added\nwill start off with this command character.  But when attaching to\nan already running session, this option only changes the command\ncharacter of the attaching user.  This option is equivalent to the\ncommands 'defescape' or 'escape' respectively.  (*note Command\nCharacter::).\n\n'-f'\n'-fn'\n'-fa'\nSet flow-control to on, off, or automatic switching mode,\nrespectively.  This option is equivalent to the 'defflow' command\n(*note Flow Control::).\n\n'-h NUM'\nSet the history scrollback buffer to be NUM lines high.  Equivalent\nto the 'defscrollback' command (*note Copy::).\n\n'-i'\nCause the interrupt key (usually 'C-c') to interrupt the display\nimmediately when flow control is on.  This option is equivalent to\nthe 'interrupt' argument to the 'defflow' command (*note Flow\nControl::).  Its use is discouraged.\n\n'-l'\n'-ln'\nTurn login mode on or off (for '/run/utmp' updating).  This option\nis equivalent to the 'deflogin' command (*note Login::).\n\n'-ls [MATCH]'\n'-list [MATCH]'\nDo not start 'screen', but instead print a list of session\nidentification strings (usually of the form PID.TTY.HOST; *note\nSession Name::) and the corresponding creation timestamps.\nSessions marked 'detached' can be resumed with 'screen -r'.  Those\nmarked 'attached' are running and have a controlling terminal.  If\nthe session runs in multiuser mode, it is marked 'multi'.  Sessions\nmarked as 'unreachable' either live on a different host or are\ndead.  An unreachable session is considered dead, when its name\nmatches either the name of the local host, or the specified\nparameter, if any.  See the '-r' flag for a description how to\nconstruct matches.  Sessions marked as 'dead' should be thoroughly\nchecked and removed.  Ask your system administrator if you are not\nsure.  Remove sessions with the '-wipe' option.\n\n'-L'\nTell 'screen' to turn on automatic output logging for the windows.\n\n'-Logfile \"file\"'\nBy default logfile name is \"screenlog.0\".  You can set new logfile\nname with the '-Logfile' option.\n\n'-m'\nTell 'screen' to ignore the '$STY' environment variable.  When this\noption is used, a new session will always be created, regardless of\nwhether 'screen' is being called from within another 'screen'\nsession or not.  This flag has a special meaning in connection with\nthe '-d' option:\n'-d -m'\nStart 'screen' in detached mode.  This creates a new session\nbut doesn't attach to it.  This is useful for system startup\nscripts.\n'-D -m'\nThis also starts 'screen' in detached mode, but doesn't fork\na new process.  The command exits if the session terminates.\n\n'-O'\nSelect a more optimal output mode for your terminal rather than\ntrue VT100 emulation (only affects auto-margin terminals without\n'LP').  This can also be set in your '.screenrc' by specifying 'OP'\nin the 'termcap' command.\n\n'-p NAMEORNUMBER|-|=|+'\nPreselect a window.  This is useful when you want to reattach to a\nspecific window or you want to send a command via the '-X' option\nto a specific window.  As with screen's select command, '-' selects\nthe blank window.  As a special case for reattach, '=' brings up\nthe windowlist on the blank window, while a '+' will create new\nwindow.  The command will not be executed if the specified window\ncould not be found.\n\n'-q'\nSuppress printing of error messages.  In combination with '-ls' the\nexit value is set as follows: 9 indicates a directory without\nsessions.  10 indicates a directory with running but not attachable\nsessions.  11 (or more) indicates 1 (or more) usable sessions.  In\ncombination with '-r' the exit value is as follows: 10 indicates\nthat there is no session to resume.  12 (or more) indicates that\nthere are 2 (or more) sessions to resume and you should specify\nwhich one to choose.  In all other cases '-q' has no effect.\n\n'-Q'\nSome commands now can be queried from a remote session using this\nflag, e.g.  'screen -Q windows'.  The commands will send the\nresponse to the stdout of the querying process.  If there was an\nerror in the command, then the querying process will exit with a\nnon-zero status.\n\nThe commands that can be queried now are: 'echo' 'info' 'lastmsg'\n'number' 'select' 'time' 'title' 'windows'\n\n'-r [PID.SESSIONNAME]'\n'-r SESSIONOWNER/[PID.SESSIONNAME]'\nResume a detached 'screen' session.  No other options (except\ncombinations with '-d' or '-D') may be specified, though the\nsession name (*note Session Name::) may be needed to distinguish\nbetween multiple detached 'screen' sessions.  The second form is\nused to connect to another user's screen session which runs in\nmultiuser mode.  This indicates that screen should look for\nsessions in another user's directory.  This requires setuid-root.\n\n'-R'\nresumes screen only when it's unambiguous which one to attach,\nusually when only one 'screen' is detached.  Otherwise lists\navailable sessions.\n\n'-RR'\nResume the most-recently created appropriate detached 'screen'\nsession.  If successful, all other command-line options are\nignored.  If no detached session exists, start a new session using\nthe specified options, just as if '-R' had not been specified.\nThis option is set by default if screen is run as a login-shell\n(actually screen uses '-xRR' in that case).  For combinations with\nthe '-D'/'-d' option see there.  'Note:' Time-based session\nselection is a Debian addition.\n\n'-s PROGRAM'\nSet the default shell to be PROGRAM.  By default, 'screen' uses the\nvalue of the environment variable '$SHELL', or '/bin/sh' if it is\nnot defined.  This option is equivalent to the 'shell' command\n(*note Shell::).  See also there.\n\n'-S SESSIONNAME'\nSet the name of the new session to SESSIONNAME.  This option can be\nused to specify a meaningful name for the session in place of the\ndefault TTY.HOST suffix.  This name identifies the session for the\n'screen -list' and 'screen -r' commands.  This option is equivalent\nto the 'sessionname' command (*note Session Name::).\n\n'-t NAME'\nSet the title (name) for the default shell or specified program.\nThis option is equivalent to the 'shelltitle' command (*note\nShell::).\n\n'-T TERM'\nSet the $TERM enviroment variable using the specified term as\nopposed to the default setting of 'screen'.\n\n'-U'\nRun screen in UTF-8 mode.  This option tells screen that your\nterminal sends and understands UTF-8 encoded characters.  It also\nsets the default encoding for new windows to 'utf8'.\n\n'-v'\nPrint the version number.\n\n'-wipe [MATCH]'\nList available screens like 'screen -ls', but remove destroyed\nsessions instead of marking them as 'dead'.  An unreachable session\nis considered dead, when its name matches either the name of the\nlocal host, or the explicitly given parameter, if any.  See the\n'-r' flag for a description how to construct matches.\n\n'-x'\nAttach to a session which is already attached elsewhere\n(multi-display mode).  'Screen' refuses to attach from within\nitself.  But when cascading multiple screens, loops are not\ndetected; take care.\n\n'-X'\nSend the specified command to a running screen session.  You may\nuse the '-S' option to specify the screen session if you have\nseveral running.  You can use the '-d' or '-r' option to tell\nscreen to look only for attached or detached screen sessions.  Note\nthat this command doesn't work if the session is password\nprotected.\n\nFile: screen.info,  Node: Customization,  Next: Commands,  Prev: Invoking Screen,  Up: Top\n",
            "subsections": []
        },
        "4 Customizing 'Screen'": {
            "content": "You can modify the default settings for 'screen' to fit your tastes\neither through a personal '.screenrc' file which contains commands to be\nexecuted at startup, or on the fly using the 'colon' command.\n\n* Menu:\n\n* Startup Files::               The '.screenrc' file.\n* Source::                      Read commands from a file.\n* Colon::                       Entering customization commands interactively.\n\nFile: screen.info,  Node: Startup Files,  Next: Source,  Up: Customization\n",
            "subsections": [
                {
                    "name": "4.1 The '.screenrc' file",
                    "content": "When 'screen' is invoked, it executes initialization commands from the\nfiles '.screenrc' in the user's home directory and '/etc/screenrc'.\nThese defaults can be overridden in the following ways: For the global\nscreenrc file 'screen' searches for the environment variable\n'$SYSSCREENRC' (this override feature may be disabled at compile-time).\nThe user specific screenrc file is searched for in '$SCREENRC', then\n'$HOME/.screenrc'.  The command line option '-c' specifies which file to\nuse (*note Invoking Screen::).  Commands in these files are used to set\noptions, bind commands to keys, and to automatically establish one or\nmore windows at the beginning of your 'screen' session.  Commands are\nlisted one per line, with empty lines being ignored.  A command's\narguments are separated by tabs or spaces, and may be surrounded by\nsingle or double quotes.  A '#' turns the rest of the line into a\ncomment, except in quotes.  Unintelligible lines are warned about and\nignored.  Commands may contain references to environment variables.  The\nsyntax is the shell-like '$VAR' or '${VAR}'.  Note that this causes\nincompatibility with previous 'screen' versions, as now the\n'$'-character has to be protected with '\\' if no variable substitution\nis intended.  A string in single-quotes is also protected from variable\nsubstitution.\n\nTwo configuration files are shipped as examples with your screen\ndistribution: 'etc/screenrc' and 'etc/etcscreenrc'.  They contain a\nnumber of useful examples for various commands.\n\nFile: screen.info,  Node: Source,  Next: Colon,  Prev: Startup Files,  Up: Customization\n"
                },
                {
                    "name": "4.2 Source",
                    "content": "-- Command: source file\n(none)\nRead and execute commands from file FILE.  Source commands may be\nnested to a maximum recursion level of ten.  If FILE is not an\nabsolute path and screen is already processing a source command,\nthe parent directory of the running source command file is used to\nsearch for the new command file before screen's current directory.\n\nNote that termcap/terminfo/termcapinfo commands only work at\nstartup and reattach time, so they must be reached via the default\nscreenrc files to have an effect.\n\nFile: screen.info,  Node: Colon,  Prev: Source,  Up: Customization\n"
                },
                {
                    "name": "4.3 Colon",
                    "content": "Customization can also be done online, with this command:\n\n-- Command: colon\n('C-a :')\nAllows you to enter '.screenrc' command lines.  Useful for\non-the-fly modification of key bindings, specific window creation\nand changing settings.  Note that the 'set' keyword no longer\nexists, as of version 3.3.  Change default settings with commands\nstarting with 'def'.  You might think of this as the 'ex' command\nmode of 'screen', with 'copy' as its 'vi' command mode (*note Copy\nand Paste::).\n\nFile: screen.info,  Node: Commands,  Next: New Window,  Prev: Customization,  Up: Top\n"
                }
            ]
        },
        "5 Commands": {
            "content": "A command in 'screen' can either be bound to a key, invoked from a\nscreenrc file, or called from the 'colon' prompt (*note\nCustomization::).  As of version 3.3, all commands can be bound to keys,\nalthough some may be less useful than others.  For a number of real life\nworking examples of the most important commands see the files\n'etc/screenrc' and 'etc/etcscreenrc' of your screen distribution.\n\nIn this manual, a command definition looks like this:\n\n- Command: command [-n] ARG1 [ARG2] ...\n(KEYBINDINGS)\nThis command does something, but I can't remember what.\n\nAn argument in square brackets ('[]') is optional.  Many commands\ntake an argument of 'on' or 'off', which is indicated as STATE in the\ndefinition.\n\n* Menu:\n\n* Default Key Bindings::\t'screen' keyboard commands.\n* Command Summary::             List of all commands.\n\nFile: screen.info,  Node: Default Key Bindings,  Next: Command Summary,  Up: Commands\n",
            "subsections": [
                {
                    "name": "5.1 Default Key Bindings",
                    "content": "As mentioned previously, each keyboard command consists of a 'C-a'\nfollowed by one other character.  For your convenience, all commands\nthat are bound to lower-case letters are also bound to their control\ncharacter counterparts (with the exception of 'C-a a'; see below).\nThus, both 'C-a c' and 'C-a C-c' can be used to create a window.\n\nThe following table shows the default key bindings:\n\n'C-a ''\n(select)\nPrompt for a window identifier and switch.  *Note Selecting::.\n\n'C-a \"'\n(windowlist -b)\nPresent a list of all windows for selection.  *Note Selecting::.\n\n'C-a 0...9, -'\n(select 0...select 9, select -)\nSwitch to window number 0...9, or the blank window.  *Note\nSelecting::.\n\n'C-a <Tab>'\n(focus)\nSwitch the input focus to the next region.  *Note Regions::.\n\n'C-a C-a'\n(other)\nToggle to the window displayed previously.  If this window does no\nlonger exist, 'other' has the same effect as 'next'.  *Note\nSelecting::.\n\n'C-a a'\n(meta)\nSend the command character (C-a) to window.  See 'escape' command.\n*Note Command Character::.\n\n'C-a A'\n(title)\nAllow the user to enter a title for the current window.  *Note\nNaming Windows::.\n\n'C-a b'\n'C-a C-b'\n(break)\nSend a break to the tty.  *Note Break::.\n\n'C-a B'\n(powbreak)\nClose and reopen the tty-line.  *Note Break::.\n\n'C-a c'\n'C-a C-c'\n(screen)\nCreate a new window with a shell and switch to that window.  *Note\nScreen Command::.\n\n'C-a C'\n(clear)\nClear the screen.  *Note Clear::.\n\n'C-a d'\n'C-a C-d'\n(detach)\nDetach 'screen' from this terminal.  *Note Detach::.\n\n'C-a D D'\n(powdetach)\nDetach and logout.  *Note Power Detach::.\n\n'C-a f'\n'C-a C-f'\n(flow)\nCycle flow among 'on', 'off' or 'auto'.  *Note Flow::.\n\n'C-a F'\n(fit)\nResize the window to the current region size.  *Note Fit::.\n\n'C-a C-g'\n(vbell)\nToggle visual bell mode.  *Note Bell::.\n\n'C-a h'\n(hardcopy)\nWrite a hardcopy of the current window to the file \"hardcopy.N\".\n*Note Hardcopy::.\n\n'C-a H'\n(log)\nToggle logging of the current window to the file \"screenlog.N\".\n*Note Log::.\n\n'C-a i'\n'C-a C-i'\n(info)\nShow info about the current window.  *Note Info::.\n\n'C-a k'\n'C-a C-k'\n(kill)\nDestroy the current window.  *Note Kill::.\n\n'C-a l'\n'C-a C-l'\n(redisplay)\nFully refresh the current window.  *Note Redisplay::.\n\n'C-a L'\n(login)\nToggle the current window's login state.  *Note Login::.\n\n'C-a m'\n'C-a C-m'\n(lastmsg)\nRepeat the last message displayed in the message line.  *Note Last\nMessage::.\n\n'C-a M'\n(monitor) Toggle monitoring of the current window.  *Note\nMonitor::.\n\n'C-a <SPC>'\n'C-a n'\n'C-a C-n'\n(next)\nSwitch to the next window.  *Note Selecting::.\n\n'C-a N'\n(number)\nShow the number (and title) of the current window.  *Note Number::.\n\n'C-a p'\n'C-a C-p'\n'C-a C-h'\n'C-a <BackSpace>'\n(prev)\nSwitch to the previous window (opposite of 'C-a n').  *Note\nSelecting::.\n\n'C-a q'\n'C-a C-q'\n(xon)\nSend a ^Q (ASCII XON) to the current window.  *Note XON/XOFF::.\n\n'C-a Q'\n(only)\nDelete all regions but the current one.  *Note Regions::.\n\n'C-a r'\n'C-a C-r'\n(wrap)\nToggle the current window's line-wrap setting (turn the current\nwindow's automatic margins on or off).  *Note Wrap::.\n\n'C-a s'\n'C-a C-s'\n(xoff)\nSend a ^S (ASCII XOFF) to the current window.  *Note XON/XOFF::.\n\n'C-a S'\n(split)\nSplit the current region horizontally into two new ones.  *Note\nRegions::.\n\n'C-a t'\n'C-a C-t'\n(time)\nShow the load average and xref.  *Note Time::.\n\n'C-a v'\n(version)\nDisplay the version and compilation date.  *Note Version::.\n\n'C-a C-v'\n(digraph)\nEnter digraph.  *Note Digraph::.\n\n'C-a w'\n'C-a C-w'\n(windows)\nShow a list of active windows.  *Note Windows::.\n\n'C-a W'\n(width)\nToggle between 80 and 132 columns.  *Note Window Size::.\n\n'C-a x'\n'C-a C-x'\n(lockscreen)\nLock your terminal.  *Note Lock::.\n\n'C-a X'\n(remove)\nKill the current region.  *Note Regions::.\n\n'C-a z'\n'C-a C-z'\n(suspend)\nSuspend 'screen'.  *Note Suspend::.\n\n'C-a Z'\n(reset)\nReset the virtual terminal to its \"power-on\" values.  *Note\nReset::.\n\n'C-a .'\n(dumptermcap)\nWrite out a '.termcap' file.  *Note Dump Termcap::.\n\n'C-a ?'\n(help)\nShow key bindings.  *Note Help::.\n\n'C-a \\'\n(quit)\nKill all windows and terminate 'screen'.  *Note Quit::.\n\n'C-a :'\n(colon)\nEnter a command line.  *Note Colon::.\n\n'C-a ['\n'C-a C-['\n'C-a <ESC>'\n(copy)\nEnter copy/scrollback mode.  *Note Copy::.\n\n'C-a ]'\n'C-a C-]'\n(paste .)\nWrite the contents of the paste buffer to the stdin queue of the\ncurrent window.  *Note Paste::.\n\n'C-a {'\n'C-a }'\n(history)\nCopy and paste a previous (command) line.  *Note History::.\n\n'C-a >'\n(writebuf)\nWrite the paste buffer out to the screen-exchange file.  *Note\nScreen Exchange::.\n\n'C-a <'\n(readbuf)\nRead the screen-exchange file into the paste buffer.  *Note Screen\nExchange::.\n\n'C-a ='\n(removebuf)\nDelete the screen-exchange file.  *Note Screen Exchange::.\n\n'C-a '\n(silence)\nStart/stop monitoring the current window for inactivity.  *Note\nMonitor::.\n\n'C-a |'\n(split -v)\nSplit the current region vertically into two new ones.  *Note\nRegions::.\n\n'C-a ,'\n(license)\nShow the copyright page.  *Note License::.\n\n'C-a *'\n(displays)\nShow the listing of attached displays.  *Note Displays::.\n\nFile: screen.info,  Node: Command Summary,  Prev: Default Key Bindings,  Up: Commands\n"
                },
                {
                    "name": "5.2 Command Summary",
                    "content": "'acladd USERNAMES'\nAllow other users in this session.  *Note Multiuser Session::.\n'aclchg USERNAMES PERMBITS LIST'\nChange a user's permissions.  *Note Multiuser Session::.\n'acldel USERNAME'\nDisallow other user in this session.  *Note Multiuser Session::.\n'aclgrp USRNAME [GROUPNAME]'\nInherit permissions granted to a group leader.  *Note Multiuser\nSession::.\n'aclumask [USERS]+/-BITS ...'\nPredefine access to new windows.  *Note Umask::.\n'activity MESSAGE'\nSet the activity notification message.  *Note Monitor::.\n'addacl USERNAMES'\nSynonym to 'acladd'.  *Note Multiuser Session::.\n'allpartial STATE'\nSet all windows to partial refresh.  *Note Redisplay::.\n'altscreen STATE'\nEnables support for the \"alternate screen\" terminal capability.\n*Note Redisplay::.\n'at [IDENT][#|*|%] COMMAND [ARGS]'\nExecute a command at other displays or windows.  *Note At::.\n'attrcolor ATTRIB [ATTRIBUTE/COLOR-MODIFIER]'\nMap attributes to colors.  *Note Attrcolor::.\n'autodetach STATE'\nAutomatically detach the session on SIGHUP. *Note Detach::.\n'autonuke STATE'\nEnable a clear screen to discard unwritten output.  *Note\nAutonuke::.\n'backtick ID LIFESPAN AUTOREFRESH COMMAND [ARGS]'\nDefine a command for the backtick string escape.  *Note Backtick::.\n'bce [STATE]'\nChange background color erase.  *Note Character Processing::.\n'bellmsg [MESSAGE]'\nSet the bell notification message.  *Note Bell::.\n'bind [-c CLASS] KEY [COMMAND [ARGS]]'\nBind a command to a key.  *Note Bind::.\n'bindkey [OPTS] [STRING [CMD ARGS]]'\nBind a string to a series of keystrokes.  *Note Bindkey::.\n'blanker'\nBlank the screen.  *Note Screen Saver::.\n'blankerprg'\nDefine a blanker program.  *Note Screen Saver::.\n'break [DURATION]'\nSend a break signal to the current window.  *Note Break::.\n'breaktype [TCSENDBREAK | TCSBRK | TIOCSBRK]'\nSpecify how to generate breaks.  *Note Break::.\n'bufferfile [EXCHANGE-FILE]'\nSelect a file for screen-exchange.  *Note Screen Exchange::.\n'bumpleft'\nSwaps window with previous one on window list.  *Note Bumpleft::.\n'bumpright'\nSwaps window with previous one on window list.  *Note Bumpright::.\n'c1 [STATE]'\nChange c1 code processing.  *Note Character Processing::.\n'caption MODE [STRING]'\nChange caption mode and string.  *Note Regions::.\n'chacl USERNAMES PERMBITS LIST'\nSynonym to 'aclchg'.  *Note Multiuser Session::.\n'charset SET'\nChange character set slot designation.  *Note Character\nProcessing::.\n'chdir [DIRECTORY]'\nChange the current directory for future windows.  *Note Chdir::.\n'cjkwidth'\nTreat ambiguous width characters as full/half width.  *Note\nCharacter Processing::.\n'clear'\nClear the window screen.  *Note Clear::.\n'colon'\nEnter a 'screen' command.  *Note Colon::.\n'collapse'\nReorders window on window list, removing number gaps between them.\n*Note Collapse::.\n'command [-c CLASS]'\nSimulate the screen escape key.  *Note Command Character::.\n'compacthist [STATE]'\nSelects compaction of trailing empty lines.  *Note Scrollback::.\n'console [STATE]'\nGrab or ungrab console output.  *Note Console::.\n'copy'\nEnter copy mode.  *Note Copy::.\n'copyreg [KEY]'\nRemoved.  Use 'paste' instead.  *Note Registers::.\n'crlf STATE'\nSelect line break behavior for copying.  *Note Line Termination::.\n'debug STATE'\nSuppress/allow debugging output.  *Note Debug::.\n'defautonuke STATE'\nSelect default autonuke behavior.  *Note Autonuke::.\n'defbce STATE'\nSelect background color erase.  *Note Character Processing::.\n'defbreaktype [TCSENDBREAK | TCSBRK | TIOCSBRK]'\nSpecify the default for generating breaks.  *Note Break::.\n'defc1 STATE'\nSelect default c1 processing behavior.  *Note Character\nProcessing::.\n'defcharset [SET]'\nChange defaul character set slot designation.  *Note Character\nProcessing::.\n'defencoding ENC'\nSelect default window encoding.  *Note Character Processing::.\n'defescape XY'\nSet the default command and 'meta' characters.  *Note Command\nCharacter::.\n'defflow FSTATE'\nSelect default flow control behavior.  *Note Flow::.\n'defgr STATE'\nSelect default GR processing behavior.  *Note Character\nProcessing::.\n'defhstatus [STATUS]'\nSelect default window hardstatus line.  *Note Hardstatus::.\n'deflog STATE'\nSelect default window logging behavior.  *Note Log::.\n'deflogin STATE'\nSelect default utmp logging behavior.  *Note Login::.\n'defmode MODE'\nSelect default file mode for ptys.  *Note Mode::.\n'defmonitor STATE'\nSelect default activity monitoring behavior.  *Note Monitor::.\n'defmousetrack ON|OFF'\nSelect the default mouse tracking behavior.  *Note Mousetrack::.\n'defnonblock STATE|NUMSECS'\nSelect default nonblock mode.  *Note Nonblock::.\n'defobuflimit LIMIT'\nSelect default output buffer limit.  *Note Obuflimit::.\n'defscrollback NUM'\nSet default lines of scrollback.  *Note Scrollback::.\n'defshell COMMAND'\nSet the default program for new windows.  *Note Shell::.\n'defsilence STATE'\nSelect default idle monitoring behavior.  *Note Monitor::.\n'defslowpaste MSEC'\nSelect the default inter-character timeout when pasting.  *Note\nPaste::.\n'defutf8 STATE'\nSelect default character encoding.  *Note Character Processing::.\n'defwrap STATE'\nSet default line-wrapping behavior.  *Note Wrap::.\n'defwritelock ON|OFF|AUTO'\nSet default writelock behavior.  *Note Multiuser Session::.\n'zombietimeout [SECONDS]'\nTry to reconnect dead windows after timeout.  *Note Zombie::.\n'detach [-h]'\nDisconnect 'screen' from the terminal.  *Note Detach::.\n'digraph [PRESET [UNICODE-VALUE]]'\nEnter a digraph sequence.  *Note Digraph::.\n'dinfo'\nDisplay terminal information.  *Note Info::.\n'displays'\nList currently active user interfaces.  *Note Displays::.\n'dumptermcap'\nWrite the window's termcap entry to a file.  *Note Dump Termcap::.\n'echo [-n] MESSAGE'\nDisplay a message on startup.  *Note Startup::.\n'encoding ENC [DENC]'\nSet the encoding of a window.  *Note Character Processing::.\n'escape XY'\nSet the command and 'meta' characters.  *Note Command Character::.\n'eval COMMAND1 [COMMAND2 ...]'\nParse and execute each argument.  *Note Eval::.\n'exec [[FDPAT] COMMAND [ARGS ...]]'\nRun a subprocess (filter).  *Note Exec::.\n'fit'\nChange window size to current display size.  *Note Window Size::.\n'flow [FSTATE]'\nSet flow control behavior.  *Note Flow::.\n'focus [next|prev|up|down|left|right|top|bottom]'\nMove focus to next region.  *Note Regions::.\n'focusminsize'\nForce the current region to a certain size.  *Note Focusminsize::.\n'gr [STATE]'\nChange GR charset processing.  *Note Character Processing::.\n'group [GROUPTITLE]'\nChange or show the group the current window belongs to.  *Note\nWindow Groups::.\n'hardcopy [-h] [FILE]'\nWrite out the contents of the current window.  *Note Hardcopy::.\n'hardcopyappend STATE'\nAppend to hardcopy files.  *Note Hardcopy::.\n'hardcopydir DIRECTORY'\nPlace, where to dump hardcopy files.  *Note Hardcopy::.\n'hardstatus [STATE]'\nUse the hardware status line.  *Note Hardware Status Line::.\n'height [LINES [COLS]]'\nSet display height.  *Note Window Size::.\n'help [-c CLASS]'\nDisplay current key bindings.  *Note Help::.\n'history'\nFind previous command beginning ....  *Note History::.\n'hstatus STATUS'\nChange the window's hardstatus line.  *Note Hardstatus::.\n'idle [TIMEOUT [CMD ARGS]]'\nDefine a screen saver command.  *Note Screen Saver::.\n'ignorecase [on|off]'\nIgnore character case in searches.  *Note Searching::.\n'info'\nDisplay window settings.  *Note Info::.\n'insreg [KEY]'\nRemoved, use 'paste' instead.  *Note Registers::.\n'kill'\nDestroy the current window.  *Note Kill::.\n'lastmsg'\nRedisplay the last message.  *Note Last Message::.\n'layout new [TITLE]'\nCreate a layout.  *Note Layout::.\n'layout remove [N|TITLE]'\nDelete a layout.  *Note Layout::.\n'layout next'\nSelect the next layout.  *Note Layout::.\n'layout prev'\nSelect the previous layout.  *Note Layout::.\n'layout select [N|TITLE]'\nJump to a layout.  *Note Layout::.\n'layout show'\nList the available layouts.  *Note Layout::.\n'layout title [TITLE]'\nShow or set the title of a layout.  *Note Layout::.\n'layout number [N]'\nShow or set the number of a layout.  *Note Layout::.\n'layout attach [TITLE|:last]'\nShow or set which layout to reattach to.  *Note Layout::.\n'layout save [N|TITLE]'\nRemember the organization of a layout.  *Note Layout::.\n'layout autosave [ON|OFF]'\nShow or set the status of layout saving.  *Note Layout::.\n'layout dump [filename]'\nSave the layout arrangement to a file.  *Note Layout::.\n'license'\nDisplay licensing information.  *Note Startup::.\n'lockscreen'\nLock the controlling terminal.  *Note Lock::.\n'log [STATE]'\nLog all output in the current window.  *Note Log::.\n'logfile FILENAME'\nPlace where to collect logfiles.  *Note Log::.\n'login [STATE]'\nLog the window in '/run/utmp'.  *Note Login::.\n'logtstamp [STATE]'\nConfigure logfile time-stamps.  *Note Log::.\n'mapdefault'\nUse only the default mapping table for the next keystroke.  *Note\nBindkey Control::.\n'mapnotnext'\nDon't try to do keymapping on the next keystroke.  *Note Bindkey\nControl::.\n'maptimeout N'\nSet the inter-character timeout used for keymapping.  *Note Bindkey\nControl::.\n'markkeys STRING'\nRebind keys in copy mode.  *Note Copy Mode Keys::.\n'maxwin N'\nSet the maximum window number.  *Note Maxwin::.\n'meta'\nInsert the command character.  *Note Command Character::.\n'monitor [STATE]'\nMonitor activity in window.  *Note Monitor::.\n'mousetrack [ON|OFF]'\nEnable selecting split regions with mouse clicks.  *Note\nMousetrack::.\n'msgminwait SEC'\nSet minimum message wait.  *Note Message Wait::.\n'msgwait SEC'\nSet default message wait.  *Note Message Wait::.\n'multiuser STATE'\nGo into single or multi user mode.  *Note Multiuser Session::.\n'nethack STATE'\nUse 'nethack'-like error messages.  *Note Nethack::.\n'next'\nSwitch to the next window.  *Note Selecting::.\n'nonblock [STATE|NUMSECS]'\nDisable flow control to the current display.  *Note\nNonblock::.|NUMSECS]\n'number [N]'\nChange/display the current window's number.  *Note Number::.\n'obuflimit [LIMIT]'\nSelect output buffer limit.  *Note Obuflimit::.\n'only'\nKill all other regions.  *Note Regions::.\n'other'\nSwitch to the window you were in last.  *Note Selecting::.\n'partial STATE'\nSet window to partial refresh.  *Note Redisplay::.\n'password [CRYPTEDPW]'\nSet reattach password.  *Note Detach::.\n'paste [SRCREGS [DESTREG]]'\nPaste contents of paste buffer or registers somewhere.  *Note\nPaste::.\n'pastefont [STATE]'\nInclude font information in the paste buffer.  *Note Paste::.\n'powbreak'\nClose and Reopen the window's terminal.  *Note Break::.\n'powdetach'\nDetach and hang up.  *Note Power Detach::.\n'powdetachmsg [MESSAGE]'\nSet message displayed on 'powdetach'.  *Note Power Detach::.\n'prev'\nSwitch to the previous window.  *Note Selecting::.\n'printcmd [CMD]'\nSet a command for VT100 printer port emulation.  *Note Printcmd::.\n'process [KEY]'\nTreat a register as input to 'screen'.  *Note Registers::.\n'quit'\nKill all windows and exit.  *Note Quit::.\n'readbuf [-e ENCODING] [FILENAME]'\nRead the paste buffer from the screen-exchange file.  *Note Screen\nExchange::.\n'readreg [-e ENCODING] [REG [FILE]]'\nLoad a register from paste buffer or file.  *Note Registers::.\n'redisplay'\nRedisplay the current window.  *Note Redisplay::.\n'register [-e ENCODING] KEY STRING'\nStore a string to a register.  *Note Registers::.\n'remove'\nKill current region.  *Note Regions::.\n'removebuf'\nDelete the screen-exchange file.  *Note Screen Exchange::.\n'rendition bell | monitor | silence | so ATTR [COLOR]'\nChange text attributes in caption for flagged windows.  *Note\nRendition::.\n'reset'\nReset the terminal settings for the window.  *Note Reset::.\n'resize [(+/-)lines]'\nGrow or shrink a region.  *Note Resize::.\n'screen [OPTS] [N] [CMD [ARGS] | //group]'\nCreate a new window.  *Note Screen Command::.\n'scrollback NUM'\nSet size of scrollback buffer.  *Note Scrollback::.\n'select [N|-|.]'\nSwitch to a specified window.  *Note Selecting::.\n'sessionname [NAME]'\nName this session.  *Note Session Name::.\n'setenv [VAR [STRING]]'\nSet an environment variable for new windows.  *Note Setenv::.\n'setsid STATE'\nControll process group creation for windows.  *Note Setsid::.\n'shell COMMAND'\nSet the default program for new windows.  *Note Shell::.\n'shelltitle TITLE'\nSet the default name for new windows.  *Note Shell::.\n'silence [STATE|SECONDS]'\nMonitor a window for inactivity.  *Note Monitor::.\n'silencewait SECONDS'\nDefault timeout to trigger an inactivity notify.  *Note Monitor::.\n'sleep NUM'\nPause during startup.  *Note Startup::.\n'slowpaste MSEC'\nSlow down pasting in windows.  *Note Paste::.\n'source FILE'\nRun commands from a file.  *Note Source::.\n'sorendition [ATTR [COLOR]]'\nDeprecated.  Use 'rendition so' instead.  *Note Rendition::.\n'split'\nSplit region into two parts.  *Note Regions::.\n'startupmessage STATE'\nDisplay copyright notice on startup.  *Note Startup::.\n'stuff [STRING]'\nStuff a string in the input buffer of a window.  *Note Paste::.\n'su [USERNAME [PASSWORD [PASSWORD2]]]'\nIdentify a user.  *Note Multiuser Session::.\n'suspend'\nPut session in background.  *Note Suspend::.\n'term TERM'\nSet '$TERM' for new windows.  *Note Term::.\n'termcap TERM TERMINAL-TWEAKS [WINDOW-TWEAKS]'\nTweak termcap entries for best performance.  *Note Termcap\nSyntax::.\n'terminfo TERM TERMINAL-TWEAKS [WINDOW-TWEAKS]'\nDitto, for terminfo systems.  *Note Termcap Syntax::.\n'termcapinfo TERM TERMINAL-TWEAKS [WINDOW-TWEAKS]'\nDitto, for both systems.  *Note Termcap Syntax::.\n'time [STRING]'\nDisplay time and load average.  *Note Time::.\n'title [WINDOWTITLE]'\nSet the name of the current window.  *Note Title Command::.\n'umask [USERS]+/-BITS ...'\nSynonym to 'aclumask'.  *Note Umask::.\n'unbindall'\nUnset all keybindings.  *Note Bind::.\n'unsetenv VAR'\nUnset environment variable for new windows.  *Note Setenv::.\n'utf8 [STATE [DSTATE]]'\nSelect character encoding of the current window.  *Note Character\nProcessing::.\n'vbell [STATE]'\nUse visual bell.  *Note Bell::.\n'vbellmsg [MESSAGE]'\nSet vbell message.  *Note Bell::.\n'vbellwait SEC'\nSet delay for vbell message.  *Note Bell::.\n'version'\nDisplay 'screen' version.  *Note Version::.\n'wall MESSAGE'\nWrite a message to all displays.  *Note Multiuser Session::.\n'width [COLS [LINES]]'\nSet the width of the window.  *Note Window Size::.\n'windowlist [[-b] [-m] [-g]] | string [STRING] | title [TITLE]'\nPresent a list of all windows for selection.  *Note Windowlist::.\n'windows'\nList active windows.  *Note Windows::.\n'wrap [ on | off ]'\nControl line-wrap behavior.  *Note Wrap::.\n'writebuf [-e ENCODING] [FILENAME]'\nWrite paste buffer to screen-exchange file.  *Note Screen\nExchange::.\n'writelock ON|OFF|AUTO'\nGrant exclusive write permission.  *Note Multiuser Session::.\n'xoff'\nSend an XOFF character.  *Note XON/XOFF::.\n'xon'\nSend an XON character.  *Note XON/XOFF::.\n'zmodem [off|auto|catch|pass]'\nDefine how screen treats zmodem requests.  *Note Zmodem::.\n'zombie [KEYS [onerror] ]'\nKeep dead windows.  *Note Zombie::.\n\nFile: screen.info,  Node: New Window,  Next: Selecting,  Prev: Commands,  Up: Top\n"
                }
            ]
        },
        "6 New Window": {
            "content": "This section describes the commands for creating a new window for\nrunning programs.  When a new window is created, the first available\nnumber is assigned to it.  The number of windows is limited at\ncompile-time by the MAXWIN configuration parameter (which defaults to\n40).\n\n* Menu:\n\n* Chdir::                       Change the working directory for new windows.\n* Screen Command::              Create a new window.\n* Setenv::                      Set environment variables for new windows.\n* Shell::                       Parameters for shell windows.\n* Term::                        Set the terminal type for new windows.\n* Window Types::                Creating different types of windows.\n* Window Groups::               Grouping windows together\n\nFile: screen.info,  Node: Chdir,  Next: Screen Command,  Up: New Window\n",
            "subsections": [
                {
                    "name": "6.1 Chdir",
                    "content": "-- Command: chdir [directory]\n(none)\nChange the current directory of 'screen' to the specified directory\nor, if called without an argument, to your home directory (the\nvalue of the environment variable '$HOME').  All windows that are\ncreated by means of the 'screen' command from within '.screenrc' or\nby means of 'C-a : screen ...' or 'C-a c' use this as their default\ndirectory.  Without a 'chdir' command, this would be the directory\nfrom which 'screen' was invoked.  Hardcopy and log files are always\nwritten to the window's default directory, not the current\ndirectory of the process running in the window.  You can use this\ncommand multiple times in your '.screenrc' to start various windows\nin different default directories, but the last 'chdir' value will\naffect all the windows you create interactively.\n\nFile: screen.info,  Node: Screen Command,  Next: Setenv,  Prev: Chdir,  Up: New Window\n"
                },
                {
                    "name": "6.2 Screen Command",
                    "content": "-- Command: screen [opts] [n] [cmd [args] | //GROUP]\n('C-a c', 'C-a C-c')\nEstablish a new window.  The flow-control options ('-f', '-fn' and\n'-fa'), title option ('-t'), login options ('-l' and '-ln') ,\nterminal type option ('-T TERM'), the all-capability-flag ('-a')\nand scrollback option ('-h NUM') may be specified with each\ncommand.  The option ('-M') turns monitoring on for this window.\nThe option ('-L') turns output logging on for this window.  If an\noptional number N in the range 0...MAXWIN-1 is given, the window\nnumber N is assigned to the newly created window (or, if this\nnumber is already in-use, the next available number).  If a command\nis specified after 'screen', this command (with the given\narguments) is started in the window; otherwise, a shell is created.\nIf '//group' is supplied, a container-type window is created in\nwhich other windows may be created inside it.  *Note Window\nGroups::.\n\nScreen has built in some functionality of 'cu' and 'telnet'.  *Note\nWindow Types::.\n\nThus, if your '.screenrc' contains the lines\n\n# example for .screenrc:\nscreen 1\nscreen -fn -t foobar 2 -L telnet foobar\n\n'screen' creates a shell window (in window #1) and a window with a\nTELNET connection to the machine foobar (with no flow-control using the\ntitle 'foobar' in window #2) and will write a logfile 'screenlog.2' of\nthe telnet session.  If you do not include any 'screen' commands in your\n'.screenrc' file, then 'screen' defaults to creating a single shell\nwindow, number zero.  When the initialization is completed, 'screen'\nswitches to the last window specified in your .screenrc file or, if\nnone, it opens default window #0.\n\nFile: screen.info,  Node: Setenv,  Next: Shell,  Prev: Screen Command,  Up: New Window\n"
                },
                {
                    "name": "6.3 Setenv",
                    "content": "-- Command: setenv var string\n(none)\nSet the environment variable VAR to value STRING.  If only VAR is\nspecified, the user will be prompted to enter a value.  If no\nparameters are specified, the user will be prompted for both\nvariable and value.  The environment is inherited by all\nsubsequently forked shells.\n\n-- Command: unsetenv var\n(none)\nUnset an environment variable.\n\nFile: screen.info,  Node: Shell,  Next: Term,  Prev: Setenv,  Up: New Window\n"
                },
                {
                    "name": "6.4 Shell",
                    "content": "-- Command: shell command\n-- Command: defshell command\n(none)\nSet the command to be used to create a new shell.  This overrides\nthe value of the environment variable '$SHELL'.  This is useful if\nyou'd like to run a tty-enhancer which is expecting to execute the\nprogram specified in '$SHELL'.  If the command begins with a '-'\ncharacter, the shell will be started as a login-shell.  Typical\nshells do only minimal initialization when not started as a\nlogin-shell.  E.g.  Bash will not read your '~/.bashrc' unless it\nis a login-shell.\n\n'defshell' is currently a synonym to the 'shell' .screenrc command.\n\n-- Command: shelltitle title\n(none)\nSet the title for all shells created during startup or by the C-a\nC-c command.  *Note Naming Windows::, for details about what titles\nare.\n\nFile: screen.info,  Node: Term,  Next: Window Types,  Prev: Shell,  Up: New Window\n"
                },
                {
                    "name": "6.5 Term",
                    "content": "-- Command: term term\n(none)\nIn each window 'screen' opens, it sets the '$TERM' variable to\n'screen' by default, unless no description for 'screen' is\ninstalled in the local termcap or terminfo data base.  In that case\nit pretends that the terminal emulator is 'vt100'.  This won't do\nmuch harm, as 'screen' is VT100/ANSI compatible.  The use of the\n'term' command is discouraged for non-default purpose.  That is,\none may want to specify special '$TERM' settings (e.g.  vt100) for\nthe next 'screen rlogin othermachine' command.  Use the command\n'screen -T vt100 rlogin othermachine' rather than setting and\nresetting the default.\n\nFile: screen.info,  Node: Window Types,  Next: Window Groups,  Prev: Term,  Up: New Window\n"
                },
                {
                    "name": "6.6 Window Types",
                    "content": "Screen provides three different window types.  New windows are created\nwith 'screen''s 'screen' command (*note Screen Command::).  The first\nparameter to the 'screen' command defines which type of window is\ncreated.  The different window types are all special cases of the normal\ntype.  They have been added in order to allow 'screen' to be used\nefficiently as a console with 100 or more windows.\n* The normal window contains a shell (default, if no parameter is\ngiven) or any other system command that could be executed from a\nshell.  (e.g.  'slogin', etc...).\n\n* If a tty (character special device) name (e.g.  '/dev/ttya') is\nspecified as the first parameter, then the window is directly\nconnected to this device.  This window type is similar to 'screen\ncu -l /dev/ttya'.  Read and write access is required on the device\nnode, an exclusive open is attempted on the node to mark the\nconnection line as busy.  An optional parameter is allowed\nconsisting of a comma separated list of flags in the notation used\nby 'stty(1)':\n'<baudrate>'\nUsually 300, 1200, 9600 or 19200.  This affects transmission\nas well as receive speed.\n'cs8 or cs7'\nSpecify the transmission of eight (or seven) bits per byte.\n'ixon or -ixon'\nEnables (or disables) software flow-control (CTRL-S/CTRL-Q)\nfor sending data.\n'ixoff or -ixoff'\nEnables (or disables) software flow-control for receiving\ndata.\n'istrip or -istrip'\nClear (or keep) the eight bit in each received byte.\n\nYou may want to specify as many of these options as applicable.\nUnspecified options cause the terminal driver to make up the\nparameter values of the connection.  These values are\nsystem-dependent and may be in defaults or values saved from a\nprevious connection.\n\nFor tty windows, the 'info' command shows some of the modem control\nlines in the status line.  These may include 'RTS', 'CTS', 'DTR',\n'CD' and more.  This depends rather on on the available 'ioctl()''s\nand system header files than on the physical capabilities of the\nserial board.  The name of a logical low (inactive) signal is\npreceded by an exclamation mark ('!'), otherwise the signal is\nlogical high (active).  Unsupported but shown signals are usually\nshown low.  When the 'CLOCAL' status bit is true, the whole set of\nmodem signals is placed inside curly braces ('{' and '}').  When\nthe 'CRTSCTS' or 'TIOCSOFTCAR' bit is true, the signals 'CTS' or\n'CD' are shown in parenthesis, respectively.\n\nFor tty windows, the command 'break' causes the Data transmission\nline (TxD) to go low for a specified period of time.  This is\nexpected to be interpreted as break signal on the other side.  No\ndata is sent and no modem control line is changed when a 'break' is\nissued.\n\n* If the first parameter is '//telnet', the second parameter is\nexpected to be a host name, and an optional third parameter may\nspecify a TCP port number (default decimal 23).  Screen will\nconnect to a server listening on the remote host and use the telnet\nprotocol to communicate with that server.\n\nFor telnet windows, the command 'info' shows details about the\nconnection in square brackets ('[' and ']') at the end of the\nstatus line.\n'b'\nBINARY. The connection is in binary mode.\n'e'\nECHO. Local echo is disabled.\n'c'\nSGA. The connection is in 'character mode' (default: 'line\nmode').\n't'\nTTYPE. The terminal type has been requested by the remote\nhost.  Screen sends the name 'screen' unless instructed\notherwise (see also the command 'term').\n'w'\nNAWS. The remote site is notified about window size changes.\n'f'\nLFLOW. The remote host will send flow control information.\n(Ignored at the moment.)\nAdditional flags for debugging are 'x', 't' and 'n' (XDISPLOC,\nTSPEED and NEWENV).\n\nFor telnet windows, the command 'break' sends the telnet code 'IAC\nBREAK' (decimal 243) to the remote host.\n\nFile: screen.info,  Node: Window Groups,  Prev: Window Types,  Up: New Window\n"
                },
                {
                    "name": "6.7 Window Groups",
                    "content": "Screen provides a method for grouping windows together.  Windows can be\norganized in a hierarchical fashion, resembling a tree structure.  New\nscreens are created using the 'screen' command while new groups are\ncreated using 'screen //group'.  *Note Screen Command::.\n\nOnce a new group is created, it will act as a container for windows\nand even other groups.  When a group is selected, you will see the\noutput of the 'windowlist' command, allowing you to select a window\ninside.  If there are no windows inside a group, use the 'screen'\ncommand to create one.  Once inside a group, using the commands 'next'\nand 'prev' will switch between windows only in that group.  Using the\n'windowlist' command will give you the opportunity to leave the group\nyou are in.  *Note Windowlist::.\n\n-- Command: group [grouptitle]\n(none)\nChange or show the group the current window belongs to.  Windows\ncan be moved around between different groups by specifying the name\nof the destination group.  Without specifying a group, the title of\nthe current group is displayed.\n\nUsing groups in combination with layouts will help create a\nmulti-desktop experience.  One group can be assigned for each layout\nmade.  Windows can be made, split, and organized within each group as\ndesired.  Afterwhich, switching between groups can be as easy as\nswitching layouts.\n\nFile: screen.info,  Node: Selecting,  Next: Session Management,  Prev: New Window,  Up: Top\n"
                }
            ]
        },
        "7 Selecting a Window": {
            "content": "This section describes the commands for switching between windows in an\n'screen' session.  The windows are numbered from 0 to 9, and are created\nin that order by default (*note New Window::).\n\n* Menu:\n\n* Next and Previous::           Forward or back one window.\n* Other Window::                Switch back and forth between two windows.\n* Select::                      Switch to a window (and to one after 'kill').\n* Windowlist::                  Present a list of all windows for selection.\n\nFile: screen.info,  Node: Next and Previous,  Next: Other Window,  Up: Selecting\n",
            "subsections": [
                {
                    "name": "7.1 Moving Back and Forth",
                    "content": "-- Command: next\n('C-a <SPC>', 'C-a n', 'C-a C-n')\nSwitch to the next window.  This command can be used repeatedly to\ncycle through the list of windows.  (On some terminals, C-<SPC>\ngenerates a NUL character, so you must release the control key\nbefore pressing space.)\n\n-- Command: prev\n('C-a p', 'C-a C-p', 'C-a C-h', 'C-a <Backspace>')\nSwitch to the previous window (the opposite of 'C-a n').\n\nFile: screen.info,  Node: Other Window,  Next: Select,  Prev: Next and Previous,  Up: Selecting\n"
                },
                {
                    "name": "7.2 Other Window",
                    "content": "-- Command: other\n('C-a C-a')\nSwitch to the last window displayed.  Note that this command\ndefaults to the command character typed twice, unless overridden.\nFor instance, if you use the option '-e]x', this command becomes\n']]' (*note Command Character::).\n\nFile: screen.info,  Node: Select,  Next: Windowlist,  Prev: Other Window,  Up: Selecting\n"
                },
                {
                    "name": "7.3 Select",
                    "content": "-- Command: select [n |-|.]\n('C-a N', 'C-a '')\nSwitch to the window with the number N.  If no window number is\nspecified, you get prompted for an identifier.  This can be a\nwindow name (title) or a number.  When a new window is established,\nthe lowest available number is assigned to this window.  Thus, the\nfirst window can be activated by 'select 0'; there can be no more\nthan 10 windows present simultaneously (unless screen is compiled\nwith a higher MAXWIN setting).  There are two special arguments,\n'select -' switches to the internal blank window and 'select .'\nswitches to the current window.  The latter is useful if used with\nscreen's '-X' option.\n\nFile: screen.info,  Node: Windowlist,  Prev: Select,  Up: Selecting\n"
                },
                {
                    "name": "7.4 Windowlist",
                    "content": "-- Command: windowlist [-b] [-m] [-g]\n-- Command: windowlist string [STRING]\n-- Command: windowlist title [TITLE]\n('C-a \"')\nDisplay all windows in a table for visual window selection.  If\nscreen was in a window group, screen will back out of the group and\nthen display the windows in that group.  If the '-b' option is\ngiven, screen will switch to the blank window before presenting the\nlist, so that the current window is also selectable.  The '-m'\noption changes the order of the windows, instead of sorting by\nwindow numbers screen uses its internal most-recently-used list.\nThe '-g' option will show the windows inside any groups in that\nlevel and downwards.\n\nThe following keys are used to navigate in 'windowlist':\n\n'k', 'C-p', or 'up' Move up one line.\n\n'j', 'C-n', or 'down' Move down one line.\n\n'C-g' or 'escape' Exit windowlist.\n\n'C-a' or 'home' Move to the first line.\n\n'C-e' or 'end' Move to the last line.\n\n'C-u' or 'C-d' Move one half page up or down.\n\n'C-b' or 'C-f' Move one full page up or down.\n\n'0..9' Using the number keys, move to the selected line.\n\n'mouseclick' Move to the selected line.  Available when\n'mousetrack' is set to 'on'.\n\n'/' Search.\n\n'n' Repeat search in the forward direction.\n\n'N' Repeat search in the backward direction.\n\n'm' Toggle MRU.\n\n'g' Toggle group nesting.\n\n'a' All window view.\n\n'C-h' or 'backspace' Back out the group.\n\n',' Switch numbers with the previous window.\n\n'.' Switch numbers with the next window.\n\n'K' Kill that window.\n\n'space' or 'enter' Select that window.\n\nThe table format can be changed with the string and title option,\nthe title is displayed as table heading, while the lines are made\nby using the string setting.  The default setting is 'Num\nName%=Flags' for the title and '%3n %t%=%f' for the lines.  See the\nstring escapes chapter (*note String Escapes::) for more codes\n(e.g.  color settings).\n\n'Windowlist' needs a region size of at least 10 characters wide and\n6 characters high in order to display.\n\nFile: screen.info,  Node: Session Management,  Next: Regions,  Prev: Selecting,  Up: Top\n"
                }
            ]
        },
        "8 Session Management Commands": {
            "content": "Perhaps the most useful feature of 'screen' is the way it allows the\nuser to move a session between terminals, by detaching and reattaching.\nThis also makes life easier for modem users who have to deal with\nunexpected loss of carrier.\n\n* Menu:\n\n* Detach::                      Disconnect 'screen' from your terminal.\n* Power Detach::                Detach and log out.\n* Lock::                        Lock your terminal temporarily.\n* Multiuser Session::\t\tChanging number of allowed users.\n* Session Name::                Rename your session for later reattachment.\n* Suspend::                     Suspend your session.\n* Quit::                        Terminate your session.\n\nFile: screen.info,  Node: Detach,  Next: Power Detach,  Up: Session Management\n",
            "subsections": [
                {
                    "name": "8.1 Detach",
                    "content": "-- Command: autodetach state\n(none)\nSets whether 'screen' will automatically detach upon hangup, which\nsaves all your running programs until they are resumed with a\n'screen -r' command.  When turned off, a hangup signal will\nterminate 'screen' and all the processes it contains.  Autodetach\nis on by default.\n\n-- Command: detach\n('C-a d', 'C-a C-d')\nDetach the 'screen' session (disconnect it from the terminal and\nput it into the background).  A detached 'screen' can be resumed by\ninvoking 'screen' with the '-r' option (*note Invoking Screen::).\nThe '-h' option tells screen to immediately close the connection to\nthe terminal ('hangup').\n\n-- Command: password [cryptedpw]\n(none)\nPresent a crypted password in your '.screenrc' file and screen will\nask for it, whenever someone attempts to resume a detached session.\nThis is useful, if you have privileged programs running under\n'screen' and you want to protect your session from reattach\nattempts by users that managed to assume your uid.  (I.e.  any\nsuperuser.)  If no crypted password is specified, screen prompts\ntwice a password and places its encryption in the paste buffer.\nDefault is 'none', which disables password checking.\n\nFile: screen.info,  Node: Power Detach,  Next: Lock,  Prev: Detach,  Up: Session Management\n"
                },
                {
                    "name": "8.2 Power Detach",
                    "content": "-- Command: powdetach\n('C-a D D')\nMainly the same as 'detach', but also sends a HANGUP signal to the\nparent process of 'screen'.\nCaution: This will result in a logout if 'screen' was started\nfrom your login-shell.\n\n-- Command: powdetachmsg [message]\n(none)\nThe MESSAGE specified here is output whenever a power detach is\nperformed.  It may be used as a replacement for a logout message or\nto reset baud rate, etc.  Without a parameter, the current message\nis shown.\n\nFile: screen.info,  Node: Lock,  Next: Multiuser Session,  Prev: Power Detach,  Up: Session Management\n"
                },
                {
                    "name": "8.3 Lock",
                    "content": "-- Command: lockscreen\n('C-a x', 'C-a C-x')\nCall a screenlock program ('/local/bin/lck' or '/usr/bin/lock' or a\nbuiltin, if no other is available).  Screen does not accept any\ncommand keys until this program terminates.  Meanwhile processes in\nthe windows may continue, as the windows are in the detached state.\nThe screenlock program may be changed through the environment\nvariable '$LOCKPRG' (which must be set in the shell from which\n'screen' is started) and is executed with the user's uid and gid.\n\nWarning: When you leave other shells unlocked and have no password\nset on 'screen', the lock is void: One could easily re-attach from\nan unlocked shell.  This feature should rather be called\n'lockterminal'.\n\nFile: screen.info,  Node: Multiuser Session,  Next: Session Name,  Prev: Lock,  Up: Session Management\n"
                },
                {
                    "name": "8.4 Multiuser Session",
                    "content": "These commands allow other users to gain access to one single 'screen'\nsession.  When attaching to a multiuser 'screen' the sessionname is\nspecified as 'username/sessionname' to the '-S' command line option.\n'Screen' must be compiled with multiuser support to enable features\ndescribed here.\n\n* Menu:\n\n* Multiuser::\t\t\tEnable / Disable multiuser mode.\n* Acladd::\t\t\tEnable a specific user.\n* Aclchg::                      Change a users permissions.\n* Acldel::\t\t\tDisable a specific user.\n* Aclgrp::\t\t\tGrant a user permissions to other users.\n* Displays::\t\t\tList all active users at their displays.\n* Umask::\t\t\tPredefine access to new windows.\n* Wall::                        Write a message to all users.\n* Writelock::                   Grant exclusive window access.\n* Su::                          Substitute user.\n\nFile: screen.info,  Node: Multiuser,  Next: Acladd,  Up: Multiuser Session\n\n\n-- Command: multiuser STATE\n(none)\nSwitch between single-user and multi-user mode.  Standard screen\noperation is single-user.  In multi-user mode the commands\n'acladd', 'aclchg' and 'acldel' can be used to enable (and disable)\nother users accessing this 'screen'.\n\nFile: screen.info,  Node: Acladd,  Next: Aclchg,  Prev: Multiuser,  Up: Multiuser Session\n\n\n-- Command: acladd USERNAMES\n-- Command: addacl USERNAMES\n(none)\nEnable users to fully access this screen session.  USERNAMES can be\none user or a comma separated list of users.  This command enables\nto attach to the 'screen' session and performs the equivalent of\n'aclchg USERNAMES +rwx \"#?\"'.  To add a user with restricted\naccess, use the 'aclchg' command below.  'Addacl' is a synonym to\n'acladd'.  Multi-user mode only.\n\nFile: screen.info,  Node: Aclchg,  Next: Acldel,  Prev: Acladd,  Up: Multiuser Session\n\n\n-- Command: aclchg USERNAMES PERMBITS LIST\n-- Command: chacl USERNAMES PERMBITS LIST\n(none)\nChange permissions for a comma separated list of users.  Permission\nbits are represented as 'r', 'w' and 'x'.  Prefixing '+' grants the\npermission, '-' removes it.  The third parameter is a comma\nseparated list of commands or windows (specified either by number\nor title).  The special list '#' refers to all windows, '?' to all\ncommands.  If USERNAMES consists of a single '*', all known users\nare affected.  A command can be executed when the user has the 'x'\nbit for it.  The user can type input to a window when he has its\n'w' bit set and no other user obtains a writelock for this window.\nOther bits are currently ignored.  To withdraw the writelock from\nanother user in e.g.  window 2: 'aclchg USERNAME -w+w 2'.  To allow\nread-only access to the session: 'aclchg USERNAME -w \"#\"'.  As soon\nas a user's name is known to screen, he can attach to the session\nand (per default) has full permissions for all command and windows.\nExecution permission for the acl commands, 'at' and others should\nalso be removed or the user may be able to regain write permission.\n'Chacl' is a synonym to 'aclchg'.  Multi-user mode only.\n\nFile: screen.info,  Node: Acldel,  Next: Aclgrp,  Prev: Aclchg,  Up: Multiuser Session\n\n\n-- Command: acldel USERNAME\n(none)\nRemove a user from screen's access control list.  If currently\nattached, all the user's displays are detached from the session.\nHe cannot attach again.  Multi-user mode only.\n\nFile: screen.info,  Node: Aclgrp,  Next: Displays,  Prev: Acldel,  Up: Multiuser Session\n\n\n-- Command: aclgrp USERNAME [GROUPNAME]\n(none)\nCreates groups of users that share common access rights.  The name\nof the group is the username of the group leader.  Each member of\nthe group inherits the permissions that are granted to the group\nleader.  That means, if a user fails an access check, another check\nis made for the group leader.  A user is removed from all groups\nthe special value 'none' is used for GROUPNAME.  If the second\nparameter is omitted all groups the user is in are listed.\n\nFile: screen.info,  Node: Displays,  Next: Umask,  Prev: Aclgrp,  Up: Multiuser Session\n\n\n-- Command: displays\n('C-a *')\nShows a tabular listing of all currently connected user front-ends\n(displays).  This is most useful for multiuser sessions.\n\nThe following keys can be used in 'displays' list:\n\n'k', 'C-p', or 'up' Move up one line.\n\n'j', 'C-n', or 'down' Move down one line.\n\n'C-a' or 'home' Move to the first line.\n\n'C-e' or 'end' Move to the last line.\n\n'C-u' or 'C-d' Move one half page up or down.\n\n'C-b' or 'C-f' Move one full page up or down.\n\n'mouseclick' Move to the selected line.  Available when\n'mousetrack' is set to 'on'.\n\n'space' Refresh the list.\n\n'd' Detach the selected display.\n\n'D' Power detach the selected display.\n\n'C-g', 'enter', or 'escape' Exit the list.\n\nThe following is an example of what 'displays' could look like:\n\nxterm 80x42   jnweiger@/dev/ttyp4      0(m11)    &rWx\nfacit 80x24   mlschroe@/dev/ttyhf nb  11(tcsh)    rwx\nxterm 80x42   jnhollma@/dev/ttyp5      0(m11)    &R.x\n(A)   (B)       (C)     (D)     (E)  (F)(G)    (H)(I)\n\nThe legend is as follows:\n(A) The terminal type known by 'screen' for this display.\n(B) Displays geometry as width x height.\n(C) Username who is logged in at the display.\n(D) Device name of the display or the attached device\n(E) Display is in blocking or nonblocking mode.  The available\nmodes are \"nb\", \"NB\", \"Z<\", \"Z>\", and \"BL\".\n(F) Number of the window\n(G) Name/title of window\n(H) Whether the window is shared\n(I) Window permissions.  Made up of three characters:\n(1st character)\n'-' : no read\n'r' : read\n'R' : read only due to foreign wlock\n(2nd character)\n'-' : no write\n'.' : write suppressed by foreign wlock\n'w' : write\n'W' : own wlock\n(3rd character)\n'-' : no execute\n'x' : execute\n\n'Displays' needs a region size of at least 10 characters wide and 5\ncharacters high in order to display.\n\nFile: screen.info,  Node: Umask,  Next: Wall,  Prev: Displays,  Up: Multiuser Session\n\n\n-- Command: aclumask [USERS]+/-BITS ...\n-- Command: umask [USERS]+/-BITS ...\n(none)\nThis specifies the access other users have to windows that will be\ncreated by the caller of the command.  USERS may be no, one or a\ncomma separated list of known usernames.  If no users are\nspecified, a list of all currently known users is assumed.  BITS is\nany combination of access control bits allowed defined with the\n'aclchg' command.  The special username '?' predefines the access\nthat not yet known users will be granted to any window initially.\nThe special username '??' predefines the access that not yet known\nusers are granted to any command.  Rights of the special username\nnobody cannot be changed (see the 'su' command).  'Umask' is a\nsynonym to 'aclumask'.\n\nFile: screen.info,  Node: Wall,  Next: Writelock,  Prev: Umask,  Up: Multiuser Session\n\n\n-- Command: wall MESSAGE\n(none)\nWrite a message to all displays.  The message will appear in the\nterminal's status line.\n\nFile: screen.info,  Node: Writelock,  Next: Su,  Prev: Wall,  Up: Multiuser Session\n\n\n-- Command: writelock ON|OFF|AUTO\n(none)\nIn addition to access control lists, not all users may be able to\nwrite to the same window at once.  Per default, writelock is in\n'auto' mode and grants exclusive input permission to the user who\nis the first to switch to the particular window.  When he leaves\nthe window, other users may obtain the writelock (automatically).\nThe writelock of the current window is disabled by the command\n'writelock off'.  If the user issues the command 'writelock on' he\nkeeps the exclusive write permission while switching to other\nwindows.\n\n-- Command: defwritelock ON|OFF|AUTO\n(none)\nSets the default writelock behavior for new windows.  Initially all\nwindows will be created with no writelocks.\n\nFile: screen.info,  Node: Su,  Prev: Writelock,  Up: Multiuser Session\n\n\n-- Command: su [USERNAME [PASSWORD [PASSWORD2]]]\n(none)\nSubstitute the user of a display.  The command prompts for all\nparameters that are omitted.  If passwords are specified as\nparameters, they have to be specified un-crypted.  The first\npassword is matched against the systems passwd database, the second\npassword is matched against the 'screen' password as set with the\ncommands 'acladd' or 'password'.  'Su' may be useful for the\n'screen' administrator to test multiuser setups.  When the\nidentification fails, the user has access to the commands available\nfor user 'nobody'.  These are 'detach', 'license', 'version',\n'help' and 'displays'.\n\nFile: screen.info,  Node: Session Name,  Next: Suspend,  Prev: Multiuser Session,  Up: Session Management\n"
                },
                {
                    "name": "8.5 Session Name",
                    "content": "-- Command: sessionname [NAME]\n(none)\nRename the current session.  Note that for 'screen -list' the name\nshows up with the process-id prepended.  If the argument NAME is\nomitted, the name of this session is displayed.\nCaution: The '$STY' environment variable will still reflect the\nold name in pre-existing shells.  This may result in confusion.\nUse of this command is generally discouraged.  Use the '-S'\ncommand-line option if you want to name a new session.The default\nis constructed from the tty and host names.\n\nFile: screen.info,  Node: Suspend,  Next: Quit,  Prev: Session Name,  Up: Session Management\n"
                },
                {
                    "name": "8.6 Suspend",
                    "content": "-- Command: suspend\n('C-a z', 'C-a C-z')\nSuspend 'screen'.  The windows are in the detached state while\n'screen' is suspended.  This feature relies on the parent shell\nbeing able to do job control.\n\nFile: screen.info,  Node: Quit,  Prev: Suspend,  Up: Session Management\n"
                },
                {
                    "name": "8.7 Quit",
                    "content": "-- Command: quit\n('C-a \\')\nKill all windows and terminate 'screen'.  (*note Key Binding::).\n\nFile: screen.info,  Node: Regions,  Next: Window Settings,  Prev: Session Management,  Up: Top\n"
                }
            ]
        },
        "9 Regions": {
            "content": "Screen has the ability to display more than one window on the user's\ndisplay.  This is done by splitting the screen in regions, which can\ncontain different windows.\n\n* Menu:\n\n* Split::\t\t\tSplit a region into two\n* Focus::\t\t\tChange to the next region\n* Only::\t\t\tDelete all other regions\n* Remove::\t\t\tDelete the current region\n* Resize::\t\t\tGrow or shrink a region\n* Caption::\t\t\tControl the window's caption\n* Fit::\t\t\t\tResize a window to fit the region\n* Focusminsize::\t\tForce a minimum size on a current region\n* Layout::\t\t\tManage groups of regions\n\nFile: screen.info,  Node: Split,  Next: Focus,  Up: Regions\n",
            "subsections": [
                {
                    "name": "9.1 Split",
                    "content": "-- Command: split [-v]\n('C-a S', 'C-a |')\nSplit the current region into two new ones.  All regions on the\ndisplay are resized to make room for the new region.  The blank\nwindow is displayed in the new region.  The default is to create a\nhorizontal split, putting the new regions on the top and bottom of\neach other.  Using '-v' will create a vertical split, causing the\nnew regions to appear side by side of each other.  Use the 'remove'\nor the 'only' command to delete regions.  Use 'focus' to toggle\nbetween regions.\n\nWhen a region is split opposite of how it was previously split\n(that is, vertical then horizontal or horizontal then vertical), a\nnew layer is created.  The layer is used to group together the\nregions that are split the same.  Normally, as a user, you should\nnot see nor have to worry about layers, but they will affect how\nsome commands ('focus' and 'resize') behave.\n\nWith this current implementation of 'screen', scrolling data will\nappear much slower in a vertically split region than one that is\nnot.  This should be taken into consideration if you need to use\nsystem commands such as 'cat' or 'tail -f'.\n\nFile: screen.info,  Node: Focus,  Next: Only,  Prev: Split,  Up: Regions\n"
                },
                {
                    "name": "9.2 Focus",
                    "content": "-- Command: focus [ next|prev|up|down|left|right|top|bottom ]\n('C-a <Tab>')\nMove the input focus to the next region.  This is done in a cyclic\nway so that the top left region is selected after the bottom right\none.  If no option is given it defaults to 'next'.  The next region\nto be selected is determined by how the regions are layered.\nNormally, the next region in the same layer would be selected.\nHowever, if that next region contains one or more layers, the first\nregion in the highest layer is selected first.  If you are at the\nlast region of the current layer, 'next' will move the focus to the\nnext region in the lower layer (if there is a lower layer).  'Prev'\ncycles in the opposite order.  *Note Split:: for more information\nabout layers.\n\nThe rest of the options ('up', 'down', 'left', 'right', 'top', and\n'bottom') are more indifferent to layers.  The option 'up' will\nmove the focus upward to the region that is touching the upper left\ncorner of the current region.  'Down' will move downward to the\nregion that is touching the lower left corner of the current\nregion.  The option 'left' will move the focus leftward to the\nregion that is touching the upper left corner of the current\nregion, while 'right' will move rightward to the region that is\ntouching the upper right corner of the current region.  Moving left\nfrom a left most region or moving right from a right most region\nwill result in no action.\n\nThe option 'top' will move the focus to the very first region in\nthe upper list corner of the screen, and 'bottom' will move to the\nregion in the bottom right corner of the screen.  Moving up from a\ntop most region or moving down from a bottom most region will\nresult in no action.\n\nUseful bindings are (h, j, k, and l as in vi):\nbind h focus left\nbind j focus down\nbind k focus up\nbind l focus right\nbind t focus top\nbind b focus bottom\n\nNote that 'k' is traditionally bound to the 'kill' command.\n\nFile: screen.info,  Node: Only,  Next: Remove,  Prev: Focus,  Up: Regions\n"
                },
                {
                    "name": "9.3 Only",
                    "content": "-- Command: only\n('C-a Q')\nKill all regions but the current one.\n\nFile: screen.info,  Node: Remove,  Next: Resize,  Prev: Only,  Up: Regions\n"
                },
                {
                    "name": "9.4 Remove",
                    "content": "-- Command: remove\n('C-a X')\nKill the current region.  This is a no-op if there is only one\nregion.\n\nFile: screen.info,  Node: Resize,  Next: Caption,  Prev: Remove,  Up: Regions\n"
                },
                {
                    "name": "9.5 Resize",
                    "content": "-- Command: resize [-h|-v|-b|-l|-p] [ [+|-]N[%] | = | max | min |  | 0\n]\n(none)\nResize the current region.  The space will be removed from or added\nto the surrounding regions depending on the order of the splits.\nThe available options for resizing are '-h'(horizontal),\n'-v'(vertical), '-b'(both), '-l'(local to layer), and\n'-p'(perpendicular).  Horizontal resizes will add or remove width\nto a region, vertical will add or remove height, and both will add\nor remove size from both dimensions.  Local and perpendicular are\nsimilar to horizontal and vertical, but they take in account of how\na region was split.  If a region's last split was horizontal, a\nlocal resize will work like a vertical resize.  If a region's last\nsplit was vertical, a local resize will work like a horizontal\nresize.  Perpendicular resizes work in opposite of local resizes.\nIf no option is specified, local is the default.\n\nThe amount of lines to add or remove can be expressed a couple of\ndifferent ways.  By specifying a number N by itself will resize the\nregion by that absolute amount.  You can specify a relative amount\nby prefixing a plus '+' or minus '-' to the amount, such as adding\n'+n' lines or removing '-n' lines.  Resizing can also be expressed\nas an absolute or relative percentage by postfixing a percent sign\n'%'.  Using zero '0' is a synonym for 'min' and using an underscore\n'' is a synonym for 'max'.\n\nSome examples are:\nresize +N       increase current region by N\nresize -N       decrease current region by N\nresize N        set current region to N\nresize 20%      set current region to 20% of original size\nresize +20%     increase current region by 20%\nresize -b =     make all windows equally\nresize max      maximize current region\nresize min      minimize current region\n\nWithout any arguments, 'screen' will prompt for how you would like\nto resize the current region.\n\nSee 'focusminsize' if you want to restrict the minimum size a\nregion can have.\n\nFile: screen.info,  Node: Caption,  Next: Fit,  Prev: Resize,  Up: Regions\n"
                },
                {
                    "name": "9.6 Caption",
                    "content": "-- Command: caption always|splitonly [string]\n-- Command: caption string [string]\n(none)\nThis command controls the display of the window captions.  Normally\na caption is only used if more than one window is shown on the\ndisplay (split screen mode).  But if the type is set to 'always',\n'screen' shows a caption even if only one window is displayed.  The\ndefault is 'splitonly'.\n\nThe second form changes the text used for the caption.  You can use\nall string escapes (*note String Escapes::).  'Screen' uses a\ndefault of '%3n %t'.\n\nYou can mix both forms by providing the string as an additional\nargument.\n\nFile: screen.info,  Node: Fit,  Next: Focusminsize,  Prev: Caption,  Up: Regions\n"
                },
                {
                    "name": "9.7 Fit",
                    "content": "-- Command: fit\n('C-a F')\nChange the window size to the size of the current region.  This\ncommand is needed because screen doesn't adapt the window size\nautomatically if the window is displayed more than once.\n\nFile: screen.info,  Node: Focusminsize,  Next: Layout,  Prev: Fit,  Up: Regions\n"
                },
                {
                    "name": "9.8 Focusminsize",
                    "content": "-- Command: focusminsize [ (width|max|) (height|max|) ]\n(none)\nThis forces any currently selected region to be automatically\nresized at least a certain WIDTH and HEIGHT.  All other surrounding\nregions will be resized in order to accommodate.  This constraint\nfollows every time the 'focus' command is used.  The 'resize'\ncommand can be used to increase either dimension of a region, but\nnever below what is set with 'focusminsize'.  The underscore '' is\na synonym for 'max'.  Setting a WIDTH and HEIGHT of '0 0' (zero\nzero) will undo any constraints and allow for manual resizing.\nWithout any parameters, the minimum width and height is shown.\n\nFile: screen.info,  Node: Layout,  Prev: Focusminsize,  Up: Regions\n"
                },
                {
                    "name": "9.9 Layout",
                    "content": "Using regions, and perhaps a large enough terminal, you can give\n'screen' more of a desktop feel.  By being able to split regions\nhorizontally or vertically, you can take advantage of the lesser used\nspaces of your terminal.  The catch to these splits has been that\nthey're not kept between screen detachments and reattachments.\n\nLayouts will help organize your regions.  You can create one layout\nof four horizontal regions and then create a separate layout of regions\nin a two by two array.  The regions could contain the same windows, but\nthey don't have to.  You can easily switch between layouts and keep them\nbetween detachments and reattachments.\n\nNote that there are several subcommands to 'layout'.\n\n-- Command: layout new [title]\n(none)\nCreate a new layout.  The screen will change to one whole region\nand be switched to the blank window.  From here, you build the\nregions and the windows they show as you desire.  The new layout\nwill be numbered with the smallest available integer, starting with\nzero.  You can optionally give a title to your new layout.\nOtherwise, it will have a default title of 'layout'.  You can\nalways change the title later by using the command 'layout title'.\n\n-- Command: layout remove [n|title]\n(none)\nRemove, or in other words, delete the specified layout.  Either the\nnumber or the title can be specified.  Without either\nspecification, 'screen' will remove the current layout.\n\nRemoving a layout does not affect your set windows or regions.\n\n-- Command: layout next\n(none)\nSwitch to the next layout available\n\n-- Command: layout prev\n(none)\nSwitch to the previous layout available\n\n-- Command: layout select [n|title]\n(none)\nSelect the desired layout.  Either the number or the title can be\nspecified.  Without either specification, 'screen' will prompt and\nask which screen is desired.  To see which layouts are available,\nuse the 'layout show' command.\n\n-- Command: layout show\n(none)\nList on the message line the number(s) and title(s) of the\navailable layout(s).  The current layout is flagged.\n\n-- Command: layout title [title]\n(none)\nChange or display the title of the current layout.  A string given\nwill be used to name the layout.  Without any options, the current\ntitle and number is displayed on the message line.\n\n-- Command: layout number [n]\n(none)\nChange or display the number of the current layout.  An integer\ngiven will be used to number the layout.  Without any options, the\ncurrent number and title is displayed on the message line.\n\n-- Command: layout attach [title|:last]\n(none)\nChange or display which layout to reattach back to.  The default is\n':last', which tells 'screen' to reattach back to the last used\nlayout just before detachment.  By supplying a title, You can\ninstruct 'screen' to reattach to a particular layout regardless\nwhich one was used at the time of detachment.  Without any options,\nthe layout to reattach to will be shown in the message line.\n\n-- Command: layout save [n|title]\n(none)\nRemember the current arrangement of regions.  When used, 'screen'\nwill remember the arrangement of vertically and horizontally split\nregions.  This arrangement is restored when a 'screen' session is\nreattached or switched back from a different layout.  If the\nsession ends or the 'screen' process dies, the layout arrangements\nare lost.  The 'layout dump' command should help in this siutation.\nIf a number or title is supplied, 'screen' will remember the\narrangement of that particular layout.  Without any options,\n'screen' will remember the current layout.\n\nSaving your regions can be done automatically by using the 'layout\nautosave' command.\n\n-- Command: layout autosave [on|off]\n(none)\nChange or display the status of automatically saving layouts.  The\ndefault is 'on', meaning when 'screen' is detached or changed to a\ndifferent layout, the arrangement of regions and windows will be\nremembered at the time of change and restored upon return.  If\nautosave is set to 'off', that arrangement will only be restored to\neither to the last manual save, using 'layout save', or to when the\nlayout was first created, to a single region with a single window.\nWithout either an 'on' or an 'off', the current status is displayed\non the message line.\n\n-- Command: layout dump [filename]\n(none)\nWrite to a file the order of splits made in the current layout.\nThis is useful to recreate the order of your regions used in your\ncurrent layout.  Only the current layout is recorded.  While the\norder of the regions are recorded, the sizes of those regions and\nwhich windows correspond to which regions are not.  If no filename\nis specified, the default is 'layout-dump', saved in the directory\nthat the 'screen' process was started in.  If the file already\nexists, 'layout dump' will append to that file.  As an example:\nlayout dump /home/user/.screenrc\nwill save or append the layout to the user's '.screenrc' file.\n\nFile: screen.info,  Node: Window Settings,  Next: Virtual Terminal,  Prev: Regions,  Up: Top\n"
                }
            ]
        },
        "10 Window Settings": {
            "content": "These commands control the way 'screen' treats individual windows in a\nsession.  *Note Virtual Terminal::, for commands to control the terminal\nemulation itself.\n\n* Menu:\n\n* Naming Windows::\t\tControl the name of the window\n* Console::\t\t\tSee the host's console messages\n* Kill::                        Destroy an unwanted window\n* Login::                       Control '/run/utmp' logging\n* Mode::                        Control the file mode of the pty\n* Monitor::                     Watch for activity or inactivity in a window\n* Windows::\t\t\tList the active windows\n* Hardstatus::\t\t\tSet a window's hardstatus line\n\nFile: screen.info,  Node: Naming Windows,  Next: Console,  Up: Window Settings\n",
            "subsections": [
                {
                    "name": "10.1 Naming Windows (Titles)",
                    "content": "You can customize each window's name in the window display (viewed with\nthe 'windows' command (*note Windows::) by setting it with one of the\ntitle commands.  Normally the name displayed is the actual command name\nof the program created in the window.  However, it is sometimes useful\nto distinguish various programs of the same name or to change the name\non-the-fly to reflect the current state of the window.\n\nThe default name for all shell windows can be set with the\n'shelltitle' command (*note Shell::).  You can specify the name you want\nfor a window with the '-t' option to the 'screen' command when the\nwindow is created (*note Screen Command::).  To change the name after\nthe window has been created you can use the title-string escape-sequence\n('<ESC> k NAME <ESC> \\') and the 'title' command (C-a A). The former can\nbe output from an application to control the window's name under\nsoftware control, and the latter will prompt for a name when typed.  You\ncan also bind predefined names to keys with the 'title' command to set\nthings quickly without prompting.\n\n* Menu:\n\n* Title Command::                 The 'title' command.\n* Dynamic Titles::                Make shell windows change titles dynamically.\n* Title Prompts::                 Set up your shell prompt for dynamic Titles.\n* Title Screenrc::                Set up Titles in your '.screenrc'.\n\nFile: screen.info,  Node: Title Command,  Next: Dynamic Titles,  Up: Naming Windows\n\n\n-- Command: title [windowtitle]\n('C-a A')\nSet the name of the current window to WINDOWTITLE.  If no name is\nspecified, screen prompts for one.\n\nFile: screen.info,  Node: Dynamic Titles,  Next: Title Prompts,  Prev: Title Command,  Up: Naming Windows\n\n\n'screen' has a shell-specific heuristic that is enabled by setting the\nwindow's name to SEARCH|NAME and arranging to have a null title\nescape-sequence output as a part of your prompt.  The SEARCH portion\nspecifies an end-of-prompt search string, while the NAME portion\nspecifies the default shell name for the window.  If the NAME ends in a\n':' 'screen' will add what it believes to be the current command running\nin the window to the end of the specified name (e.g.  NAME:CMD).\nOtherwise the current command name supersedes the shell name while it is\nrunning.\n\nHere's how it works: you must modify your shell prompt to output a\nnull title-escape-sequence (<ESC> k <ESC> \\) as a part of your prompt.\nThe last part of your prompt must be the same as the string you\nspecified for the SEARCH portion of the title.  Once this is set up,\n'screen' will use the title-escape-sequence to clear the previous\ncommand name and get ready for the next command.  Then, when a newline\nis received from the shell, a search is made for the end of the prompt.\nIf found, it will grab the first word after the matched string and use\nit as the command name.  If the command name begins with '!', '%', or\n'^', 'screen' will use the first word on the following line (if found)\nin preference to the just-found name.  This helps csh users get more\naccurate titles when using job control or history recall commands.\n\nFile: screen.info,  Node: Title Prompts,  Next: Title Screenrc,  Prev: Dynamic Titles,  Up: Naming Windows\n\n\nOne thing to keep in mind when adding a null title-escape-sequence to\nyour prompt is that some shells (like the csh) count all the non-control\ncharacters as part of the prompt's length.  If these invisible\ncharacters aren't a multiple of 8 then backspacing over a tab will\nresult in an incorrect display.  One way to get around this is to use a\nprompt like this:\n\nset prompt='^[[0000m^[k^[\\% '\n\nThe escape-sequence '^[[0000m' not only normalizes the character\nattributes, but all the zeros round the length of the invisible\ncharacters up to 8.\n\nTcsh handles escape codes in the prompt more intelligently, so you\ncan specify your prompt like this:\n\nset prompt=\"%{\\ek\\e\\\\%}\\% \"\n\nBash users will probably want to echo the escape sequence in the\nPROMPTCOMMAND:\n\nPROMPTCOMMAND='printf \"\\033k\\033\\134\"'\n\n(I used '\\134' to output a '\\' because of a bug in v1.04).\n\nFile: screen.info,  Node: Title Screenrc,  Prev: Title Prompts,  Up: Naming Windows\n\n\nHere are some .screenrc examples:\n\nscreen -t top 2 nice top\n\nAdding this line to your .screenrc would start a niced version of the\n'top' command in window 2 named 'top' rather than 'nice'.\n\nshelltitle '> |csh'\nscreen 1\n\nThis file would start a shell using the given shelltitle.  The title\nspecified is an auto-title that would expect the prompt and the typed\ncommand to look something like the following:\n\n/usr/joe/src/dir> trn\n\n(it looks after the '> ' for the command name).  The window status\nwould show the name 'trn' while the command was running, and revert to\n'csh' upon completion.\n\nbind R screen -t '% |root:' su\n\nHaving this command in your .screenrc would bind the key sequence\n'C-a R' to the 'su' command and give it an auto-title name of 'root:'.\nFor this auto-title to work, the screen could look something like this:\n\n% !em\nemacs file.c\n\nHere the user typed the csh history command '!em' which ran the\npreviously entered 'emacs' command.  The window status would show\n'root:emacs' during the execution of the command, and revert to simply\n'root:' at its completion.\n\nbind o title\nbind E title \"\"\nbind u title (unknown)\n\nThe first binding doesn't have any arguments, so it would prompt you\nfor a title when you type 'C-a o'.  The second binding would clear an\nauto-titles current setting (C-a E). The third binding would set the\ncurrent window's title to '(unknown)' (C-a u).\n\nFile: screen.info,  Node: Console,  Next: Kill,  Prev: Naming Windows,  Up: Window Settings\n"
                },
                {
                    "name": "10.2 Console",
                    "content": "-- Command: console [STATE]\n(none)\nGrabs or un-grabs the machines console output to a window.  When\nthe argument is omitted the current state is displayed.  Note:\nOnly the owner of '/dev/console' can grab the console output.  This\ncommand is only available if the host supports the ioctl\n'TIOCCONS'.\n\nFile: screen.info,  Node: Kill,  Next: Login,  Prev: Console,  Up: Window Settings\n"
                },
                {
                    "name": "10.3 Kill",
                    "content": "-- Command: kill\n('C-a k', 'C-a C-k')\nKill the current window.\nIf there is an 'exec' command running (*note Exec::) then it is\nkilled.  Otherwise the process (e.g.  shell) running in the window\nreceives a 'HANGUP' condition, the window structure is removed and\nscreen (your display) switches to another window.  When the last\nwindow is destroyed, 'screen' exits.  After a kill screen switches\nto the previously displayed window.\nCaution: 'emacs' users may find themselves killing their 'emacs'\nsession when trying to delete the current line.  For this reason,\nit is probably wise to use a different command character (*note\nCommand Character::) or rebind 'kill' to another key sequence, such\nas 'C-a K' (*note Key Binding::).\n\nFile: screen.info,  Node: Login,  Next: Mode,  Prev: Kill,  Up: Window Settings\n"
                },
                {
                    "name": "10.4 Login",
                    "content": "-- Command: deflogin state\n(none)\nSame as the 'login' command except that the default setting for new\nwindows is changed.  This defaults to 'on' unless otherwise\nspecified at compile time (*note Installation::).  Both commands\nare only present when 'screen' has been compiled with utmp support.\n\n-- Command: login [state]\n('C-a L')\nAdds or removes the entry in '/run/utmp' for the current window.\nThis controls whether or not the window is \"logged in\".  In\naddition to this toggle, it is convenient to have \"log in\" and \"log\nout\" keys.  For instance, 'bind I login on' and 'bind O login off'\nwill map these keys to be 'C-a I' and 'C-a O' (*note Key\nBinding::).\n\nFile: screen.info,  Node: Mode,  Next: Monitor,  Prev: Login,  Up: Window Settings\n"
                },
                {
                    "name": "10.5 Mode",
                    "content": "-- Command: defmode mode\n(none)\nThe mode of each newly allocated pseudo-tty is set to MODE.  MODE\nis an octal number as used by chmod(1).  Defaults to 0622 for\nwindows which are logged in, 0600 for others (e.g.  when '-ln' was\nspecified for creation, *note Screen Command::).\n\nFile: screen.info,  Node: Monitor,  Next: Windows,  Prev: Mode,  Up: Window Settings\n"
                },
                {
                    "name": "10.6 Monitoring",
                    "content": "-- Command: activity message\n(none)\nWhen any activity occurs in a background window that is being\nmonitored, 'screen' displays a notification in the message line.\nThe notification message can be redefined by means of the\n'activity' command.  Each occurrence of '%' in MESSAGE is replaced\nby the number of the window in which activity has occurred, and\neach occurrence of '^G' is replaced by the definition for bell in\nyour termcap (usually an audible bell).  The default message is\n\n'Activity in window %n'\n\nNote that monitoring is off for all windows by default, but can be\naltered by use of the 'monitor' command ('C-a M').\n\n-- Command: defmonitor state\n(none)\nSame as the 'monitor' command except that the default setting for\nnew windows is changed.  Initial setting is 'off'.\n\n-- Command: monitor [state]\n('C-a M')\nToggles monitoring of the current window.  When monitoring is\nturned on and the affected window is switched into the background,\nthe activity notification message will be displayed in the status\nline at the first sign of output, and the window will also be\nmarked with an '@' in the window-status display (*note Windows::).\nMonitoring defaults to 'off' for all windows.\n\n-- Command: silence [STATE|SEC]\n('C-a ')\nToggles silence monitoring of windows.  When silence is turned on\nand an affected window is switched into the background, you will\nreceive the silence notification message in the status line after a\nspecified period of inactivity (silence).  The default timeout can\nbe changed with the 'silencewait' command or by specifying a number\nof seconds instead of 'on' or 'off'.  Silence is initially off for\nall windows.\n\n-- Command: defsilence state\n(none)\nSame as the 'silence' command except that the default setting for\nnew windows is changed.  Initial setting is 'off'.\n\n-- Command: silencewait SECONDS\n(none)\nDefine the time that all windows monitored for silence should wait\nbefore displaying a message.  Default is 30 seconds.\n\nFile: screen.info,  Node: Windows,  Next: Hardstatus,  Prev: Monitor,  Up: Window Settings\n"
                },
                {
                    "name": "10.7 Windows",
                    "content": "-- Command: windows [ string ]\n('C-a w', 'C-a C-w')\nUses the message line to display a list of all the windows.  Each\nwindow is listed by number with the name of the program running in\nthe window (or its title).\n\nThe current window is marked with a '*'; the previous window is\nmarked with a '-'; all the windows that are logged in are marked\nwith a '$' (*note Login::); a background window that has received a\nbell is marked with a '!'; a background window that is being\nmonitored and has had activity occur is marked with an '@' (*note\nMonitor::); a window which has output logging turned on is marked\nwith '(L)'; windows occupied by other users are marked with '&' or\n'&&' if the window is shared by other users; windows in the zombie\nstate are marked with 'Z'.\n\nIf this list is too long to fit on the terminal's status line only\nthe portion around the current window is displayed.\n\nYou can customize the output format to any string you like\nincluding string escapes (*note String Escapes::).  In this case,\nif the string parameter is passed, the maximum output size is\nunlimited (instead of 1024 bytes if no parameter is passed).\n\nFile: screen.info,  Node: Hardstatus,  Next: Mousetrack,  Prev: Windows,  Up: Window Settings\n"
                },
                {
                    "name": "10.8 Hardstatus",
                    "content": "'Screen' maintains a hardstatus line for every window.  If a window gets\nselected, the display's hardstatus will be updated to match the window's\nhardstatus line.  The hardstatus line can be changed with the ANSI\nApplication Program Command (APC): 'ESC<string>ESC\\'.  As a convenience\nfor xterm users the sequence 'ESC]0..2;<string>^G' is also accepted.\n\n-- Command: defhstatus [status]\n(none)\nThe hardstatus line that all new windows will get is set to STATUS.\nThis command is useful to make the hardstatus of every window\ndisplay the window number or title or the like.  STATUS may contain\nthe same directives as in the window messages, but the directive\nescape character is '^E' (octal 005) instead of '%'.  This was done\nto make a misinterpretation of program generated hardstatus lines\nimpossible.  If the parameter STATUS is omitted, the current\ndefault string is displayed.  Per default the hardstatus line of\nnew windows is empty.\n\n-- Command: hstatus status\n(none)\nChanges the current window's hardstatus line to STATUS.\n\nFile: screen.info,  Node: Virtual Terminal,  Next: Copy and Paste,  Prev: Window Settings,  Up: Top\n"
                }
            ]
        },
        "11 Virtual Terminal": {
            "content": "Each window in a 'screen' session emulates a VT100 terminal, with some\nextra functions added.  The VT100 emulator is hard-coded, no other\nterminal types can be emulated.  The commands described here modify the\nterminal emulation.\n\n* Menu:\n\n* Control Sequences::           Details of the internal VT100 emulation.\n* Input Translation::           How keystrokes are remapped.\n* Digraph::\t\t\tEntering digraph sequences.\n* Bell::                        Getting your attention.\n* Clear::                       Clear the window display.\n* Info::                        Terminal emulation statistics.\n* Redisplay::                   When the display gets confusing.\n* Wrap::                        Automatic margins.\n* Reset::                       Recovering from ill-behaved applications.\n* Window Size::                 Changing the size of your terminal.\n* Character Processing::\tChange the effect of special characters.\n\nFile: screen.info,  Node: Control Sequences,  Next: Input Translation,  Up: Virtual Terminal\n",
            "subsections": [
                {
                    "name": "11.1 Control Sequences",
                    "content": "The following is a list of control sequences recognized by 'screen'.\n'(V)' and '(A)' indicate VT100-specific and ANSI- or ISO-specific\nfunctions, respectively.\n\nESC E                           Next Line\nESC D                           Index\nESC M                           Reverse Index\nESC H                           Horizontal Tab Set\nESC Z                           Send VT100 Identification String\nESC 7                   (V)     Save Cursor and Attributes\nESC 8                   (V)     Restore Cursor and Attributes\nESC [s                  (A)     Save Cursor and Attributes\nESC [u                  (A)     Restore Cursor and Attributes\nESC c                           Reset to Initial State\nESC g                           Visual Bell\nESC Pn p                        Cursor Visibility (97801)\nPn = 6                      Invisible\n7                      Visible\nESC =                   (V)     Application Keypad Mode\nESC >                   (V)     Numeric Keypad Mode\nESC # 8                 (V)     Fill Screen with E's\nESC \\                   (A)     String Terminator\nESC ^                   (A)     Privacy Message String (Message Line)\nESC !                           Global Message String (Message Line)\nESC k                           Title Definition String\nESC P                   (A)     Device Control String\nOutputs a string directly to the host\nterminal without interpretation.\nESC                    (A)     Application Program Command (Hardstatus)\nESC ] 0 ; string ^G     (A)     Operating System Command (Hardstatus, xterm\ntitle hack)\nESC ] 83 ; cmd ^G       (A)     Execute screen command. This only works if\nmulti-user support is compiled into screen.\nThe pseudo-user \":window:\" is used to check\nthe access control list. Use \"addacl :window:\n-rwx #?\" to create a user with no rights and\nallow only the needed commands.\nControl-N               (A)     Lock Shift G1 (SO)\nControl-O               (A)     Lock Shift G0 (SI)\nESC n                   (A)     Lock Shift G2\nESC o                   (A)     Lock Shift G3\nESC N                   (A)     Single Shift G2\nESC O                   (A)     Single Shift G3\nESC ( Pcs               (A)     Designate character set as G0\nESC ) Pcs               (A)     Designate character set as G1\nESC * Pcs               (A)     Designate character set as G2\nESC + Pcs               (A)     Designate character set as G3\nESC [ Pn ; Pn H                 Direct Cursor Addressing\nESC [ Pn ; Pn f                 same as above\nESC [ Pn J                      Erase in Display\nPn = None or 0            From Cursor to End of Screen\n1                    From Beginning of Screen to Cursor\n2                    Entire Screen\nESC [ Pn K                      Erase in Line\nPn = None or 0            From Cursor to End of Line\n1                    From Beginning of Line to Cursor\n2                    Entire Line\nESC [ Pn X                      Erase character\nESC [ Pn A                      Cursor Up\nESC [ Pn B                      Cursor Down\nESC [ Pn C                      Cursor Right\nESC [ Pn D                      Cursor Left\nESC [ Pn E                      Cursor next line\nESC [ Pn F                      Cursor previous line\nESC [ Pn G                      Cursor horizontal position\nESC [ Pn `                      same as above\nESC [ Pn d                      Cursor vertical position\nESC [ Ps ;...; Ps m             Select Graphic Rendition\nPs = None or 0            Default Rendition\n1                    Bold\n2            (A)     Faint\n3            (A)     Standout Mode (ANSI: Italicized)\n4                    Underlined\n5                    Blinking\n7                    Negative Image\n22           (A)     Normal Intensity\n23           (A)     Standout Mode off (ANSI: Italicized off)\n24           (A)     Not Underlined\n25           (A)     Not Blinking\n27           (A)     Positive Image\n30           (A)     Foreground Black\n31           (A)     Foreground Red\n32           (A)     Foreground Green\n33           (A)     Foreground Yellow\n34           (A)     Foreground Blue\n35           (A)     Foreground Magenta\n36           (A)     Foreground Cyan\n37           (A)     Foreground White\n39           (A)     Foreground Default\n40           (A)     Background Black\n...                  ...\n49           (A)     Background Default\nESC [ Pn g                      Tab Clear\nPn = None or 0            Clear Tab at Current Position\n3                    Clear All Tabs\nESC [ Pn ; Pn r         (V)     Set Scrolling Region\nESC [ Pn I              (A)     Horizontal Tab\nESC [ Pn Z              (A)     Backward Tab\nESC [ Pn L              (A)     Insert Line\nESC [ Pn M              (A)     Delete Line\nESC [ Pn @              (A)     Insert Character\nESC [ Pn P              (A)     Delete Character\nESC [ Pn S                      Scroll Scrolling Region Up\nESC [ Pn T                      Scroll Scrolling Region Down\nESC [ Pn ^                      same as above\nESC [ Ps ;...; Ps h             Set Mode\nESC [ Ps ;...; Ps l             Reset Mode\nPs = 4            (A)     Insert Mode\n20           (A)     'Automatic Linefeed' Mode.\n34                   Normal Cursor Visibility\n?1           (V)     Application Cursor Keys\n?3           (V)     Change Terminal Width to 132 columns\n?5           (V)     Reverse Video\n?6           (V)     'Origin' Mode\n?7           (V)     'Wrap' Mode\n?9                   X10 mouse tracking\n?25          (V)     Visible Cursor\n?47                  Alternate Screen (old xterm code)\n?1000        (V)     VT200 mouse tracking\n?1047                Alternate Screen (new xterm code)\n?1049                Alternate Screen (new xterm code)\nESC [ 5 i               (A)     Start relay to printer (ANSI Media Copy)\nESC [ 4 i               (A)     Stop relay to printer (ANSI Media Copy)\nESC [ 8 ; Ph ; Pw t             Resize the window to 'Ph' lines and\n'Pw' columns (SunView special)\nESC [ c                         Send VT100 Identification String\nESC [ x                 (V)     Send Terminal Parameter Report\nESC [ > c                       Send Secondary Device Attributes String\nESC [ 6 n                       Send Cursor Position Report\n\n\nFile: screen.info,  Node: Input Translation,  Next: Digraph,  Prev: Control Sequences,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.2 Input Translation",
                    "content": "In order to do a full VT100 emulation 'screen' has to detect that a\nsequence of characters in the input stream was generated by a keypress\non the user's keyboard and insert the VT100 style escape sequence.\n'Screen' has a very flexible way of doing this by making it possible to\nmap arbitrary commands on arbitrary sequences of characters.  For\nstandard VT100 emulation the command will always insert a string in the\ninput buffer of the window (see also command 'stuff', *note Paste::).\nBecause the sequences generated by a keypress can change after a\nreattach from a different terminal type, it is possible to bind commands\nto the termcap name of the keys.  'Screen' will insert the correct\nbinding after each reattach.  See *note Bindkey:: for further details on\nthe syntax and examples.\n\nHere is the table of the default key bindings.  (A) means that the\ncommand is executed if the keyboard is switched into application mode.\n\nCursor up            ku         stuff \\033[A\nstuff \\033OA      (A)\nCursor down          kd         stuff \\033[B\nstuff \\033OB      (A)\nCursor right         kr         stuff \\033[C\nstuff \\033OC      (A)\nCursor left          kl         stuff \\033[D\nstuff \\033OD      (A)\nFunction key 0       k0         stuff \\033[10~\nFunction key 1       k1         stuff \\033OP\nFunction key 2       k2         stuff \\033OQ\nFunction key 3       k3         stuff \\033OR\nFunction key 4       k4         stuff \\033OS\nFunction key 5       k5         stuff \\033[15~\nFunction key 6       k6         stuff \\033[17~\nFunction key 7       k7         stuff \\033[18~\nFunction key 8       k8         stuff \\033[19~\nFunction key 9       k9         stuff \\033[20~\nFunction key 10      k;         stuff \\033[21~\nFunction key 11      F1         stuff \\033[23~\nFunction key 12      F2         stuff \\033[24~\nHome                 kh         stuff \\033[1~\nEnd                  kH         stuff \\033[4~\nInsert               kI         stuff \\033[2~\nDelete               kD         stuff \\033[3~\nPage up              kP         stuff \\033[5~\nPage down            kN         stuff \\033[6~\nKeypad 0             f0         stuff 0\nstuff \\033Op      (A)\nKeypad 1             f1         stuff 1\nstuff \\033Oq      (A)\nKeypad 2             f2         stuff 2\nstuff \\033Or      (A)\nKeypad 3             f3         stuff 3\nstuff \\033Os      (A)\nKeypad 4             f4         stuff 4\nstuff \\033Ot      (A)\nKeypad 5             f5         stuff 5\nstuff \\033Ou      (A)\nKeypad 6             f6         stuff 6\nstuff \\033Ov      (A)\nKeypad 7             f7         stuff 7\nstuff \\033Ow      (A)\nKeypad 8             f8         stuff 8\nstuff \\033Ox      (A)\nKeypad 9             f9         stuff 9\nstuff \\033Oy      (A)\nKeypad +             f+         stuff +\nstuff \\033Ok      (A)\nKeypad -             f-         stuff -\nstuff \\033Om      (A)\nKeypad *             f*         stuff *\nstuff \\033Oj      (A)\nKeypad /             f/         stuff /\nstuff \\033Oo      (A)\nKeypad =             fq         stuff =\nstuff \\033OX      (A)\nKeypad .             f.         stuff .\nstuff \\033On      (A)\nKeypad ,             f,         stuff ,\nstuff \\033Ol      (A)\nKeypad enter         fe         stuff \\015\nstuff \\033OM      (A)\n\nFile: screen.info,  Node: Digraph,  Next: Bell,  Prev: Input Translation,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.3 Digraph",
                    "content": "-- Command: digraph [preset [unicode-value]]\n('C-a C-v')\nThis command prompts the user for a digraph sequence.  The next two\ncharacters typed are looked up in a builtin table and the resulting\ncharacter is inserted in the input stream.  For example, if the\nuser enters 'a\"', an a-umlaut will be inserted.  If the first\ncharacter entered is a 0 (zero), 'screen' will treat the following\ncharacters (up to three) as an octal number instead.  The optional\nargument PRESET is treated as user input, thus one can create an\n\"umlaut\" key.  For example the command 'bindkey ^K digraph '\"''\nenables the user to generate an a-umlaut by typing 'CTRL-K a'.\nWhen a non-zero UNICODE-VALUE is specified, a new digraph is\ncreated with the specified preset.  The digraph is unset if a zero\nvalue is provided for the UNICODE-VALUE.\n\nThe following table is the builtin sequences.\n\n' ', ' '    160    (space)         U+00A0\n'N', 'S'    160    (space)         U+00A0\n'~', '!'    161       ?            U+00A1\n'!', '!'    161       ?            U+00A1\n'!', 'I'    161       ?            U+00A1\n'c', '|'    162       ?            U+00A2\n'c', 't'    162       ?            U+00A2\n'$', '$'    163       ?            U+00A3\n'P', 'd'    163       ?            U+00A3\n'o', 'x'    164       ?            U+00A4\n'C', 'u'    164       ?            U+00A4\n'C', 'u'    164       ?            U+00A4\n'E', 'u'    164       ?            U+00A4\n'Y', '-'    165       ?            U+00A5\n'Y', 'e'    165       ?            U+00A5\n'|', '|'    166       ?            U+00A6\n'B', 'B'    166       ?            U+00A6\n'p', 'a'    167       ?            U+00A7\n'S', 'E'    167       ?            U+00A7\n'\"', '\"'    168       ?            U+00A8\n''', ':'    168       ?            U+00A8\n'c', 'O'    169       (C)            U+00A9\n'C', 'o'    169       (C)            U+00A9\n'a', '-'    170       ?            U+00AA\n'<', '<'    171       ?            U+00AB\n'-', ','    172       ?            U+00AC\n'N', 'O'    172       ?            U+00AC\n'-', '-'    173       ?            U+00AD\n'r', 'O'    174       ?            U+00AE\n'R', 'g'    174       ?            U+00AE\n'-', '='    175       ?            U+00AF\n''', 'm'    175       ?            U+00AF\n'~', 'o'    176       ?            U+00B0\n'D', 'G'    176       ?            U+00B0\n'+', '-'    177       ?            U+00B1\n'2', '2'    178       ?            U+00B2\n'2', 'S'    178       ?            U+00B2\n'3', '3'    179       ?            U+00B3\n'3', 'S'    179       ?            U+00B3\n''', '''    180       ?            U+00B4\n'j', 'u'    181       ?            U+00B5\n'M', 'y'    181       ?            U+00B5\n'p', 'p'    182       ?            U+00B6\n'P', 'I'    182       ?            U+00B6\n'~', '.'    183       ?            U+00B7\n'.', 'M'    183       ?            U+00B7\n',', ','    184       ?            U+00B8\n''', ','    184       ?            U+00B8\n'1', '1'    185       ?            U+00B9\n'1', 'S'    185       ?            U+00B9\n'o', '-'    186       ?            U+00BA\n'>', '>'    187       >>            U+00BB\n'1', '4'    188       ?            U+00BC\n'1', '2'    189       ?            U+00BD\n'3', '4'    190       ?            U+00BE\n'~', '?'    191       ?            U+00BF\n'?', '?'    191       ?            U+00BF\n'?', 'I'    191       ?            U+00BF\n'A', '`'    192       ?            U+00C0\n'A', '!'    192       ?            U+00C0\n'A', '''    193       ?            U+00C1\n'A', '^'    194       ?            U+00C2\n'A', '>'    194       ?            U+00C2\n'A', '~'    195       ?            U+00C3\n'A', '?'    195       ?            U+00C3\n'A', '\"'    196       A\"            U+00C4\n'A', ':'    196       A\"            U+00C4\n'A', '@'    197       ?            U+00C5\n'A', 'A'    197       ?            U+00C5\n'A', 'E'    198       ?            U+00C6\n'C', ','    199       C,            U+00C7\n'E', '`'    200       ?            U+00C8\n'E', '!'    200       ?            U+00C8\n'E', '''    201       ?            U+00C9\n'E', '^'    202       ?            U+00CA\n'E', '>'    202       ?            U+00CA\n'E', '\"'    203       ?            U+00CB\n'E', ':'    203       ?            U+00CB\n'I', '`'    204       ?            U+00CC\n'I', '!'    204       ?            U+00CC\n'I', '''    205       ?            U+00CD\n'I', '^'    206       ?            U+00CE\n'I', '>'    206       ?            U+00CE\n'I', '\"'    207       ?            U+00CF\n'I', ':'    207       ?            U+00CF\n'D', '-'    208       ?            U+00D0\n'N', '~'    209       ?            U+00D1\n'N', '?'    209       ?            U+00D1\n'O', '`'    210       ?            U+00D2\n'O', '!'    210       ?            U+00D2\n'O', '''    211       ?            U+00D3\n'O', '^'    212       ?            U+00D4\n'O', '>'    212       ?            U+00D4\n'O', '~'    213       ?            U+00D5\n'O', '?'    213       ?            U+00D5\n'O', '\"'    214       O\"            U+00D6\n'O', ':'    214       O\"            U+00D6\n'/', '\\'    215       ?            U+00D7\n'*', 'x'    215       ?            U+00D7\n'O', '/'    216       ?            U+00D8\n'U', '`'    217       ?            U+00D9\n'U', '!'    217       ?            U+00D9\n'U', '''    218       ?            U+00DA\n'U', '^'    219       ?            U+00DB\n'U', '>'    219       ?            U+00DB\n'U', '\"'    220       U\"            U+00DC\n'U', ':'    220       U\"            U+00DC\n'Y', '''    221       ?            U+00DD\n'I', 'p'    222       ?            U+00DE\n'T', 'H'    222       ?            U+00DE\n's', 's'    223       ss            U+00DF\n's', '\"'    223       ss            U+00DF\n'a', '`'    224       a`            U+00E0\n'a', '!'    224       a`            U+00E0\n'a', '''    225       ?            U+00E1\n'a', '^'    226       a^            U+00E2\n'a', '>'    226       a^            U+00E2\n'a', '~'    227       ?            U+00E3\n'a', '?'    227       ?            U+00E3\n'a', '\"'    228       a\"            U+00E4\n'a', ':'    228       a\"            U+00E4\n'a', 'a'    229       ?            U+00E5\n'a', 'e'    230       ae            U+00E6\n'c', ','    231       c,            U+00E7\n'e', '`'    232       e`            U+00E8\n'e', '!'    232       e`            U+00E8\n'e', '''    233       e'            U+00E9\n'e', '^'    234       e^            U+00EA\n'e', '>'    234       e^            U+00EA\n'e', '\"'    235       e\"            U+00EB\n'e', ':'    235       e\"            U+00EB\n'i', '`'    236       ?            U+00EC\n'i', '!'    236       ?            U+00EC\n'i', '''    237       ?            U+00ED\n'i', '^'    238       ?            U+00EE\n'i', '>'    238       ?            U+00EE\n'i', '\"'    239       ?            U+00EF\n'i', ':'    239       ?            U+00EF\n'd', '-'    240       ?            U+00F0\n'n', '~'    241       n~            U+00F1\n'n', '?'    241       n~            U+00F1\n'o', '`'    242       ?            U+00F2\n'o', '!'    242       ?            U+00F2\n'o', '''    243       ?            U+00F3\n'o', '^'    244       ?            U+00F4\n'o', '>'    244       ?            U+00F4\n'o', '~'    245       ?            U+00F5\n'o', '?'    245       ?            U+00F5\n'o', '\"'    246       o\"            U+00F6\n'o', ':'    246       o\"            U+00F6\n':', '-'    247       ?            U+00F7\n'o', '/'    248       ?            U+00F8\n'u', '`'    249       ?            U+00F9\n'u', '!'    249       ?            U+00F9\n'u', '''    250       ?            U+00FA\n'u', '^'    251       ?            U+00FB\n'u', '>'    251       ?            U+00FB\n'u', '\"'    252       u\"            U+00FC\n'u', ':'    252       u\"            U+00FC\n'y', '''    253       ?            U+00FD\n'i', 'p'    254       ?            U+00FE\n't', 'h'    254       ?            U+00FE\n'y', '\"'    255       ?            U+00FF\n'y', ':'    255       ?            U+00FF\n'\"', '['    196       A\"            U+00C4\n'\"', '\\'    214       O\"            U+00D6\n'\"', ']'    220       U\"            U+00DC\n'\"', '{'    228       a\"            U+00E4\n'\"', '|'    246       o\"            U+00F6\n'\"', '}'    252       u\"            U+00FC\n'\"', '~'    223       ss            U+00DF\n\nFile: screen.info,  Node: Bell,  Next: Clear,  Prev: Digraph,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.4 Bell",
                    "content": "-- Command: bellmsg [message]\n(none)\nWhen a bell character is sent to a background window, 'screen'\ndisplays a notification in the message line.  The notification\nmessage can be re-defined by this command.  Each occurrence of '%'\nin MESSAGE is replaced by the number of the window to which a bell\nhas been sent, and each occurrence of '^G' is replaced by the\ndefinition for bell in your termcap (usually an audible bell).  The\ndefault message is\n\n'Bell in window %n'\n\nAn empty message can be supplied to the 'bellmsg' command to\nsuppress output of a message line ('bellmsg \"\"').  Without a\nparameter, the current message is shown.\n\n-- Command: vbell [state]\n('C-a C-g')\nSets or toggles the visual bell setting for the current window.  If\n'vbell' is switched to 'on', but your terminal does not support a\nvisual bell, the visual bell message is displayed in the status\nline when the bell character is received.  Visual bell support of a\nterminal is defined by the termcap variable 'vb'.  *Note Bell::,\nfor more information on visual bells.  The equivalent terminfo\ncapability is 'flash'.\n\nPer default, 'vbell' is 'off', thus the audible bell is used.\n\n-- Command: vbellmsg [message]\n(none)\nSets the visual bell message.  MESSAGE is printed to the status\nline if the window receives a bell character (^G), 'vbell' is set\nto 'on' and the terminal does not support a visual bell.  The\ndefault message is 'Wuff, Wuff!!'.  Without a parameter, the\ncurrent message is shown.\n\n-- Command: vbellwait sec\n(none)\nDefine a delay in seconds after each display of 'screen' 's visual\nbell message.  The default is 1 second.\n\nFile: screen.info,  Node: Clear,  Next: Info,  Prev: Bell,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.5 Clear",
                    "content": "-- Command: clear\n('C-a C')\nClears the screen and saves its contents to the scrollback buffer.\n\nFile: screen.info,  Node: Info,  Next: Redisplay,  Prev: Clear,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.6 Info",
                    "content": "-- Command: info\n('C-a i', 'C-a C-i')\nUses the message line to display some information about the current\nwindow: the cursor position in the form '(COLUMN,ROW)' starting\nwith '(1,1)', the terminal width and height plus the size of the\nscrollback buffer in lines, like in '(80,24)+50', the current state\nof window XON/XOFF flow control is shown like this (*note Flow\nControl::):\n+flow     automatic flow control, currently on.\n-flow     automatic flow control, currently off.\n+(+)flow  flow control enabled. Agrees with automatic control.\n-(+)flow  flow control disabled. Disagrees with automatic control.\n+(-)flow  flow control enabled. Disagrees with automatic control.\n-(-)flow  flow control disabled. Agrees with automatic control.\n\nThe current line wrap setting ('+wrap' indicates enabled, '-wrap'\nnot) is also shown.  The flags 'ins', 'org', 'app', 'log', 'mon'\nand 'nored' are displayed when the window is in insert mode, origin\nmode, application-keypad mode, has output logging, activity\nmonitoring or partial redraw enabled.\n\nThe currently active character set ('G0', 'G1', 'G2', or 'G3'), and\nin square brackets the terminal character sets that are currently\ndesignated as 'G0' through 'G3'.  If the window is in UTF-8 mode,\nthe string 'UTF-8' is shown instead.  Additional modes depending on\nthe type of the window are displayed at the end of the status line\n(*note Window Types::).\n\nIf the state machine of the terminal emulator is in a non-default\nstate, the info line is started with a string identifying the\ncurrent state.\n\nFor system information use 'time'.\n\n-- Command: dinfo\n(none)\nShow what 'screen' thinks about your terminal.  Useful if you want\nto know why features like color or the alternate charset don't\nwork.\n\nFile: screen.info,  Node: Redisplay,  Next: Wrap,  Prev: Info,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.7 Redisplay",
                    "content": "-- Command: allpartial state\n(none)\nIf set to on, only the current cursor line is refreshed on window\nchange.  This affects all windows and is useful for slow terminal\nlines.  The previous setting of full/partial refresh for each\nwindow is restored with 'allpartial off'.  This is a global flag\nthat immediately takes effect on all windows overriding the\n'partial' settings.  It does not change the default redraw behavior\nof newly created windows.\n\n-- Command: altscreen state\n(none)\nIf set to on, \"alternate screen\" support is enabled in virtual\nterminals, just like in xterm.  Initial setting is 'off'.\n\n-- Command: partial state\n(none)\nDefines whether the display should be refreshed (as with\n'redisplay') after switching to the current window.  This command\nonly affects the current window.  To immediately affect all windows\nuse the 'allpartial' command.  Default is 'off', of course.  This\ndefault is fixed, as there is currently no 'defpartial' command.\n\n-- Command: redisplay\n('C-a l', 'C-a C-l')\nRedisplay the current window.  Needed to get a full redisplay in\npartial redraw mode.\n\nFile: screen.info,  Node: Wrap,  Next: Reset,  Prev: Redisplay,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.8 Wrap",
                    "content": "-- Command: wrap [ on | off ]\n('C-a r', 'C-a C-r')\nSets the line-wrap setting for the current window.  When line-wrap\nis on, the second consecutive printable character output at the\nlast column of a line will wrap to the start of the following line.\nAs an added feature, backspace (^H) will also wrap through the left\nmargin to the previous line.  Default is 'on'.  Without any\noptions, the state of 'wrap' is toggled.\n\n-- Command: defwrap state\n(none)\nSame as the 'wrap' command except that the default setting for new\nwindows is changed.  Initially line-wrap is on and can be toggled\nwith the 'wrap' command ('C-a r') or by means of \"C-a : wrap\non|off\".\n\nFile: screen.info,  Node: Reset,  Next: Window Size,  Prev: Wrap,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.9 Reset",
                    "content": "-- Command: reset\n('C-a Z')\nReset the virtual terminal to its \"power-on\" values.  Useful when\nstrange settings (like scroll regions or graphics character set)\nare left over from an application.\n\nFile: screen.info,  Node: Window Size,  Next: Character Processing,  Prev: Reset,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.10 Window Size",
                    "content": "-- Command: width [-w|-d] [cols [lines]]\n('C-a W')\nToggle the window width between 80 and 132 columns, or set it to\nCOLS columns if an argument is specified.  This requires a capable\nterminal and the termcap entries 'Z0' and 'Z1'.  See the 'termcap'\ncommand (*note Termcap::), for more information.  You can also\nspecify a height if you want to change both values.  The '-w'\noption tells screen to leave the display size unchanged and just\nset the window size, '-d' vice versa.\n\n-- Command: height [-w|-d] [lines [cols]]\n(none)\nSet the display height to a specified number of lines.  When no\nargument is given it toggles between 24 and 42 lines display.\n\nFile: screen.info,  Node: Character Processing,  Prev: Window Size,  Up: Virtual Terminal\n"
                },
                {
                    "name": "11.11 Character Processing",
                    "content": "-- Command: c1 [state]\n(none)\nChange c1 code processing.  'c1 on' tells screen to treat the input\ncharacters between 128 and 159 as control functions.  Such an 8-bit\ncode is normally the same as ESC followed by the corresponding\n7-bit code.  The default setting is to process c1 codes and can be\nchanged with the 'defc1' command.  Users with fonts that have\nusable characters in the c1 positions may want to turn this off.\n\n-- Command: gr [state]\n(none)\nTurn GR charset switching on/off.  Whenever screen sees an input\nchar with an 8th bit set, it will use the charset stored in the GR\nslot and print the character with the 8th bit stripped.  The\ndefault (see also 'defgr') is not to process GR switching because\notherwise the ISO88591 charset would not work.\n\n-- Command: bce [state]\n(none)\nChange background-color-erase setting.  If 'bce' is set to on, all\ncharacters cleared by an erase/insert/scroll/clear operation will\nbe displayed in the current background color.  Otherwise the\ndefault background color is used.\n\n-- Command: encoding enc [denc]\n(none)\nTell screen how to interpret the input/output.  The first argument\nsets the encoding of the current window.  Each window can emulate a\ndifferent encoding.  The optional second parameter overwrites the\nencoding of the connected terminal.  It should never be needed as\nscreen uses the locale setting to detect the encoding.  There is\nalso a way to select a terminal encoding depending on the terminal\ntype by using the 'KJ' termcap entry.  *Note Special\nCapabilities::.\n\nSupported encodings are 'eucJP', 'SJIS', 'eucKR', 'eucCN', 'Big5',\n'GBK', 'KOI8-R', 'CP1251', 'UTF-8', 'ISO8859-2', 'ISO8859-3',\n'ISO8859-4', 'ISO8859-5', 'ISO8859-6', 'ISO8859-7', 'ISO8859-8',\n'ISO8859-9', 'ISO8859-10', 'ISO8859-15', 'jis'.\n\nSee also 'defencoding', which changes the default setting of a new\nwindow.\n\n-- Command: charset set\n(none)\nChange the current character set slot designation and charset\nmapping.  The first four character of SET are treated as charset\ndesignators while the fifth and sixth character must be in range\n'0' to '3' and set the GL/GR charset mapping.  On every position a\n'.' may be used to indicate that the corresponding charset/mapping\nshould not be changed (SET is padded to six characters internally\nby appending '.' chars).  New windows have 'BBBB02' as default\ncharset, unless a 'encoding' command is active.\n\nThe current setting can be viewed with the *note Info:: command.\n\n-- Command: utf8 [state [dstate]]\n(none)\nChange the encoding used in the current window.  If utf8 is\nenabled, the strings sent to the window will be UTF-8 encoded and\nvice versa.  Omitting the parameter toggles the setting.  If a\nsecond parameter is given, the display's encoding is also changed\n(this should rather be done with screen's '-U' option).  See also\n'defutf8', which changes the default setting of a new window.\n\n-- Command: defc1 state\n(none)\nSame as the 'c1' command except that the default setting for new\nwindows is changed.  Initial setting is 'on'.\n\n-- Command: defgr state\n(none)\nSame as the 'gr' command except that the default setting for new\nwindows is changed.  Initial setting is 'off'.\n\n-- Command: defbce state\n(none)\nSame as the 'bce' command except that the default setting for new\nwindows is changed.  Initial setting is 'off'.\n\n-- Command: defencoding enc\n(none)\nSame as the 'encoding' command except that the default setting for\nnew windows is changed.  Initial setting is the encoding taken from\nthe terminal.\n\n-- Command: defcharset [set]\n(none)\nLike the 'charset' command except that the default setting for new\nwindows is changed.  Shows current default if called without\nargument.\n\n-- Command: defutf8 state\n(none)\nSame as the 'utf8' command except that the default setting for new\nwindows is changed.  Initial setting is 'on' if screen was started\nwith '-U', otherwise 'off'.\n\n-- Command: cjkwidth [state]\n(none)\nToggle how ambiguoous characters are treated.  If cjkwidth is on\nscreen interprets them as double (full) width characters.  If off\nthen they are seen as one cell (half) width characters.\n\nFile: screen.info,  Node: Copy and Paste,  Next: Subprocess Execution,  Prev: Virtual Terminal,  Up: Top\n"
                }
            ]
        },
        "12 Copy and Paste": {
            "content": "For those confined to a hardware terminal, these commands provide a cut\nand paste facility more powerful than those provided by most windowing\nsystems.\n\n* Menu:\n\n* Copy::                        Copy from scrollback to buffer\n* Paste::                       Paste from buffer into window\n* Registers::                   Longer-term storage\n* Screen Exchange::             Sharing data between screen users\n* History::                     Recalling previous input\n\nFile: screen.info,  Node: Copy,  Next: Paste,  Up: Copy and Paste\n",
            "subsections": [
                {
                    "name": "12.1 Copying",
                    "content": "-- Command: copy\n('C-a [', 'C-a C-[', 'C-a <ESC>')\nEnter copy/scrollback mode.  This allows you to copy text from the\ncurrent window and its history into the paste buffer.  In this mode\na 'vi'-like full screen editor is active, with controls as outlined\nbelow.\n\n* Menu:\n\n* Line Termination::            End copied lines with CR/LF\n* Scrollback::                  Set the size of the scrollback buffer\n* Copy Mode Keys::              Remap keys in copy mode\n* Movement::                    Move around in the scrollback buffer\n* Marking::                     Select the text you want\n* Repeat count::                Repeat a command\n* Searching::                   Find the text you want\n* Specials::                    Other random keys\n\nFile: screen.info,  Node: Line Termination,  Next: Scrollback,  Up: Copy\n\n\n-- Command: crlf [state]\n(none)\nThis affects the copying of text regions with the 'copy' command.\nIf it is set to 'on', lines will be separated by the two character\nsequence 'CR'/'LF'.  Otherwise only 'LF' is used.  'crlf' is off by\ndefault.  When no parameter is given, the state is toggled.\n\nFile: screen.info,  Node: Scrollback,  Next: Copy Mode Keys,  Prev: Line Termination,  Up: Copy\n\n\nTo access and use the contents in the scrollback buffer, use the 'copy'\ncommand.  *Note Copy::.\n-- Command: defscrollback num\n(none)\nSame as the 'scrollback' command except that the default setting\nfor new windows is changed.  Defaults to 100.\n\n-- Command: scrollback num\n(none)\nSet the size of the scrollback buffer for the current window to NUM\nlines.  The default scrollback is 100 lines.  Use 'info' to view\nthe current setting.\n\n-- Command: compacthist [state]\n(none)\nThis tells screen whether to suppress trailing blank lines when\nscrolling up text into the history buffer.  Turn compacting 'on' to\nhold more useful lines in your scrollback buffer.\n\nFile: screen.info,  Node: Copy Mode Keys,  Next: Movement,  Prev: Scrollback,  Up: Copy\n\n\n-- Command: markkeys string\n(none)\nThis is a method of changing the keymap used for copy/history mode.\nThe string is made up of OLDCHAR=NEWCHAR pairs which are separated\nby ':'.  Example: The command 'markkeys h=^B:l=^F:$=^E' would set\nsome keys to be more familiar to 'emacs' users.  If your terminal\nsends characters, that cause you to abort copy mode, then this\ncommand may help by binding these characters to do nothing.  The\nno-op character is '@' and is used like this: 'markkeys @=L=H' if\nyou do not want to use the 'H' or 'L' commands any longer.  As\nshown in this example, multiple keys can be assigned to one\nfunction in a single statement.\n\nFile: screen.info,  Node: Movement,  Next: Marking,  Prev: Copy Mode Keys,  Up: Copy\n\n\n'h', 'C-h', or 'left arrow' move the cursor left.\n\n'j', 'C-n', or 'down arrow' move the cursor down.\n\n'k', 'C-p', or 'up arrow' move the cursor up.\n\n'l' ('el'), or 'right arrow' move the cursor right.\n\n'0' (zero) or 'C-a' move to the leftmost column.\n\n'+' and '-' move the cursor to the leftmost column of the next or\nprevious line.\n\n'H', 'M' and 'L' move the cursor to the leftmost column of the top,\ncenter or bottom line of the window.\n\n'|' moves to the specified absolute column.\n\n'g' or 'home' moves to the beginning of the buffer.\n\n'G' or 'end' moves to the specified absolute line (default: end of\nbuffer).\n\n'%' jumps to the specified percentage of the buffer.\n\n'^' or '$' move to the first or last non-whitespace character on the\nline.\n\n'w', 'b', and 'e' move the cursor word by word.\n\n'B', 'E' move the cursor WORD by WORD (as in vi).\n\n'f'/'F', 't'/'T' move the cursor forward/backward to the next occurrence\nof the target.  (eg, '3fy' will move the cursor to the 3rd 'y' to the\nright.)\n\n';' and ',' Repeat the last f/F/t/T command in the same/opposite\ndirection.\n\n'C-e' and 'C-y' scroll the display up/down by one line while preserving\nthe cursor position.\n\n'C-u' and 'C-d' scroll the display up/down by the specified amount of\nlines while preserving the cursor position.  (Default: half screenful).\n\n'C-b' and 'C-f' move the cursor up/down a full screen.\n\nNote that Emacs-style movement keys can be specified by a .screenrc\ncommand.  ('markkeys \"h=^B:l=^F:$=^E\"') There is no simple method for a\nfull emacs-style keymap, however, as this involves multi-character\ncodes.\n\nFile: screen.info,  Node: Marking,  Next: Repeat count,  Prev: Movement,  Up: Copy\n\n\nThe copy range is specified by setting two marks.  The text between\nthese marks will be highlighted.  Press:\n\n'space' or 'enter' to set the first or second mark respectively.  If\n'mousetrack' is set to 'on', marks can also be set using 'left mouse\nclick'.\n\n'Y' and 'y' can be used to mark one whole line or to mark from start of\nline.\n\n'W' marks exactly one word.\n\nFile: screen.info,  Node: Repeat count,  Next: Searching,  Prev: Marking,  Up: Copy\n\n\nAny command in copy mode can be prefixed with a number (by pressing\ndigits '0...9') which is taken as a repeat count.  Example:\nC-a C-[ H 10 j 5 Y\nwill copy lines 11 to 15 into the paste buffer.\n\nFile: screen.info,  Node: Searching,  Next: Specials,  Prev: Repeat count,  Up: Copy\n\n\n'/' 'vi'-like search forward.\n\n'?'  'vi'-like search backward.\n\n'C-a s' 'emacs' style incremental search forward.\n\n'C-r' 'emacs' style reverse i-search.\n\n-- Command: ignorecase [on|off]\n(none)\nTell screen to ignore the case of characters in searches.  Default\nis 'off'.  Without any options, the state of 'ignorecase' is\ntoggled.\n\n'n' Repeat search in forward direction.\n\n'N' Repeat search in backward direction.\n\nFile: screen.info,  Node: Specials,  Prev: Searching,  Up: Copy\n\n\nThere are, however, some keys that act differently here from in 'vi'.\n'Vi' does not allow to yank rectangular blocks of text, but 'screen'\ndoes.  Press:\n\n'c' or 'C' to set the left or right margin respectively.  If no repeat\ncount is given, both default to the current cursor position.\nExample: Try this on a rather full text screen:\nC-a [ M 20 l SPACE c 10 l 5 j C SPACE.\n\nThis moves one to the middle line of the screen, moves in 20 columns\nleft, marks the beginning of the paste buffer, sets the left column,\nmoves 5 columns down, sets the right column, and then marks the end of\nthe paste buffer.  Now try:\nC-a [ M 20 l SPACE 10 l 5 j SPACE\n\nand notice the difference in the amount of text copied.\n\n'J' joins lines.  It toggles between 4 modes: lines separated by a\nnewline character (012), lines glued seamless, lines separated by a\nsingle space or comma separated lines.  Note that you can prepend the\nnewline character with a carriage return character, by issuing a 'set\ncrlf on'.\n\n'v' or 'V' is for all the 'vi' users who use ':set numbers' - it toggles\nthe left margin between column 9 and 1.\n\n'a' before the final 'space' key turns on append mode.  Thus the\ncontents of the paste buffer will not be overwritten, but appended to.\n\n'A' turns on append mode and sets a (second) mark.\n\n'>' sets the (second) mark and writes the contents of the paste buffer\nto the screen-exchange file ('/tmp/screen-exchange' per default) once\ncopy-mode is finished.  *Note Screen Exchange::.\nThis example demonstrates how to dump the whole scrollback buffer to\nthat file:\nC-a [ g SPACE G $ >.\n\n'C-g' gives information about the current line and column.\n\n'x' or 'o' ('oh') exchanges the first mark and the current cursor\nposition.  You can use this to adjust an already placed mark.\n\n'C-l' ('el') will redraw the screen.\n\n'@' does nothing.  Absolutely nothing.  Does not even exit copy mode.\n\nAll keys not described here exit copy mode.\n\nFile: screen.info,  Node: Paste,  Next: Registers,  Prev: Copy,  Up: Copy and Paste\n"
                },
                {
                    "name": "12.2 Paste",
                    "content": "-- Command: paste [registers [destination]]\n('C-a ]', 'C-a C-]')\nWrite the (concatenated) contents of the specified registers to the\nstdin stream of the current window.  The register '.' is treated as\nthe paste buffer.  If no parameter is specified the user is\nprompted to enter a single register.  The paste buffer can be\nfilled with the 'copy', 'history' and 'readbuf' commands.  Other\nregisters can be filled with the 'register', 'readreg' and 'paste'\ncommands.  If 'paste' is called with a second argument, the\ncontents of the specified registers is pasted into the named\ndestination register rather than the window.  If '.' is used as the\nsecond argument, the display's paste buffer is the destination.\nNote, that 'paste' uses a wide variety of resources: Usually both,\na current window and a current display are required.  But whenever\na second argument is specified no current window is needed.  When\nthe source specification only contains registers (not the paste\nbuffer) then there need not be a current display (terminal\nattached), as the registers are a global resource.  The paste\nbuffer exists once for every user.\n\n-- Command: stuff [string]\n(none)\nStuff the string STRING in the input buffer of the current window.\nThis is like the 'paste' command, but with much less overhead.\nWithout a parameter, 'screen' will prompt for a string to stuff.\nYou cannot paste large buffers with the 'stuff' command.  It is\nmost useful for key bindings.  *Note Bindkey::.\n\n-- Command: pastefont [state]\nTell screen to include font information in the paste buffer.  The\ndefault is not to do so.  This command is especially useful for\nmulti character fonts like kanji.\n\n-- Command: slowpaste msec\n-- Command: defslowpaste msec\n(none)\nDefine the speed text is inserted in the current window by the\n'paste' command.  If the slowpaste value is nonzero text is written\ncharacter by character.  'screen' will pause for MSEC milliseconds\nafter each write to allow the application to process the input.\nonly use 'slowpaste' if your underlying system exposes flow control\nproblems while pasting large amounts of text.  'defslowpaste'\nspecifies the default for new windows.\n\n-- Command: readreg [-e encoding] [register [filename]]\n(none)\nDoes one of two things, dependent on number of arguments: with zero\nor one arguments it duplicates the paste buffer contents into the\nregister specified or entered at the prompt.  With two arguments it\nreads the contents of the named file into the register, just as\n'readbuf' reads the screen-exchange file into the paste buffer.\nYou can tell screen the encoding of the file via the '-e' option.\nThe following example will paste the system's password file into\nthe screen window (using register p, where a copy remains):\n\nC-a : readreg p /etc/passwd\nC-a : paste p\n\nFile: screen.info,  Node: Registers,  Next: Screen Exchange,  Prev: Paste,  Up: Copy and Paste\n"
                },
                {
                    "name": "12.3 Registers",
                    "content": "-- Command: copyreg [key]\n(none)\nRemoved.  Use 'readreg' instead.\n\n-- Command: insreg [key]\n(none)\nRemoved.  Use 'paste' instead.\n\n-- Command: process [key]\n(none)\nStuff the contents of the specified register into the 'screen'\ninput queue.  If no argument is given you are prompted for a\nregister name.  The text is parsed as if it had been typed in from\nthe user's keyboard.  This command can be used to bind multiple\nactions to a single key.\n\n-- Command: register [-e encoding] key string\n(none)\nSave the specified STRING to the register KEY.  The encoding of the\nstring can be specified via the '-e' option.\n\nFile: screen.info,  Node: Screen Exchange,  Next: History,  Prev: Registers,  Up: Copy and Paste\n"
                },
                {
                    "name": "12.4 Screen Exchange",
                    "content": "-- Command: bufferfile [EXCHANGE-FILE]\n(none)\nChange the filename used for reading and writing with the paste\nbuffer.  If the EXCHANGE-FILE parameter is omitted, 'screen'\nreverts to the default of '/tmp/screen-exchange'.  The following\nexample will paste the system's password file into the screen\nwindow (using the paste buffer, where a copy remains):\n\nC-a : bufferfile /etc/passwd\nC-a < C-a ]\nC-a : bufferfile\n\n-- Command: readbuf [-e ENCODING] [FILENAME]\n('C-a <')\nReads the contents of the specified file into the paste buffer.\nYou can tell screen the encoding of the file via the '-e' option.\nIf no file is specified, the screen-exchange filename is used.\n\n-- Command: removebuf\n('C-a =')\nUnlinks the screen-exchange file.\n\n-- Command: writebuf [-e ENCODING] [FILENAME]\n('C-a >')\nWrites the contents of the paste buffer to the specified file, or\nthe public accessible screen-exchange file if no filename is given.\nThis is thought of as a primitive means of communication between\n'screen' users on the same host.  If an encoding is specified the\npaste buffer is recoded on the fly to match the encoding.  See also\n'C-a <ESC>' (*note Copy::).\n\nFile: screen.info,  Node: History,  Prev: Screen Exchange,  Up: Copy and Paste\n"
                },
                {
                    "name": "12.5 History",
                    "content": "-- Command: history\n('C-a {', 'C-a }')\nUsually users work with a shell that allows easy access to previous\ncommands.  For example, 'csh' has the command '!!' to repeat the\nlast command executed.  'screen' provides a primitive way of\nrecalling \"the command that started ...\": You just type the first\nletter of that command, then hit 'C-a {' and 'screen' tries to find\na previous line that matches with the prompt character to the left\nof the cursor.  This line is pasted into this window's input queue.\nThus you have a crude command history (made up by the visible\nwindow and its scrollback buffer).\n\nFile: screen.info,  Node: Subprocess Execution,  Next: Key Binding,  Prev: Copy and Paste,  Up: Top\n"
                }
            ]
        },
        "13 Subprocess Execution": {
            "content": "Control Input or Output of a window by another filter process.  Use with\ncare!\n\n* Menu:\n\n* Exec::                        The 'exec' command syntax.\n* Using Exec::                  Weird things that filters can do.\n\nFile: screen.info,  Node: Exec,  Next: Using Exec,  Up: Subprocess Execution\n",
            "subsections": [
                {
                    "name": "13.1 Exec",
                    "content": "-- Command: exec [[FDPAT] NEWCOMMAND [ARGS ... ]]\n(none)\nRun a unix subprocess (specified by an executable path NEWCOMMAND\nand its optional arguments) in the current window.  The flow of\ndata between newcommands stdin/stdout/stderr, the process\noriginally started (let us call it \"application-process\") and\nscreen itself (window) is controlled by the file descriptor pattern\nFDPAT.  This pattern is basically a three character sequence\nrepresenting stdin, stdout and stderr of newcommand.  A dot ('.')\nconnects the file descriptor to screen.  An exclamation mark ('!')\ncauses the file descriptor to be connected to the\napplication-process.  A colon (':') combines both.\nUser input will go to newcommand unless newcommand receives the\napplication-process' output (FDPATs first character is '!' or ':')\nor a pipe symbol ('|') is added to the end of FDPAT.\nInvoking 'exec' without arguments shows name and arguments of the\ncurrently running subprocess in this window.  Only one subprocess\ncan be running per window.\nWhen a subprocess is running the 'kill' command will affect it\ninstead of the windows process.  Only one subprocess a time can be\nrunning in each window.\nRefer to the postscript file 'doc/fdpat.ps' for a confusing\nillustration of all 21 possible combinations.  Each drawing shows\nthe digits 2, 1, 0 representing the three file descriptors of\nnewcommand.  The box marked 'W' is usual pty that has the\napplication-process on its slave side.  The box marked 'P' is the\nsecondary pty that now has screen at its master side.\n\nFile: screen.info,  Node: Using Exec,  Prev: Exec,  Up: Subprocess Execution\n"
                },
                {
                    "name": "13.2 Using Exec",
                    "content": "Abbreviations:\n\n* Whitespace between the word 'exec' and FDPAT and the command name\ncan be omitted.\n\n* Trailing dots and a FDPAT consisting only of dots can be omitted.\n\n* A simple '|' is synonymous for the '!..|' pattern.\n\n* The word 'exec' can be omitted when the '|' abbreviation is used.\n\n* The word 'exec' can always be replaced by leading '!'.\n\nExamples:\n\n'!/bin/sh'\n'exec /bin/sh'\n'exec ... /bin/sh'\nAll of the above are equivalent.  Creates another shell in the same\nwindow, while the original shell is still running.  Output of both\nshells is displayed and user input is sent to the new '/bin/sh'.\n\n'!!stty 19200'\n'exec!stty 19200'\n'exec !.. stty 19200'\nAll of the above are equivalent.  Set the speed of the window's\ntty.  If your stty command operates on stdout, then add another\n'!'.  This is a useful command, when a screen window is directly\nconnected to a serial line that needs to be configured.\n\n'|less'\n'exec !..| less'\nBoth are equivalent.  This adds a pager to the window output.  The\nspecial character '|' is needed to give the user control over the\npager although it gets its input from the window's process.  This\nworks, because 'less' listens on stderr (a behavior that 'screen'\nwould not expect without the '|') when its stdin is not a tty.\n'Less' versions newer than 177 fail miserably here; good old 'pg'\nstill works.\n\n'!:sed -n s/.*Error.*/\\007/p'\nSends window output to both, the user and the sed command.  The sed\ninserts an additional bell character (oct.  007) to the window\noutput seen by screen.  This will cause 'Bell in window x'\nmessages, whenever the string 'Error' appears in the window.\n\nFile: screen.info,  Node: Key Binding,  Next: Flow Control,  Prev: Subprocess Execution,  Up: Top\n"
                }
            ]
        },
        "14 Key Binding": {
            "content": "You may disagree with some of the default bindings (I know I do).  The\n'bind' command allows you to redefine them to suit your preferences.\n\n* Menu:\n\n* Bind::                        'bind' syntax.\n* Bind Examples::               Using 'bind'.\n* Command Character::           The character used to start keyboard commands.\n* Help::                        Show current key bindings.\n* Bindkey::\t\t\t'bindkey' syntax.\n* Bindkey Examples::\t\tSome easy examples.\n* Bindkey Control::\t\tHow to control the bindkey mechanism.\n\nFile: screen.info,  Node: Bind,  Next: Bind Examples,  Up: Key Binding\n",
            "subsections": [
                {
                    "name": "14.1 The 'bind' command",
                    "content": "-- Command: bind [-c class] key [command [args]]\n(none)\nBind a command to a key.  The KEY argument is either a single\ncharacter, a two-character sequence of the form '^x' (meaning\n'C-x'), a backslash followed by an octal number (specifying the\nASCII code of the character), or a backslash followed by a second\ncharacter, such as '\\^' or '\\\\'.  The argument can also be quoted,\nif you like.  If no further argument is given, any previously\nestablished binding for this key is removed.  The COMMAND argument\ncan be any command (*note Command Index::).\n\nIf a command class is specified via the '-c' option, the key is\nbound for the specified class.  Use the 'command' command to\nactivate a class.  Command classes can be used to create multiple\ncommand keys or multi-character bindings.\n\nBy default, most suitable commands are bound to one or more keys\n(*note Default Key Bindings::); for instance, the command to create\na new window is bound to 'C-c' and 'c'.  The 'bind' command can be\nused to redefine the key bindings and to define new bindings.\n\n-- Command: unbindall\n(none)\nUnbind all the bindings.  This can be useful when screen is used\nsolely for its detaching abilities, such as when letting a console\napplication run as a daemon.  If, for some reason, it is necessary\nto bind commands after this, use 'screen -X'.\n\nFile: screen.info,  Node: Bind Examples,  Next: Command Character,  Prev: Bind,  Up: Key Binding\n"
                },
                {
                    "name": "14.2 Examples of the 'bind' command",
                    "content": "Some examples:\n\nbind ' ' windows\nbind ^f screen telnet foobar\nbind \\033 screen -ln -t root -h 1000 9 su\n\nwould bind the space key to the command that displays a list of windows\n(so that the command usually invoked by 'C-a C-w' would also be\navailable as 'C-a space'), bind 'C-f' to the command \"create a window\nwith a TELNET connection to foobar\", and bind <ESC> to the command that\ncreates an non-login window with title 'root' in slot #9, with a\nsuperuser shell and a scrollback buffer of 1000 lines.\n\nbind -c demo1 0 select 10\nbind -c demo1 1 select 11\nbind -c demo1 2 select 12\nbindkey \"^B\" command -c demo1\nmakes 'C-b 0' select window 10, 'C-b 1' window 11, etc.\n\nbind -c demo2 0 select 10\nbind -c demo2 1 select 11\nbind -c demo2 2 select 12\nbind - command -c demo2\nmakes 'C-a - 0' select window 10, 'C-a - 1' window 11, etc.\n\nFile: screen.info,  Node: Command Character,  Next: Help,  Prev: Bind Examples,  Up: Key Binding\n"
                },
                {
                    "name": "14.3 Command Character",
                    "content": "-- Command: escape xy\n(none)\nSet the command character to X and the character generating a\nliteral command character (by triggering the 'meta' command) to Y\n(similar to the '-e' option).  Each argument is either a single\ncharacter, a two-character sequence of the form '^x' (meaning\n'C-x'), a backslash followed by an octal number (specifying the\nASCII code of the character), or a backslash followed by a second\ncharacter, such as '\\^' or '\\\\'.  The default is '^Aa', but '``' is\nrecommended by one of the authors.\n\n-- Command: defescape xy\n(none)\nSet the default command characters.  This is equivalent to the\ncommand 'escape' except that it is useful for multiuser sessions\nonly.  In a multiuser session 'escape' changes the command\ncharacter of the calling user, where 'defescape' changes the\ndefault command characters for users that will be added later.\n\n-- Command: meta\n('C-a a')\nSend the command character ('C-a') to the process in the current\nwindow.  The keystroke for this command is the second parameter to\nthe '-e' command line switch (*note Invoking Screen::), or the\n'escape' .screenrc directive.\n\n-- Command: command [-c CLASS]\n(none)\nThis command has the same effect as typing the screen escape\ncharacter ('C-a').  It is probably only useful for key bindings.\nIf the '-c' option is given, select the specified command class.\n*Note Bind::, *Note Bindkey::.\n\nFile: screen.info,  Node: Help,  Next: Bindkey,  Prev: Command Character,  Up: Key Binding\n"
                },
                {
                    "name": "14.4 Help",
                    "content": "-- Command: help\n('C-a ?')\nDisplays a help screen showing you all the key bindings.  The first\npages list all the internal commands followed by their bindings.\nSubsequent pages will display the custom commands, one command per\nkey.  Press space when you're done reading each page, or return to\nexit early.  All other characters are ignored.  If the '-c' option\nis given, display all bound commands for the specified command\nclass.  *Note Default Key Bindings::.\n\nFile: screen.info,  Node: Bindkey,  Next: Bindkey Examples,  Prev: Help,  Up: Key Binding\n"
                },
                {
                    "name": "14.5 Bindkey",
                    "content": "-- Command: bindkey [OPTS] [STRING [CMD ARGS]]\n(none)\nThis command manages screen's input translation tables.  Every\nentry in one of the tables tells screen how to react if a certain\nsequence of characters is encountered.  There are three tables: one\nthat should contain actions programmed by the user, one for the\ndefault actions used for terminal emulation and one for screen's\ncopy mode to do cursor movement.  See *note Input Translation:: for\na list of default key bindings.\n\nIf the '-d' option is given, bindkey modifies the default table,\n'-m' changes the copy mode table and with neither option the user\ntable is selected.  The argument 'string' is the sequence of\ncharacters to which an action is bound.  This can either be a fixed\nstring or a termcap keyboard capability name (selectable with the\n'-k' option).\n\nSome keys on a VT100 terminal can send a different string if\napplication mode is turned on (e.g.  the cursor keys).  Such keys\nhave two entries in the translation table.  You can select the\napplication mode entry by specifying the '-a' option.\n\nThe '-t' option tells screen not to do inter-character timing.  One\ncannot turn off the timing if a termcap capability is used.\n\n'cmd' can be any of screen's commands with an arbitrary number of\n'args'.  If 'cmd' is omitted the key-binding is removed from the\ntable.\n\nFile: screen.info,  Node: Bindkey Examples,  Next: Bindkey Control,  Prev: Bindkey,  Up: Key Binding\n"
                },
                {
                    "name": "14.6 Bindkey Examples",
                    "content": "Here are some examples of keyboard bindings:\n\nbindkey -d\nShow all of the default key bindings.  The application mode entries are\nmarked with [A].\n\nbindkey -k k1 select 1\nMake the \"F1\" key switch to window one.\n\nbindkey -t foo stuff barfoo\nMake 'foo' an abbreviation of the word 'barfoo'.  Timeout is disabled so\nthat users can type slowly.\n\nbindkey \"\\024\" mapdefault\nThis key-binding makes 'C-t' an escape character for key-bindings.  If\nyou did the above 'stuff barfoo' binding, you can enter the word 'foo'\nby typing 'C-t foo'.  If you want to insert a 'C-t' you have to press\nthe key twice (i.e., escape the escape binding).\n\nbindkey -k F1 command\nMake the F11 (not F1!)  key an alternative screen escape (besides\n'C-a').\n\nFile: screen.info,  Node: Bindkey Control,  Prev: Bindkey Examples,  Up: Key Binding\n"
                },
                {
                    "name": "14.7 Bindkey Control",
                    "content": "-- Command: mapdefault\n(none)\nTell screen that the next input character should only be looked up\nin the default bindkey table.\n-- Command: mapnotnext\n(none)\nLike mapdefault, but don't even look in the default bindkey table.\n-- Command: maptimeout n\n(none)\nSet the inter-character timer for input sequence detection to a\ntimeout of N ms.  The default timeout is 300ms.  Maptimeout with no\narguments shows the current setting.\n\nFile: screen.info,  Node: Flow Control,  Next: Termcap,  Prev: Key Binding,  Up: Top\n"
                }
            ]
        },
        "15 Flow Control": {
            "content": "'screen' can trap flow control characters or pass them to the program,\nas you see fit.  This is useful when your terminal wants to use XON/XOFF\nflow control and you are running a program which wants to use ^S/^Q for\nother purposes (i.e.  'emacs').\n\n* Menu:\n\n* Flow Control Summary::        The effect of 'screen' flow control\n* Flow::                        Setting the flow control behavior\n* XON/XOFF::                    Sending XON or XOFF to the window\n\nFile: screen.info,  Node: Flow Control Summary,  Next: Flow,  Up: Flow Control\n",
            "subsections": [
                {
                    "name": "15.1 About 'screen' flow control settings",
                    "content": "Each window has a flow-control setting that determines how screen deals\nwith the XON and XOFF characters (and perhaps the interrupt character).\nWhen flow-control is turned off, screen ignores the XON and XOFF\ncharacters, which allows the user to send them to the current program by\nsimply typing them (useful for the 'emacs' editor, for instance).  The\ntrade-off is that it will take longer for output from a \"normal\" program\nto pause in response to an XOFF. With flow-control turned on, XON and\nXOFF characters are used to immediately pause the output of the current\nwindow.  You can still send these characters to the current program, but\nyou must use the appropriate two-character screen commands (typically\n'C-a q' (xon) and 'C-a s' (xoff)).  The xon/xoff commands are also\nuseful for typing C-s and C-q past a terminal that intercepts these\ncharacters.\n\nEach window has an initial flow-control value set with either the\n'-f' option or the 'defflow' command.  By default the windows are set to\nautomatic flow-switching.  It can then be toggled between the three\nstates 'fixed on', 'fixed off' and 'automatic' interactively with the\n'flow' command bound to 'C-a f'.\n\nThe automatic flow-switching mode deals with flow control using the\nTIOCPKT mode (like 'rlogin' does).  If the tty driver does not support\nTIOCPKT, screen tries to determine the right mode based on the current\nsetting of the application keypad -- when it is enabled, flow-control is\nturned off and visa versa.  Of course, you can still manipulate\nflow-control manually when needed.\n\nIf you're running with flow-control enabled and find that pressing\nthe interrupt key (usually C-c) does not interrupt the display until\nanother 6-8 lines have scrolled by, try running screen with the\n'interrupt' option (add the 'interrupt' flag to the 'flow' command in\nyour .screenrc, or use the '-i' command-line option).  This causes the\noutput that 'screen' has accumulated from the interrupted program to be\nflushed.  One disadvantage is that the virtual terminal's memory\ncontains the non-flushed version of the output, which in rare cases can\ncause minor inaccuracies in the output.  For example, if you switch\nscreens and return, or update the screen with 'C-a l' you would see the\nversion of the output you would have gotten without 'interrupt' being\non.  Also, you might need to turn off flow-control (or use auto-flow\nmode to turn it off automatically) when running a program that expects\nyou to type the interrupt character as input, as the 'interrupt'\nparameter only takes effect when flow-control is enabled.  If your\nprogram's output is interrupted by mistake, a simple refresh of the\nscreen with 'C-a l' will restore it.  Give each mode a try, and use\nwhichever mode you find more comfortable.\n\nFile: screen.info,  Node: Flow,  Next: XON/XOFF,  Prev: Flow Control Summary,  Up: Flow Control\n"
                },
                {
                    "name": "15.2 Flow",
                    "content": "-- Command: defflow fstate [interrupt]\n(none)\nSame as the 'flow' command except that the default setting for new\nwindows is changed.  Initial setting is 'auto'.  Specifying 'flow\nauto interrupt' has the same effect as the command-line options\n'-fa' and '-i'.  Note that if 'interrupt' is enabled, all existing\ndisplays are changed immediately to forward interrupt signals.\n\n-- Command: flow [fstate]\n('C-a f', 'C-a C-f')\nSets the flow-control mode for this window to FSTATE, which can be\n'on', 'off' or 'auto'.  Without parameters it cycles the current\nwindow's flow-control setting.  Default is set by 'defflow'.\n\nFile: screen.info,  Node: XON/XOFF,  Prev: Flow,  Up: Flow Control\n"
                },
                {
                    "name": "15.3 XON and XOFF",
                    "content": "-- Command: xon\n('C-a q', 'C-a C-q')\nSend a ^Q (ASCII XON) to the program in the current window.\nRedundant if flow control is set to 'off' or 'auto'.\n\n-- Command: xoff\n('C-a s', 'C-a C-s')\nSend a ^S (ASCII XOFF) to the program in the current window.\n\nFile: screen.info,  Node: Termcap,  Next: Message Line,  Prev: Flow Control,  Up: Top\n"
                }
            ]
        },
        "16 Termcap": {
            "content": "'Screen' demands the most out of your terminal so that it can perform\nits VT100 emulation most efficiently.  These functions provide means for\ntweaking the termcap entries for both your physical terminal and the one\nsimulated by 'screen'.\n\n* Menu:\n\n* Window Termcap::              Choosing a termcap entry for the window.\n* Dump Termcap::                Write out a termcap entry for the window.\n* Termcap Syntax::              The 'termcap' and 'terminfo' commands.\n* Termcap Examples::            Uses for 'termcap'.\n* Special Capabilities::        Non-standard capabilities used by 'screen'.\n* Autonuke::\t\t\tFlush unseen output\n* Obuflimit::\t\t\tAllow pending output when reading more\n* Character Translation::       Emulating fonts and charsets.\n\nFile: screen.info,  Node: Window Termcap,  Next: Dump Termcap,  Up: Termcap\n",
            "subsections": [
                {
                    "name": "16.1 Choosing the termcap entry for a window",
                    "content": "Usually 'screen' tries to emulate as much of the VT100/ANSI standard as\npossible.  But if your terminal lacks certain capabilities the emulation\nmay not be complete.  In these cases 'screen' has to tell the\napplications that some of the features are missing.  This is no problem\non machines using termcap, because 'screen' can use the '$TERMCAP'\nvariable to customize the standard screen termcap.\n\nBut if you do a rlogin on another machine or your machine supports\nonly terminfo this method fails.  Because of this 'screen' offers a way\nto deal with these cases.  Here is how it works:\n\nWhen 'screen' tries to figure out a terminal name for itself, it\nfirst looks for an entry named 'screen.TERM', where TERM is the contents\nof your '$TERM' variable.  If no such entry exists, 'screen' tries\n'screen' (or 'screen-w', if the terminal is wide (132 cols or more)).\nIf even this entry cannot be found, 'vt100' is used as a substitute.\n\nThe idea is that if you have a terminal which doesn't support an\nimportant feature (e.g.  delete char or clear to EOS) you can build a\nnew termcap/terminfo entry for 'screen' (named 'screen.DUMBTERM') in\nwhich this capability has been disabled.  If this entry is installed on\nyour machines you are able to do a rlogin and still keep the correct\ntermcap/terminfo entry.  The terminal name is put in the '$TERM'\nvariable of all new windows.  'screen' also sets the '$TERMCAP' variable\nreflecting the capabilities of the virtual terminal emulated.\nFurthermore, the variable '$WINDOW' is set to the window number of each\nwindow.\n\nThe actual set of capabilities supported by the virtual terminal\ndepends on the capabilities supported by the physical terminal.  If, for\ninstance, the physical terminal does not support underscore mode,\n'screen' does not put the 'us' and 'ue' capabilities into the window's\n'$TERMCAP' variable, accordingly.  However, a minimum number of\ncapabilities must be supported by a terminal in order to run 'screen';\nnamely scrolling, clear screen, and direct cursor addressing (in\naddition, 'screen' does not run on hardcopy terminals or on terminals\nthat over-strike).\n\nAlso, you can customize the '$TERMCAP' value used by 'screen' by\nusing the 'termcap' command, or by defining the variable '$SCREENCAP'\nprior to startup.  When the latter defined, its value will be copied\nverbatim into each window's '$TERMCAP' variable.  This can either be the\nfull terminal definition, or a filename where the terminal 'screen'\n(and/or 'screen-w') is defined.\n\nNote that 'screen' honors the 'terminfo' command if the system uses\nthe terminfo database rather than termcap.  On such machines the\n'$TERMCAP' variable has no effect and you must use the 'dumptermcap'\ncommand (*note Dump Termcap::) and the 'tic' program to generate\nterminfo entries for 'screen' windows.\n\nWhen the boolean 'G0' capability is present in the termcap entry for\nthe terminal on which 'screen' has been called, the terminal emulation\nof 'screen' supports multiple character sets.  This allows an\napplication to make use of, for instance, the VT100 graphics character\nset or national character sets.  The following control functions from\nISO 2022 are supported: 'lock shift G0' ('SI'), 'lock shift G1' ('SO'),\n'lock shift G2', 'lock shift G3', 'single shift G2', and 'single shift\nG3'.  When a virtual terminal is created or reset, the ASCII character\nset is designated as 'G0' through 'G3'.  When the 'G0' capability is\npresent, screen evaluates the capabilities 'S0', 'E0', and 'C0' if\npresent.  'S0' is the sequence the terminal uses to enable and start the\ngraphics character set rather than 'SI'.  'E0' is the corresponding\nreplacement for 'SO'.  'C0' gives a character by character translation\nstring that is used during semi-graphics mode.  This string is built\nlike the 'acsc' terminfo capability.\n\nWhen the 'po' and 'pf' capabilities are present in the terminal's\ntermcap entry, applications running in a 'screen' window can send output\nto the printer port of the terminal.  This allows a user to have an\napplication in one window sending output to a printer connected to the\nterminal, while all other windows are still active (the printer port is\nenabled and disabled again for each chunk of output).  As a side-effect,\nprograms running in different windows can send output to the printer\nsimultaneously.  Data sent to the printer is not displayed in the\nwindow.  The 'info' command displays a line starting with 'PRIN' while\nthe printer is active.\n\nSome capabilities are only put into the '$TERMCAP' variable of the\nvirtual terminal if they can be efficiently implemented by the physical\nterminal.  For instance, 'dl' (delete line) is only put into the\n'$TERMCAP' variable if the terminal supports either delete line itself\nor scrolling regions.  Note that this may provoke confusion, when the\nsession is reattached on a different terminal, as the value of\n'$TERMCAP' cannot be modified by parent processes.  You can force\n'screen' to include all capabilities in '$TERMCAP' with the '-a'\ncommand-line option (*note Invoking Screen::).\n\nThe \"alternate screen\" capability is not enabled by default.  Set the\n'altscreen' '.screenrc' command to enable it.\n\nFile: screen.info,  Node: Dump Termcap,  Next: Termcap Syntax,  Prev: Window Termcap,  Up: Termcap\n"
                },
                {
                    "name": "16.2 Write out the window's termcap entry",
                    "content": "-- Command: dumptermcap\n('C-a .')\nWrite the termcap entry for the virtual terminal optimized for the\ncurrently active window to the file '.termcap' in the user's\n'$HOME/.screen' directory (or wherever 'screen' stores its sockets.\n*note Files::).  This termcap entry is identical to the value of\nthe environment variable '$TERMCAP' that is set up by 'screen' for\neach window.  For terminfo based systems you will need to run a\nconverter like 'captoinfo' and then compile the entry with 'tic'.\n\nFile: screen.info,  Node: Termcap Syntax,  Next: Termcap Examples,  Prev: Dump Termcap,  Up: Termcap\n"
                },
                {
                    "name": "16.3 The 'termcap' command",
                    "content": "-- Command: termcap term terminal-tweaks [window-tweaks]\n-- Command: terminfo term terminal-tweaks [window-tweaks]\n-- Command: termcapinfo term terminal-tweaks [window-tweaks]\n(none)\nUse this command to modify your terminal's termcap entry without\ngoing through all the hassles involved in creating a custom termcap\nentry.  Plus, you can optionally customize the termcap generated\nfor the windows.  You have to place these commands in one of the\nscreenrc startup files, as they are meaningless once the terminal\nemulator is booted.\n\nIf your system uses the terminfo database rather than termcap,\n'screen' will understand the 'terminfo' command, which has the same\neffects as the 'termcap' command.  Two separate commands are\nprovided, as there are subtle syntactic differences, e.g.  when\nparameter interpolation (using '%') is required.  Note that the\ntermcap names of the capabilities should also be used with the\n'terminfo' command.\n\nIn many cases, where the arguments are valid in both terminfo and\ntermcap syntax, you can use the command 'termcapinfo', which is\njust a shorthand for a pair of 'termcap' and 'terminfo' commands\nwith identical arguments.\n\nThe first argument specifies which terminal(s) should be affected by\nthis definition.  You can specify multiple terminal names by separating\nthem with '|'s.  Use '*' to match all terminals and 'vt*' to match all\nterminals that begin with 'vt'.\n\nEach TWEAK argument contains one or more termcap defines (separated\nby ':'s) to be inserted at the start of the appropriate termcap entry,\nenhancing it or overriding existing values.  The first tweak modifies\nyour terminal's termcap, and contains definitions that your terminal\nuses to perform certain functions.  Specify a null string to leave this\nunchanged (e.g.  \"\").  The second (optional) tweak modifies all the\nwindow termcaps, and should contain definitions that screen understands\n(*note Virtual Terminal::).\n\nFile: screen.info,  Node: Termcap Examples,  Next: Special Capabilities,  Prev: Termcap Syntax,  Up: Termcap\n"
                },
                {
                    "name": "16.4 Termcap Examples",
                    "content": "Some examples:\n\ntermcap xterm*  xn:hs@\n\nInforms 'screen' that all terminals that begin with 'xterm' have firm\nauto-margins that allow the last position on the screen to be updated\n(xn), but they don't really have a status line (no 'hs' - append '@' to\nturn entries off).  Note that we assume 'xn' for all terminal names that\nstart with 'vt', but only if you don't specify a termcap command for\nthat terminal.\n\ntermcap vt*  xn\ntermcap vt102|vt220  Z0=\\E[?3h:Z1=\\E[?3l\n\nSpecifies the firm-margined 'xn' capability for all terminals that begin\nwith 'vt', and the second line will also add the escape-sequences to\nswitch into (Z0) and back out of (Z1) 132-character-per-line mode if\nthis is a VT102 or VT220.  (You must specify Z0 and Z1 in your termcap\nto use the width-changing commands.)\n\ntermcap vt100  \"\"  l0=PF1:l1=PF2:l2=PF3:l3=PF4\n\nThis leaves your vt100 termcap alone and adds the function key labels to\neach window's termcap entry.\n\ntermcap h19|z19  am@:im=\\E@:ei=\\EO  dc=\\E[P\n\nTakes a h19 or z19 termcap and turns off auto-margins (am@) and enables\nthe insert mode (im) and end-insert (ei) capabilities (the '@' in the\n'im' string is after the '=', so it is part of the string).  Having the\n'im' and 'ei' definitions put into your terminal's termcap will cause\nscreen to automatically advertise the character-insert capability in\neach window's termcap.  Each window will also get the delete-character\ncapability (dc) added to its termcap, which screen will translate into a\nline-update for the terminal (we're pretending it doesn't support\ncharacter deletion).\n\nIf you would like to fully specify each window's termcap entry, you\nshould instead set the '$SCREENCAP' variable prior to running 'screen'.\n*Note Virtual Terminal::, for the details of the 'screen' terminal\nemulation.  *Note Termcap::, for more information on termcap\ndefinitions.\n\nFile: screen.info,  Node: Special Capabilities,  Next: Autonuke,  Prev: Termcap Examples,  Up: Termcap\n"
                },
                {
                    "name": "16.5 Special Terminal Capabilities",
                    "content": "The following table describes all terminal capabilities that are\nrecognized by 'screen' and are not in the termcap manual (*note\nTermcap::).  You can place these capabilities in your termcap entries\n(in '/etc/termcap') or use them with the commands 'termcap', 'terminfo'\nand 'termcapinfo' in your 'screenrc' files.  It is often not possible to\nplace these capabilities in the terminfo database.\n'LP'\n(bool)\nTerminal has VT100 style margins ('magic margins').  Note that this\ncapability is obsolete -- 'screen' now uses the standard 'xn'\ninstead.\n\n'Z0'\n(str)\nChange width to 132 columns.\n\n'Z1'\n(str)\nChange width to 80 columns.\n\n'WS'\n(str)\nResize display.  This capability has the desired width and height\nas arguments.  SunView(tm) example: '\\E[8;%d;%dt'.\n\n'NF'\n(bool)\nTerminal doesn't need flow control.  Send ^S and ^Q direct to the\napplication.  Same as 'flow off'.  The opposite of this capability\nis 'nx'.\n\n'G0'\n(bool)\nTerminal can deal with ISO 2022 font selection sequences.\n\n'S0'\n(str)\nSwitch charset 'G0' to the specified charset.  Default is '\\E(%.'.\n\n'E0'\n(str)\nSwitch charset 'G0' back to standard charset.  Default is '\\E(B'.\n\n'C0'\n(str)\nUse the string as a conversion table for font 0.  See the 'ac'\ncapability for more details.\n\n'CS'\n(str)\nSwitch cursor-keys to application mode.\n\n'CE'\n(str)\nSwitch cursor-keys to cursor mode.\n\n'AN'\n(bool)\nEnable autonuke for displays of this terminal type.  (*note\nAutonuke::).\n\n'OL'\n(num)\nSet the output buffer limit.  See the 'obuflimit' command (*note\nObuflimit::) for more details.\n\n'KJ'\n(str)\nSet the encoding of the terminal.  See the 'encoding' command\n(*note Character Processing::) for valid encodings.\n\n'AF'\n(str)\nChange character foreground color in an ANSI conform way.  This\ncapability will almost always be set to '\\E[3%dm' ('\\E[3%p1%dm' on\nterminfo machines).\n\n'AB'\n(str)\nSame as 'AF', but change background color.\n\n'AX'\n(bool)\nDoes understand ANSI set default fg/bg color ('\\E[39m / \\E[49m').\n\n'XC'\n(str)\nDescribe a translation of characters to strings depending on the\ncurrent font.  (*note Character Translation::).\n\n'XT'\n(bool)\nTerminal understands special xterm sequences (OSC, mouse tracking).\n\n'C8'\n(bool)\nTerminal needs bold to display high-intensity colors (e.g.  Eterm).\n\n'TF'\n(bool)\nAdd missing capabilities to the termcap/info entry.  (Set by\ndefault).\n\nFile: screen.info,  Node: Autonuke,  Next: Obuflimit,  Prev: Special Capabilities,  Up: Termcap\n"
                },
                {
                    "name": "16.6 Autonuke",
                    "content": "-- Command: autonuke STATE\n(none)\nSets whether a clear screen sequence should nuke all the output\nthat has not been written to the terminal.  *Note Obuflimit::.\nThis property is set per display, not per window.\n\n-- Command: defautonuke STATE\n(none)\nSame as the 'autonuke' command except that the default setting for\nnew displays is also changed.  Initial setting is 'off'.  Note that\nyou can use the special 'AN' terminal capability if you want to\nhave a terminal type dependent setting.\n\nFile: screen.info,  Node: Obuflimit,  Next: Character Translation,  Prev: Autonuke,  Up: Termcap\n"
                },
                {
                    "name": "16.7 Obuflimit",
                    "content": "-- Command: obuflimit [LIMIT]\n(none)\nIf the output buffer contains more bytes than the specified limit,\nno more data will be read from the windows.  The default value is\n256.  If you have a fast display (like 'xterm'), you can set it to\nsome higher value.  If no argument is specified, the current\nsetting is displayed.  This property is set per display, not per\nwindow.\n\n-- Command: defobuflimit LIMIT\n(none)\nSame as the 'obuflimit' command except that the default setting for\nnew displays is also changed.  Initial setting is 256 bytes.  Note\nthat you can use the special 'OL' terminal capability if you want\nto have a terminal type dependent limit.\n\nFile: screen.info,  Node: Character Translation,  Prev: Obuflimit,  Up: Termcap\n"
                },
                {
                    "name": "16.8 Character Translation",
                    "content": "'Screen' has a powerful mechanism to translate characters to arbitrary\nstrings depending on the current font and terminal type.  Use this\nfeature if you want to work with a common standard character set (say\nISO8851-latin1) even on terminals that scatter the more unusual\ncharacters over several national language font pages.\n\nSyntax:\n\nXC=<CHARSET-MAPPING>{,,<CHARSET-MAPPING>}\n<CHARSET-MAPPING> := <DESIGNATOR><TEMPLATE>{,<MAPPING>}\n<MAPPING> := <CHAR-TO-BE-MAPPED><TEMPLATE-ARG>\n\nThe things in braces may be repeated any number of times.\n\nA <CHARSET-MAPPING> tells screen how to map characters in font\n<DESIGNATOR> ('B': Ascii, 'A': UK, 'K': german, etc.)  to strings.\nEvery <MAPPING> describes to what string a single character will be\ntranslated.  A template mechanism is used, as most of the time the codes\nhave a lot in common (for example strings to switch to and from another\ncharset).  Each occurrence of '%' in <TEMPLATE> gets substituted with\nthe TEMPLATE-ARG specified together with the character.  If your strings\nare not similar at all, then use '%' as a template and place the full\nstring in <TEMPLATE-ARG>.  A quoting mechanism was added to make it\npossible to use a real '%'.  The '\\' character quotes the special\ncharacters '\\', '%', and ','.\n\nHere is an example:\n\ntermcap hp700 'XC=B\\E(K%\\E(B,\\304[,\\326\\\\\\\\,\\334]'\n\nThis tells 'screen', how to translate ISOlatin1 (charset 'B') upper\ncase umlaut characters on a 'hp700' terminal that has a German charset.\n'\\304' gets translated to '\\E(K[\\E(B' and so on.  Note that this line\ngets parsed *three* times before the internal lookup table is built,\ntherefore a lot of quoting is needed to create a single '\\'.\n\nAnother extension was added to allow more emulation: If a mapping\ntranslates the unquoted '%' char, it will be sent to the terminal\nwhenever screen switches to the corresponding <DESIGNATOR>.  In this\nspecial case the template is assumed to be just '%' because the charset\nswitch sequence and the character mappings normally haven't much in\ncommon.\n\nThis example shows one use of the extension:\ntermcap xterm 'XC=K%,%\\E(B,[\\304,\\\\\\\\\\326,]\\334'\n\nHere, a part of the German ('K') charset is emulated on an xterm.  If\nscreen has to change to the 'K' charset, '\\E(B' will be sent to the\nterminal, i.e.  the ASCII charset is used instead.  The template is just\n'%', so the mapping is straightforward: '[' to '\\304', '\\' to '\\326',\nand ']' to '\\334'.\n\nFile: screen.info,  Node: Message Line,  Next: Logging,  Prev: Termcap,  Up: Top\n"
                }
            ]
        },
        "17 The Message Line": {
            "content": "'Screen' displays informational messages and other diagnostics in a\n\"message line\" at the bottom of the screen.  If your terminal has a\nstatus line defined in its termcap, screen will use this for displaying\nits messages, otherwise the last line of the screen will be temporarily\noverwritten and output will be momentarily interrupted.  The message\nline is automatically removed after a few seconds delay, but it can also\nbe removed early (on terminals without a status line) by beginning to\ntype.\n\n* Menu:\n\n* Privacy Message::             Using the message line from your program.\n* Hardware Status Line::        Use the terminal's hardware status line.\n* Last Message::                Redisplay the last message.\n* Message Wait::                Control how long messages are displayed.\n\nFile: screen.info,  Node: Privacy Message,  Next: Hardware Status Line,  Up: Message Line\n",
            "subsections": [
                {
                    "name": "17.1 Using the message line from your program",
                    "content": "The message line facility can be used by an application running in the\ncurrent window by means of the ANSI \"Privacy message\" control sequence.\nFor instance, from within the shell, try something like:\n\necho \"^[^Hello world from window $WINDOW^[\\\"\n\nwhere '^[' is ASCII ESC and the '^' that follows it is a literal\ncaret or up-arrow.\n\nFile: screen.info,  Node: Hardware Status Line,  Next: Last Message,  Prev: Privacy Message,  Up: Message Line\n"
                },
                {
                    "name": "17.2 Hardware Status Line",
                    "content": "-- Command: hardstatus [state]\n-- Command: hardstatus [always]firstline|lastline|message|ignore\n[string]\n-- Command: hardstatus string [string]\n(none)\nThis command configures the use and emulation of the terminal's\nhardstatus line.  The first form toggles whether 'screen' will use\nthe hardware status line to display messages.  If the flag is set\nto 'off', these messages are overlaid in reverse video mode at the\ndisplay line.  The default setting is 'on'.\n\nThe second form tells screen what to do if the terminal doesn't\nhave a hardstatus line (i.e.  the termcap/terminfo capabilities\n\"hs\", \"ts\", \"fs\" and \"ds\" are not set).  If the type\n'firstline'/'lastline' is used, screen will reserve the first/last\nline of the display for the hardstatus.  'message' uses 'screen''s\nmessage mechanism and 'ignore' tells 'screen' never to display the\nhardstatus.  If you prepend the word 'always' to the type (e.g.,\n'alwayslastline'), 'screen' will use the type even if the terminal\nsupports a hardstatus line.\n\nThe third form specifies the contents of the hardstatus line.  '%h'\nis used as default string, i.e., the stored hardstatus of the\ncurrent window (settable via 'ESC]0;^G' or 'ESC\\\\') is displayed.\nYou can customize this to any string you like including string\nescapes (*note String Escapes::).  If you leave out the argument\nSTRING, the current string is displayed.\n\nYou can mix the second and third form by providing the string as\nadditional argument.\n\nFile: screen.info,  Node: Last Message,  Next: Message Wait,  Prev: Hardware Status Line,  Up: Message Line\n"
                },
                {
                    "name": "17.3 Display Last Message",
                    "content": "-- Command: lastmsg\n('C-a m', 'C-a C-m')\nRepeat the last message displayed in the message line.  Useful if\nyou're typing when a message appears, because (unless your terminal\nhas a hardware status line) the message goes away when you press a\nkey.\n\nFile: screen.info,  Node: Message Wait,  Prev: Last Message,  Up: Message Line\n"
                },
                {
                    "name": "17.4 Message Wait",
                    "content": "-- Command: msgminwait sec\n(none)\nDefines the time 'screen' delays a new message when another is\ncurrently displayed.  Defaults to 1 second.\n\n-- Command: msgwait sec\n(none)\nDefines the time a message is displayed, if 'screen' is not\ndisturbed by other activity.  Defaults to 5 seconds.\n\nFile: screen.info,  Node: Logging,  Next: Startup,  Prev: Message Line,  Up: Top\n"
                }
            ]
        },
        "18 Logging": {
            "content": "This section describes the commands for keeping a record of your\nsession.\n\n* Menu:\n\n* Hardcopy::                    Dump the current screen to a file\n* Log::                         Log the output of a window to a file\n\nFile: screen.info,  Node: Hardcopy,  Next: Log,  Up: Logging\n",
            "subsections": [
                {
                    "name": "18.1 hardcopy",
                    "content": "-- Command: hardcopy [-h] [FILE]\n('C-a h')\nWrites out the currently displayed image to the file FILE, or, if\nno filename is specified, to 'hardcopy.N' in the default directory,\nwhere N is the number of the current window.  This either appends\nor overwrites the file if it exists, as determined by the\n'hardcopyappend' command.  If the option '-h' is specified, dump\nalso the contents of the scrollback buffer.\n\n-- Command: hardcopyappend state\n(none)\nIf set to 'on', 'screen' will append to the 'hardcopy.N' files\ncreated by the command 'hardcopy'; otherwise, these files are\noverwritten each time.\n\n-- Command: hardcopydir directory\n(none)\nDefines a directory where hardcopy files will be placed.  If unset,\nhardcopys are dumped in screen's current working directory.\n\nFile: screen.info,  Node: Log,  Prev: Hardcopy,  Up: Logging\n"
                },
                {
                    "name": "18.2 log",
                    "content": "-- Command: deflog state\n(none)\nSame as the 'log' command except that the default setting for new\nwindows is changed.  Initial setting is 'off'.\n\n-- Command: log [state]\n('C-a H')\nBegins/ends logging of the current window to the file 'screenlog.N'\nin the window's default directory, where N is the number of the\ncurrent window.  This filename can be changed with the 'logfile'\ncommand.  If no parameter is given, the logging state is toggled.\nThe session log is appended to the previous contents of the file if\nit already exists.  The current contents and the contents of the\nscrollback history are not included in the session log.  Default is\n'off'.\n\n-- Command: logfile filename\n-- Command: logfile flush secs\n(none)\nDefines the name the log files will get.  The default is\n'screenlog.%n'.  The second form changes the number of seconds\n'screen' will wait before flushing the logfile buffer to the\nfile-system.  The default value is 10 seconds.\n\n-- Command: logtstamp [state]\n-- Command: logtstamp after secs\n-- Command: logtstamp string string\n(none)\nThis command controls logfile time-stamp mechanism of screen.  If\ntime-stamps are turned 'on', screen adds a string containing the\ncurrent time to the logfile after two minutes of inactivity.  When\noutput continues and more than another two minutes have passed, a\nsecond time-stamp is added to document the restart of the output.\nYou can change this timeout with the second form of the command.\nThe third form is used for customizing the time-stamp string ('--\n%n:%t -- time-stamp -- %M/%d/%y %c:%s --\\n' by default).\n\nFile: screen.info,  Node: Startup,  Next: Miscellaneous,  Prev: Logging,  Up: Top\n"
                }
            ]
        },
        "19 Startup": {
            "content": "This section describes commands which are only useful in the '.screenrc'\nfile, for use at startup.\n\n* Menu:\n\n* echo::                        Display a message.\n* sleep::                       Pause execution of the '.screenrc'.\n* Startup Message::             Control display of the copyright notice.\n\nFile: screen.info,  Node: echo,  Next: sleep,  Up: Startup\n",
            "subsections": [
                {
                    "name": "19.1 echo",
                    "content": "-- Command: echo [-n] message\n(none)\nThe echo command may be used to annoy 'screen' users with a\n'message of the day'.  Typically installed in a global screenrc.\nThe option '-n' may be used to suppress the line feed.  See also\n'sleep'.  Echo is also useful for online checking of environment\nvariables.\n\nFile: screen.info,  Node: sleep,  Next: Startup Message,  Prev: echo,  Up: Startup\n"
                },
                {
                    "name": "19.2 sleep",
                    "content": "-- Command: sleep num\n(none)\nThis command will pause the execution of a .screenrc file for NUM\nseconds.  Keyboard activity will end the sleep.  It may be used to\ngive users a chance to read the messages output by 'echo'.\n\nFile: screen.info,  Node: Startup Message,  Prev: sleep,  Up: Startup\n"
                },
                {
                    "name": "19.3 Startup Message",
                    "content": "-- Command: startupmessage state\n(none)\nSelect whether you want to see the copyright notice during startup.\nDefault is 'on', as you probably noticed.\n\nFile: screen.info,  Node: Miscellaneous,  Next: String Escapes,  Prev: Startup,  Up: Top\n"
                }
            ]
        },
        "20 Miscellaneous commands": {
            "content": "The commands described here do not fit well under any of the other\ncategories.\n\n* Menu:\n\n* At::                          Execute a command at other displays or windows.\n* Break::                       Send a break signal to the window.\n* Bumpleft::\t\t\tSwaps window with previous one on window list.\n* Bumpright::\t\t\tSwaps window with next one on window list.\n* Collapse::\t\t\tCollapses window list.\n* Debug::                       Suppress/allow debugging output.\n* License::                     Display the disclaimer page.\n* Nethack::                     Use 'nethack'-like error messages.\n* Nonblock::\t\t\tDisable flow-control to a display.\n* Number::                      Change the current window's number.\n* Time::                        Display the time and load average.\n* Verbose::                     Display window creation commands.\n* Version::                     Display the version of 'screen'.\n* Zombie::                      Keep dead windows.\n* Printcmd::                    Set command for VT100 printer port emulation.\n* Rendition::\t\t\tChange text attributes in caption for flagged windows.\n* Sorendition::\t\t\tChange the text highlighting method.\n* Attrcolor::\t\t\tMap attributes to colors.\n* Setsid::\t\t\tChange process group management.\n* Eval::\t\t\tParse and execute arguments.\n* Maxwin::\t\t\tSet the maximum window number.\n* Backtick::\t\t\tProgram a command for a backtick string escape.\n* Screen Saver::\t\tDefine a screen safer.\n* Zmodem::\t\t\tDefine how screen treats zmodem requests.\n* Mousetrack::\t\t\tSet whether screen should track mouse events.\n\nFile: screen.info,  Node: At,  Next: Break,  Up: Miscellaneous\n",
            "subsections": [
                {
                    "name": "20.1 At",
                    "content": "-- Command: at [identifier][#|*|%] command [args]\n(none)\nExecute a command at other displays or windows as if it had been\nentered there.  'At' changes the context (the 'current window' or\n'current display' setting) of the command.  If the first parameter\ndescribes a non-unique context, the command will be executed\nmultiple times.  If the first parameter is of the form\n'IDENTIFIER*' then identifier is matched against user names.  The\ncommand is executed once for each display of the selected user(s).\nIf the first parameter is of the form 'IDENTIFIER%' identifier is\nmatched against displays.  Displays are named after the ttys they\nattach.  The prefix '/dev/' or '/dev/tty' may be omitted from the\nidentifier.  If IDENTIFIER has a '#' or nothing appended it is\nmatched against window numbers and titles.  Omitting an identifier\nin front of the '#', '*' or '%' character selects all users,\ndisplays or windows because a prefix-match is performed.  Note that\non the affected display(s) a short message will describe what\nhappened.  Note that the '#' character works as a comment\nintroducer when it is preceded by whitespace.  This can be escaped\nby prefixing '#' with a '\\'.  Permission is checked for the\ninitiator of the 'at' command, not for the owners of the affected\ndisplay(s).  Caveat: When matching against windows, the command is\nexecuted at least once per window.  Commands that change the\ninternal arrangement of windows (like 'other') may be called again.\nIn shared windows the command will be repeated for each attached\ndisplay.  Beware, when issuing toggle commands like 'login'!  Some\ncommands (e.g.  '\\*Qprocess') require that a display is associated\nwith the target windows.  These commands may not work correctly\nunder 'at' looping over windows.\n\nFile: screen.info,  Node: Break,  Next: Bumpleft,  Prev: At,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.2 Break",
                    "content": "-- Command: break [duration]\n('C-a b', 'C-a C-b')\nSend a break signal for DURATION*0.25 seconds to this window.  For\nnon-Posix systems the time interval is rounded up to full seconds.\nMost useful if a character device is attached to the window rather\nthan a shell process (*note Window Types::).  The maximum duration\nof a break signal is limited to 15 seconds.\n\n-- Command: powbreak\n('C-a B')\nReopen the window's terminal line and send a break condition.\n\n-- Command: breaktype [tcsendbreak|TIOCSBRK|TCSBRK]\n(none)\nChoose one of the available methods of generating a break signal\nfor terminal devices.  This command should affect the current\nwindow only.  But it still behaves identical to 'defbreaktype'.\nThis will be changed in the future.  Calling 'breaktype' with no\nparameter displays the break setting for the current window.\n\n-- Command: defbreaktype [tcsendbreak|TIOCSBRK|TCSBRK]\n(none)\nChoose one of the available methods of generating a break signal\nfor terminal devices opened afterwards.  The preferred methods are\n'tcsendbreak' and 'TIOCSBRK'.  The third, 'TCSBRK', blocks the\ncomplete 'screen' session for the duration of the break, but it may\nbe the only way to generate long breaks.  'tcsendbreak' and\n'TIOCSBRK' may or may not produce long breaks with spikes (e.g.  4\nper second).  This is not only system dependent, this also differs\nbetween serial board drivers.  Calling 'defbreaktype' with no\nparameter displays the current setting.\n\nFile: screen.info,  Node: Bumpleft,  Next: Bumpright,  Prev: Break,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.3 Bumpleft",
                    "content": "-- Command: bumpleft\n(none)\nExchanges windows positions on window list, with window having\nlower number (left to current one).\n\nFile: screen.info,  Node: Bumpright,  Next: Collapse,  Prev: Bumpleft,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.4 Bumpright",
                    "content": "-- Command: bumpright\n(none)\nExchanges windows positions on window list, with window having\nbigger number (right to current one).\n\nFile: screen.info,  Node: Collapse,  Next: Debug,  Prev: Bumpright,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.5 Collapse",
                    "content": "-- Command: collapse\n(none)\nChanges windows numbers, so there is no gaps between them.\n\nFile: screen.info,  Node: Debug,  Next: License,  Prev: Collapse,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.6 Debug",
                    "content": "-- Command: debug [on|off]\n(none)\nTurns runtime debugging on or off.  If 'screen' has been compiled\nwith option '-DDEBUG' debugging is available and is turned on per\ndefault.  Note that this command only affects debugging output from\nthe main 'SCREEN' process correctly.  Debug output from attacher\nprocesses can only be turned off once and forever.\n\nFile: screen.info,  Node: License,  Next: Nethack,  Prev: Debug,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.7 License",
                    "content": "-- Command: license\n('C-a ,')\nDisplay the disclaimer page.  This is done whenever 'screen' is\nstarted without options, which should be often enough.\n\nFile: screen.info,  Node: Nethack,  Next: Nonblock,  Prev: License,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.8 Nethack",
                    "content": "-- Command: nethack state\n(none)\nChanges the kind of error messages used by 'screen'.  When you are\nfamiliar with the game 'nethack', you may enjoy the nethack-style\nmessages which will often blur the facts a little, but are much\nfunnier to read.  Anyway, standard messages often tend to be\nunclear as well.\n\nThis option is only available if 'screen' was compiled with the\nNETHACK flag defined (*note Installation::).  The default setting\nis then determined by the presence of the environment variable\n'$NETHACKOPTIONS' and the file '~/.nethackrc' - if either one is\npresent, the default is 'on'.\n\nFile: screen.info,  Node: Nonblock,  Next: Number,  Prev: Nethack,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.9 Nonblock",
                    "content": "-- Command: nonblock [STATE|NUMSECS]\nTell screen how to deal with user interfaces (displays) that cease\nto accept output.  This can happen if a user presses ^S or a\nTCP/modem connection gets cut but no hangup is received.  If\nnonblock is 'off' (this is the default) screen waits until the\ndisplay restarts to accept the output.  If nonblock is 'on', screen\nwaits until the timeout is reached ('on' is treated as 1s).  If the\ndisplay still doesn't receive characters, screen will consider it\n\"blocked\" and stop sending characters to it.  If at some time it\nrestarts to accept characters, screen will unblock the display and\nredisplay the updated window contents.\n\n-- Command: defnonblock STATE|NUMSECS\nSame as the 'nonblock' command except that the default setting for\ndisplays is changed.  Initial setting is 'off'.\n\nFile: screen.info,  Node: Number,  Next: Time,  Prev: Nonblock,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.10 Number",
                    "content": "-- Command: number [[+|-]N]\n('C-a N')\nChange the current window's number.  If the given number N is\nalready used by another window, both windows exchange their\nnumbers.  If no argument is specified, the current window number\n(and title) is shown.  Using either a plus ('+') or minus ('-')\nwill change the window's number by the relative amount specified.\n\nFile: screen.info,  Node: Time,  Next: Verbose,  Prev: Number,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.11 Time",
                    "content": "-- Command: time [STRING]\n('C-a t', 'C-a C-t')\nUses the message line to display the time of day, the host name,\nand the load averages over 1, 5, and 15 minutes (if this is\navailable on your system).  For window-specific information use\n'info' (*note Info::).  If a STRING is specified, it changes the\nformat of the time report like it is described in the string\nescapes chapter (*note String Escapes::).  Screen uses a default of\n'%c:%s %M %d %H%? %l%?'.\n\nFile: screen.info,  Node: Verbose,  Next: Version,  Prev: Time,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.12 Verbose",
                    "content": "-- Command: verbose [on|off]\nIf verbose is switched on, the command name is echoed, whenever a\nwindow is created (or resurrected from zombie state).  Default is\noff.  Without a parameter, the current setting is shown.\n\nFile: screen.info,  Node: Version,  Next: Zombie,  Prev: Verbose,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.13 Version",
                    "content": "-- Command: version\n('C-a v')\nDisplay the version and modification date in the message line.\n\nFile: screen.info,  Node: Zombie,  Next: Printcmd,  Prev: Version,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.14 Zombie",
                    "content": "-- Command: zombie [KEYS [onerror] ]\n-- Command: zombietimeout [SECONDS]\n(none)\nPer default windows are removed from the window list as soon as the\nwindows process (e.g.  shell) exits.  When a string of two keys is\nspecified to the zombie command, 'dead' windows will remain in the\nlist.  The 'kill' command may be used to remove the window.\nPressing the first key in the dead window has the same effect.\nPressing the second key, however, screen will attempt to resurrect\nthe window.  The process that was initially running in the window\nwill be launched again.  Calling 'zombie' without parameters will\nclear the zombie setting, thus making windows disappear when the\nprocess terminates.\n\nAs the zombie setting is affected globally for all windows, this\ncommand should probably be called 'defzombie', but it isn't.\n\nOptionally you can put the word 'onerror' after the keys.  This\nwill cause screen to monitor exit status of the process running in\nthe window.  If it exits normally ('0'), the window disappears.\nAny other exit value causes the window to become a zombie.\n\nAdditionally the 'zombietimeout' command exists.  If a window is\ndeclared \"dead\", screen will automatically try to resurrect the\nwindow after the timeout.  It only works if zombie keys are defined\nvia 'zombie' command.\n\nFile: screen.info,  Node: Printcmd,  Next: Rendition,  Prev: Zombie,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.15 Printcmd",
                    "content": "-- Command: printcmd [CMD]\n(none)\nIf CMD is not an empty string, screen will not use the terminal\ncapabilities 'po/pf' for printing if it detects an ansi print\nsequence 'ESC [ 5 i', but pipe the output into CMD.  This should\nnormally be a command like 'lpr' or 'cat > /tmp/scrprint'.\n'Printcmd' without an argument displays the current setting.  The\nansi sequence 'ESC \\' ends printing and closes the pipe.\n\nWarning: Be careful with this command!  If other user have write\naccess to your terminal, they will be able to fire off print\ncommands.\n\nFile: screen.info,  Node: Rendition,  Next: Sorendition,  Prev: Printcmd,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.16 Rendition",
                    "content": "-- Command: rendition bell | monitor | silence | so ATTR [COLOR]\n(none)\nChange the way screen renders the titles of windows that have\nmonitor or bell flags set in caption or hardstatus or windowlist.\nSee the chapter about string escapes (*note String Escapes::) for\nthe syntax of the modifiers.  The default for monitor is currently\n'=b' (bold, active colors), for bell '=ub' (underline, bold and\nactive colors), and for silence '=u'.\n\nFile: screen.info,  Node: Sorendition,  Next: Attrcolor,  Prev: Rendition,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.17 Sorendition",
                    "content": "-- Command: sorendition [ATTR [COLOR]]\n(none)\nThis command has been deprecated.  Use 'rendition so' instead.\n\nFile: screen.info,  Node: Attrcolor,  Next: Setsid,  Prev: Sorendition,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.18 Attrcolor",
                    "content": "-- Command: attrcolor ATTRIB [ATTRIBUTE/COLOR-MODIFIER]\n(none)\nThis command can be used to highlight attributes by changing the\ncolor of the text.  If the attribute ATTRIB is in use, the\nspecified attribute/color modifier is also applied.  If no modifier\nis given, the current one is deleted.  See the chapter about string\nescapes (*note String Escapes::) for the syntax of the modifier.\n'Screen' understands two pseudo-attributes, 'i' stands for\nhigh-intensity foreground color and 'I' for high-intensity\nbackground color.\n\nExamples:\n'attrcolor b \"R\"'\nChange the color to bright red if bold text is to be printed.\n'attrcolor u \"-u b\"'\nUse blue text instead of underline.\n'attrcolor b \".I\"'\nUse bright colors for bold text.  Most terminal emulators do\nthis already.\n'attrcolor i \"+b\"'\nMake bright colored text also bold.\n\nFile: screen.info,  Node: Setsid,  Next: Eval,  Prev: Attrcolor,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.19 Setsid",
                    "content": "-- Command: setsid state\n(none)\nNormally 'screen' uses different sessions and process groups for\nthe windows.  If setsid is turned 'off', this is not done anymore\nand all windows will be in the same process group as the screen\nbackend process.  This also breaks job-control, so be careful.  The\ndefault is 'on', of course.  This command is probably useful only\nin rare circumstances.\n\nFile: screen.info,  Node: Eval,  Next: Maxwin,  Prev: Setsid,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.20 Eval",
                    "content": "-- Command: eval COMMAND1 [COMMAND2 ...]\n(none)\nParses and executes each argument as separate command.\n\nFile: screen.info,  Node: Maxwin,  Next: Backtick,  Prev: Eval,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.21 Maxwin",
                    "content": "-- Command: maxwin N\n(none)\nSet the maximum window number screen will create.  Doesn't affect\nalready existing windows.  The number can be increased only when\nthere are no existing windows.\n\nFile: screen.info,  Node: Backtick,  Next: Screen Saver,  Prev: Maxwin,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.22 Backtick",
                    "content": "-- Command: backtick ID LIFESPAN AUTOREFRESH COMMAND [ARGS]\n-- Command: backtick ID\n(none)\nProgram the backtick command with the numerical id ID.  The output\nof such a command is used for substitution of the '%`' string\nescape (*note String Escapes::).  The specified LIFESPAN is the\nnumber of seconds the output is considered valid.  After this time,\nthe command is run again if a corresponding string escape is\nencountered.  The AUTOREFRESH parameter triggers an automatic\nrefresh for caption and hardstatus strings after the specified\nnumber of seconds.  Only the last line of output is used for\nsubstitution.\n\nIf both the LIFESPAN and the AUTOREFRESH parameters are zero, the\nbacktick program is expected to stay in the background and generate\noutput once in a while.  In this case, the command is executed\nright away and screen stores the last line of output.  If a new\nline gets printed screen will automatically refresh the hardstatus\nor the captions.\n\nThe second form of the command deletes the backtick command with\nthe numerical id ID.\n\nFile: screen.info,  Node: Screen Saver,  Next: Zmodem,  Prev: Backtick,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.23 Screen Saver",
                    "content": "-- Command: idle [TIMEOUT [CMD ARGS]]\n(none)\nSets a command that is run after the specified number of seconds\ninactivity is reached.  This command will normally be the 'blanker'\ncommand to create a screen blanker, but it can be any screen\ncommand.  If no command is specified, only the timeout is set.  A\ntimeout of zero (ot the special timeout 'off') disables the timer.\nIf no arguments are given, the current settings are displayed.\n\n-- Command: blanker\n(none)\nActivate the screen blanker.  First the screen is cleared.  If no\nblanker program is defined, the cursor is turned off, otherwise,\nthe program is started and it's output is written to the screen.\nThe screen blanker is killed with the first keypress, the read key\nis discarded.\n\nThis command is normally used together with the 'idle' command.\n\n-- Command: blankerprg [PROGRAM ARGS]\nDefines a blanker program.  Disables the blanker program if an\nempty argument is given.  Shows the currently set blanker program\nif no arguments are given.\n\nFile: screen.info,  Node: Zmodem,  Prev: Screen Saver,  Up: Miscellaneous\n"
                },
                {
                    "name": "20.24 Zmodem",
                    "content": "-- Command: zmodem [off|auto|catch|pass]\n-- Command: zmodem sendcmd [string]\n-- Command: zmodem recvcmd [string]\n(none)\nDefine zmodem support for 'screen'.  'Screen' understands two\ndifferent modes when it detects a zmodem request: 'pass' and\n'catch'.  If the mode is set to 'pass', screen will relay all data\nto the attacher until the end of the transmission is reached.  In\n'catch' mode screen acts as a zmodem endpoint and starts the\ncorresponding rz/sz commands.  If the mode is set to 'auto', screen\nwill use 'catch' if the window is a tty (e.g.  a serial line),\notherwise it will use 'pass'.\n\nYou can define the templates screen uses in 'catch' mode via the\nsecond and the third form.\n\nNote also that this is an experimental feature.\n\nFile: screen.info,  Node: Mousetrack,  Prev: Hardstatus,  Up: Miscellaneous\n"
                },
                {
                    "name": "10.9 Mousetrack",
                    "content": "-- Command: mousetrack [ on|off ]\n(none)\nThis command determines whether 'screen' will watch for mouse\nclicks.  When this command is enabled, regions that have been split\nin various ways can be selected by pointing to them with a mouse\nand left-clicking them.  Without specifying ON or OFF, the current\nstate is displayed.  The default state is determined by the\n'defmousetrack' command.\n\n-- Command: defmousetrack on|off\n(none)\nThis command determines the default state of the 'mousetrack'\ncommand, currently defaulting of OFF.\n\nFile: screen.info,  Node: String Escapes,  Next: Environment,  Prev: Miscellaneous,  Up: Top\n"
                }
            ]
        },
        "21 String Escapes": {
            "content": "Screen provides an escape mechanism to insert information like the\ncurrent time into messages or file names.  The escape character is '%'\nwith one exception: inside of a window's hardstatus '^%' ('^E') is used\ninstead.\n\nHere is the full list of supported escapes:\n\n'%'\nthe escape character itself\n'a'\neither 'am' or 'pm'\n'A'\neither 'AM' or 'PM'\n'c'\ncurrent time 'HH:MM' in 24h format\n'C'\ncurrent time 'HH:MM' in 12h format\n'd'\nday number\n'D'\nweekday name\n'E'\nsets %?  to true if the escape character has been pressed.\n'e'\nencoding\n'f'\nflags of the window.  *Note Windows::, for meanings of the various\nflags.\n'F'\nsets %?  to true if the window has the focus\n'h'\nhardstatus of the window\n'H'\nhostname of the system\n'l'\ncurrent load of the system\n'm'\nmonth number\n'M'\nmonth name\n'n'\nwindow number\n'P'\nsets %?  to true if the current region is in copy/paste mode\n's'\nseconds\n'S'\nsession name\n't'\nwindow title\n'u'\nall other users on this window\n'w'\nall window numbers and names.  With '-' qualifier: up to the\ncurrent window; with '+' qualifier: starting with the window after\nthe current one.\n'W'\nall window numbers and names except the current one\n'y'\nlast two digits of the year number\n'Y'\nfull year number\n'?'\nthe part to the next '%?' is displayed only if a '%' escape inside\nthe part expands to a non-empty string\n':'\nelse part of '%?'\n'='\npad the string to the display's width (like TeX's hfill).  If a\nnumber is specified, pad to the percentage of the window's width.\nA '0' qualifier tells screen to treat the number as absolute\nposition.  You can specify to pad relative to the last absolute pad\nposition by adding a '+' qualifier or to pad relative to the right\nmargin by using '-'.  The padding truncates the string if the\nspecified position lies before the current position.  Add the 'L'\nqualifier to change this.\n'<'\nsame as '%=' but just do truncation, do not fill with spaces\n'>'\nmark the current text position for the next truncation.  When\nscreen needs to do truncation, it tries to do it in a way that the\nmarked position gets moved to the specified percentage of the\noutput area.  (The area starts from the last absolute pad position\nand ends with the position specified by the truncation operator.)\nThe 'L' qualifier tells screen to mark the truncated parts with\n'...'.\n'{'\nattribute/color modifier string terminated by the next '}'\n'`'\nSubstitute with the output of a 'backtick' command.  The length\nqualifier is misused to identify one of the commands.  *Note\nBacktick::.\nThe 'c' and 'C' escape may be qualified with a '0' to make screen use\nzero instead of space as fill character.  The 'n' and '=' escapes\nunderstand a length qualifier (e.g.  '%3n'), 'D' and 'M' can be prefixed\nwith 'L' to generate long names, 'w' and 'W' also show the window flags\nif 'L' is given.\n\nAn attribute/color modifier is used to change the attributes or the\ncolor settings.  Its format is '[attribute modifier] [color\ndescription]'.  The attribute modifier must be prefixed by a change type\nindicator if it can be confused with a color description.  The following\nchange types are known:\n'+'\nadd the specified set to the current attributes\n'-'\nremove the set from the current attributes\n'!'\ninvert the set in the current attributes\n'='\nchange the current attributes to the specified set\nThe attribute set can either be specified as a hexadecimal number or\na combination of the following letters:\n'd'\ndim\n'u'\nunderline\n'b'\nbold\n'r'\nreverse\n's'\nstandout\n'B'\nblinking\nColors are coded either as a hexadecimal number or two letters\nspecifying the desired background and foreground color (in that order).\nThe following colors are known:\n'k'\nblack\n'r'\nred\n'g'\ngreen\n'y'\nyellow\n'b'\nblue\n'm'\nmagenta\n'c'\ncyan\n'w'\nwhite\n'd'\ndefault color\n'.'\nleave color unchanged\nThe capitalized versions of the letter specify bright colors.  You\ncan also use the pseudo-color 'i' to set just the brightness and leave\nthe color unchanged.\n\nA one digit/letter color description is treated as foreground or\nbackground color dependent on the current attributes: if reverse mode is\nset, the background color is changed instead of the foreground color.\nIf you don't like this, prefix the color with a '.'.  If you want the\nsame behavior for two-letter color descriptions, also prefix them with a\n'.'.\n\nAs a special case, '%{-}' restores the attributes and colors that\nwere set before the last change was made (i.e.  pops one level of the\ncolor-change stack).\n\nExamples:\n'G'\nset color to bright green\n'+b r'\nuse bold red\n'= yd'\nclear all attributes, write in default color on yellow background.\n'%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<'\nThe available windows centered at the current win dow and truncated\nto the available width.  The current window is displayed white on\nblue.  This can be used with 'hardstatus alwayslastline'.\n'%?%F%{.R.}%?%3n %t%? [%h]%?'\nThe window number and title and the window's hardstatus, if one is\nset.  Also use a red background if this is the active focus.\nUseful for 'caption string'.\n\nFile: screen.info,  Node: Environment,  Next: Files,  Prev: String Escapes,  Up: Top\n",
            "subsections": []
        },
        "22 Environment Variables": {
            "content": "'COLUMNS'\nNumber of columns on the terminal (overrides termcap entry).\n\n'HOME'\nDirectory in which to look for .screenrc.\n\n'LINES'\nNumber of lines on the terminal (overrides termcap entry).\n\n'LOCKPRG'\nScreen lock program.\n\n'NETHACKOPTIONS'\nTurns on 'nethack' option.\n\n'PATH'\nUsed for locating programs to run.\n\n'SCREENCAP'\nFor customizing a terminal's 'TERMCAP' value.\n\n'SCREENDIR'\nAlternate socket directory.\n\n'SCREENRC'\nAlternate user screenrc file.\n\n'SHELL'\nDefault shell program for opening windows (default '/bin/sh').  See\nalso 'shell' .screenrc command.\n\n'STY'\nAlternate socket name.  If 'screen' is invoked, and the environment\nvariable 'STY' is set, then it creates only a window in the running\n'screen' session rather than starting a new session.\n\n'SYSSCREENRC'\nAlternate system screenrc file.\n\n'TERM'\nTerminal name.\n\n'TERMCAP'\nTerminal description.\n\n'WINDOW'\nWindow number of a window (at creation time).\n\nFile: screen.info,  Node: Files,  Next: Credits,  Prev: Environment,  Up: Top\n",
            "subsections": []
        },
        "23 Files Referenced": {
            "content": "'.../screen-4.?.??/etc/screenrc'\n'.../screen-4.?.??/etc/etcscreenrc'\nExamples in the 'screen' distribution package for private and\nglobal initialization files.\n\n'$SYSSCREENRC'\n'/etc/screenrc'\n'screen' initialization commands\n\n'$SCREENRC'\n'$HOME/.iscreenrc'\n'$HOME/.screenrc'\nRead in after /etc/screenrc\n\n'$SCREENDIR/S-LOGIN'\n\n'/run/screen/S-LOGIN'\nSocket directories (default)\n\n'/usr/tmp/screens/S-LOGIN'\nAlternate socket directories.\n\n'SOCKET DIRECTORY/.termcap'\nWritten by the 'dumptermcap' command\n\n'/usr/tmp/screens/screen-exchange or'\n'/tmp/screen-exchange'\n'screen' interprocess communication buffer\n\n'hardcopy.[0-9]'\nScreen images created by the hardcopy command\n\n'screenlog.[0-9]'\nOutput log files created by the log command\n\n'/usr/lib/terminfo/?/* or'\n'/etc/termcap'\nTerminal capability databases\n\n'/run/utmp'\nLogin records\n\n'$LOCKPRG'\nProgram for locking the terminal.\n\nFile: screen.info,  Node: Credits,  Next: Bugs,  Prev: Files,  Up: Top\n",
            "subsections": []
        },
        "24 Credits": {
            "content": "",
            "subsections": [
                {
                    "name": "Authors",
                    "content": "Originally created by Oliver Laumann.  For a long time maintained and\ndeveloped by Juergen Weigert, Michael Schroeder, Micah Cowan and Sadrul\nHabib Chowdhury.  Since 2015 maintained and developed by Amadeusz\nSlawinski <amade@asmblr.net> and Alexander Naumov\n<alexandernaumov@opensuse.org>.\n"
                },
                {
                    "name": "Contributors",
                    "content": "Maarten ter Huurne <maarten@treewalker.org>,\nJussi Kukkonen <jussi.kukkonen@intel.com>,\nThomas Renninger <treen@suse.com>,\nAxel Beckert <abe@deuxchevaux.org>,\nKen Beal <kbeal@@amber.ssd.csd.harris.com>,\nRudolf Koenig <rfkoenig@@informatik.uni-erlangen.de>,\nToerless Eckert <eckert@@informatik.uni-erlangen.de>,\nWayne Davison <davison@@borland.com>,\nPatrick Wolfe <pat@@kai.com, kailand!pat>,\nBart Schaefer <schaefer@@cse.ogi.edu>,\nNathan Glasser <nathan@@brokaw.lcs.mit.edu>,\nLarry W. Virden <lvirden@@cas.org>,\nHoward Chu <hyc@@hanauma.jpl.nasa.gov>,\nTim MacKenzie <tym@@dibbler.cs.monash.edu.au>,\nMarkku Jarvinen <mta@@@{cc,cs,ee@}.tut.fi>,\nMarc Boucher <marc@@CAM.ORG>,\nDoug Siebert <dsiebert@@isca.uiowa.edu>,\nKen Stillson <stillson@@tsfsrv.mitre.org>,\nIan Frechett <frechett@@spot.Colorado.EDU>,\nBrian Koehmstedt <bpk@@gnu.ai.mit.edu>,\nDon Smith <djs6015@@ultb.isc.rit.edu>,\nFrank van der Linden <vdlinden@@fwi.uva.nl>,\nMartin Schweikert <schweik@@cpp.ob.open.de>,\nDavid Vrona <dave@@sashimi.lcu.com>,\nE. Tye McQueen <tye%spillman.UUCP@@uunet.uu.net>,\nMatthew Green <mrg@@eterna.com.au>,\nChristopher Williams <cgw@@pobox.com>,\nMatt Mosley <mattm@@access.digex.net>,\nGregory Neil Shapiro <gshapiro@@wpi.WPI.EDU>,\nJason Merrill <jason@@jarthur.Claremont.EDU>,\nJohannes Zellner <johannes@@zellner.org>,\nPablo Averbuj <pablo@@averbuj.com>.\n"
                },
                {
                    "name": "Version",
                    "content": "This manual describes version 4.9.0 of the 'screen' program.  Its\nroots are a merge of a custom version 2.3PR7 by Wayne Davison and\nseveral enhancements to Oliver Laumann's version 2.0.  Note that all\nversions numbered 2.x are copyright by Oliver Laumann.\n\nSee also *Note Availability::.\n\nFile: screen.info,  Node: Bugs,  Next: Installation,  Prev: Credits,  Up: Top\n"
                }
            ]
        },
        "25 Bugs": {
            "content": "Just like any other significant piece of software, 'screen' has a few\nbugs and missing features.  Please send in a bug report if you have\nfound a bug not mentioned here.\n\n* Menu:\n\n* Known Bugs::                  Problems we know about.\n* Reporting Bugs::              How to contact the maintainers.\n* Availability::                Where to find the latest screen version.\n\nFile: screen.info,  Node: Known Bugs,  Next: Reporting Bugs,  Up: Bugs\n",
            "subsections": [
                {
                    "name": "25.1 Known Bugs",
                    "content": "* 'dm' (delete mode) and 'xs' are not handled correctly (they are\nignored).  'xn' is treated as a magic-margin indicator.\n\n* 'screen' has no clue about double-high or double-wide characters.\nBut this is the only area where 'vttest' is allowed to fail.\n\n* It is not possible to change the environment variable '$TERMCAP'\nwhen reattaching under a different terminal type.\n\n* The support of terminfo based systems is very limited.  Adding\nextra capabilities to '$TERMCAP' may not have any effects.\n\n* 'screen' does not make use of hardware tabs.\n\n* 'screen' must be installed setuid root on most systems in order to\nbe able to correctly change the owner of the tty device file for\neach window.  Special permission may also be required to write the\nfile '/run/utmp'.\n\n* Entries in '/run/utmp' are not removed when 'screen' is killed with\nSIGKILL. This will cause some programs (like \"w\" or \"rwho\") to\nadvertise that a user is logged on who really isn't.\n\n* 'screen' may give a strange warning when your tty has no utmp\nentry.\n\n* When the modem line was hung up, 'screen' may not automatically\ndetach (or quit) unless the device driver sends a HANGUP signal.\nTo detach such a 'screen' session use the -D or -d command line\noption.\n\n* If a password is set, the command line options -d and -D still\ndetach a session without asking.\n\n* Both 'breaktype' and 'defbreaktype' change the break generating\nmethod used by all terminal devices.  The first should change a\nwindow specific setting, where the latter should change only the\ndefault for new windows.\n\n* When attaching to a multiuser session, the user's '.screenrc' file\nis not sourced.  Each users personal settings have to be included\nin the '.screenrc' file from which the session is booted, or have\nto be changed manually.\n\n* A weird imagination is most useful to gain full advantage of all\nthe features.\n\nFile: screen.info,  Node: Reporting Bugs,  Next: Availability,  Prev: Known Bugs,  Up: Bugs\n"
                },
                {
                    "name": "25.2 Reporting Bugs",
                    "content": "If you find a bug in 'Screen', please send mail to\n'screen-devel@gnu.org'.  Include the version number of 'Screen' which\nyou are using.  Also include in your message the hardware and operating\nsystem, the compiler used to compile, a description of the bug behavior,\nand the conditions that triggered the bug.  Please recompile 'screen'\nwith the '-DDEBUG' options enabled, reproduce the bug, and have a look\nat the debug output written to the directory '/tmp/debug'.  If necessary\nquote suspect passages from the debug output and show the contents of\nyour 'config.h' if it matters.\n\nFile: screen.info,  Node: Availability,  Prev: Reporting Bugs,  Up: Bugs\n"
                },
                {
                    "name": "25.3 Availability",
                    "content": "'Screen' is available under the 'GNU' copyleft.\n\nThe latest official release of 'screen' available via anonymous ftp\nfrom 'prep.ai.mit.edu', 'nic.funet.fi' or any other 'GNU' distribution\nsite.  The home site of 'screen' is 'ftp.uni-erlangen.de\n(131.188.3.71)', in the directory 'pub/utilities/screen'.  The\nsubdirectory 'private' contains the latest beta testing release.  If you\nwant to help, send a note to screen-devel@gnu.org.\n\nFile: screen.info,  Node: Installation,  Next: Concept Index,  Prev: Bugs,  Up: Top\n"
                }
            ]
        },
        "26 Installation": {
            "content": "Since 'screen' uses pseudo-ttys, the select system call, and UNIX-domain\nsockets/named pipes, it will not run under a system that does not\ninclude these features of 4.2 and 4.3 BSD UNIX.\n\n* Menu:\n\n* Socket Directory::\t\tWhere screen stores its handle.\n* Compiling Screen::\n\nFile: screen.info,  Node: Socket Directory\n",
            "subsections": [
                {
                    "name": "26.1 Socket Directory",
                    "content": "The socket directory defaults either to '$HOME/.screen' or simply to\n'/tmp/screens' or preferably to '/run/screen' chosen at compile-time.\nIf 'screen' is installed setuid root, then the administrator should\ncompile screen with an adequate (not NFS mounted) 'SOCKDIR'.  If\n'screen' is not running setuid-root, the user can specify any mode 700\ndirectory in the environment variable '$SCREENDIR'.\n\nFile: screen.info,  Node: Compiling Screen,  Prev: Socket Directory,  Up: Installation\n"
                },
                {
                    "name": "26.2 Compiling Screen",
                    "content": "To compile and install screen:\n\nThe 'screen' package comes with a 'GNU Autoconf' configuration\nscript.  Before you compile the package run\n\n'sh ./configure'\n\nThis will create a 'config.h' and 'Makefile' for your machine.  If\n'configure' fails for some reason, then look at the examples and\ncomments found in the 'Makefile.in' and 'config.h.in' templates.  Rename\n'config.status' to 'config.status.MACHINE' when you want to keep\nconfiguration data for multiple architectures.  Running 'sh\n./config.status.MACHINE' recreates your configuration significantly\nfaster than rerunning 'configure'.\nRead through the \"User Configuration\" section of 'config.h', and verify\nthat it suits your needs.  A comment near the top of this section\nexplains why it's best to install screen setuid to root.  Check for the\nplace for the global 'screenrc'-file and for the socket directory.\nCheck the compiler used in 'Makefile', the prefix path where to install\n'screen'.  Then run\n\n'make'\n\nIf 'make' fails to produce one of the files 'term.h', 'comm.h' or\n'tty.c', then use 'FILENAME.X.dist' instead.  For additional information\nabout installation of 'screen' refer to the file 'INSTALLATION', coming\nwith this package.\n\nFile: screen.info,  Node: Concept Index,  Next: Command Index,  Prev: Installation,  Up: Top\n"
                }
            ]
        },
        "Concept Index": {
            "content": "* Menu:\n\n* .screenrc:                             Startup Files.         (line 6)\n* availability:                          Availability.          (line 6)\n* binding:                               Key Binding.           (line 6)\n* bug report:                            Reporting Bugs.        (line 6)\n* bugs:                                  Bugs.                  (line 6)\n* capabilities:                          Special Capabilities.  (line 6)\n* command character:                     Command Character.     (line 3)\n* command line options:                  Invoking Screen.       (line 6)\n* command summary:                       Command Summary.       (line 6)\n* compiling screen:                      Compiling Screen.      (line 6)\n* control sequences:                     Control Sequences.     (line 6)\n* copy and paste:                        Copy and Paste.        (line 6)\n* customization:                         Customization.         (line 6)\n* environment:                           Environment.           (line 6)\n* escape character:                      Command Character.     (line 3)\n* files:                                 Files.                 (line 6)\n* flow control:                          Flow Control.          (line 6)\n* input translation:                     Input Translation.     (line 6)\n* installation:                          Installation.          (line 6)\n* introduction:                          Getting Started.       (line 6)\n* invoking:                              Invoking Screen.       (line 6)\n* key binding:                           Key Binding.           (line 6)\n* layout:                                Layout.                (line 6)\n* marking:                               Copy.                  (line 6)\n* message line:                          Message Line.          (line 6)\n* multiuser session:                     Multiuser Session.     (line 6)\n* options:                               Invoking Screen.       (line 6)\n* overview:                              Overview.              (line 6)\n* regions:                               Regions.               (line 6)\n* screenrc:                              Startup Files.         (line 6)\n* scrollback:                            Copy.                  (line 6)\n* socket directory:                      Socket Directory.      (line 6)\n* string escapes:                        String Escapes.        (line 6)\n* terminal capabilities:                 Special Capabilities.  (line 6)\n* title:                                 Naming Windows.        (line 6)\n* window groups:                         Window Groups.         (line 6)\n* window types:                          Window Types.          (line 6)\n\nFile: screen.info,  Node: Command Index,  Next: Keystroke Index,  Prev: Concept Index,  Up: Top\n",
            "subsections": []
        },
        "Command Index": {
            "content": "This is a list of all the commands supported by 'screen'.\n\n\n* Menu:\n\n* acladd:                                Acladd.              (line   6)\n* aclchg:                                Aclchg.              (line   6)\n* acldel:                                Acldel.              (line   6)\n* aclgrp:                                Aclgrp.              (line   6)\n* aclumask:                              Umask.               (line   6)\n* activity:                              Monitor.             (line   6)\n* addacl:                                Acladd.              (line   7)\n* allpartial:                            Redisplay.           (line   6)\n* altscreen:                             Redisplay.           (line  16)\n* at:                                    At.                  (line   6)\n* attrcolor:                             Attrcolor.           (line   6)\n* autodetach:                            Detach.              (line   6)\n* autonuke:                              Autonuke.            (line   6)\n* backtick:                              Backtick.            (line   6)\n* backtick <1>:                          Backtick.            (line   7)\n* bce:                                   Character Processing.\n(line  23)\n* bellmsg:                              Bell.                (line   6)\n* bind:                                  Bind.                (line   6)\n* bindkey:                               Bindkey.             (line   6)\n* blanker:                               Screen Saver.        (line  15)\n* blankerprg:                            Screen Saver.        (line  25)\n* break:                                 Break.               (line   6)\n* breaktype:                             Break.               (line  18)\n* bufferfile:                            Screen Exchange.     (line   6)\n* bumpleft:                              Bumpleft.            (line   6)\n* bumpright:                             Bumpright.           (line   6)\n* c1:                                    Character Processing.\n(line   6)\n* caption:                               Caption.             (line   6)\n* caption <1>:                           Caption.             (line   7)\n* chacl:                                 Aclchg.              (line   7)\n* charset:                               Character Processing.\n(line  49)\n* chdir:                                 Chdir.               (line   6)\n* cjkwidth:                              Character Processing.\n(line 104)\n* clear:                                 Clear.               (line   6)\n* collapse:                              Collapse.            (line   6)\n* colon:                                 Colon.               (line   8)\n* command:                               Command Character.   (line  32)\n* compacthist:                           Scrollback.          (line  19)\n* console:                               Console.             (line   6)\n* copy:                                  Copy.                (line   6)\n* copyreg:                              Registers.           (line   6)\n* crlf:                                  Line Termination.    (line   6)\n* debug:                                 Debug.               (line   6)\n* defautonuke:                           Autonuke.            (line  12)\n* defbce:                                Character Processing.\n(line  81)\n* defbreaktype:                          Break.               (line  26)\n* defc1:                                 Character Processing.\n(line  71)\n* defcharset:                            Character Processing.\n(line  92)\n* defencoding:                           Character Processing.\n(line  86)\n* defescape:                             Command Character.   (line  17)\n* defflow:                               Flow.                (line   6)\n* defgr:                                 Character Processing.\n(line  76)\n* defhstatus:                            Hardstatus.          (line  12)\n* deflog:                                Log.                 (line   6)\n* deflogin:                              Login.               (line   6)\n* defmode:                               Mode.                (line   6)\n* defmonitor:                            Monitor.             (line  21)\n* defmousetrack:                         Mousetrack.          (line  15)\n* defnonblock:                           Nonblock.            (line  18)\n* defobuflimit:                          Obuflimit.           (line  15)\n* defscrollback:                         Scrollback.          (line   8)\n* defshell:                              Shell.               (line   7)\n* defsilence:                            Monitor.             (line  45)\n* defslowpaste:                          Paste.               (line  40)\n* defutf8:                               Character Processing.\n(line  98)\n* defwrap:                               Wrap.                (line  15)\n* defwritelock:                          Writelock.           (line  18)\n* detach:                                Detach.              (line  14)\n* digraph:                               Digraph.             (line   6)\n* dinfo:                                 Info.                (line  40)\n* displays:                              Displays.            (line   6)\n* dumptermcap:                           Dump Termcap.        (line   6)\n* echo:                                  echo.                (line   6)\n* encoding:                              Character Processing.\n(line  30)\n* escape:                                Command Character.   (line   6)\n* eval:                                  Eval.                (line   6)\n* exec:                                  Exec.                (line   6)\n* fit:                                   Fit.                 (line   6)\n* flow:                                  Flow.                (line  14)\n* focus:                                 Focus.               (line   6)\n* focusminsize:                          Focusminsize.        (line   6)\n* gr:                                    Character Processing.\n(line  15)\n* group:                                 Window Groups.       (line  20)\n* hardcopy:                              Hardcopy.            (line   6)\n* hardcopydir:                           Hardcopy.            (line  21)\n* hardcopyappend:                       Hardcopy.            (line  15)\n* hardstatus:                            Hardware Status Line.\n(line   6)\n* hardstatus <1>:                        Hardware Status Line.\n(line   7)\n* hardstatus <2>:                        Hardware Status Line.\n(line   9)\n* height:                                Window Size.         (line  16)\n* help:                                  Help.                (line   6)\n* history:                               History.             (line   6)\n* hstatus:                               Hardstatus.          (line  24)\n* idle:                                  Screen Saver.        (line   6)\n* ignorecase:                            Searching.           (line  14)\n* info:                                  Info.                (line   6)\n* insreg:                               Registers.           (line  10)\n* kill:                                  Kill.                (line   6)\n* lastmsg:                               Last Message.        (line   6)\n* layout:                                Layout.              (line  20)\n* layout <1>:                            Layout.              (line  30)\n* layout <2>:                            Layout.              (line  38)\n* layout <3>:                            Layout.              (line  42)\n* layout <4>:                            Layout.              (line  46)\n* layout <5>:                            Layout.              (line  53)\n* layout <6>:                            Layout.              (line  58)\n* layout <7>:                            Layout.              (line  64)\n* layout <8>:                            Layout.              (line  70)\n* layout <9>:                            Layout.              (line  79)\n* layout <10>:                           Layout.              (line  94)\n* layout <11>:                           Layout.              (line 106)\n* license:                               License.             (line   6)\n* lockscreen:                            Lock.                (line   6)\n* log:                                   Log.                 (line  11)\n* logfile:                               Log.                 (line  22)\n* logfile <1>:                           Log.                 (line  23)\n* login:                                 Login.               (line  13)\n* logtstamp:                             Log.                 (line  30)\n* logtstamp <1>:                         Log.                 (line  31)\n* logtstamp <2>:                         Log.                 (line  32)\n* mapdefault:                            Bindkey Control.     (line   6)\n* mapnotnext:                            Bindkey Control.     (line  10)\n* maptimeout:                            Bindkey Control.     (line  13)\n* markkeys:                              Copy Mode Keys.      (line   6)\n* maxwin:                                Maxwin.              (line   6)\n* meta:                                  Command Character.   (line  25)\n* monitor:                               Monitor.             (line  26)\n* mousetrack:                            Mousetrack.          (line   6)\n* msgminwait:                            Message Wait.        (line   6)\n* msgwait:                               Message Wait.        (line  11)\n* multiuser:                             Multiuser.           (line   6)\n* nethack:                               Nethack.             (line   6)\n* next:                                  Next and Previous.   (line   6)\n* nonblock:                              Nonblock.            (line   6)\n* number:                                Number.              (line   6)\n* obuflimit:                             Obuflimit.           (line   6)\n* only:                                  Only.                (line   6)\n* other:                                 Other Window.        (line   6)\n* partial:                               Redisplay.           (line  21)\n* password:                              Detach.              (line  22)\n* paste:                                 Paste.               (line   6)\n* pastefont:                             Paste.               (line  34)\n* powbreak:                             Break.               (line  14)\n* powdetach:                            Power Detach.        (line   6)\n* powdetachmsg:                        Power Detach.        (line  13)\n* prev:                                  Next and Previous.   (line  13)\n* printcmd:                              Printcmd.            (line   6)\n* process:                               Registers.           (line  14)\n* quit:                                  Quit.                (line   6)\n* readbuf:                               Screen Exchange.     (line  18)\n* readreg:                               Paste.               (line  50)\n* redisplay:                             Redisplay.           (line  29)\n* register:                              Registers.           (line  22)\n* remove:                                Remove.              (line   6)\n* removebuf:                             Screen Exchange.     (line  24)\n* rendition:                             Rendition.           (line   6)\n* reset:                                 Reset.               (line   6)\n* resize:                                Resize.              (line   6)\n* screen:                                Screen Command.      (line   6)\n* scrollback:                            Scrollback.          (line  13)\n* select:                                Select.              (line   6)\n* sessionname:                           Session Name.        (line   6)\n* setenv:                                Setenv.              (line   6)\n* setsid:                                Setsid.              (line   6)\n* shell:                                 Shell.               (line   6)\n* shelltitle:                            Shell.               (line  20)\n* silence:                               Monitor.             (line  35)\n* silencewait:                           Monitor.             (line  50)\n* sleep:                                 sleep.               (line   6)\n* slowpaste:                             Paste.               (line  39)\n* sorendition:                           Sorendition.         (line   6)\n* source:                                Source.              (line   6)\n* split:                                 Split.               (line   6)\n* startupmessage:                       Startup Message.     (line   6)\n* stuff:                                 Paste.               (line  26)\n* su:                                    Su.                  (line   6)\n* suspend:                               Suspend.             (line   6)\n* term:                                  Term.                (line   6)\n* termcap:                               Termcap Syntax.      (line   6)\n* termcapinfo:                           Termcap Syntax.      (line   8)\n* terminfo:                              Termcap Syntax.      (line   7)\n* time:                                  Time.                (line   6)\n* title:                                 Title Command.       (line   6)\n* umask:                                 Umask.               (line   7)\n* unbindall:                             Bind.                (line  27)\n* unsetenv:                              Setenv.              (line  14)\n* utf8:                                  Character Processing.\n(line  62)\n* vbell:                                 Bell.                (line  22)\n* vbellwait:                             Bell.                (line  42)\n* vbellmsg:                             Bell.                (line  34)\n* verbose:                               Verbose.             (line   6)\n* version:                               Version.             (line   6)\n* wall:                                  Wall.                (line   6)\n* width:                                 Window Size.         (line   6)\n* windowlist:                            Windowlist.          (line   6)\n* windowlist <1>:                        Windowlist.          (line   7)\n* windowlist <2>:                        Windowlist.          (line   8)\n* windows:                               Windows.             (line   6)\n* wrap:                                  Wrap.                (line   6)\n* writebuf:                              Screen Exchange.     (line  28)\n* writelock:                             Writelock.           (line   6)\n* xoff:                                  XON/XOFF.            (line  11)\n* xon:                                   XON/XOFF.            (line   6)\n* zmodem:                                Zmodem.              (line   6)\n* zmodem <1>:                            Zmodem.              (line   7)\n* zmodem <2>:                            Zmodem.              (line   8)\n* zombie:                                Zombie.              (line   6)\n* zombietimeout:                        Zombie.              (line   7)\n\nFile: screen.info,  Node: Keystroke Index,  Prev: Command Index,  Up: Top\n",
            "subsections": []
        },
        "Keystroke Index": {
            "content": "This is a list of the default key bindings.\n\nThe leading escape character (*note Command Character::) has been\nomitted from the key sequences, since it is the same for all bindings.\n\n\n* Menu:\n\n* \":                                     Windowlist.           (line  6)\n* ':                                     Select.               (line  6)\n* *:                                     Displays.             (line  6)\n* ,:                                     License.              (line  6)\n* .:                                     Dump Termcap.         (line  6)\n* 0...9:                                 Select.               (line  6)\n* ::                                     Colon.                (line  8)\n* <:                                     Screen Exchange.      (line 18)\n* =:                                     Screen Exchange.      (line 24)\n* >:                                     Screen Exchange.      (line 28)\n* ?:                                     Help.                 (line  6)\n* [:                                     Copy.                 (line  6)\n* \\:                                     Quit.                 (line  6)\n* ]:                                     Paste.                (line  6)\n* :                                     Monitor.              (line 35)\n* {:                                     History.              (line  6)\n* |:                                     Split.                (line  6)\n* }:                                     History.              (line  6)\n* A:                                     Title Command.        (line  6)\n* a:                                     Command Character.    (line 25)\n* b:                                     Break.                (line  6)\n* B:                                     Break.                (line 14)\n* Backspace:                             Next and Previous.    (line 13)\n* c:                                     Screen Command.       (line  6)\n* C:                                     Clear.                (line  6)\n* C-a:                                   Other Window.         (line  6)\n* C-b:                                   Break.                (line  6)\n* C-c:                                   Screen Command.       (line  6)\n* C-d:                                   Detach.               (line 14)\n* C-f:                                   Flow.                 (line 14)\n* C-g:                                   Bell.                 (line 22)\n* C-h:                                   Next and Previous.    (line 13)\n* C-i:                                   Info.                 (line  6)\n* C-k:                                   Kill.                 (line  6)\n* C-l:                                   Redisplay.            (line 29)\n* C-m:                                   Last Message.         (line  6)\n* C-n:                                   Next and Previous.    (line  6)\n* C-p:                                   Next and Previous.    (line 13)\n* C-q:                                   XON/XOFF.             (line  6)\n* C-r:                                   Wrap.                 (line  6)\n* C-s:                                   XON/XOFF.             (line 11)\n* C-t:                                   Time.                 (line  6)\n* C-v:                                   Digraph.              (line  6)\n* C-w:                                   Windows.              (line  6)\n* C-x:                                   Lock.                 (line  6)\n* C-z:                                   Suspend.              (line  6)\n* C-[:                                   Copy.                 (line  6)\n* C-]:                                   Paste.                (line  6)\n* d:                                     Detach.               (line 14)\n* D:                                     Power Detach.         (line  6)\n* ESC:                                   Copy.                 (line  6)\n* F:                                     Fit.                  (line  6)\n* f:                                     Flow.                 (line 14)\n* h:                                     Hardcopy.             (line  6)\n* H:                                     Log.                  (line 11)\n* i:                                     Info.                 (line  6)\n* k:                                     Kill.                 (line  6)\n* L:                                     Login.                (line 13)\n* l:                                     Redisplay.            (line 29)\n* M:                                     Monitor.              (line 26)\n* m:                                     Last Message.         (line  6)\n* n:                                     Next and Previous.    (line  6)\n* N:                                     Number.               (line  6)\n* p:                                     Next and Previous.    (line 13)\n* Q:                                     Only.                 (line  6)\n* q:                                     XON/XOFF.             (line  6)\n* r:                                     Wrap.                 (line  6)\n* S:                                     Split.                (line  6)\n* s:                                     XON/XOFF.             (line 11)\n* SPC:                                   Next and Previous.    (line  6)\n* t:                                     Time.                 (line  6)\n* TAB:                                   Focus.                (line  6)\n* v:                                     Version.              (line  6)\n* w:                                     Windows.              (line  6)\n* W:                                     Window Size.          (line  6)\n* x:                                     Lock.                 (line  6)\n* X:                                     Remove.               (line  6)\n* z:                                     Suspend.              (line  6)\n* Z:                                     Reset.                (line  6)\n",
            "subsections": []
        }
    },
    "flags": [],
    "examples": [],
    "see_also": [],
    "tldr": {
        "source": "official",
        "description": "Hold a session open on a remote server. Manage multiple windows with a single SSH connection.",
        "examples": [
            {
                "description": "Start a new screen session",
                "command": "screen"
            },
            {
                "description": "Start a new named screen session",
                "command": "screen -S {{session_name}}"
            },
            {
                "description": "Start a new daemon and log the output to `screenlog.x`",
                "command": "screen -dmLS {{session_name}} {{command}}"
            },
            {
                "description": "Show open screen sessions",
                "command": "screen -ls"
            },
            {
                "description": "Reattach to an open screen",
                "command": "screen -r {{session_name}}"
            },
            {
                "description": "Detach from inside a screen",
                "command": "<Ctrl a><d>"
            },
            {
                "description": "Kill the current screen session",
                "command": "<Ctrl a><k>"
            },
            {
                "description": "Kill a detached screen",
                "command": "screen -X -S {{session_name}} quit"
            }
        ]
    }
}