2
.TH SCREEN 1 "Aug 2003"
9
screen \- screen manager with VT100/ANSI terminal emulation
23
[[\fIpid\fP\fB.\fP]\fItty\fP[\fB.\fP\fIhost\fP]]
26
\fIsessionowner\fP\fB/\fP[[\fIpid\fP\fB.\fP]\fItty\fP[\fB.\fP\fIhost\fP]]
32
is a full-screen window manager that
33
multiplexes a physical terminal between several processes (typically
35
Each virtual terminal provides the functions
36
of a DEC VT100 terminal and, in addition, several control functions
37
from the ISO 6429 (ECMA 48, ANSI X3.64) and ISO 2022 standards
38
(e.\|g. insert/delete line and support for multiple character sets).
39
There is a scrollback history buffer for each virtual terminal and a
40
copy-and-paste mechanism that allows moving text regions between
45
is called, it creates a single window with a shell in it (or the specified
46
command) and then gets out of your way so that you can use the program as you
48
Then, at any time, you can create new (full-screen) windows with other programs
49
in them (including more shells), kill existing windows, view a list of
50
windows, turn output logging on and off, copy-and-paste text between
51
windows, view the scrollback history, switch between windows
52
in whatever manner you wish, etc. All windows run their programs completely
53
independent of each other. Programs continue to run when their window
54
is currently not visible and even when the whole
56
session is detached from the user's terminal. When a program terminates,
58
(per default) kills the window that contained it.
59
If this window was in the foreground, the display switches to the previous
60
window; if none are left,
64
Everything you type is sent to the program running in the current window.
65
The only exception to this is the one keystroke that is used to initiate
66
a command to the window manager.
67
By default, each command begins with a control-a (abbreviated C-a from
68
now on), and is followed by one other keystroke.
69
The command character and all the key bindings can be fully customized
70
to be anything you like, though they are always two characters in length.
73
does not understand the prefix \*QC-\*U to mean control.
74
Please use the caret notation (\*Q^A\*U instead of \*QC-a\*U) as arguments
77
command or the \fI-e\fP option.
79
will also print out control characters in caret notation.
81
The standard way to create a new window is to type \*QC-a c\*U.
82
This creates a new window running a shell and switches to that
83
window immediately, regardless of the state of the process running
84
in the current window.
85
Similarly, you can create a new window with a custom command in it by
86
first binding the command to a keystroke (in your .screenrc file or at the
87
\*QC-a :\*U command line) and
88
then using it just like the \*QC-a c\*U command.
89
In addition, new windows can be created by running a command like:
93
from a shell prompt within a previously created window.
94
This will not run another copy of
96
but will instead supply the command name and its arguments to the window
97
manager (specified in the $STY environment variable) who will use it to
98
create the new window.
99
The above example would start the emacs editor (editing prog.c) and switch
102
If \*Q/etc/utmp\*U is writable by
104
an appropriate record will be written to this file for each window, and
105
removed when the window is terminated.
106
This is useful for working with \*Qtalk\*U, \*Qscript\*U, \*Qshutdown\*U,
107
\*Qrsend\*U, \*Qsccs\*U and other similar programs that use the utmp
108
file to determine who you are. As long as
110
is active on your terminal,
111
the terminal's own record is removed from the utmp file. See also \*QC-a L\*U.
115
Before you begin to use
117
you'll need to make sure you have correctly selected your terminal type,
118
just as you would for any other termcap/terminfo program.
119
(You can do this by using
123
If you're impatient and want to get started without doing a lot more reading,
124
you should remember this one command: \*QC-a ?\*U.
125
Typing these two characters will display a list of the available
127
commands and their bindings. Each keystroke is discussed in
128
the section \*QDEFAULT KEY BINDINGS\*U. The manual section \*QCUSTOMIZATION\*U
129
deals with the contents of your .screenrc.
131
If your terminal is a \*Qtrue\*U auto-margin terminal (it doesn't allow
132
the last position on the screen to be updated without scrolling the
133
screen) consider using a version of your terminal's termcap that has
134
automatic margins turned \fIoff\fP. This will ensure an accurate and
135
optimal update of the screen in all circumstances. Most terminals
136
nowadays have \*Qmagic\*U margins (automatic margins plus usable last
137
column). This is the VT100 style type and perfectly suited for
139
If all you've got is a \*Qtrue\*U auto-margin terminal
141
will be content to use it, but updating a character put into the last
142
position on the screen may not be possible until the screen scrolls or
143
the character is moved into a safe position in some other way. This
144
delay can be shortened by using a terminal with insert-character
148
.SH "COMMAND-LINE OPTIONS"
149
Screen has the following command-line options:
152
include \fIall\fP capabilities (with some minor exceptions) in each
153
window's termcap, even if
155
must redraw parts of the display in order to implement a function.
158
Adapt the sizes of all windows to the size of the current terminal.
161
tries to restore its old window sizes when attaching to resizable terminals
162
(those with \*QWS\*U in its description, e.g. suncmd or some xterm).
165
override the default configuration file from \*Q$HOME/.screenrc\*U
168
.BR \-d | \-D " [" \fIpid.tty.host ]
171
but detaches the elsewhere running
173
session. It has the same effect as typing \*QC-a d\*U from
175
controlling terminal. \fB\-D\fP is the equivalent to the power detach key.
176
If no session can be detached, this option is ignored. In combination with the
177
\fB\-r\fP/\fB\-R\fP option more powerful effects can be achieved:
180
Reattach a session and if necessary detach it first.
183
Reattach a session and if necessary detach or even create it first.
186
Reattach a session and if necessary detach or create it. Use the first
187
session if more than one session is available.
190
Reattach a session. If necessary detach and logout remotely first.
193
Attach here and now. In detail this means: If a session is running, then
194
reattach. If necessary detach and logout remotely first.
195
If it was not running create it and notify the user. This is the
199
Attach here and now. Whatever that means, just do it.
201
Note: It is always a good idea to check the status of your sessions by means of
205
specifies the command character to be \fIx\fP and the character generating a
206
literal command character to \fIy\fP (when typed after the command character).
207
The default is \*QC-a\*U and `a', which can be specified as \*Q-e^Aa\*U.
210
session, this option sets the default command character. In a multiuser
211
session all users added will start off with this command character. But
212
when attaching to an already running session, this option changes only
213
the command character of the attaching user.
214
This option is equivalent to either the commands \*Qdefescape\*U or
215
\*Qescape\*U respectively.
217
.BR \-f\fP ", " \-fn ", and " \-fa
218
turns flow-control on, off, or \*Qautomatic switching mode\*U.
219
This can also be defined through the \*Qdefflow\*U .screenrc command.
222
Specifies the history scrollback buffer to be \fInum\fP lines high.
225
will cause the interrupt key (usually C-c) to interrupt the display
226
immediately when flow-control is on.
227
See the \*Qdefflow\*U .screenrc command for details.
228
The use of this option is discouraged.
231
turns login mode on or off (for /etc/utmp updating).
232
This can also be defined through the \*Qdeflogin\*U .screenrc command.
234
.BR \-ls " and " \-list
239
strings identifying your
242
Sessions marked `detached' can be resumed with \*Qscreen -r\*U. Those marked
243
`attached' are running and have a controlling terminal. If the session runs in
244
multiuser mode, it is marked `multi'. Sessions marked as `unreachable' either
245
live on a different host or are `dead'.
246
An unreachable session is considered dead, when its name
247
matches either the name of the local host, or the specified parameter, if any.
248
See the \fB-r\fP flag for a description how to construct matches.
249
Sessions marked as `dead' should be thoroughly checked and removed.
250
Ask your system administrator if you are not sure. Remove sessions with the
256
to turn on automatic output logging for the windows.
261
to ignore the $STY environment variable. With \*Qscreen -m\*U creation of
262
a new session is enforced, regardless whether
264
is called from within another
266
session or not. This flag has a special meaning in connection
267
with the `-d' option:
272
in \*Qdetached\*U mode. This creates a new session but doesn't
273
attach to it. This is useful for system startup scripts.
276
This also starts screen in \*Qdetached\*U mode, but doesn't fork
277
a new process. The command exits if the session terminates.
280
selects a more optimal output mode for your terminal rather than true VT100
281
emulation (only affects auto-margin terminals without `LP').
282
This can also be set in your .screenrc by specifying `OP' in a \*Qtermcap\*U
285
.BI "\-p " number_or_name
286
Preselect a window. This is usefull when you want to reattach to a
287
specific windor or you want to send a command via the \*Q-X\*U
288
option to a specific window. As with screen's select commant, \*Q-\*U
289
selects the blank window. As a special case for reattach, \*Q=\*U
290
brings up the windowlist on the blank window.
293
Suppress printing of error messages. In combination with \*Q-ls\*U the exit
294
value is as follows: 9 indicates a directory without sessions. 10
295
indicates a directory with running but not attachable sessions. 11 (or more)
296
indicates 1 (or more) usable sessions.
297
In combination with \*Q-r\*U the exit value is as follows: 10 indicates that
298
there is no session to resume. 12 (or more) indicates that there are 2 (or
299
more) sessions to resume and you should specify which one to choose.
300
In all other cases \*Q-q\*U has no effect.
302
.BR \-r " [" \fIpid.tty.host ]
305
.BR \-r " \fIsessionowner/[" \fIpid.tty.host ]
309
session. No other options (except combinations with \fB\-d\fP/\fB\-D\fP) may
310
be specified, though an optional prefix of [\fIpid.\fP]\fItty.host\fP
311
may be needed to distinguish between multiple detached
313
sessions. The second form is used to connect to another user's screen session
314
which runs in multiuser mode. This indicates that screen should look for
315
sessions in another user's directory. This requires setuid-root.
318
attempts to resume the first detached
320
session it finds. If successful, all other command-line options are ignored.
321
If no detached session exists, starts a new session using the specified
324
had not been specified. The option is set by default if
326
is run as a login-shell (actually screen uses \*Q-xRR\*U in that case).
327
For combinations with the \fB\-d\fP/\fB\-D\fP option see there.
330
sets the default shell to the program specified, instead of the value
331
in the environment variable $SHELL (or \*Q/bin/sh\*U if not defined).
332
This can also be defined through the \*Qshell\*U .screenrc command.
334
.BI "\-S " sessionname
335
When creating a new session, this option can be used to specify a
336
meaningful name for the session. This name identifies the session for
337
\*Qscreen -list\*U and \*Qscreen -r\*U actions. It substitutes the
338
default [\fItty.host\fP] suffix.
341
sets the title (a.\|k.\|a.) for the default shell or specified program.
342
See also the \*Qshelltitle\*U .screenrc command.
345
Run screen in UTF-8 mode. This option tells screen that your terminal
346
sends and understands UTF-8 encoded characters. It also sets the default
347
encoding for new windows to `utf8'.
350
Print version number.
352
.BR \-wipe " [" \fImatch ]
353
does the same as \*Qscreen -ls\*U, but removes destroyed sessions instead of
354
marking them as `dead'.
355
An unreachable session is considered dead, when its name matches either
356
the name of the local host, or the explicitly given parameter, if any.
357
See the \fB-r\fP flag for a description how to construct matches.
360
Attach to a not detached
362
session. (Multi display mode).
365
Send the specified command to a running screen session. You can use
366
the \fB-d\fP or \fB-r\fP option to tell screen to look only for
367
attached or detached screen sessions. Note that this command doesn't
368
work if the session is password protected.
371
.SH "DEFAULT KEY BINDINGS"
375
command consists of a
376
\*QC-a\*U followed by one other character.
377
For your convenience, all commands that are bound to lower-case letters are
378
also bound to their control character counterparts (with the exception
379
of \*QC-a a\*U; see below), thus, \*QC-a c\*U as well as \*QC-a C-c\*U can
380
be used to create a window. See section \*QCUSTOMIZATION\*U for a description
384
The following table shows the default key bindings:
385
.IP "\fBC-a '\fP (select)"
386
Prompt for a window name or number to switch to.
387
.IP "\fBC-a ""\fP (windowlist -b)"
388
Present a list of all windows for selection.
389
.IP "\fBC-a 0\fP (select 0)"
391
.IP "\fB ... \fP ..."
392
.IP "\fBC-a 9\fP (select 9)"
393
.IP "\fBC-a -\fP (select -)"
395
Switch to window number 0 \- 9, or to the blank window.
396
.IP "\fBC-a tab\fP (focus)"
398
Switch the input focus to the next region.
399
.IP "\fBC-a C-a\fP (other)"
400
Toggle to the window displayed previously.
401
Note that this binding defaults to the command character typed twice,
402
unless overridden. For instance, if you use the option \*Q\fB\-e]x\fP\*U,
403
this command becomes \*Q]]\*U.
404
.IP "\fBC-a a\fP (meta)"
405
Send the command character (C-a) to window. See \fIescape\fP command.
406
.IP "\fBC-a A\fP (title)"
407
Allow the user to enter a name for the current window.
410
.IP "\fBC-a C-b\fP (break)"
412
Send a break to window.
413
.IP "\fBC-a B\fP (pow_break)"
414
Reopen the terminal line and send a break.
417
.IP "\fBC-a C-c\fP (screen)"
419
Create a new window with a shell and switch to that window.
420
.IP "\fBC-a C\fP (clear)"
424
.IP "\fBC-a C-d\fP (detach)"
429
.IP "\fBC-a D D\fP (pow_detach)"
433
.IP "\fBC-a C-f\fP (flow)"
435
Toggle flow \fIon\fP, \fIoff\fP or \fIauto\fP.
436
.IP "\fBC-a F\fP (fit)"
437
Resize the window to the current region size.
438
.IP "\fBC-a C-g\fP (vbell)"
442
.IP "\fBC-a h\fP (hardcopy)"
444
Write a hardcopy of the current window to the file \*Qhardcopy.\fIn\fP\*U.
445
.IP "\fBC-a H\fP (log)"
446
Begins/ends logging of the current window to the file \*Qscreenlog.\fIn\fP\*U.
449
.IP "\fBC-a C-i\fP (info)"
451
Show info about this window.
454
.IP "\fBC-a C-k\fP (kill)"
456
Destroy current window.
459
.IP "\fBC-a C-l\fP (redisplay)"
461
Fully refresh current window.
462
.IP "\fBC-a L\fP (login)"
463
Toggle this windows login slot. Available only if
465
is configured to update the utmp database.
468
.IP "\fBC-a C-m\fP (lastmsg)"
470
Repeat the last message displayed in the message line.
471
.IP "\fBC-a M\fP (monitor)"
472
Toggles monitoring of the current window.
473
.IP "\fBC-a space\fP"
476
.IP "\fBC-a C-n\fP (next)"
478
Switch to the next window.
479
.IP "\fBC-a N\fP (number)"
480
Show the number (and title) of the current window.
481
.IP "\fBC-a backspace\fP"
485
.IP "\fBC-a C-p\fP (prev)"
487
Switch to the previous window (opposite of \fBC-a n\fP).
490
.IP "\fBC-a C-q\fP (xon)"
492
Send a control-q to the current window.
493
.IP "\fBC-a Q\fP (only)"
494
Delete all regions but the current one.
497
.IP "\fBC-a C-r\fP (wrap)"
499
Toggle the current window's line-wrap setting (turn the current window's
500
automatic margins on and off).
503
.IP "\fBC-a C-s\fP (xoff)"
505
Send a control-s to the current window.
506
.IP "\fBC-a S\fP (split)"
507
Split the current region into two new ones.
510
.IP "\fBC-a C-t\fP (time)"
512
Show system information.
513
.IP "\fBC-a v\fP (version)"
515
Display the version and compilation date.
516
.IP "\fBC-a C-v\fP (digraph)"
521
.IP "\fBC-a C-w\fP (windows)"
523
Show a list of window.
524
.IP "\fBC-a W\fP (width)"
525
Toggle 80/132 columns.
528
.IP "\fBC-a C-x\fP (lockscreen)"
531
.IP "\fBC-a X\fP (remove)"
532
Kill the current region.
535
.IP "\fBC-a C-z\fP (suspend)"
539
Your system must support BSD-style job-control.
540
.IP "\fBC-a Z\fP (reset)"
541
Reset the virtual terminal to its \*Qpower-on\*U values.
542
.IP "\fBC-a .\fP (dumptermcap)"
543
Write out a \*Q.termcap\*U file.
544
.IP "\fBC-a ?\fP (help)"
546
.IP "\fBC-a C-\e\fP (quit)"
547
Kill all windows and terminate
549
.IP "\fBC-a :\fP (colon)"
550
Enter command line mode.
554
.IP "\fBC-a esc\fP (copy)"
556
Enter copy/scrollback mode.
557
.IP "\fBC-a ]\fP (paste .)"
559
Write the contents of the paste buffer to the stdin queue of the
563
.IP "\fBC-a }\fP (history)"
565
Copy and paste a previous (command) line.
566
.IP "\fBC-a >\fP (writebuf)"
567
Write paste buffer to a file.
568
.IP "\fBC-a <\fP (readbuf)"
569
Reads the screen-exchange file into the paste buffer.
570
.IP "\fBC-a =\fP (removebuf)"
571
Removes the file used by \fBC-a <\fP and \fPC-a >\fP.
572
.IP "\fBC-a ,\fP (license)"
575
comes from, where it went to and why you can use it.
576
.IP "\fBC-a _\fP (silence)"
577
Start/stop monitoring the current window for inactivity.
578
.IP "\fBC-a *\fP (displays)"
579
Show a listing of all currently attached displays.
583
The \*Qsocket directory\*U defaults either to $HOME/.screen or simply to
584
/tmp/screens or preferably to /usr/local/screens chosen at compile-time. If
586
is installed setuid-root, then the administrator
589
with an adequate (not NFS mounted) socket directory. If
591
is not running setuid-root, the user can specify any mode 700 directory
592
in the environment variable $SCREENDIR.
596
is invoked, it executes initialization commands from the files
597
\*Q/usr/local/etc/screenrc\*U and
598
\*Q.screenrc\*U in the user's home directory. These are the \*Qprogrammer's
599
defaults\*U that can be overridden in the following ways: for the
602
searches for the environment variable $SYSSCREENRC (this override feature
603
may be disabled at compile-time). The user specific
604
screenrc file is searched in $SCREENRC, then $HOME/.screenrc.
605
The command line option \fB-c\fP takes
606
precedence over the above user screenrc files.
608
Commands in these files are used to set options, bind functions to
609
keys, and to automatically establish one or more windows at the
613
Commands are listed one per line, with empty lines being ignored.
614
A command's arguments are separated by tabs or spaces, and may be
615
surrounded by single or double quotes.
616
A `#' turns the rest of the line into a comment, except in quotes.
617
Unintelligible lines are warned about and ignored.
618
Commands may contain references to environment variables. The
619
syntax is the shell-like "$VAR " or "${VAR}". Note that this causes
620
incompatibility with previous
622
versions, as now the '$'-character has to be protected with '\e' if no
623
variable substitution shall be performed. A string in single-quotes is also
624
protected from variable substitution.
626
Two configuration files are shipped as examples with your screen distribution:
627
\*Qetc/screenrc\*U and \*Qetc/etcscreenrc\*U. They contain a number of
628
useful examples for various commands.
630
Customization can also be done 'on-line'. To enter the command mode type
631
`C-a :'. Note that commands starting with \*Qdef\*U change default values,
632
while others change current settings.
634
The following commands are available:
637
.BI acladd " usernames"
640
.BI addacl " usernames"
642
Enable users to fully access this screen session. \fIUsernames\fP can be one
643
user or a comma separated list of users. This command enables to attach to the
645
session and performs the equivalent of `aclchg \fIusernames\fP +rwx \&"#?\&"'.
646
executed. To add a user with restricted access, use the `aclchg' command below.
647
If an optional second parameter is supplied, it should be a crypted password
648
for the named user(s). `Addacl' is a synonym to `acladd'.
649
Multi user mode only.
652
.BI aclchg " usernames permbits list"
654
.BI chacl " usernames permbits list"
656
Change permissions for a comma separated list of users. Permission bits are
657
represented as `r', `w' and `x'. Prefixing `+' grants the permission, `-'
658
removes it. The third parameter is a comma separated list of commands and/or
659
windows (specified either by number or title). The special list `#' refers to
660
all windows, `?' to all commands. if \fIusernames\fP consists of a single `*',
661
all known users are affected.
662
A command can be executed when the user has the `x' bit for it.
663
The user can type input to a window when he has its `w' bit set and no other
664
user obtains a writelock for this window.
665
Other bits are currently ignored.
666
To withdraw the writelock from another user in window 2:
667
`aclchg \fIusername\fP -w+w 2'.
668
To allow read-only access to the session: `aclchg \fIusername\fP
669
-w \&"#\&"'. As soon as a user's name is known to
671
he can attach to the session and (per default) has full permissions for all
672
command and windows. Execution permission for the acl commands, `at' and others
673
should also be removed or the user may be able to regain write permission.
674
Rights of the special username
676
cannot be changed (see the \*Qsu\*U command).
677
`Chacl' is a synonym to `aclchg'.
678
Multi user mode only.
681
.BI acldel " username"
685
access control list. If currently attached, all the
686
user's displays are detached from the session. He cannot attach again.
687
Multi user mode only.
690
.BI aclgrp " username"
693
Creates groups of users that share common access rights. The name of the
694
group is the username of the group leader. Each member of the group inherits
695
the permissions that are granted to the group leader. That means, if a user
696
fails an access check, another check is made for the group leader.
697
A user is removed from all groups the special value \*Qnone\*U is used for
699
If the second parameter is omitted all groups the user is in are listed.
704
.RI |[ users ] -bits " .... ]"
708
.RI |[ users ] -bits " .... ]"
710
This specifies the access other users have to windows that will be created by
711
the caller of the command.
713
may be no, one or a comma separated list of known usernames. If no users are
714
specified, a list of all currently known users is assumed.
716
is any combination of access control bits allowed defined with the
717
\*Qaclchg\*U command. The special username \*Q?\*U predefines the access
718
that not yet known users will be granted to any window initially.
719
The special username \*Q??\*U predefines the access that not yet known
720
users are granted to any command.
721
Rights of the special username
723
cannot be changed (see the \*Qsu\*U command).
724
`Umask' is a synonym to `aclumask'.
727
.BI activity " message"
729
When any activity occurs in a background window that is being monitored,
731
displays a notification in the message line.
732
The notification message can be re-defined by means of the \*Qactivity\*U
734
Each occurrence of `%' in \fImessage\fP is replaced by
735
the number of the window in which activity has occurred,
736
and each occurrence of `^G' is replaced by the definition for bell
737
in your termcap (usually an audible bell).
738
The default message is
740
'Activity in window %n'
742
Note that monitoring is off for all windows by default, but can be altered
743
by use of the \*Qmonitor\*U command (C-a M).
746
.BR "allpartial on" | off
748
If set to on, only the current cursor line is refreshed on window change.
749
This affects all windows and is useful for slow terminal lines. The
750
previous setting of full/partial refresh for each window is restored
751
with \*Qallpartial off\*U. This is a global flag that immediately takes effect
752
on all windows overriding the \*Qpartial\*U settings. It does not change the
753
default redraw behavior of newly created windows.
756
.BR "altscreen on" | off
758
If set to on, "alternate screen" support is enabled in virtual terminals,
759
just like in xterm. Initial setting is `off'.
762
.BR "at " "[\fIidentifier\fP][" "#\fP|\fP*\fP|\fP%\fP] "
763
.IR "command " [ args " ... ]"
765
Execute a command at other displays or windows as if it had been entered there.
766
\*QAt\*U changes the context (the `current window' or `current display'
767
setting) of the command. If the first parameter describes a
768
non-unique context, the command will be executed multiple times. If the first
769
parameter is of the form `\fIidentifier\fP*' then identifier is matched against
770
user names. The command is executed once for each display of the selected
771
user(s). If the first parameter is of the form `\fIidentifier\fP%' identifier
772
is matched against displays. Displays are named after the ttys they
773
attach. The prefix `/dev/' or `/dev/tty' may be omitted from the identifier.
774
If \fIidentifier\fP has a `#' or nothing appended it is matched against
775
window numbers and titles. Omitting an identifier in front of the `#', `*' or
776
`%'-character selects all users, displays or windows because a prefix-match is
777
performed. Note that on the affected display(s) a short message will describe
778
what happened. Permission is checked for initiator of the \*Qat\*U command,
779
not for the owners of the affected display(s).
780
Note that the '#' character works as a comment introducer when it is preceded by
781
whitespace. This can be escaped by prefixing a '\e'.
782
Permission is checked for the initiator of the \*Qat\*U command, not for the
783
owners of the affected display(s).
786
When matching against windows, the command is executed at least
787
once per window. Commands that change the internal arrangement of windows
788
(like \*Qother\*U) may be called again. In shared windows the command will
789
be repeated for each attached display. Beware, when issuing toggle commands
791
Some commands (e.g. \*Qprocess\*U) require that
792
a display is associated with the target windows. These commands may not work
793
correctly under \*Qat\*U looping over windows.
796
.BI "attrcolor " attrib
797
.RI [ "attribute/color-modifier" ]
799
This command can be used to highlight attributes by changing the color of
800
the text. If the attribute
802
is in use, the specified attribute/color modifier is also applied. If no
803
modifier is given, the current one is deleted. See the \*QSTRING ESCAPES\*U
804
chapter for the syntax of the modifier. Screen understands two
805
pseudo-attributes, \*Qi\*U stands for high-intensity foreground
806
color and \*QI\*U for high-intensity background color.
812
Change the color to bright red if bold text is to be printed.
816
Use blue text instead of underline.
820
Use bright colors for bold text. Most terminal emulators do this
825
Make bright colored text also bold.
828
.BR "autodetach on" | off
832
will automatically detach upon hangup, which
833
saves all your running programs until they are resumed with a
836
When turned off, a hangup signal will terminate
838
and all the processes it contains. Autodetach is on by default.
841
.BR "autonuke on" | off
843
Sets whether a clear screen sequence should nuke all the output
844
that has not been written to the terminal. See also
856
Program the backtick command with the numerical id \fIid\fP.
857
The output of such a command is used for substitution of the
858
\*Q%`\*U string escape. The specified \fIlifespan\fP is the number
859
of seconds the output is considered valid. After this time, the
860
command is run again if a corresponding string escape is encountered.
861
The \fIautorefresh\fP parameter triggers an
862
automatic refresh for caption and hardstatus strings after the
863
specified number of seconds. Only the last line of output is used
866
If both the \fIlifespan\fP and the \fIautorefresh\fP parameters
867
are zero, the backtick program is expected to stay in the
868
background and generate output once in a while.
869
In this case, the command is executed right away and screen stores
870
the last line of output. If a new line gets printed screen will
871
automatically refresh the hardstatus or the captions.
873
The second form of the command deletes the backtick command
874
with the numerical id \fIid\fP.
877
.BR "bce " [ on | off ]
879
Change background-color-erase setting. If \*Qbce\*U is set to on, all
880
characters cleared by an erase/insert/scroll/clear operation
881
will be displayed in the current background color. Otherwise
882
the default background color is used.
888
When a bell character is sent to a background window,
890
displays a notification in the message line.
891
The notification message can be re-defined by this command.
892
Each occurrence of `%' in \fImessage\fP is replaced by
893
the number of the window to which a bell has been sent,
894
and each occurrence of `^G' is replaced by the definition for bell
895
in your termcap (usually an audible bell).
896
The default message is
900
An empty message can be supplied to the \*Qbell_msg\*U command to suppress
901
output of a message line (bell_msg "").
902
Without parameter, the current message is shown.
909
.RI [ command " [" args ]]
911
Bind a command to a key.
912
By default, most of the commands provided by
914
are bound to one or more keys as indicated in the \*QDEFAULT KEY BINDINGS\*U
916
command to create a new window is bound to \*QC-c\*U and \*Qc\*U.
917
The \*Qbind\*U command can be used to redefine the key bindings and to
919
The \fIkey\fP argument is either a single character, a two-character sequence
920
of the form \*Q^x\*U (meaning \*QC-x\*U), a backslash followed by an octal
921
number (specifying the ASCII code of the character), or a backslash followed
922
by a second character, such as \*Q\e^\*U or \*Q\e\e\*U.
923
The argument can also be quoted, if you like.
924
If no further argument is given, any previously established binding
925
for this key is removed.
926
The \fIcommand\fP argument can be any command listed in this section.
928
If a command class is specified via the \*Q-c\*U option, the key
929
is bound for the specified class. Use the \*Qcommand\*U command
930
to activate a class. Command classes can be used to create multiple
931
command keys or multi-character bindings.
940
bind ^f screen telnet foobar
941
bind \e033 screen -ln -t root -h 1000 9 su
944
would bind the space key to the command that displays a list
945
of windows (so that the command usually invoked by \*QC-a C-w\*U
946
would also be available as \*QC-a space\*U). The next three lines
947
remove the default kill binding from \*QC-a C-k\*U and \*QC-a k\*U.
948
\*QC-a K\*U is then bound to the kill command. Then it
949
binds \*QC-f\*U to the command \*Qcreate a window with a TELNET
950
connection to foobar\*U, and bind \*Qescape\*U to the command
951
that creates an non-login window with a.\|k.\|a. \*Qroot\*U in slot #9, with
952
a superuser shell and a scrollback buffer of 1000 lines.
955
bind -c demo1 0 select 10
956
bind -c demo1 1 select 11
957
bind -c demo1 2 select 12
958
bindkey "^B" command -c demo1
961
makes \*QC-b 0\*U select window 10, \*QC-b 1\*U window 11, etc.
964
bind -c demo2 0 select 10
965
bind -c demo2 1 select 11
966
bind -c demo2 2 select 12
967
bind - command -c demo2
970
makes \*QC-a - 0\*U select window 10, \*QC-a - 1\*U window 11, etc.
981
This command manages screen's input translation tables. Every
982
entry in one of the tables tells screen how to react if a certain
983
sequence of characters is encountered. There are three tables:
984
one that should contain actions programmed by the user, one for
985
the default actions used for terminal emulation and one for
986
screen's copy mode to do cursor movement. See section
987
\*QINPUT TRANSLATION\*U for a list of default key bindings.
991
option is given, bindkey modifies the default table,
993
changes the copy mode table
994
and with neither option the user table is selected.
997
is the sequence of characters to which an action is bound. This
998
can either be a fixed string or a termcap keyboard capability
999
name (selectable with the
1003
Some keys on a VT100 terminal can send a different
1004
string if application mode is turned on (e.g the cursor keys).
1005
Such keys have two entries in the translation table. You can
1006
select the application mode entry by specifying the
1012
option tells screen not to do inter-character timing. One cannot
1013
turn off the timing if a termcap capability is used.
1016
can be any of screen's commands with an arbitrary number of
1020
is omitted the key-binding is removed from the table.
1022
Here are some examples of keyboard bindings:
1027
Show all of the default key bindings. The application mode entries
1028
are marked with [A].
1031
bindkey -k k1 select 1
1033
Make the "F1" key switch to window one.
1036
bindkey -t foo stuff barfoo
1038
Make "foo" an abbreviation of the word "barfoo". Timeout is disabled
1039
so that users can type slowly.
1042
bindkey "\e024" mapdefault
1044
This key-binding makes \*Q^T\*U an escape character for key-bindings. If
1045
you did the above \*Qstuff barfoo\*U binding, you can enter the word
1046
\*Qfoo\*U by typing \*Q^Tfoo\*U. If you want to insert a \*Q^T\*U
1047
you have to press the key twice (i.e. escape the escape binding).
1050
bindkey -k F1 command
1052
Make the F11 (not F1!) key an alternative screen
1053
escape (besides ^A).
1059
Send a break signal for \fIduration\fP*0.25 seconds to this window.
1060
For non-Posix systems the time interval may be rounded up to full seconds.
1061
Most useful if a character device is attached to the window rather than
1062
a shell process (See also chapter \*QWINDOW TYPES\*U). The maximum duration of
1063
a break signal is limited to 15 seconds.
1068
Activate the screen blanker. First the screen is cleared. If no blanker
1069
program is defined, the cursor is turned off, otherwise, the
1070
program is started and it's output is written to the screen.
1071
The screen blanker is killed with the first keypress, the read key
1074
This command is normally used together with the \*Qidle\*U command.
1078
.RI [ "program args" ]
1080
Defines a blanker program. Disables the blanker program if no
1081
arguments are given.
1085
.RI [ tcsendbreak | TIOCSBRK
1088
Choose one of the available methods of generating a break signal for
1089
terminal devices. This command should affect the current window only.
1090
But it still behaves identical to \*Qdefbreaktype\*U. This will be changed in
1092
Calling \*Qbreaktype\*U with no parameter displays the break method for the
1097
.RI [ exchange-file ]
1099
Change the filename used for reading and writing with the paste buffer.
1100
If the optional argument to the \*Qbufferfile\*U command is omitted,
1101
the default setting (\*Q/tmp/screen-exchange\*U) is reactivated.
1102
The following example will paste the system's password file into
1105
window (using the paste buffer, where a copy remains):
1108
C-a : bufferfile /etc/passwd
1114
.BR "c1 " [ on | off ]
1116
Change c1 code processing. \*QC1 on\*U tells screen to treat
1117
the input characters between 128 and 159 as control functions.
1118
Such an 8-bit code is normally the same as ESC followed by the
1119
corresponding 7-bit code. The default setting is to process c1
1120
codes and can be changed with the \*Qdefc1\*U command.
1121
Users with fonts that have usable characters in the
1122
c1 positions may want to turn this off.
1125
.BR "caption always" | splitonly
1131
This command controls the display of the window captions. Normally
1132
a caption is only used if more than one window is shown on the
1133
display (split screen mode). But if the type is set to
1135
screen shows a caption even if only one window is displayed. The default
1139
The second form changes the text used for the caption. You can use
1140
all escapes from the \*QSTRING ESCAPES\*U chapter. Screen uses
1141
a default of `%3n %t'.
1143
You can mix both forms by providing a string as an additional argument.
1148
Change the current character set slot designation and charset
1149
mapping. The first four character of
1151
are treated as charset designators while the fifth and sixth
1152
character must be in range '0' to '3' and set the GL/GR charset
1153
mapping. On every position a '.' may be used to indicate that
1154
the corresponding charset/mapping should not be changed
1155
(\fIset\fP is padded to six characters internally by appending '.'
1156
chars). New windows have "BBBB02" as default charset, unless a
1157
\*Qencoding\*U command is active.
1159
The current setting can be viewed with the \*Qinfo\*U command.
1165
Change the \fIcurrent directory\fP of
1167
to the specified directory or, if called without an argument,
1168
to your home directory (the value of the environment variable $HOME).
1169
All windows that are created by means of the \*Qscreen\*U command
1170
from within \*Q.screenrc\*U or by means of \*QC-a : screen ...\*U
1171
or \*QC-a c\*U use this as their default directory.
1172
Without a chdir command, this would be the directory from which
1175
Hardcopy and log files are always written to the \fIwindow's\fP default
1176
directory, \fInot\fP the current directory of the process running in the
1178
You can use this command multiple times in your .screenrc to start various
1179
windows in different default directories, but the last chdir value will
1180
affect all the windows you create interactively.
1185
Clears the current window and saves its image to the scrollback buffer.
1191
Allows you to enter \*Q.screenrc\*U command lines. Useful
1192
for on-the-fly modification of key bindings,
1193
specific window creation and changing settings. Note that the \*Qset\*U
1194
keyword no longer exists! Usually commands affect the current window rather
1195
than default settings for future windows. Change defaults with commands
1196
starting with 'def...'.
1198
If you consider this as the `Ex command mode' of
1200
you may regard \*QC-a esc\*U (copy mode) as its `Vi command mode'.
1207
This command has the same effect as typing the screen escape
1208
character (^A). It is probably only useful for key bindings.
1209
If the \*Q-c\*U option is given, select the specified command
1210
class. See also \*Qbind\*U and \*Qbindkey\*U.
1213
.BR "compacthist " [ on | off ]
1215
This tells screen whether to suppress trailing blank lines when
1216
scrolling up text into the history buffer.
1219
.BR "console " [ on | off ]
1221
Grabs or un-grabs the machines console output to a window.
1223
Only the owner of /dev/console can grab the console output.
1224
This command is only available if the machine supports the ioctl TIOCCONS.
1229
Enter copy/scrollback mode. This allows you to copy text from the current
1230
window and its history into the paste buffer. In this mode a vi-like
1231
`full screen editor' is active:
1233
.IR "Movement keys" :
1237
\fBh\fP, \fBj\fP, \fBk\fP, \fBl\fP move the cursor line by line or
1241
\fB0\fP, \fB^\fP and \fB$\fP move to the leftmost column, to the first or last
1242
non-whitespace character on the line.
1245
\fBH\fP, \fBM\fP and \fBL\fP move the cursor to the leftmost column
1246
of the top, center or bottom line of the window.
1249
\fB+\fP and \fB\-\fP positions one line up and down.
1252
\fBG\fP moves to the specified absolute line (default: end of buffer).
1255
\fB|\fP moves to the specified absolute column.
1258
\fBw\fP, \fBb\fP, \fBe\fP move the cursor word by word.
1261
\fBB\fP, \fBE\fP move the cursor WORD by WORD (as in vi).
1264
\fBC-u\fP and \fBC-d\fP scroll the display up/down by the specified amount of
1265
lines while preserving the cursor position. (Default: half screen-full).
1268
\fBC-b\fP and \fBC-f\fP scroll the display up/down a full screen.
1271
\fBg\fP moves to the beginning of the buffer.
1274
\fB%\fP jumps to the specified percentage of the buffer.
1280
Emacs style movement keys can be customized by a .screenrc command.
1281
(E.\|g. markkeys "h=^B:l=^F:$=^E") There is no simple method for a full
1282
emacs-style keymap, as this involves multi-character codes.
1288
The copy range is specified by setting two marks. The text between these marks
1289
will be highlighted. Press
1292
\fBspace\fP to set the first or second mark
1296
\fBY\fP and \fBy\fP used to mark one whole line or to mark from
1300
\fBW\fP marks exactly one word.
1303
.IR "Repeat count" :
1305
Any of these commands can be prefixed with a repeat count number by pressing
1309
\fB0\fP..\fB9\fP which
1310
is taken as a repeat count.
1312
Example: \*QC-a C-[ H 10 j 5 Y\*U will copy lines
1313
11 to 15 into the paste buffer.
1318
\fB/\fP \fIVi\fP-like search forward.
1320
\fB?\fP \fIVi\fP-like search backward.
1322
\fBC-a s\fP \fIEmacs\fP style incremental search forward.
1324
\fBC-r\fP \fIEmacs\fP style reverse i-search.
1328
There are however some keys that act differently than in
1331
does not allow one to yank rectangular blocks of text, but
1336
\fBc\fP or \fBC\fP to set the left or right margin respectively. If no repeat count is
1337
given, both default to the current cursor position.
1339
Example: Try this on a rather full text screen:
1340
\*QC-a [ M 20 l SPACE c 10 l 5 j C SPACE\*U.
1342
This moves one to the middle line of the screen, moves in 20 columns left,
1343
marks the beginning of the paste buffer, sets the left column, moves 5 columns
1344
down, sets the right column, and then marks the end of
1345
the paste buffer. Now try:
1347
\*QC-a [ M 20 l SPACE 10 l 5 j SPACE\*U
1349
and notice the difference in the amount of text copied.
1352
\fBJ\fP joins lines. It toggles between 4 modes: lines separated by a
1353
newline character (012), lines glued seamless, lines separated by a single
1354
whitespace and comma separated lines. Note that you can prepend the newline
1355
character with a carriage return character, by issuing a \*Qcrlf on\*U.
1358
\fBv\fP is for all the
1360
users with \*Q:set numbers\*U \- it toggles the left margin between column 9
1364
\fBa\fP before the final space key to toggle in append mode. Thus
1365
the contents of the paste buffer will not be overwritten, but is appended to.
1368
\fBA\fP toggles in append mode and sets a (second) mark.
1371
\fB>\fP sets the (second) mark and writes the contents of the paste buffer to
1372
the screen-exchange file (/tmp/screen-exchange per default) once copy-mode is
1375
This example demonstrates how to dump the whole scrollback buffer
1376
to that file: \*QC-A [ g SPACE G $ >\*U.
1379
\fBC-g\fP gives information about the current line and column.
1382
\fBx\fP exchanges the first mark and the current cursor position. You
1383
can use this to adjust an already placed mark.
1386
\fB@\fP does nothing. Does not even exit copy mode.
1389
All keys not described here exit copy mode.
1396
No longer exists, use \*Qreadreg\*U instead.
1399
.BR "crlf " [ on | off ]
1401
This affects the copying of text regions with the `C-a [' command. If it is set
1402
to `on', lines will be separated by the two character sequence `CR' - `LF'.
1403
Otherwise (default) only `LF' is used.
1404
When no parameter is given, the state is toggled.
1407
.BR "debug on" | off
1409
Turns runtime debugging on or off. If
1411
has been compiled with option -DDEBUG debugging available and is turned on per
1412
default. Note that this command only affects debugging output from the main
1413
\*QSCREEN\*U process correctly. Debug output from attacher processes can only
1414
be turned off once and forever.
1417
.BR "defc1 on" | off
1419
Same as the \fBc1\fP command except that the default setting for new
1420
windows is changed. Initial setting is `on'.
1423
.BR "defautonuke on" | off
1425
Same as the \fBautonuke\fP command except that the default setting for new displays is changed. Initial setting is `off'.
1426
Note that you can use the special `AN' terminal capability if you
1427
want to have a dependency on the terminal type.
1430
.BR "defbce on" | off
1432
Same as the \fBbce\fP command except that the default setting for new
1433
windows is changed. Initial setting is `off'.
1437
.RI [ tcsendbreak | TIOCSBRK
1440
Choose one of the available methods of generating a break signal for
1441
terminal devices. The preferred methods are
1442
.IR tcsendbreak " and " TIOCSBRK .
1447
session for the duration
1448
of the break, but it may be the only way to generate long breaks.
1449
.IR Tcsendbreak " and " TIOCSBRK
1450
may or may not produce long breaks with spikes (e.g. 4 per
1451
second). This is not only system dependant, this also differs between
1452
serial board drivers.
1453
Calling \*Qdefbreaktype\*U with no parameter displays the current setting.
1456
.BR "defcharset " [ \fIset ]
1458
Like the \fBcharset\fP command except that the default setting for
1459
new windows is changed. Shows current default if called without
1465
Set the default command characters. This is equivalent to the
1466
\*Qescape\*U except that it is useful multiuser sessions only. In a
1467
multiuser session \*Qescape\*U changes the command character of the
1468
calling user, where \*Qdefescape\*U changes the default command
1469
characters for users that will be added later.
1472
.BR "defflow on" | off | auto
1475
Same as the \fBflow\fP command except that the default setting for new windows
1476
is changed. Initial setting is `auto'.
1477
Specifying \*Qdefflow auto interrupt\*U is the same as the command-line options
1483
.BR "defgr on" | off
1485
Same as the \fBgr\fP command except that the default setting for new
1486
windows is changed. Initial setting is `off'.
1489
.BR "defhstatus " [ \fIstatus ]
1491
The hardstatus line that all new windows will get is set to
1493
This command is useful to make the hardstatus of every window
1494
display the window number or title or the like.
1496
may contain the same directives as in the window messages, but
1497
the directive escape character is '^E' (octal 005) instead of '%'.
1498
This was done to make a misinterpretation of program generated
1499
hardstatus lines impossible.
1502
is omitted, the current default string is displayed.
1503
Per default the hardstatus line of new windows is empty.
1506
.BI "defencoding " enc
1508
Same as the \fBencoding\fP command except that the default setting for new
1509
windows is changed. Initial setting is the encoding taken from the
1513
.BR "deflog on" | off
1515
Same as the \fBlog\fP command except that the default setting for new windows
1516
is changed. Initial setting is `off'.
1519
.BR "deflogin on" | off
1521
Same as the \fBlogin\fP command except that the default setting for new windows
1522
is changed. This is initialized with `on' as distributed (see config.h.in).
1527
The mode of each newly allocated pseudo-tty is set to \fImode\fP.
1528
\fIMode\fP is an octal number.
1529
When no \*Qdefmode\*U command is given, mode 0622 is used.
1532
.BR "defmonitor on" | off
1534
Same as the \fBmonitor\fP command except that the default setting for new
1535
windows is changed. Initial setting is `off'.
1539
.BR on | off | \fInumsecs
1541
Same as the \fBnonblock\fP command except that the default setting for
1542
displays is changed. Initial setting is `off'.
1545
.BI "defobuflimit " limit
1547
Same as the \fBobuflimit\fP command except that the default setting for new displays is changed. Initial setting is 256 bytes.
1548
Note that you can use the special 'OL' terminal capability if you
1549
want to have a dependency on the terminal type.
1552
.BI "defscrollback " num
1554
Same as the \fBscrollback\fP command except that the default setting for new
1555
windows is changed. Initial setting is 100.
1558
.BI "defshell " command
1560
Synonym to the \fBshell\fP command. See there.
1563
.BR "defsilence on" | off
1565
Same as the \fBsilence\fP command except that the default setting for new
1566
windows is changed. Initial setting is `off'.
1569
.BI "defslowpaste " msec"
1571
Same as the \fBslowpaste\fP command except that the default setting for new
1572
windows is changed. Initial setting is 0 milliseconds, meaning `off'.
1575
.BR "defutf8 on" | off
1577
Same as the \fButf8\fP command except that the default setting for new
1578
windows is changed. Initial setting is `on' if screen was started with
1579
\*Q-U\*U, otherwise `off'.
1582
.BR "defwrap on" | off
1584
Same as the \fBwrap\fP command except that the default setting for new
1585
windows is changed. Initially line-wrap is on and can be toggled with the
1586
\*Qwrap\*U command (\*QC-a r\*U) or by means of "C-a : wrap on|off".
1589
.BR "defwritelock on" | off | auto
1591
Same as the \fBwritelock\fP command except that the default setting for new
1592
windows is changed. Initially writelocks will off.
1595
.BR "defzombie " [\fIkeys\fP]
1597
Synonym to the \fBzombie\fP command. Both currently change the default.
1606
session (disconnect it from the terminal and put it into the background).
1607
This returns you to the shell where you invoked
1611
can be resumed by invoking
1615
option (see also section \*QCOMMAND-LINE OPTIONS\*U). The
1617
option tells screen to immediately close the connection to the
1618
terminal (\*Qhangup\*U).
1623
Show what screen thinks about your terminal. Useful if you want to know
1624
why features like color or the alternate charset don't work.
1629
Shows a tabular listing of all currently connected user front-ends (displays).
1630
This is most useful for multiuser sessions.
1633
.BR "digraph " [ \fIpreset ]
1635
This command prompts the user for a digraph sequence. The next
1636
two characters typed are looked up in a builtin table and the
1637
resulting character is inserted in the input stream. For example,
1638
if the user enters 'a"', an a-umlaut will be inserted. If the
1639
first character entered is a 0 (zero),
1641
will treat the following characters (up to three) as an octal
1642
number instead. The optional argument
1644
is treated as user input, thus one can create an \*Qumlaut\*U key.
1645
For example the command "bindkey ^K digraph '"'" enables the user
1646
to generate an a-umlaut by typing CTRL-K a.
1651
Write the termcap entry for the virtual terminal optimized for the currently
1652
active window to the file \*Q.termcap\*U in the user's
1653
\*Q$HOME/.screen\*U directory (or wherever
1655
stores its sockets. See the \*QFILES\*U section below).
1656
This termcap entry is identical to the value of the environment variable
1657
$TERMCAP that is set up by
1659
for each window. For terminfo based systems you will need to run a converter
1662
and then compile the entry with
1669
The echo command may be used to annoy
1671
users with a 'message of the
1672
day'. Typically installed in a global /local/etc/screenrc.
1673
The option \*Q-n\*U may be used to suppress the line feed.
1674
See also \*Qsleep\*U.
1675
Echo is also useful for online checking of environment variables.
1683
how to interpret the input/output. The first argument
1684
sets the encoding of the current window. Each window can emulate
1685
a different encoding. The optional second parameter overwrites
1686
the encoding of the connected terminal. It should never be
1687
needed as screen uses the locale setting to detect the encoding.
1688
There is also a way to select a terminal encoding depending on
1689
the terminal type by using the \*QKJ\*U termcap entry.
1691
Supported encodings are eucJP, SJIS, eucKR, eucCN, Big5, GBK, KOI8-R,
1692
CP1251, UTF-8, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6,
1693
ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-10, ISO8859-15, jis.
1695
See also \*Qdefencoding\*U, which changes the default setting of a new
1701
Set the command character to \fIx\fP and the character generating a literal
1702
command character (by triggering the \*Qmeta\*U command) to \fIy\fP (similar
1704
Each argument is either a single character, a two-character sequence
1705
of the form \*Q^x\*U (meaning \*QC-x\*U), a backslash followed by an octal
1706
number (specifying the ASCII code of the character), or a backslash followed
1707
by a second character, such as \*Q\e^\*U or \*Q\e\e\*U.
1708
The default is \*Q^Aa\*U.
1716
Parses and executes each argument as separate command.
1721
.IR "newcommand " [ "args ..." ]]
1723
Run a unix subprocess (specified by an executable path \fInewcommand\fP and its
1724
optional arguments) in the current window. The flow of data between
1725
newcommands stdin/stdout/stderr, the process originally started in the window
1726
(let us call it "application-process") and screen itself (window) is
1727
controlled by the filedescriptor pattern fdpat.
1728
This pattern is basically a three character sequence representing stdin, stdout
1729
and stderr of newcommand. A dot (.) connects the file descriptor
1732
An exclamation mark (!) causes the file
1733
descriptor to be connected to the application-process. A colon (:) combines
1735
User input will go to newcommand unless newcommand receives the
1736
application-process'
1737
output (fdpats first character is `!' or `:') or a pipe symbol (|) is added
1738
(as a fourth character) to the end of fdpat.
1740
Invoking `exec' without arguments shows name and arguments of the currently
1741
running subprocess in this window. Only one subprocess a time can be running
1744
When a subprocess is running the `kill' command will affect it instead of the
1747
Refer to the postscript file `doc/fdpat.ps' for a confusing illustration
1748
of all 21 possible combinations. Each drawing shows the digits 2,1,0
1749
representing the three file descriptors of newcommand. The box marked
1750
`W' is the usual pty that has the application-process on its slave side.
1751
The box marked `P' is the secondary pty that now has
1757
Whitespace between the word `exec' and fdpat and the command
1758
can be omitted. Trailing dots and a fdpat consisting only of dots can be
1759
omitted. A simple `|' is synonymous for the pattern `!..|'; the word exec can
1760
be omitted here and can always be replaced by `!'.
1770
Creates another shell in the same window, while the original shell is still
1771
running. Output of both shells is displayed and user input is sent to the new
1780
Set the speed of the window's tty. If your stty command operates on stdout,
1781
then add another `!'.
1787
This adds a pager to the window output. The special character `|' is needed to
1788
give the user control over the pager although it gets its input from the
1789
window's process. This works, because
1791
listens on stderr (a behavior that
1793
would not expect without the `|')
1794
when its stdin is not a tty.
1796
versions newer than 177 fail miserably here; good old
1800
!:sed -n s/.*Error.*/\e007/p
1802
Sends window output to both, the user and the sed command. The sed inserts an
1803
additional bell character (oct. 007) to the window output seen by
1805
This will cause "Bell in window x" messages, whenever the string "Error"
1806
appears in the window.
1811
Change the window size to the size of the current region. This
1812
command is needed because screen doesn't adapt the window size
1813
automatically if the window is displayed more than once.
1817
.RB [ on | off | "auto\fR]\fP"
1819
Sets the flow-control mode for this window.
1820
Without parameters it cycles the current window's flow-control setting from
1821
"automatic" to "on" to "off".
1822
See the discussion on \*QFLOW-CONTROL\*U later on in this document for full
1823
details and note, that this is subject to change in future releases.
1824
Default is set by `defflow'.
1827
.BR "focus " [ up | down | top | bottom ]
1829
Move the input focus to the next region. This is done in a cyclic
1830
way so that the top region is selected after the bottom one. If
1831
no subcommand is given it defaults to `down'. `up' cycles in the
1832
opposite order, `top' and `bottom' go to the top and bottom
1833
region respectively. Useful bindings are (j and k as in vi)
1842
.BR "gr " [ on | off ]
1844
Turn GR charset switching on/off. Whenever screen sees an input
1845
character with the 8th bit set, it will use the charset stored in the
1846
GR slot and print the character with the 8th bit stripped. The
1847
default (see also \*Qdefgr\*U) is not to process GR switching because
1848
otherwise the ISO88591 charset would not work.
1855
Writes out the currently displayed image to the file \fIfile\fP,
1856
or, if no filename is specified, to \fIhardcopy.n\fP in the
1857
default directory, where \fIn\fP is the number of the current window.
1858
This either appends or overwrites the file if it exists. See below.
1859
If the option \fB-h\fP is specified, dump also the contents of the
1863
.BR "hardcopy_append on" | off
1867
will append to the "hardcopy.n" files created by the command \*QC-a h\*U,
1868
otherwise these files are overwritten each time.
1872
.BI "hardcopydir "directory
1874
Defines a directory where hardcopy files will be placed. If unset, hardcopys
1877
current working directory.
1880
.BR "hardstatus " [ on | off ]
1882
.BR "hardstatus \fR[\fBalways\fR]\fBlastline" | message | ignore
1885
.B "hardstatus string"
1888
This command configures the use and emulation of the terminal's
1889
hardstatus line. The first form
1892
will use the hardware status line to display messages. If the
1893
flag is set to `off', these messages
1894
are overlaid in reverse video mode at the display line. The default
1897
The second form tells
1899
what to do if the terminal doesn't
1900
have a hardstatus line (i.e. the termcap/terminfo capabilities
1901
"hs", "ts", "fs" and "ds" are not set). If the type
1902
\*Qlastline\*U is used,
1904
will reserve the last line of the
1906
the hardstatus. \*Qmessage\*U uses
1908
message mechanism and
1911
never to display the hardstatus.
1912
If you prepend the word \*Qalways\*U to the type (e.g., \*Qalwayslastline\*U),
1914
will use the type even if the terminal supports a hardstatus.
1916
The third form specifies the contents of the hardstatus line. '%h' is
1917
used as default string, i.e. the stored hardstatus of the current
1918
window (settable via \*QESC]0;<string>^G\*U or \*QESC_<string>ESC\e\*U)
1919
is displayed. You can customize this to any string you like including
1920
the escapes from the \*QSTRING ESCAPES\*U chapter. If you leave out
1923
the current string is displayed.
1925
You can mix the second and third form by providing the string as
1926
additional argument.
1931
.RI [ lines " [" cols ]]
1933
Set the display height to a specified number of lines. When no argument
1934
is given it toggles between 24 and 42 lines display. You can also
1935
specify a width if you want to change both values.
1938
option tells screen to leave the display size unchanged and just set
1948
Not really a online help, but
1951
showing you all the key bindings.
1952
The first pages list all the internal commands followed by their current
1954
Subsequent pages will display the custom commands, one command per key.
1955
Press space when you're done reading each page, or return to exit early.
1956
All other characters are ignored. If the \*Q-c\*U option is given,
1957
display all bound commands for the specified command class.
1958
See also \*QDEFAULT KEY BINDINGS\*U section.
1963
Usually users work with a shell that allows easy access to previous commands.
1964
For example csh has the command \*Q!!\*U to repeat the last command executed.
1966
allows you to have a primitive way of re-calling \*Qthe command that
1967
started ...\*U: You just type the first letter of that command, then hit
1970
tries to find a previous line that matches with the `prompt character'
1971
to the left of the cursor. This line is pasted into this window's input queue.
1972
Thus you have a crude command history (made up by the visible window and its
1976
.BI "hstatus " status
1978
Change the window's hardstatus line to the string \fIstatus\fP.
1985
Sets a command that is run after the specified number of seconds
1986
inactivity is reached. This command will normally be the \*Qblanker\*U
1987
command to create a screen blanker, but it can be any screen command.
1988
If no command is specified, only the timeout is set. A timeout of
1989
zero (ot the special timeout \fBoff\fP) disables the timer.
1990
If no arguments are given, the current settings are displayed.
1993
.BR "ignorecase " [ on | off ]
1995
Tell screen to ignore the case of characters in searches. Default is
2001
Uses the message line to display some information about the current window:
2002
the cursor position in the form \*Q(column,row)\*U starting with \*Q(1,1)\*U,
2003
the terminal width and height plus the size of the scrollback buffer in lines,
2004
like in \*Q(80,24)+50\*U, the current state of window XON/XOFF flow control
2005
is shown like this (See also section FLOW CONTROL):
2008
+flow automatic flow control, currently on.
2009
-flow automatic flow control, currently off.
2010
+(+)flow flow control enabled. Agrees with automatic control.
2011
-(+)flow flow control disabled. Disagrees with automatic control.
2012
+(-)flow flow control enabled. Disagrees with automatic control.
2013
-(-)flow flow control disabled. Agrees with automatic control.
2016
The current line wrap setting (`+wrap' indicates enabled, `\-wrap' not) is
2017
also shown. The flags `ins', `org', `app', `log', `mon' or `nored' are
2018
displayed when the window is in insert mode, origin mode,
2019
application-keypad mode, has output logging,
2020
activity monitoring or partial redraw enabled.
2022
The currently active character set (\fIG0\fP, \fIG1\fP, \fIG2\fP,
2023
or \fIG3\fP) and in square brackets the terminal character sets that are
2024
currently designated as \fIG0\fP through \fIG3\fP is shown. If the window
2025
is in UTF-8 mode, the string \*QUTF-8\*U is shown instead.
2027
Additional modes depending on the type of the window are displayed at the end of the status line (See also chapter \*QWINDOW TYPES\*U).
2029
If the state machine of the terminal emulator is in a non-default state,
2030
the info line is started with a string identifying the current state.
2032
For system information use the \*Qtime\*U command.
2035
.BR ins_reg " [" \fIkey ]
2037
No longer exists, use \*Qpaste\*U instead.
2042
Kill current window.
2044
If there is an `exec' command running then it is killed. Otherwise the process
2045
(shell) running in the window receives a HANGUP condition,
2046
the window structure is removed and
2048
(your display) switches to another
2049
window. When the last window is destroyed,
2054
switches to the previously displayed window.
2058
users should keep this command in mind, when killing a line.
2059
It is recommended not to use \*QC-a\*U as the
2061
escape key or to rebind kill to \*QC-a K\*U.
2066
Redisplay the last contents of the message/status line.
2067
Useful if you're typing when a message appears, because the message goes
2068
away when you press a key (unless your terminal has a hardware status line).
2069
Refer to the commands \*Qmsgwait\*U and \*Qmsgminwait\*U for fine tuning.
2074
Display the disclaimer page. This is done whenever
2076
is started without options, which should be often enough. See also
2077
the \*Qstartup_message\*U command.
2083
Call a screenlock program (/local/bin/lck or /usr/bin/lock or a builtin if no
2084
other is available). Screen does not accept any command keys until this program
2085
terminates. Meanwhile processes in the windows may continue, as the windows
2086
are in the `detached' state. The screenlock program may be changed through the
2087
environment variable $LOCKPRG (which must be set in the shell from which
2089
is started) and is executed with the user's uid and gid.
2092
When you leave other shells unlocked and you have no password set on
2094
the lock is void: One could easily re-attach from an unlocked
2095
shell. This feature should rather be called `lockterminal'.
2098
.BR "log " [ on | off ]
2100
Start/stop writing output of the current window to a file
2101
\*Qscreenlog.\fIn\fP\*U in the window's default directory, where \fIn\fP
2102
is the number of the current window. This filename can be changed with
2103
the `logfile' command. If no parameter is given, the state
2104
of logging is toggled. The session log is appended to the previous contents
2105
of the file if it already exists. The current contents and the contents
2106
of the scrollback history are not included in the session log.
2110
.BI "logfile " filename
2112
.BI "logfile flush " secs
2114
Defines the name the logfiles will get. The default is
2115
\*Qscreenlog.%n\*U. The second form changes the number of seconds
2117
will wait before flushing the logfile buffer to the file-system. The
2118
default value is 10 seconds.
2121
.BR "login " [ on | off ]
2123
Adds or removes the entry in the utmp database file for the current window.
2124
This controls if the window is `logged in'.
2125
When no parameter is given, the login state of the window is toggled.
2126
Additionally to that toggle, it is convenient having a `log in' and a `log out'
2127
key. E.\|g. `bind I login on' and `bind O login off' will map these
2128
keys to be C-a I and C-a O.
2129
The default setting (in config.h.in) should be \*Qon\*U for a
2131
that runs under suid-root.
2132
Use the \*Qdeflogin\*U command to change the default login state for new
2133
windows. Both commands are only present when
2135
has been compiled with utmp support.
2138
.BR "logtstamp " [ on | off ]
2140
.B "logtstamp after"
2143
.B "logtstamp string"
2146
This command controls logfile time-stamp mechanism of
2149
time-stamps are turned \*Qon\*U,
2151
adds a string containing
2152
the current time to the logfile after two minutes of inactivity.
2153
When output continues and more than another two minutes have passed,
2154
a second time-stamp is added to document the restart of the
2155
output. You can change this timeout with the second form
2156
of the command. The third form is used for customizing the time-stamp
2157
string (`-- %n:%t -- time-stamp -- %M/%d/%y %c:%s --\\n' by
2165
that the next input character should only be looked up
2166
in the default bindkey table. See also \*Qbindkey\*U.
2171
Like mapdefault, but don't even look in the default bindkey table.
2177
Set the inter-character timer for input sequence detection to a timeout
2180
ms. The default timeout is 300ms. Maptimeout with no arguments shows
2181
the current setting.
2182
See also \*Qbindkey\*U.
2185
.BI "markkeys " string
2187
This is a method of changing the keymap used for copy/history mode.
2188
The string is made up of \fIoldchar\fP=\fInewchar\fP pairs which are
2189
separated by `:'. Example: The string \*QB=^B:F=^F\*U will change the
2190
keys `C-b' and `C-f' to the vi style binding (scroll up/down fill page).
2191
This happens to be the default binding for `B' and `F'.
2192
The command \*Qmarkkeys h=^B:l=^F:$=^E\*U would set the mode for an emacs-style
2194
If your terminal sends characters, that cause you to abort copy mode,
2195
then this command may help by binding these characters to do nothing.
2196
The no-op character is `@' and is used like this: \*Qmarkkeys
2197
@=L=H\*U if you do not want to use the `H' or `L' commands any longer.
2198
As shown in this example, multiple keys can be assigned to one function in a
2204
Set the maximum window number screen will create. Doesn't affect
2205
already existing windows. The number may only be decreased.
2210
Insert the command character (C-a) in the current window's input stream.
2213
.BR "monitor " [ on | off ]
2215
Toggles activity monitoring of windows.
2216
When monitoring is turned on and an affected window is switched into the
2217
background, you will receive the activity notification message in the
2218
status line at the first sign of output and the window will also be marked
2219
with an `@' in the window-status display.
2220
Monitoring is initially off for all windows.
2223
.BI "msgminwait " sec
2227
delays a new message when one message is currently displayed.
2228
The default is 1 second.
2233
Defines the time a message is displayed if
2235
is not disturbed by other activity. The default is 5 seconds.
2238
.BR "multiuser on" | off
2240
Switch between singleuser and multiuser mode. Standard
2242
operation is singleuser. In multiuser mode the commands `acladd',
2243
`aclchg', `aclgrp' and `acldel'
2244
can be used to enable (and disable) other users accessing this
2249
.BR "nethack on" | off
2251
Changes the kind of error messages used by
2253
When you are familiar with the game \*Qnethack\*U, you may enjoy the
2254
nethack-style messages which will often blur the facts a little, but are
2255
much funnier to read. Anyway, standard messages often tend to be unclear as
2261
was compiled with the NETHACK flag defined. The
2262
default setting is then determined by the presence of the environment
2263
variable $NETHACKOPTIONS.
2268
Switch to the next window.
2269
This command can be used repeatedly to cycle through the list of windows.
2273
.RB [ on | off | \fInumsecs ]
2275
Tell screen how to deal with user interfaces (displays) that cease to
2276
accept output. This can happen if a user presses ^S or a TCP/modem
2277
connection gets cut but no hangup is received. If nonblock is
2278
\fBoff\fP (this is the default) screen waits until the display
2279
restarts to accept the output. If nonblock is \fBon\fP, screen
2280
waits until the timeout is reached (\fBon\fP is treated as 1s). If the
2281
display still doesn't receive characters, screen will consider
2282
it \*Qblocked\*U and stop sending characters to it. If at
2283
some time it restarts to accept characters, screen will unblock
2284
the display and redisplay the updated window contents.
2287
.BR "number " [ \fIn ]
2289
Change the current windows number. If the given number \fIn\fP is already
2290
used by another window, both windows exchange their numbers. If no argument is
2291
specified, the current window number (and title) is shown.
2294
.BR "obuflimit " [ \fIlimit ]
2296
If the output buffer contains more bytes than the specified limit, no
2298
read from the windows. The default value is 256. If you have a fast
2299
display (like xterm), you can set it to some higher value. If no
2300
argument is specified, the current setting is displayed.
2305
Kill all regions but the current one.
2310
Switch to the window displayed previously. If this window does no longer exist,
2311
\fIother\fP has the same effect as \fInext\fP.
2314
.BR "partial on" | off
2316
Defines whether the display should be refreshed (as with \fIredisplay\fP) after
2317
switching to the current window. This command only affects the current window.
2318
To immediately affect all windows use the \fIallpartial\fP command.
2319
Default is `off', of course. This default is fixed, as there is currently no
2320
\fIdefpartial\fP command.
2323
.BR "password " [ \fIcrypted_pw ]
2325
Present a crypted password in your \*Q.screenrc\*U file and
2328
for it, whenever someone attempts to resume a detached. This is useful
2329
if you have privileged programs running under
2331
and you want to protect your session from reattach attempts by another user
2332
masquerading as your uid (i.e. any superuser.)
2333
If no crypted password is specified,
2335
prompts twice for typing a
2336
password and places its encryption in the paste buffer.
2337
Default is `none', this disables password checking.
2341
.RI [ registers " [" dest_reg ]]
2343
Write the (concatenated) contents of the specified registers to the stdin queue
2344
of the current window. The register '.' is treated as the
2345
paste buffer. If no parameter is given the user is prompted for a single
2347
The paste buffer can be filled with the \fIcopy\fP, \fIhistory\fP and
2348
\fIreadbuf\fP commands.
2349
Other registers can be filled with the \fIregister\fP, \fIreadreg\fP and
2350
\fIpaste\fP commands.
2351
If \fIpaste\fP is called with a second argument, the contents of the specified
2352
registers is pasted into the named destination register rather than
2353
the window. If '.' is used as the second argument, the displays paste buffer is
2355
Note, that \*Qpaste\*U uses a wide variety of resources: Whenever a second
2356
argument is specified no current window is needed. When the source specification
2357
only contains registers (not the paste buffer) then there need not be a current
2358
display (terminal attached), as the registers are a global resource. The
2359
paste buffer exists once for every user.
2362
.BR "pastefont " [ on | off ]
2366
to include font information in the paste buffer. The
2367
default is not to do so. This command is especially useful for
2368
multi character fonts like kanji.
2373
Reopen the window's terminal line and send a break condition. See `break'.
2379
Mainly the same as \fIdetach\fP, but also sends a HANGUP signal to
2380
the parent process of
2382
CAUTION: This will result in a logout, when
2384
was started from your login shell.
2390
The \fImessage\fP specified here is output whenever a `Power detach' was
2391
performed. It may be used as a replacement for a logout message or to reset
2393
Without parameter, the current message is shown.
2398
Switch to the window with the next lower number.
2399
This command can be used repeatedly to cycle through the list of windows.
2407
is not an empty string,
2409
will not use the terminal capabilities
2410
\*Qpo/pf\*U if it detects an ansi print sequence
2412
but pipe the output into
2414
This should normally be a command like \*Qlpr\*U or
2415
\*Q'cat > /tmp/scrprint'\*U.
2417
without a command displays the current setting.
2420
ends printing and closes the pipe.
2422
Warning: Be careful with this command! If other user have write
2423
access to your terminal, they will be able to fire off print commands.
2426
.BR process " [" \fIkey ]
2428
Stuff the contents of the specified register into
2430
input queue. If no argument is given you are prompted for a
2431
register name. The text is parsed as if it had been typed in from the user's
2432
keyboard. This command can be used to bind multiple actions to a single key.
2437
Kill all windows and terminate
2439
Note that on VT100-style terminals the keys C-4 and C-\e are identical.
2440
This makes the default bindings dangerous:
2441
Be careful not to type C-a C-4 when selecting window no. 4.
2442
Use the empty bind command (as in \*Qbind '^\e'\*U) to remove a key binding.
2450
Reads the contents of the specified file into the paste buffer.
2451
You can tell screen the encoding of the file via the \fB-e\fP option.
2452
If no file is specified, the screen-exchange filename is used.
2453
See also \*Qbufferfile\*U command.
2459
.RI [ register " [" filename ]]
2461
Does one of two things, dependent on number of arguments: with zero or one
2462
arguments it it duplicates the paste buffer contents into the register specified
2463
or entered at the prompt. With two arguments it reads the contents of the named
2464
file into the register, just as \fIreadbuf\fP reads the screen-exchange file
2465
into the paste buffer.
2466
You can tell screen the encoding of the file via the \fB-e\fP option.
2467
The following example will paste the system's password file into
2470
window (using register p, where a copy remains):
2473
C-a : readreg p /etc/passwd
2480
Redisplay the current window. Needed to get a full redisplay when in
2481
partial redraw mode.
2489
Save the specified \fIstring\fP to the register \fIkey\fP.
2490
The encoding of the string can be specified via the \fB-e\fP option.
2491
See also the \*Qpaste\*U command.
2496
Kill the current region. This is a no-op if there is only one region.
2501
Unlinks the screen-exchange file used by the commands \*Qwritebuf\*U and
2507
Reset the virtual terminal to its \*Qpower-on\*U values. Useful when strange
2508
settings (like scroll regions or graphics character set) are left over from
2514
Resize the current region. The space will be removed from or added to
2515
the region below or if there's not enough space from the region above.
2517
resize +N increase current region height by N
2519
resize -N decrease current region height by N
2521
resize N set current region height to N
2523
resize = make all windows equally high
2525
resize max maximize current region height
2527
resize min minimize current region height
2531
.B "screen \fP[\fI-opts\fP] [\fIn\fP] [\fIcmd\fP [\fIargs\fP]]"
2533
Establish a new window.
2534
The flow-control options (\fB\-f\fP, \fB\-fn\fP and \fB\-fa\fP),
2535
title (a.\|k.\|a.) option (\fB\-t\fP), login options (\fB-l\fP and \fB-ln\fP)
2536
, terminal type option (\fB-T\fP <term>), the all-capability-flag (\fB-a\fP)
2537
and scrollback option (\fB-h\fP <num>) may be specified with each command.
2538
The option (\fB-M\fP) turns monitoring on for this window.
2539
The option (\fB-L\fP) turns output logging on for this window.
2540
If an optional number \fIn\fP in the range 0..9 is given, the window
2541
number \fIn\fP is assigned to the newly created window (or, if this
2542
number is already in-use, the next available number).
2543
If a command is specified after \*Qscreen\*U, this command (with the given
2544
arguments) is started in the window; otherwise, a shell is created.
2545
Thus, if your \*Q.screenrc\*U contains the lines
2548
# example for .screenrc:
2550
screen -fn -t foobar -L 2 telnet foobar
2554
creates a shell window (in window #1) and a window with a TELNET connection
2555
to the machine foobar (with no flow-control using the title \*Qfoobar\*U
2556
in window #2) and will write a logfile (\*Qscreenlog.2\*U) of the telnet
2558
Note, that unlike previous versions of
2560
no additional default window is created when \*Qscreen\*U commands are
2561
included in your \*Q.screenrc\*U file. When the initialization is completed,
2563
switches to the last window specified in your .screenrc file or, if none,
2564
opens a default window #0.
2566
Screen has built in some functionality of \*Qcu\*U and \*Qtelnet\*U.
2567
See also chapter \*QWINDOW TYPES\*U.
2570
.B "scrollback \fP\fInum\fP"
2572
Set the size of the scrollback buffer for the current windows to \fInum\fP
2573
lines. The default scrollback is 100 lines.
2574
See also the \*Qdefscrollback\*U command and use \*QC-a i\*U to view the
2578
.BR "select " [ \fIWindowID ]
2580
Switch to the window identified by \fIWindowID\fP.
2581
This can be a prefix of a window title (alphanumeric window name) or a
2583
The parameter is optional and if omitted, you get prompted for an identifier.
2584
When a new window is established, the first available number
2585
is assigned to this window.
2586
Thus, the first window can be activated by \*Qselect 0\*U.
2587
The number of windows is limited at compile-time by the MAXWIN
2588
configuration parameter.
2589
There are two special WindowIDs, \*Q-\*U selects the
2590
internal blank window and \*Q.\*U selects the current window. The
2591
latter is useful if used with screen's \*Q-X\*U option.
2594
.BR "sessionname " [ \fIname ]
2596
Rename the current session. Note, that for \*Qscreen -list\*U the
2597
name shows up with the process-id prepended. If the argument \*Qname\*U
2598
is omitted, the name of this session is displayed. Caution: The $STY
2599
environment variables still reflects the old name. This may result in
2601
The default is constructed from the tty and host names.
2605
.RI [ var " [" string ]]
2607
Set the environment variable \fIvar\fP to value \fIstring\fP.
2608
If only \fIvar\fP is specified, the user will be prompted to enter a value.
2609
If no parameters are specified, the user will be prompted for both variable
2610
and value. The environment is inherited by all subsequently forked shells.
2613
.BR "setsid " [ on | off ]
2615
Normally screen uses different sessions and process groups for
2616
the windows. If setsid is turned \fIoff\fP, this is not done
2617
anymore and all windows will be in the same process group as the
2618
screen backend process. This also breaks job-control, so be careful.
2619
The default is \fIon\fP, of course. This command is probably useful
2620
only in rare circumstances.
2623
.B "shell \fIcommand\fP"
2625
Set the command to be used to create a new shell.
2626
This overrides the value of the environment variable $SHELL.
2627
This is useful if you'd like to run a tty-enhancer which is expecting to
2628
execute the program specified in $SHELL. If the command begins with
2629
a '-' character, the shell will be started as a login-shell.
2632
.B "shelltitle \fItitle\fP"
2634
Set the title for all shells created during startup or by
2635
the C-A C-c command.
2636
For details about what a title is, see the discussion
2637
entitled \*QTITLES (naming windows)\*U.
2640
.BR "silence " [ on | off "|\fIsec\fP]"
2642
Toggles silence monitoring of windows.
2643
When silence is turned on and an affected window is switched into the
2644
background, you will receive the silence notification message in the
2645
status line after a specified period of inactivity (silence). The default
2646
timeout can be changed with the `silencewait' command or by specifying a
2647
number of seconds instead of `on' or `off'.
2648
Silence is initially off for all windows.
2651
.BI "silencewait " sec
2653
Define the time that all windows monitored for silence should wait before
2654
displaying a message. Default 30 seconds.
2657
.B "sleep \fP\fInum\fP"
2659
This command will pause the execution of a .screenrc file for \fInum\fP seconds.
2660
Keyboard activity will end the sleep.
2661
It may be used to give users a chance to read the messages output by \*Qecho\*U.
2664
.B "slowpaste \fImsec\fP"
2666
Define the speed at which text is inserted into the current window by the
2667
paste ("C-a ]") command.
2668
If the slowpaste value is nonzero text is written character by character.
2670
will make a pause of \fImsec\fP milliseconds after each single character write
2671
to allow the application to process its input. Only use slowpaste if your
2672
underlying system exposes flow control problems while pasting large amounts of
2678
Read and execute commands from file \fIfile\fP. Source commands may
2679
be nested to a maximum recursion level of ten. If file is not an
2680
absolute path and screen is already processing a source command, the
2681
parent directory of the running source command file is used to search
2682
for the new command file before screen's current directory.
2684
Note that termcap/terminfo/termcapinfo commands only work at
2685
startup and reattach time, so they must be reached via the
2686
default screenrc files to have an effect.
2690
.RB [ "\fIattr\fR " [ \fIcolor ]]
2694
does highlighting for text marking and printing messages.
2695
See the \*QSTRING ESCAPES\*U chapter for the syntax of the modifiers.
2696
The default is currently \*Q=s dd\*U (standout, default colors).
2701
Split the current region into two new ones. All regions on the
2702
display are resized to make room for the new region. The blank
2703
window is displayed on the new region. Use the \*Qremove\*U or the
2704
\*Qonly\*U command to delete regions.
2707
.B "startup_message on\fP|\fBoff"
2709
Select whether you want to see the copyright notice during startup.
2710
Default is `on', as you probably noticed.
2718
in the input buffer of the current window.
2719
This is like the \*Qpaste\*U command but with much less overhead.
2721
large buffers with the \*Qstuff\*U command. It is most useful for key
2722
bindings. See also \*Qbindkey\*U.
2726
.RB [ username " [" password
2729
Substitute the user of a display. The command prompts for all parameters that
2730
are omitted. If passwords are specified as parameters, they have to be
2731
specified un-crypted. The first password is matched against the systems
2732
passwd database, the second password is matched against the
2734
password as set with the commands \*Qacladd\*U or \*Qpassword\*U.
2735
\*QSu\*U may be useful for the
2737
administrator to test multiuser setups.
2738
.\" XXX removed in 3.8.0 XXX
2739
.\" but it is mainly used implicitly
2740
.\" by the \*Qconnect\*U command to identify users that access a remote session.
2741
When the identification fails, the user has access to the commands available
2744
These are \*Qdetach\*U, \*Qlicense\*U, \*Qversion\*U, \*Qhelp\*U and
2752
The windows are in the `detached' state, while
2754
is suspended. This feature relies on the shell being able to do job control.
2757
.B "term \fIterm\fP"
2759
In each window's environment
2761
opens, the $TERM variable is set to \*Qscreen\*U by default.
2762
But when no description for \*Qscreen\*U is installed in the local termcap
2763
or terminfo data base, you set $TERM to \- say \-
2764
\*Qvt100\*U. This won't do much harm, as
2766
is VT100/ANSI compatible.
2767
The use of the \*Qterm\*U command is discouraged for non-default purpose.
2768
That is, one may want to specify special $TERM settings (e.g. vt100) for the
2769
next \*Qscreen rlogin othermachine\*U command. Use the command \*Qscreen -T vt100
2770
rlogin othermachine\*U rather than setting and resetting the default.
2773
.BI termcap " term terminal-tweaks"
2774
.RI [ window-tweaks ]
2776
.BI terminfo " term terminal-tweaks"
2777
.RI [ window-tweaks ]
2779
.BI termcapinfo " term terminal-tweaks"
2780
.RI [ window-tweaks ]
2782
Use this command to modify your terminal's termcap entry without going
2783
through all the hassles involved in creating a custom termcap entry.
2784
Plus, you can optionally customize the termcap generated for the windows.
2785
You have to place these commands in one of the screenrc startup files, as
2786
they are meaningless once the terminal emulator is booted.
2788
If your system works uses the terminfo database rather than termcap,
2790
will understand the `terminfo' command, which has the same effects as the
2791
`termcap' command. Two separate commands are provided, as there are subtle
2792
syntactic differences, e.g. when parameter interpolation (using `%') is
2793
required. Note that termcap names of the capabilities have to be used
2794
with the `terminfo' command.
2796
In many cases, where the arguments are valid in both terminfo and termcap
2797
syntax, you can use the command `termcapinfo', which is just a shorthand
2798
for a pair of `termcap' and `terminfo' commands with identical arguments.
2800
The first argument specifies which terminal(s) should be affected by this
2802
You can specify multiple terminal names by separating them with `|'s.
2803
Use `*' to match all terminals and `vt*' to match all terminals that begin
2806
Each \fItweak\fP argument contains one or more termcap defines (separated
2807
by `:'s) to be inserted at the start of the appropriate termcap entry,
2808
enhancing it or overriding existing values.
2809
The first tweak modifies your terminal's termcap, and contains definitions
2810
that your terminal uses to perform certain functions.
2811
Specify a null string to leave this unchanged (e.\|g. '').
2812
The second (optional) tweak modifies all the window termcaps, and should
2813
contain definitions that
2815
understands (see the \*QVIRTUAL TERMINAL\*U
2820
termcap xterm* LP:hs@
2824
that all terminals that begin with `xterm' have firm auto-margins that
2825
allow the last position on the screen to be updated (LP), but they don't
2826
really have a status line (no 'hs' \- append `@' to turn entries off).
2827
Note that we assume `LP' for all terminal names that start with \*Qvt\*U,
2828
but only if you don't specify a termcap command for that terminal.
2832
termcap vt102|vt220 Z0=\eE[?3h:Z1=\eE[?3l
2834
Specifies the firm-margined `LP' capability for all terminals that begin with
2835
`vt', and the second line will also add the escape-sequences to switch
2836
into (Z0) and back out of (Z1) 132-character-per-line mode if this is
2838
(You must specify Z0 and Z1 in your termcap to use the width-changing
2841
termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4
2843
This leaves your vt100 termcap alone and adds the function key labels to
2844
each window's termcap entry.
2846
termcap h19|z19 am@:im=\eE@:ei=\eEO dc=\eE[P
2848
Takes a h19 or z19 termcap and turns off auto-margins (am@) and enables the
2849
insert mode (im) and end-insert (ei) capabilities (the `@' in the `im'
2850
string is after the `=', so it is part of the string).
2851
Having the `im' and `ei' definitions put into your terminal's termcap will
2854
to automatically advertise the character-insert capability in
2855
each window's termcap.
2856
Each window will also get the delete-character capability (dc) added to its
2859
will translate into a line-update for the terminal
2860
(we're pretending it doesn't support character deletion).
2862
If you would like to fully specify each window's termcap entry, you should
2863
instead set the $SCREENCAP variable prior to running
2865
See the discussion on the \*QVIRTUAL TERMINAL\*U in this manual, and the termcap(5)
2866
man page for more information on termcap definitions.
2872
Uses the message line to display the time of day, the host name, and the load
2873
averages over 1, 5, and 15 minutes (if this is available on your system).
2874
For window specific information use \*Qinfo\*U.
2876
If a string is specified, it changes the format of the time report like it is
2877
described in the \*QSTRING ESCAPES\*U chapter. Screen uses a default of
2878
"%c:%s %M %d %H%? %l%?".
2881
.BR "title " [ \fIwindowtitle ]
2883
Set the name of the current window to \fIwindowtitle\fP. If no name is
2886
prompts for one. This command was known as `aka' in previous
2892
Unset an environment variable.
2899
Change the encoding used in the current window. If utf8 is enabled, the
2900
strings sent to the window will be UTF-8 encoded and vice versa. Omitting the
2901
parameter toggles the setting. If a second parameter is given, the display's
2902
encoding is also changed (this should rather be done with screen's \*Q-U\*U
2904
See also \*Qdefutf8\*U, which changes the default setting of a new
2911
Sets the visual bell setting for this window. Omitting the parameter
2912
toggles the setting. If vbell is switched on, but your terminal does not
2913
support a visual bell, a `vbell-message' is displayed in the status line when
2914
the bell character (^G) is received.
2915
Visual bell support of a terminal is defined by the termcap variable `vb'
2916
(terminfo: 'flash').
2918
Per default, vbell is off, thus the audible bell is used.
2919
See also `bell_msg'.
2925
Sets the visual bell message. \fImessage\fP is printed to the status line if
2926
the window receives a bell character (^G), vbell is set to \*Qon\*U, but the
2927
terminal does not support a visual bell.
2928
The default message is \*QWuff, Wuff!!\*U.
2929
Without parameter, the current message is shown.
2932
.BI "vbellwait " sec
2934
Define a delay in seconds after each display of
2936
visual bell message. The default is 1 second.
2942
If verbose is switched on, the command name is echoed, whenever a window
2943
is created (or resurrected from zombie state). Default is off.
2944
Without parameter, the current setting is shown.
2949
Print the current version and the compile date in the status line.
2952
.BI "wall " "message"
2954
Write a message to all displays. The message will appear in the terminal's
2960
.RI [ cols " [" lines ]]
2962
Toggle the window width between 80 and 132 columns or set it to \fIcols\fP
2963
columns if an argument is specified.
2964
This requires a capable terminal and the termcap entries \*QZ0\*U and \*QZ1\*U.
2965
See the \*Qtermcap\*U command for more information. You can also specify
2966
a new height if you want to change both values.
2969
option tells screen to leave the display size unchanged and just set
2987
Display all windows in a table for visual window selection. The
2988
desired window can be selected via the standard movement keys (see
2989
the \*Qcopy\*U command) and activated via the return key.
2992
option is given, screen will switch to the blank window before
2993
presenting the list, so that the current window is also selectable.
2996
option changes the order of the windows, instead of sorting by
2997
window numbers screen uses its internal most-recently-used list.
2999
The table format can be changed with the \fBstring\fP and
3000
\fBtitle\fP option, the title is displayed as table heading, while
3001
the lines are made by using the string setting. The default
3002
setting is \*QNum Name%=Flags\*U for the title and \*Q%3n %t%=%f\*U
3004
See the \*QSTRING ESCAPES\*U chapter for more codes (e.g. color
3010
Uses the message line to display a list of all the windows.
3011
Each window is listed by number with the name of process that has been
3012
started in the window (or its title);
3013
the current window is marked with a `*';
3014
the previous window is marked with a `-';
3015
all the windows that are \*Qlogged in\*U are marked with a `$';
3016
a background window that has received a bell is marked with a `!';
3017
a background window that is being monitored and has had activity occur
3018
is marked with an `@';
3019
a window which has output logging turned on is marked with `(L)';
3020
windows occupied by other users are marked with `&';
3021
windows in the zombie state are marked with `Z'.
3022
If this list is too long to fit on the terminal's status line only the
3023
portion around the current window is displayed.
3026
.BR "wrap " [ on | off ]
3028
Sets the line-wrap setting for the current window.
3029
When line-wrap is on, the second consecutive printable character output at
3030
the last column of a line will wrap to the start of the following line.
3031
As an added feature, backspace (^H) will also wrap through the left margin
3032
to the previous line.
3041
Writes the contents of the paste buffer to the specified file, or the public accessible screen-exchange
3042
file if no filename is given. This is thought of as a primitive means of communication between
3044
users on the same host. If an encoding is specified the paste buffer
3045
is recoded on the fly to match the encoding.
3046
The filename can be set with the \fIbufferfile\fP
3047
command and defaults to \*Q/tmp/screen-exchange\*U.
3050
.BR "writelock " [ on | "off\fR|\fBauto\fR]"
3052
In addition to access control lists, not all users may be able to write to
3053
the same window at once. Per default, writelock is in `auto' mode and
3054
grants exclusive input permission to the user who is the first to switch
3055
to the particular window. When he leaves the window, other users may obtain
3056
the writelock (automatically). The writelock of the current window is disabled
3057
by the command \*Qwritelock off\*U. If the user issues the command
3058
\*Qwritelock on\*U he keeps the exclusive write permission while switching
3066
Insert a CTRL-s / CTRL-q character to the stdin queue of the
3071
.RB [ off\fR|\fPauto\fR|\fPcatch\fR|\fPpass ]
3079
Define zmodem support for screen. Screen understands two different
3080
modes when it detects a zmodem request: \*Qpass\*U and \*Qcatch\*U.
3081
If the mode is set to \*Qpass\*U, screen will relay all data
3082
to the attacher until the end of the transmission is reached.
3083
In \*Qcatch\*U mode screen acts as a zmodem endpoint and starts
3084
the corresponding rz/sz commands. If the mode is set to \*Qauto\*U,
3085
screen will use \*Qcatch\*U if the window is a tty (e.g. a serial line),
3086
otherwise it will use \*Qpass\*U.
3088
You can define the templates screen uses in \*Qcatch\*U mode
3089
via the second and the third form.
3091
Note also that this is an experimental feature.
3094
.BR "zombie " [\fIkeys\fP]
3096
.BR "defzombie " [\fIkeys\fP]
3100
windows are removed from the window list as soon as
3101
the windows process (e.g. shell) exits. When a string of two keys is
3102
specified to the zombie command, `dead' windows will remain in the list.
3103
The \fBkill\fP command may be used to remove such a window. Pressing the
3104
first key in the dead window has the same effect. When pressing the second
3107
will attempt to resurrect the window. The process that was
3108
initially running in the window will be launched again. Calling \fBzombie\fP
3109
without parameters will clear the zombie setting, thus making windows disappear
3110
when their process exits.
3112
As the zombie-setting is manipulated globally for all windows, this command
3113
should only be called \fBdefzombie\fP. Until we need this as a per window
3114
setting, the commands \fBzombie\fP and \fBdefzombie\fP are synonymous.
3116
.SH "THE MESSAGE LINE"
3118
displays informational messages and other diagnostics in a \fImessage line\fP.
3119
While this line is distributed to appear at the bottom of the screen,
3120
it can be defined to appear at the top of the screen during compilation.
3121
If your terminal has a status line defined in its termcap,
3123
will use this for displaying its messages, otherwise a line of the
3125
be temporarily overwritten and output will be momentarily interrupted. The
3126
message line is automatically removed after a few seconds delay, but it
3127
can also be removed early (on terminals without a status line) by beginning
3130
The message line facility can be used by an application running in
3131
the current window by means of the ANSI \fIPrivacy message\fP
3133
For instance, from within the shell, try something like:
3135
echo '<esc>^Hello world from window '$WINDOW'<esc>\e\e'
3137
where '<esc>' is an \fIescape\fP, '^' is a literal up-arrow,
3138
and '\e\e' turns into a single backslash.
3141
Screen provides three different window types. New windows are created with
3144
command (see also the entry in chapter \*QCUSTOMIZATION\*U). The first
3147
command defines which type of window is created. The different window types are
3148
all special cases of the normal type. They have been added in order
3151
to be used efficiently as a console multiplexer with 100 or more windows.
3154
The normal window contains a shell (default, if no parameter is given) or any
3155
other system command that could be executed from a shell (e.g.
3160
If a tty (character special device) name (e.g. \*Q/dev/ttya\*U)
3161
is specified as the first parameter, then the window is directly connected to
3163
This window type is similar to \*Qscreen cu -l /dev/ttya\*U.
3164
Read and write access is required on the device node, an exclusive open is
3165
attempted on the node to mark the connection line as busy.
3166
An optional parameter is allowed consisting of a comma separated list of flags
3167
in the notation used by stty(1):
3170
Usually 300, 1200, 9600 or 19200. This affects transmission as well as receive speed.
3172
Specify the transmission of eight (or seven) bits per byte.
3174
Enables (or disables) software flow-control (CTRL-S/CTRL-Q) for sending data.
3175
.IP "ixoff or -ixon"
3176
Enables (or disables) software flow-control for receiving data.
3177
.IP "istrip or -istrip"
3178
Clear (or keep) the eight bit in each received byte.
3180
You may want to specify as many of these options as applicable. Unspecified
3181
options cause the terminal driver to make up the parameter values of the
3182
connection. These values are system dependant and may be in defaults or values
3183
saved from a previous connection.
3185
For tty windows, the
3187
command shows some of the modem control lines
3188
in the status line. These may include `RTS', `CTS', 'DTR', `DSR', `CD' and more.
3189
This depends on the available ioctl()'s and system header files as well as the
3190
on the physical capabilities of the serial board.
3191
Signals that are logical low (inactive) have their name preceded by
3192
an exclamation mark (!), otherwise the signal is logical high (active).
3193
Signals not supported by the hardware but available to the ioctl() interface
3194
are usually shown low.
3196
When the CLOCAL status bit is true, the whole set of modem signals is placed
3197
inside curly braces ({ and }).
3198
When the CRTSCTS or TIOCSOFTCAR bit is set, the signals `CTS' or `CD'
3199
are shown in parenthesis, respectively.
3202
For tty windows, the command
3204
causes the Data transmission line (TxD) to go low for a specified period of
3205
time. This is expected to be interpreted as break signal on the other side.
3206
No data is sent and no modem control line is changed when a
3211
If the first parameter is \*Q//telnet\*U, the second parameter is expected to
3212
be a host name, and an optional third parameter may specify a TCP port number
3213
(default decimal 23). Screen will connect to a server listening on the remote
3214
host and use the telnet protocol to communicate with that server.
3217
For telnet windows, the command
3219
shows details about the connection in square brackets ([ and ]) at the end of
3223
BINARY. The connection is in binary mode.
3225
ECHO. Local echo is disabled.
3227
SGA. The connection is in `character mode' (default: `line mode').
3229
TTYPE. The terminal type has been requested by the remote host.
3230
Screen sends the name \*Qscreen\*U unless instructed otherwise (see also
3231
the command `term').
3233
NAWS. The remote site is notified about window size changes.
3235
LFLOW. The remote host will send flow control information.
3236
(Ignored at the moment.)
3238
Additional flags for debugging are x, t and n (XDISPLOC, TSPEED and
3241
For telnet windows, the command
3243
sends the telnet code IAC BREAK (decimal 243) to the remote host.
3246
This window type is only available if
3248
was compiled with the BUILTIN_TELNET option defined.
3252
.SH "STRING ESCAPES"
3253
Screen provides an escape mechanism to insert information like the
3254
current time into messages or file names. The escape character
3255
is '%' with one exception: inside of a window's hardstatus '^%' ('^E')
3258
Here is the full list of supported escapes:
3260
the escape character itself
3266
current time HH:MM in 24h format
3268
current time HH:MM in 12h format
3276
sets %? to true if the window has the focus
3278
hardstatus of the window
3280
hostname of the system
3282
current load of the system
3294
all other users on this window
3296
all window numbers and names. With '-' quailifier: up to the current
3297
window; with '+' qualifier: starting with the window after the current
3300
all window numbers and names except the current one
3302
last two digits of the year number
3306
the part to the next '%?' is displayed only if a '%' escape
3307
inside the part expands to a non-empty string
3311
pad the string to the display's width (like TeX's hfill). If a
3312
number is specified, pad to the percentage of the window's width.
3313
A '0' qualifier tells screen to treat the number as absolute position.
3314
You can specify to pad relative to the last absolute pad position
3315
by adding a '+' qualifier or to pad relative to the right margin
3316
by using '-'. The padding truncates the string if the specified
3317
position lies before the current position. Add the 'L' qualifier
3320
same as '%=' but just do truncation, do not fill with spaces
3322
mark the current text position for the next truncation. When
3323
screen needs to do truncation, it tries to do it in a way that
3324
the marked position gets moved to the specified percentage of
3325
the output area. (The area starts from the last absolute pad
3326
position and ends with the position specified by the truncation
3327
operator.) The 'L' qualifier tells screen to mark the truncated
3330
attribute/color modifier string terminated by the next \*Q}\*U
3332
Substitute with the output of a 'backtick' command. The length
3333
qualifier is misused to identify one of the commands.
3335
The 'c' and 'C' escape may be qualified with a '0' to make
3337
use zero instead of space as fill character. The '0' qualifier
3338
also makes the '=' escape use absolute positions. The 'n' and '='
3340
a length qualifier (e.g. '%3n'), 'D' and 'M' can be prefixed with 'L'
3341
to generate long names, 'w' and 'W' also show the window flags
3344
An attribute/color modifier is is used to change the attributes or the
3345
color settings. Its format
3346
is \*Q[attribute modifier] [color description]\*U. The attribute modifier
3347
must be prefixed by a change type indicator if it can be confused with
3348
a color desciption. The following change types are known:
3350
add the specified set to the current attributes
3352
remove the set from the current attributes
3354
invert the set in the current attributes
3356
change the current attributes to the specified set
3358
The attribute set can either be specified as a hexadecimal number or
3359
a combination of the following letters:
3375
Colors are coded either as a hexadecimal number or two letters specifying
3376
the desired background and foreground color (in that order). The following
3398
leave color unchanged
3401
The capitalized versions of the letter specify bright colors. You can also
3402
use the pseudo-color 'i' to set just the brightness and leave the color
3405
A one digit/letter color description is treated as foreground or
3406
background color dependant on the current attributes: if reverse mode is
3407
set, the background color is changed instead of the foreground color.
3408
If you don't like this, prefix the color with a \*Q.\*U. If you want
3409
the same behaviour for two-letter color descriptions, also prefix them
3412
As a special case, \*Q%{-}\*U restores the attributes and colors that
3413
were set before the last change was made (i.e. pops one level of the
3414
color-change stack).
3418
set color to bright green
3422
clear all attributes, write in default color on yellow background.
3423
.IP "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<"
3424
The available windows centered at the current window and truncated to
3425
the available width. The current window is displayed white on blue.
3426
This can be used with \*Qhardstatus alwayslastline\*U.
3427
.IP "%?%F%{.R.}%?%3n %t%? [%h]%?"
3428
The window number and title and the window's hardstatus, if one is set.
3429
Also use a red background if this is the active focus. Useful for
3430
\*Qcaption string\*U.
3432
Each window has a flow-control setting that determines how
3435
the XON and XOFF characters (and perhaps the interrupt character).
3436
When flow-control is turned off,
3438
ignores the XON and XOFF characters,
3439
which allows the user to send them to the current program by simply typing
3440
them (useful for the \fIemacs\fP editor, for instance).
3441
The trade-off is that it will take longer for output from a \*Qnormal\*U
3442
program to pause in response to an XOFF.
3443
With flow-control turned on, XON and XOFF characters are used to immediately
3444
pause the output of the current window.
3445
You can still send these characters to the current program, but you must use
3446
the appropriate two-character
3448
commands (typically \*QC-a q\*U (xon)
3449
and \*QC-a s\*U (xoff)).
3450
The xon/xoff commands are also useful for typing C-s and C-q past a terminal
3451
that intercepts these characters.
3453
Each window has an initial flow-control value set with either the
3455
option or the \*Qdefflow\*U .screenrc command. Per default the windows
3456
are set to automatic flow-switching.
3457
It can then be toggled between the three states 'fixed on', 'fixed off'
3458
and 'automatic' interactively with the \*Qflow\*U command bound to "C-a f".
3460
The automatic flow-switching mode deals with
3461
flow control using the TIOCPKT mode (like \*Qrlogin\*U does). If
3462
the tty driver does not support TIOCPKT,
3465
the right mode based on the current setting of the application
3466
keypad \- when it is enabled, flow-control is turned off and visa versa.
3467
Of course, you can still manipulate flow-control manually when needed.
3469
If you're running with flow-control enabled and find that pressing the
3470
interrupt key (usually C-c) does not interrupt the display until another
3471
6-8 lines have scrolled by, try running
3473
with the \*Qinterrupt\*U
3474
option (add the \*Qinterrupt\*U flag to the \*Qflow\*U command in
3475
your .screenrc, or use the
3477
command-line option).
3478
This causes the output that
3480
has accumulated from the interrupted program to be flushed.
3481
One disadvantage is that the virtual terminal's memory contains the
3482
non-flushed version of the output, which in rare cases can cause
3483
minor inaccuracies in the output.
3484
For example, if you switch screens and return, or update the screen
3485
with \*QC-a l\*U you would see the version of the output you would
3486
have gotten without \*Qinterrupt\*U being on.
3487
Also, you might need to turn off flow-control (or use auto-flow mode to turn
3488
it off automatically) when running a program that expects you to type the
3489
interrupt character as input, as it is possible to interrupt
3490
the output of the virtual terminal to your physical terminal when flow-control
3492
If this happens, a simple refresh of the screen with \*QC-a l\*U will
3494
Give each mode a try, and use whichever mode you find more comfortable.
3497
.SH "TITLES (naming windows)"
3498
You can customize each window's name in the window display (viewed with the
3499
\*Qwindows\*U command (C-a w)) by setting it with one of
3501
Normally the name displayed is the actual command name of the program
3502
created in the window.
3503
However, it is sometimes useful to distinguish various programs of the same
3504
name or to change the name on-the-fly to reflect the current state of
3507
The default name for all shell windows can be set with the \*Qshelltitle\*U
3508
command in the .screenrc file, while all other windows are created with
3509
a \*Qscreen\*U command and thus can have their name set with the
3512
Interactively, there is the title-string escape-sequence
3513
(<esc>k\fIname\fP<esc>\e) and the \*Qtitle\*U command (C-a A).
3514
The former can be output from an application to control the window's name
3515
under software control, and the latter will prompt for a name when typed.
3516
You can also bind pre-defined names to keys with the \*Qtitle\*U command
3517
to set things quickly without prompting.
3521
has a shell-specific heuristic that is enabled by setting the window's name
3522
to \*Q\fIsearch|name\fP\*U and arranging to have a null title escape-sequence
3523
output as a part of your prompt.
3524
The \fIsearch\fP portion specifies an end-of-prompt search string, while
3525
the \fIname\fP portion specifies the default shell name for the window.
3526
If the \fIname\fP ends in a `:'
3528
will add what it believes to be the current command running in the window
3529
to the end of the window's shell name (e.\|g. \*Q\fIname:cmd\fP\*U).
3530
Otherwise the current command name supersedes the shell name while it is
3533
Here's how it works: you must modify your shell prompt to output a null
3534
title-escape-sequence (<esc>k<esc>\e) as a part of your prompt.
3535
The last part of your prompt must be the same as the string you specified
3536
for the \fIsearch\fP portion of the title.
3537
Once this is set up,
3539
will use the title-escape-sequence to clear the previous command name and
3540
get ready for the next command.
3541
Then, when a newline is received from the shell, a search is made for the
3543
If found, it will grab the first word after the matched string and use it
3544
as the command name.
3545
If the command name begins with either '!', '%', or '^'
3547
will use the first word on the following line (if found) in preference to
3548
the just-found name.
3549
This helps csh users get better command names when using job control or
3550
history recall commands.
3552
Here's some .screenrc examples:
3554
screen -t top 2 nice top
3556
Adding this line to your .screenrc would start a nice-d version of the
3557
\*Qtop\*U command in window 2 named \*Qtop\*U rather than \*Qnice\*U.
3564
These commands would start a shell with the given shelltitle.
3565
The title specified is an auto-title that would expect the prompt and
3566
the typed command to look something like the following:
3568
/usr/joe/src/dir> trn
3570
(it looks after the '> ' for the command name).
3571
The window status would show the name \*Qtrn\*U while the command was
3572
running, and revert to \*Qcsh\*U upon completion.
3574
bind R screen -t '% |root:' su
3576
Having this command in your .screenrc would bind the key
3577
sequence \*QC-a R\*U to the \*Qsu\*U command and give it an
3578
auto-title name of \*Qroot:\*U.
3579
For this auto-title to work, the screen could look something
3587
Here the user typed the csh history command \*Q!em\*U which ran the
3588
previously entered \*Qemacs\*U command.
3589
The window status would show \*Qroot:emacs\*U during the execution
3590
of the command, and revert to simply \*Qroot:\*U at its completion.
3595
bind u title (unknown)
3598
The first binding doesn't have any arguments, so it would prompt you
3599
for a title. when you type \*QC-a o\*U.
3600
The second binding would clear an auto-title's current setting (C-a E).
3601
The third binding would set the current window's title to \*Q(unknown)\*U
3604
One thing to keep in mind when adding a null title-escape-sequence to
3605
your prompt is that some shells (like the csh) count all the non-control
3606
characters as part of the prompt's length.
3607
If these invisible characters aren't a multiple of 8 then backspacing over
3608
a tab will result in an incorrect display.
3609
One way to get around this is to use a prompt like this:
3611
set prompt='^[[0000m^[k^[\e% '
3613
The escape-sequence \*Q<esc>[0000m\*U not only normalizes the character
3614
attributes, but all the zeros round the length of the invisible characters
3616
Bash users will probably want to echo the escape sequence in the
3619
PROMPT_COMMAND='echo -n -e "\e033k\e033\e134"'
3621
(I used \*Q\134\*U to output a `\e' because of a bug in bash v1.04).
3624
.SH "THE VIRTUAL TERMINAL"
3627
session emulates a VT100 terminal, with some extra functions added. The
3628
VT100 emulator is hard-coded, no other terminal types can be emulated.
3632
tries to emulate as much of the VT100/ANSI standard
3633
as possible. But if your terminal lacks certain capabilities,
3634
the emulation may not be complete. In these cases
3636
has to tell the applications that some of the features
3637
are missing. This is no problem on machines using termcap,
3640
can use the $TERMCAP variable to
3641
customize the standard
3646
rlogin on another machine or your machine supports only
3647
terminfo this method fails. Because of this,
3649
offers a way to deal with these cases.
3650
Here is how it works:
3654
tries to figure out a terminal name for itself,
3656
for an entry named \*Qscreen.<term>\*U, where <term> is
3657
the contents of your $TERM variable.
3658
If no such entry exists,
3660
tries \*Qscreen\*U (or \*Qscreen-w\*U if the terminal is wide
3661
(132 cols or more)).
3662
If even this entry cannot be found, \*Qvt100\*U is used as a
3665
The idea is that if you have a terminal which doesn't
3666
support an important feature (e.g. delete char or clear to EOS)
3667
you can build a new termcap/terminfo entry for
3669
(named \*Qscreen.<dumbterm>\*U) in which this capability
3670
has been disabled. If this entry is installed on your
3671
machines you are able to do
3672
a rlogin and still keep the correct termcap/terminfo entry.
3673
The terminal name is put in the $TERM variable
3676
also sets the $TERMCAP variable reflecting the capabilities
3677
of the virtual terminal emulated. Notice that, however, on machines
3678
using the terminfo database this variable has no effect.
3679
Furthermore, the variable $WINDOW is set to the window number
3682
The actual set of capabilities supported by the virtual terminal
3683
depends on the capabilities supported by the physical terminal.
3684
If, for instance, the physical terminal does not support underscore mode,
3686
does not put the `us' and `ue' capabilities into the window's $TERMCAP
3687
variable, accordingly.
3688
However, a minimum number of capabilities must be supported by a
3689
terminal in order to run
3691
namely scrolling, clear screen, and direct cursor addressing
3694
does not run on hardcopy terminals or on terminals that over-strike).
3696
Also, you can customize the $TERMCAP value used by
3698
by using the \*Qtermcap\*U .screenrc command, or
3699
by defining the variable $SCREENCAP prior to startup.
3700
When the is latter defined, its value will be copied verbatim into each
3701
window's $TERMCAP variable.
3702
This can either be the full terminal definition, or a filename where the
3703
terminal \*Qscreen\*U (and/or \*Qscreen-w\*U) is defined.
3707
honors the \*Qterminfo\*U .screenrc command if the system uses the
3708
terminfo database rather than termcap.
3710
When the boolean `G0' capability is present in the termcap entry
3711
for the terminal on which
3713
has been called, the terminal emulation of
3715
supports multiple character sets.
3716
This allows an application to make use of, for instance,
3717
the VT100 graphics character set or national character sets.
3718
The following control functions from ISO 2022 are supported:
3719
\fIlock shift G0\fP (\fISI\fP), \fIlock shift G1\fP (\fISO\fP),
3720
\fIlock shift G2\fP, \fIlock shift G3\fP, \fIsingle shift G2\fP,
3721
and \fIsingle shift G3\fP.
3722
When a virtual terminal is created or reset, the ASCII character
3723
set is designated as \fIG0\fP through \fIG3\fP.
3724
When the `G0' capability is present,
3726
evaluates the capabilities
3727
`S0', `E0', and `C0' if present. `S0' is the sequence the terminal uses
3728
to enable and start the graphics character set rather than \fISI\fP.
3729
`E0' is the corresponding replacement for \fISO\fP. `C0' gives a character
3730
by character translation string that is used during semi-graphics mode. This
3731
string is built like the `acsc' terminfo capability.
3733
When the `po' and `pf' capabilities are present in the terminal's
3734
termcap entry, applications running in a
3736
window can send output to the printer port of the terminal.
3737
This allows a user to have an application in one window
3738
sending output to a printer connected to the terminal, while all
3739
other windows are still active (the printer port is enabled
3740
and disabled again for each chunk of output).
3741
As a side-effect, programs running in different windows can
3742
send output to the printer simultaneously.
3743
Data sent to the printer is not displayed in the window. The
3745
command displays a line starting `PRIN' while the printer is active.
3748
maintains a hardstatus line for every window. If a window
3749
gets selected, the display's hardstatus will be updated to match
3750
the window's hardstatus line. If the display has no hardstatus
3751
the line will be displayed as a standard
3754
The hardstatus line can be changed with the ANSI Application
3755
Program Command (APC): \*QESC_<string>ESC\e\*U. As a convenience
3756
for xterm users the sequence \*QESC]0..2;<string>^G\*U is
3759
Some capabilities are only put into the $TERMCAP
3760
variable of the virtual terminal if they can be efficiently
3761
implemented by the physical terminal.
3762
For instance, `dl' (delete line) is only put into the $TERMCAP
3763
variable if the terminal supports either delete line itself or
3764
scrolling regions. Note that this may provoke confusion, when
3765
the session is reattached on a different terminal, as the value
3766
of $TERMCAP cannot be modified by parent processes.
3768
The "alternate screen" capability is not enabled by default.
3769
Set the \fBaltscreen\fP .screenrc command to enable it.
3771
The following is a list of control sequences recognized by
3773
\*Q(V)\*U and \*Q(A)\*U indicate VT100-specific and ANSI- or
3774
ISO-specific functions, respectively.
3791
Send VT100 Identification String
3794
Save Cursor and Attributes
3797
Restore Cursor and Attributes
3800
Save Cursor and Attributes
3803
Restore Cursor and Attributes
3806
Reset to Initial State
3812
Cursor Visibility (97801)
3814
\h'\w'ESC 'u'Pn = \fB6\fP
3817
\h'\w'ESC Pn = 'u'\fB7\fP
3821
Application Keypad Mode
3826
.BR "ESC # 8" " (V)"
3827
Fill Screen with E's
3833
Privacy Message String (Message Line)
3836
Global Message String (Message Line)
3839
A.\|k.\|a. Definition String
3842
Device Control String.
3843
Outputs a string directly to the host
3844
terminal without interpretation.
3847
Application Program Command (Hardstatus)
3849
.BR "ESC ] 0 ; string ^G" " (A)"
3850
Operating System Command (Hardstatus, xterm title hack)
3852
.BR "ESC ] 83 ; cmd ^G" " (A)"
3853
Execute screen command. This only works if multi-user support is
3854
compiled into screen. The pseudo-user \*Q:window:\*U is used to
3855
check the access control list. Use \*Qaddacl :window: -rwx #?\*U to
3856
create a user with no rights and allow only the needed commands.
3858
.BR "Control-N" " (A)"
3861
.BR "Control-O" " (A)"
3876
.BR "ESC ( \fPPcs" " (A)"
3877
Designate character set as G0
3879
.BR "ESC ) \fPPcs" " (A)"
3880
Designate character set as G1
3882
.BR "ESC * \fPPcs" " (A)"
3883
Designate character set as G2
3885
.BR "ESC + \fPPcs" " (A)"
3886
Designate character set as G3
3888
.B "ESC [ \fPPn\fB ; \fPPn\fB H"
3889
Direct Cursor Addressing
3891
.B "ESC [ \fPPn\fB ; \fPPn\fB f"
3894
.B "ESC [ \fPPn\fB J"
3897
\h'\w'ESC [ 'u'Pn = None or \fB0\fP
3898
From Cursor to End of Screen
3900
\h'\w'ESC [ Pn = 'u'\fB1\fP
3901
From Beginning of Screen to Cursor
3903
\h'\w'ESC [ Pn = 'u'\fB2\fP
3906
.B "ESC [ \fPPn\fB K"
3909
\h'\w'ESC [ 'u'Pn = None or \fB0\fP
3910
From Cursor to End of Line
3912
\h'\w'ESC [ Pn = 'u'\fB1\fP
3913
From Beginning of Line to Cursor
3915
\h'\w'ESC [ Pn = 'u'\fB2\fP
3918
.B "ESC [ \fPPn\fB X"
3921
.B "ESC [ \fPPn\fB A"
3924
.B "ESC [ \fPPn\fB B"
3927
.B "ESC [ \fPPn\fB C"
3930
.B "ESC [ \fPPn\fB D"
3933
.B "ESC [ \fPPn\fB E"
3936
.B "ESC [ \fPPn\fB F"
3937
Cursor previous line
3939
.B "ESC [ \fPPn\fB G"
3940
Cursor horizontal position
3942
.B "ESC [ \fPPn\fB `"
3945
.B "ESC [ \fPPn\fB d"
3946
Cursor vertical position
3948
.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB m"
3949
Select Graphic Rendition
3951
\h'\w'ESC [ 'u'Ps = None or \fB0\fP
3954
\h'\w'ESC [ Ps = 'u'\fB1\fP
3957
\h'\w'ESC [ Ps = 'u'\fB2\fP (A)
3960
\h'\w'ESC [ Ps = 'u'\fB3\fP (A)
3961
\fIStandout\fP Mode (ANSI: Italicized)
3963
\h'\w'ESC [ Ps = 'u'\fB4\fP
3966
\h'\w'ESC [ Ps = 'u'\fB5\fP
3969
\h'\w'ESC [ Ps = 'u'\fB7\fP
3972
\h'\w'ESC [ Ps = 'u'\fB22\fP (A)
3975
\h'\w'ESC [ Ps = 'u'\fB23\fP (A)
3976
\fIStandout\fP Mode off (ANSI: Italicized off)
3978
\h'\w'ESC [ Ps = 'u'\fB24\fP (A)
3981
\h'\w'ESC [ Ps = 'u'\fB25\fP (A)
3984
\h'\w'ESC [ Ps = 'u'\fB27\fP (A)
3987
\h'\w'ESC [ Ps = 'u'\fB30\fP (A)
3990
\h'\w'ESC [ Ps = 'u'\fB31\fP (A)
3993
\h'\w'ESC [ Ps = 'u'\fB32\fP (A)
3996
\h'\w'ESC [ Ps = 'u'\fB33\fP (A)
3999
\h'\w'ESC [ Ps = 'u'\fB34\fP (A)
4002
\h'\w'ESC [ Ps = 'u'\fB35\fP (A)
4005
\h'\w'ESC [ Ps = 'u'\fB36\fP (A)
4008
\h'\w'ESC [ Ps = 'u'\fB37\fP (A)
4011
\h'\w'ESC [ Ps = 'u'\fB39\fP (A)
4014
\h'\w'ESC [ Ps = 'u'\fB40\fP (A)
4017
\h'\w'ESC [ Ps = 'u'\fB...\fP
4020
\h'\w'ESC [ Ps = 'u'\fB49\fP (A)
4023
.B "ESC [ \fPPn\fB g"
4026
\h'\w'ESC [ 'u'Pn = None or \fB0\fP
4027
Clear Tab at Current Position
4029
\h'\w'ESC [ Ps = 'u'\fB3\fP
4032
.BR "ESC [ \fPPn\fB ; \fPPn\fB r" " (V)"
4033
Set Scrolling Region
4035
.BR "ESC [ \fPPn\fB I" " (A)"
4038
.BR "ESC [ \fPPn\fB Z" " (A)"
4041
.BR "ESC [ \fPPn\fB L" " (A)"
4044
.BR "ESC [ \fPPn\fB M" " (A)"
4047
.BR "ESC [ \fPPn\fB @" " (A)"
4050
.BR "ESC [ \fPPn\fB P" " (A)"
4053
.B "ESC [ \fPPn\fB S"
4054
Scroll Scrolling Region Up
4056
.B "ESC [ \fPPn\fB T"
4057
Scroll Scrolling Region Down
4059
.B "ESC [ \fPPn\fB ^"
4062
.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB h"
4065
.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB l"
4068
\h'\w'ESC [ 'u'Ps = \fB4\fP (A)
4071
\h'\w'ESC [ Ps = 'u'\fB20\fP (A)
4072
\fIAutomatic Linefeed\fP Mode
4074
\h'\w'ESC [ Ps = 'u'\fB34\fP
4075
Normal Cursor Visibility
4077
\h'\w'ESC [ Ps = 'u'\fB?1\fP (V)
4078
Application Cursor Keys
4080
\h'\w'ESC [ Ps = 'u'\fB?3\fP (V)
4081
Change Terminal Width to 132 columns
4083
\h'\w'ESC [ Ps = 'u'\fB?5\fP (V)
4086
\h'\w'ESC [ Ps = 'u'\fB?6\fP (V)
4089
\h'\w'ESC [ Ps = 'u'\fB?7\fP (V)
4092
\h'\w'ESC [ Ps = 'u'\fB?9\fP
4095
\h'\w'ESC [ Ps = 'u'\fB?25\fP (V)
4098
\h'\w'ESC [ Ps = 'u'\fB?47\fP
4099
Alternate Screen (old xterm code)
4101
\h'\w'ESC [ Ps = 'u'\fB?1000\fP (V)
4102
VT200 mouse tracking
4104
\h'\w'ESC [ Ps = 'u'\fB?1047\fP
4105
Alternate Screen (new xterm code)
4107
\h'\w'ESC [ Ps = 'u'\fB?1049\fP
4108
Alternate Screen (new xterm code)
4110
.BR "ESC [ 5 i" " (A)"
4111
Start relay to printer (ANSI Media Copy)
4113
.BR "ESC [ 4 i" " (A)"
4114
Stop relay to printer (ANSI Media Copy)
4116
.B "ESC [ 8 ; \fPPh\fB ; \fPPw\fB t"
4117
Resize the window to `Ph' lines and `Pw' columns (SunView special)
4120
Send VT100 Identification String
4123
Send Terminal Parameter Report
4126
Send VT220 Secondary Device Attributes String
4129
Send Cursor Position Report
4132
.SH "INPUT TRANSLATION"
4133
In order to do a full VT100 emulation
4136
that a sequence of characters in the input stream was generated
4137
by a keypress on the user's keyboard and insert the VT100
4138
style escape sequence. \fIScreen\fP has a very flexible way of doing
4139
this by making it possible to map arbitrary commands on arbitrary
4140
sequences of characters. For standard VT100 emulation the command
4141
will always insert a string in the input buffer of the window
4142
(see also command \fBstuff\fP in the command table).
4143
Because the sequences generated by a keypress can
4144
change after a reattach from a different terminal type, it is
4145
possible to bind commands to the termcap name of the keys.
4146
\fIScreen\fP will insert the correct binding after each
4147
reattach. See the \fBbindkey\fP command for further details on the
4148
syntax and examples.
4150
Here is the table of the default key bindings. (A) means that the
4151
command is executed if the keyboard is switched into application
4156
Key name Termcap name Command
4159
Cursor up ku stuff \e033[A
4161
Cursor down kd stuff \e033[B
4163
Cursor right kr stuff \e033[C
4165
Cursor left kl stuff \e033[D
4167
Function key 0 k0 stuff \e033[10~
4168
Function key 1 k1 stuff \e033OP
4169
Function key 2 k2 stuff \e033OQ
4170
Function key 3 k3 stuff \e033OR
4171
Function key 4 k4 stuff \e033OS
4172
Function key 5 k5 stuff \e033[15~
4173
Function key 6 k6 stuff \e033[17~
4174
Function key 7 k7 stuff \e033[18~
4175
Function key 8 k8 stuff \e033[19~
4176
Function key 9 k9 stuff \e033[20~
4177
Function key 10 k; stuff \e033[21~
4178
Function key 11 F1 stuff \e033[23~
4179
Function key 12 F2 stuff \e033[24~
4180
Home kh stuff \e033[1~
4181
End kH stuff \e033[4~
4182
Insert kI stuff \e033[2~
4183
Delete kD stuff \e033[3~
4184
Page up kP stuff \e033[5~
4185
Page down kN stuff \e033[6~
4220
Keypad enter fe stuff \e015
4225
.SH SPECIAL TERMINAL CAPABILITIES
4226
The following table describes all terminal capabilities
4227
that are recognized by
4229
and are not in the termcap(5) manual.
4230
You can place these capabilities in your termcap entries (in
4231
`/etc/termcap') or use them with the commands `termcap', `terminfo' and
4232
`termcapinfo' in your screenrc files. It is often not possible to place
4233
these capabilities in the terminfo database.
4238
Terminal has VT100 style margins (`magic margins'). Note that
4239
this capability is obsolete because
4241
uses the standard 'xn' instead.
4244
Change width to 132 columns.
4247
Change width to 80 columns.
4250
Resize display. This capability has the desired width and height as
4251
arguments. \fISunView(tm)\fP example: '\eE[8;%d;%dt'.
4254
Terminal doesn't need flow control. Send ^S and ^Q direct to
4255
the application. Same as 'flow off'. The opposite of this
4259
Terminal can deal with ISO 2022 font selection sequences.
4262
Switch charset 'G0' to the specified charset. Default
4266
Switch charset 'G0' back to standard charset. Default
4270
Use the string as a conversion table for font '0'. See
4271
the 'ac' capability for more details.
4274
Switch cursor-keys to application mode.
4277
Switch cursor-keys back to normal mode.
4280
Turn on autonuke. See the 'autonuke' command for more details.
4283
Set the output buffer limit. See the 'obuflimit' command for more details.
4286
Set the encoding of the terminal. See the 'encoding' command for
4290
Change character foreground color in an ANSI conform way. This
4291
capability will almost always be set to '\eE[3%dm' ('\eE[3%p1%dm'
4292
on terminfo machines).
4295
Same as 'AF', but change background color.
4298
Does understand ANSI set default fg/bg color (\eE[39m / \eE[49m).
4301
Describe a translation of characters to strings depending on the
4302
current font. More details follow in the next section.
4305
Terminal understands special xterm sequences (OSC, mouse tracking).
4308
Terminal needs bold to display high-intensity colors (e.g. Eterm).
4311
Add missing capabilities to the termcap/info entry. (Set by default).
4313
.SH CHARACTER TRANSLATION
4314
\fIScreen\fP has a powerful mechanism to translate characters to arbitrary
4315
strings depending on the current font and terminal type.
4316
Use this feature if you want to work with a common standard character
4317
set (say ISO8851-latin1) even on terminals that scatter the more
4318
unusual characters over several national language font pages.
4322
\fBXC=\fP\fI<charset-mapping>\fP{\fB,,\fP\fI<charset-mapping>\fP}
4323
\fI<charset-mapping>\fP := \fI<designator><template>\fP{\fB,\fP\fI<mapping>\fP}
4324
\fI<mapping>\fP := \fI<char-to-be-mapped><template-arg>\fP
4327
The things in braces may be repeated any number of times.
4329
A \fI<charset-mapping>\fP tells
4331
how to map characters
4332
in font \fI<designator>\fP ('B': Ascii, 'A': UK, 'K': german, etc.)
4333
to strings. Every \fI<mapping>\fP describes to what string a single
4334
character will be translated. A template mechanism is used, as
4335
most of the time the codes have a lot in common (for example
4336
strings to switch to and from another charset). Each occurrence
4337
of '%' in \fI<template>\fP gets substituted with the \fI<template-arg>\fP
4338
specified together with the character. If your strings are not
4339
similar at all, then use '%' as a template and place the full
4340
string in \fI<template-arg>\fP. A quoting mechanism was added to make
4341
it possible to use a real '%'. The '\e' character quotes the
4342
special characters '\e', '%', and ','.
4346
termcap hp700 'XC=B\eE(K%\eE(B,\e304[,\e326\e\e\e\e,\e334]'
4350
how to translate ISOlatin1 (charset 'B')
4351
upper case umlaut characters on a hp700 terminal that has a
4352
german charset. '\e304' gets translated to '\eE(K[\eE(B' and so on.
4353
Note that this line gets parsed *three* times before the internal
4354
lookup table is built, therefore a lot of quoting is needed to
4355
create a single '\e'.
4357
Another extension was added to allow more emulation: If a mapping
4358
translates the unquoted '%' char, it will be sent to the terminal
4361
switches to the corresponding \fI<designator>\fP. In this
4362
special case the template is assumed to be just '%' because
4363
the charset switch sequence and the character mappings normally
4364
haven't much in common.
4366
This example shows one use of the extension:
4368
termcap xterm 'XC=K%,%\eE(B,[\e304,\e\e\e\e\e326,]\e334'
4370
Here, a part of the german ('K') charset is emulated on an xterm.
4373
has to change to the 'K' charset, '\eE(B' will be sent
4374
to the terminal, i.e. the ASCII charset is used instead. The
4375
template is just '%', so the mapping is straightforward: '['
4376
to '\e304', '\e' to '\e326', and ']' to '\e334'.
4381
Number of columns on the terminal (overrides termcap entry).
4383
Directory in which to look for .screenrc.
4385
Number of lines on the terminal (overrides termcap entry).
4387
Screen lock program.
4389
Turns on nethack option.
4391
Used for locating programs to run.
4393
For customizing a terminal's TERMCAP value.
4395
Alternate socket directory.
4397
Alternate user screenrc file.
4399
Default shell program for opening windows (default \*Q/bin/sh\*U).
4401
Alternate socket name.
4403
Alternate system screenrc file.
4407
Terminal description.
4409
Window number of a window (at creation time).
4413
.IP .../screen-4.?.??/etc/screenrc 34
4414
.IP .../screen-4.?.??/etc/etcscreenrc
4417
distribution package for private and global initialization files.
4419
.IP /usr/local/etc/screenrc
4421
initialization commands
4424
Read in after /usr/local/etc/screenrc
4425
.IP $SCREENDIR/S-<login>
4426
.IP /local/screens/S-<login>
4427
Socket directories (default)
4428
.IP /usr/tmp/screens/S-<login>
4429
Alternate socket directories.
4430
.IP "<socket directory>/.termcap"
4431
Written by the "termcap" output function
4432
.IP /usr/tmp/screens/screen-exchange
4434
.IP /tmp/screen-exchange
4436
`interprocess communication buffer'
4438
Screen images created by the hardcopy function
4440
Output log files created by the log function
4441
.IP /usr/lib/terminfo/?/*
4444
Terminal capability databases
4448
Program that locks a terminal.
4452
termcap(5), utmp(5), vi(1), captoinfo(1), tic(1)
4456
Originally created by Oliver Laumann, this latest version was
4457
produced by Wayne Davison, Juergen Weigert and Michael Schroeder.
4461
Copyright (C) 1993-2003
4462
Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
4463
Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
4464
Copyright (C) 1987 Oliver Laumann
4467
This program is free software; you can redistribute it and/or modify
4468
it under the terms of the GNU General Public License as published by
4469
the Free Software Foundation; either version 2, or (at your option)
4472
This program is distributed in the hope that it will be useful,
4473
but WITHOUT ANY WARRANTY; without even the implied warranty of
4474
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
4475
GNU General Public License for more details.
4477
You should have received a copy of the GNU General Public License
4478
along with this program (see the file COPYING); if not, write to the
4479
Free Software Foundation, Inc.,
4480
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
4484
Ken Beal (kbeal@amber.ssd.csd.harris.com),
4485
Rudolf Koenig (rfkoenig@immd4.informatik.uni-erlangen.de),
4486
Toerless Eckert (eckert@immd4.informatik.uni-erlangen.de),
4487
Wayne Davison (davison@borland.com),
4488
Patrick Wolfe (pat@kai.com, kailand!pat),
4489
Bart Schaefer (schaefer@cse.ogi.edu),
4490
Nathan Glasser (nathan@brokaw.lcs.mit.edu),
4491
Larry W. Virden (lvirden@cas.org),
4492
Howard Chu (hyc@hanauma.jpl.nasa.gov),
4493
Tim MacKenzie (tym@dibbler.cs.monash.edu.au),
4494
Markku Jarvinen (mta@{cc,cs,ee}.tut.fi),
4495
Marc Boucher (marc@CAM.ORG),
4496
Doug Siebert (dsiebert@isca.uiowa.edu),
4497
Ken Stillson (stillson@tsfsrv.mitre.org),
4498
Ian Frechett (frechett@spot.Colorado.EDU),
4499
Brian Koehmstedt (bpk@gnu.ai.mit.edu),
4500
Don Smith (djs6015@ultb.isc.rit.edu),
4501
Frank van der Linden (vdlinden@fwi.uva.nl),
4502
Martin Schweikert (schweik@cpp.ob.open.de),
4503
David Vrona (dave@sashimi.lcu.com),
4504
E. Tye McQueen (tye%spillman.UUCP@uunet.uu.net),
4505
Matthew Green (mrg@eterna.com.au),
4506
Christopher Williams (cgw@pobox.com),
4507
Matt Mosley (mattm@access.digex.net),
4508
Gregory Neil Shapiro (gshapiro@wpi.WPI.EDU),
4509
Johannes Zellner (johannes@zellner.org),
4510
Pablo Averbuj (pablo@averbuj.com).
4515
This is version 4.0.2. Its roots are a merge of a custom version
4516
2.3PR7 by Wayne Davison
4517
and several enhancements to Oliver Laumann's version 2.0. Note that all versions
4518
numbered 2.x are copyright by Oliver Laumann.
4521
The latest official release of
4523
available via anonymous ftp from gnudist.gnu.org, nic.funet.fi or any other
4525
distribution site. The home site of
4527
is ftp.uni-erlangen.de, in the directory
4528
pub/utilities/screen. The subdirectory `private' contains the latest beta
4529
testing release. If you want to help, send a note to
4530
screen@uni-erlangen.de.
4535
`dm' (delete mode) and `xs' are not handled
4536
correctly (they are ignored). `xn' is treated as a magic-margin
4540
has no clue about double-high or double-wide characters.
4541
But this is the only area where
4545
It is not possible to change the environment variable $TERMCAP when
4546
reattaching under a different terminal type.
4548
The support of terminfo based systems is very limited. Adding extra
4549
capabilities to $TERMCAP may not have any effects.
4552
does not make use of hardware tabs.
4555
must be installed as set-uid with owner root on most systems in order
4556
to be able to correctly change the owner of the tty device file for
4558
Special permission may also be required to write the file \*Q/etc/utmp\*U.
4560
Entries in \*Q/etc/utmp\*U are not removed when
4562
is killed with SIGKILL.
4563
This will cause some programs (like "w" or "rwho")
4564
to advertise that a user is logged on who really isn't.
4567
may give a strange warning when your tty has no utmp entry.
4569
When the modem line was hung up,
4571
may not automatically detach (or quit)
4572
unless the device driver is configured to send a HANGUP signal.
4575
session use the -D or -d command line option.
4577
If a password is set, the command line options -d and -D still detach a
4578
session without asking.
4580
Both \*Qbreaktype\*U and \*Qdefbreaktype\*U change the break generating
4581
method used by all terminal devices. The first should change a window
4582
specific setting, where the latter should change only the default for new
4585
When attaching to a multiuser session, the user's .screenrc file is not
4586
sourced. Each user's personal settings have to be included in the .screenrc
4587
file from which the session is booted, or have to be changed manually.
4589
A weird imagination is most useful to gain full advantage of all the features.
4591
Send bug-reports, fixes, enhancements, t-shirts, money, beer & pizza to
4592
.BR screen@uni-erlangen.de .