~dannf/ubuntu/saucy/screen/lp1213278-from-debian

« back to all changes in this revision

Viewing changes to doc/screen.1

  • Committer: Bazaar Package Importer
  • Author(s): Nathaniel McCallum
  • Date: 2004-09-03 15:15:33 UTC
  • Revision ID: james.westby@ubuntu.com-20040903151533-px02yqlrchs4fv2t
Tags: upstream-4.0.2
ImportĀ upstreamĀ versionĀ 4.0.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.\" vi:set wm=5
 
2
.TH SCREEN 1 "Aug 2003"
 
3
.if n .ds Q \&"
 
4
.if n .ds U \&"
 
5
.if t .ds Q ``
 
6
.if t .ds U ''
 
7
.UC 4
 
8
.SH NAME
 
9
screen \- screen manager with VT100/ANSI terminal emulation
 
10
 
 
11
 
 
12
.SH SYNOPSIS
 
13
.B screen
 
14
[
 
15
.B \-\fIoptions\fP
 
16
] [
 
17
.B \fIcmd\fP
 
18
[
 
19
.B \fIargs\fP
 
20
] ]
 
21
.br
 
22
.B screen \-r
 
23
[[\fIpid\fP\fB.\fP]\fItty\fP[\fB.\fP\fIhost\fP]]
 
24
.br
 
25
.B screen \-r
 
26
\fIsessionowner\fP\fB/\fP[[\fIpid\fP\fB.\fP]\fItty\fP[\fB.\fP\fIhost\fP]]
 
27
.ta .5i 1.8i
 
28
 
 
29
 
 
30
.SH DESCRIPTION
 
31
.I Screen
 
32
is a full-screen window manager that
 
33
multiplexes a physical terminal between several processes (typically
 
34
interactive shells).
 
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
 
41
windows.
 
42
.PP
 
43
When
 
44
.I screen
 
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
 
47
normally would.
 
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 
 
55
.I screen 
 
56
session is detached from the user's terminal.  When a program terminates,
 
57
.I screen
 
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,
 
61
.I screen
 
62
exits.
 
63
.PP
 
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.
 
71
.PP
 
72
.I Screen
 
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
 
75
to e.g. the 
 
76
.I escape
 
77
command or the \fI-e\fP option.
 
78
.I Screen
 
79
will also print out control characters in caret notation.
 
80
.PP
 
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:
 
90
.IP
 
91
screen emacs prog.c
 
92
.PP
 
93
from a shell prompt within a previously created window.
 
94
This will not run another copy of
 
95
.IR screen ,
 
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
 
100
to its window.
 
101
.PP
 
102
If \*Q/etc/utmp\*U is writable by
 
103
.IR screen ,
 
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
 
109
.I screen
 
110
is active on your terminal,
 
111
the terminal's own record is removed from the utmp file. See also \*QC-a L\*U.
 
112
 
 
113
 
 
114
.SH GETTING STARTED
 
115
Before you begin to use
 
116
.I screen
 
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
 
120
.IR tset
 
121
for example.)
 
122
.PP
 
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
 
126
.I screen
 
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.
 
130
.PP
 
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
 
138
.IR screen .
 
139
If all you've got is a \*Qtrue\*U auto-margin terminal 
 
140
.I screen
 
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
 
145
capability.
 
146
 
 
147
 
 
148
.SH "COMMAND-LINE OPTIONS"
 
149
Screen has the following command-line options:
 
150
.TP 5
 
151
.B \-a
 
152
include \fIall\fP capabilities (with some minor exceptions) in each
 
153
window's termcap, even if
 
154
.I screen
 
155
must redraw parts of the display in order to implement a function.
 
156
.TP 5
 
157
.B \-A
 
158
Adapt the sizes of all windows to the size of the current terminal.
 
159
By default,
 
160
.I screen
 
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).
 
163
.TP 5
 
164
.BI "\-c " file
 
165
override the default configuration file from \*Q$HOME/.screenrc\*U
 
166
to \fIfile\fP.
 
167
.TP 5
 
168
.BR \-d | \-D " [" \fIpid.tty.host ]
 
169
does not start
 
170
.IR screen ,
 
171
but detaches the elsewhere running
 
172
.I screen
 
173
session. It has the same effect as typing \*QC-a d\*U from
 
174
.IR screen 's
 
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:
 
178
.TP 8
 
179
.B \-d \-r
 
180
Reattach a session and if necessary detach it first.
 
181
.TP 8
 
182
.B \-d \-R
 
183
Reattach a session and if necessary detach or even create it first.
 
184
.TP 8
 
185
.B \-d \-RR
 
186
Reattach a session and if necessary detach or create it. Use the first
 
187
session if more than one session is available.
 
188
.TP 8
 
189
.B \-D \-r
 
190
Reattach a session. If necessary detach and logout remotely first.
 
191
.TP 8
 
192
.B \-D \-R
 
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
 
196
author's favorite.
 
197
.TP 8
 
198
.B \-D \-RR
 
199
Attach here and now. Whatever that means, just do it.
 
200
.IP "" 5
 
201
Note: It is always a good idea to check the status of your sessions by means of
 
202
\*Qscreen \-list\*U.
 
203
.TP 5
 
204
.BI "\-e " xy
 
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.
 
208
When creating a
 
209
.I screen
 
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.
 
216
.TP 5
 
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.
 
220
.TP 5
 
221
.BI "\-h " num
 
222
Specifies the history scrollback buffer to be \fInum\fP lines high.
 
223
.TP 5
 
224
.B \-i
 
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.
 
229
.TP 5
 
230
.BR \-l " and " \-ln
 
231
turns login mode on or off (for /etc/utmp updating).
 
232
This can also be defined through the \*Qdeflogin\*U .screenrc command.
 
233
.TP 5
 
234
.BR \-ls " and " \-list
 
235
does not start
 
236
.IR screen ,
 
237
but prints a list of
 
238
.I pid.tty.host
 
239
strings identifying your
 
240
.I screen
 
241
sessions.
 
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 
 
251
\fB-wipe\fP option. 
 
252
.TP 5
 
253
.B \-L
 
254
tells
 
255
.I screen
 
256
to turn on automatic output logging for the windows.
 
257
.TP 5
 
258
.B \-m
 
259
causes
 
260
.I screen
 
261
to ignore the $STY environment variable. With \*Qscreen -m\*U creation of
 
262
a new session is enforced, regardless whether
 
263
.I screen
 
264
is called from within another
 
265
.I screen
 
266
session or not. This flag has a special meaning in connection
 
267
with the `-d' option:
 
268
.TP 8
 
269
.B \-d \-m
 
270
Start
 
271
.I screen
 
272
in \*Qdetached\*U mode. This creates a new session but doesn't
 
273
attach to it. This is useful for system startup scripts.
 
274
.TP 8
 
275
.B \-D \-m
 
276
This also starts screen in \*Qdetached\*U mode, but doesn't fork
 
277
a new process. The command exits if the session terminates.
 
278
.TP 5
 
279
.B \-O
 
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
 
283
command.
 
284
.TP 5
 
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.
 
291
.TP 5
 
292
.B \-q
 
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.
 
301
.TP 5
 
302
.BR \-r " [" \fIpid.tty.host ]
 
303
.PD 0
 
304
.TP 5
 
305
.BR \-r " \fIsessionowner/[" \fIpid.tty.host ]
 
306
.PD
 
307
resumes a detached
 
308
.I screen
 
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
 
312
.I screen
 
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.
 
316
.TP 5
 
317
.B \-R
 
318
attempts to resume the first detached
 
319
.I screen
 
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
 
322
options, just as if
 
323
.B \-R
 
324
had not been specified. The option is set by default if
 
325
.I screen
 
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.
 
328
.TP 5
 
329
.B \-s
 
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.
 
333
.TP 5
 
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.
 
339
.TP 5
 
340
.BI "\-t " name
 
341
sets the title (a.\|k.\|a.) for the default shell or specified program.
 
342
See also the \*Qshelltitle\*U .screenrc command.
 
343
.TP 5
 
344
.B \-U
 
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'.
 
348
.TP 5
 
349
.B \-v
 
350
Print version number.
 
351
.TP 5
 
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.
 
358
.TP 5
 
359
.B \-x
 
360
Attach to a not detached
 
361
.I screen
 
362
session. (Multi display mode).
 
363
.TP 5
 
364
.B \-X
 
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.
 
369
 
 
370
 
 
371
.SH "DEFAULT KEY BINDINGS"
 
372
.ta 12n 26n
 
373
As mentioned, each
 
374
.I screen
 
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
 
381
of the command.
 
382
.PP
 
383
.TP 26n
 
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)"
 
390
.PD 0
 
391
.IP "\fB ... \fP           ..."
 
392
.IP "\fBC-a 9\fP        (select 9)"
 
393
.IP "\fBC-a -\fP        (select -)"
 
394
.PD
 
395
Switch to window number 0 \- 9, or to the blank window.
 
396
.IP "\fBC-a tab\fP      (focus)"
 
397
.PD
 
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.
 
408
.IP "\fBC-a b\fP"
 
409
.PD 0
 
410
.IP "\fBC-a C-b\fP      (break)"
 
411
.PD
 
412
Send a break to window.
 
413
.IP "\fBC-a B\fP        (pow_break)"
 
414
Reopen the terminal line and send a break.
 
415
.IP "\fBC-a c\fP"
 
416
.PD 0
 
417
.IP "\fBC-a C-c\fP      (screen)"
 
418
.PD
 
419
Create a new window with a shell and switch to that window.
 
420
.IP "\fBC-a C\fP        (clear)"
 
421
Clear the screen.
 
422
.IP "\fBC-a d\fP"
 
423
.PD 0
 
424
.IP "\fBC-a C-d\fP      (detach)"
 
425
.PD
 
426
Detach
 
427
.I screen
 
428
from this terminal.
 
429
.IP "\fBC-a D D\fP      (pow_detach)"
 
430
Detach and logout.
 
431
.IP "\fBC-a f\fP"
 
432
.PD 0
 
433
.IP "\fBC-a C-f\fP      (flow)"
 
434
.PD
 
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)"
 
439
Toggles
 
440
.I screen's
 
441
visual bell mode.
 
442
.IP "\fBC-a h\fP        (hardcopy)"
 
443
.PD
 
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.
 
447
.IP "\fBC-a i\fP"
 
448
.PD 0
 
449
.IP "\fBC-a C-i\fP      (info)"
 
450
.PD
 
451
Show info about this window.
 
452
.IP "\fBC-a k\fP"
 
453
.PD 0
 
454
.IP "\fBC-a C-k\fP      (kill)"
 
455
.PD
 
456
Destroy current window.
 
457
.IP "\fBC-a l\fP"
 
458
.PD 0
 
459
.IP "\fBC-a C-l\fP      (redisplay)"
 
460
.PD
 
461
Fully refresh current window.
 
462
.IP "\fBC-a L\fP        (login)"
 
463
Toggle this windows login slot. Available only if
 
464
.I screen
 
465
is configured to update the utmp database.
 
466
.IP "\fBC-a m\fP"
 
467
.PD 0
 
468
.IP "\fBC-a C-m\fP      (lastmsg)"
 
469
.PD
 
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"
 
474
.PD 0
 
475
.IP "\fBC-a n\fP"
 
476
.IP "\fBC-a C-n\fP      (next)"
 
477
.PD
 
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"
 
482
.PD 0
 
483
.IP "\fBC-a h\fP"
 
484
.IP "\fBC-a p\fP"
 
485
.IP "\fBC-a C-p\fP      (prev)"
 
486
.PD
 
487
Switch to the previous window (opposite of \fBC-a n\fP).
 
488
.IP "\fBC-a q\fP"
 
489
.PD 0
 
490
.IP "\fBC-a C-q\fP      (xon)"
 
491
.PD
 
492
Send a control-q to the current window.
 
493
.IP "\fBC-a Q\fP        (only)"
 
494
Delete all regions but the current one.
 
495
.IP "\fBC-a r\fP"
 
496
.PD 0
 
497
.IP "\fBC-a C-r\fP      (wrap)"
 
498
.PD
 
499
Toggle the current window's line-wrap setting (turn the current window's
 
500
automatic margins on and off).
 
501
.IP "\fBC-a s\fP"
 
502
.PD 0
 
503
.IP "\fBC-a C-s\fP      (xoff)"
 
504
.PD
 
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.
 
508
.IP "\fBC-a t\fP"
 
509
.PD 0
 
510
.IP "\fBC-a C-t\fP      (time)"
 
511
.PD
 
512
Show system information.
 
513
.IP "\fBC-a v\fP        (version)"
 
514
.PD
 
515
Display the version and compilation date.
 
516
.IP "\fBC-a C-v\fP      (digraph)"
 
517
.PD
 
518
Enter digraph.
 
519
.IP "\fBC-a w\fP"
 
520
.PD 0
 
521
.IP "\fBC-a C-w\fP      (windows)"
 
522
.PD
 
523
Show a list of window.
 
524
.IP "\fBC-a W\fP        (width)"
 
525
Toggle 80/132 columns.
 
526
.IP "\fBC-a x\fP"
 
527
.PD 0
 
528
.IP "\fBC-a C-x\fP      (lockscreen)"
 
529
.PD
 
530
Lock this terminal.
 
531
.IP "\fBC-a X\fP        (remove)"
 
532
Kill the current region.
 
533
.IP "\fBC-a z\fP"
 
534
.PD 0
 
535
.IP "\fBC-a C-z\fP      (suspend)"
 
536
.PD
 
537
Suspend
 
538
.IR screen .
 
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)"
 
545
Show key bindings.
 
546
.IP "\fBC-a C-\e\fP     (quit)"
 
547
Kill all windows and terminate
 
548
.IR screen .
 
549
.IP "\fBC-a :\fP        (colon)"
 
550
Enter command line mode.
 
551
.IP "\fBC-a [\fP"
 
552
.PD 0
 
553
.IP "\fBC-a C-[\fP"
 
554
.IP "\fBC-a esc\fP      (copy)"
 
555
.PD
 
556
Enter copy/scrollback mode.
 
557
.IP "\fBC-a ]\fP        (paste .)"
 
558
.PD
 
559
Write the contents of the paste buffer to the stdin queue of the
 
560
current window. 
 
561
.IP "\fBC-a {\fP
 
562
.PD 0
 
563
.IP "\fBC-a }\fP        (history)"
 
564
.PD
 
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)"
 
573
Shows where
 
574
.I screen
 
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.
 
580
 
 
581
 
 
582
.SH CUSTOMIZATION
 
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
 
585
.I screen
 
586
is installed setuid-root, then the administrator
 
587
should compile
 
588
.I screen
 
589
with an adequate (not NFS mounted) socket directory. If
 
590
.I screen
 
591
is not running setuid-root, the user can specify any mode 700 directory
 
592
in the environment variable $SCREENDIR.
 
593
.PP
 
594
When
 
595
.I screen
 
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
 
600
global screenrc file 
 
601
.I screen
 
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.
 
607
.PP
 
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
 
610
beginning of your
 
611
.I screen
 
612
session.
 
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 
 
621
.I screen
 
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.
 
625
.PP
 
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.
 
629
.PP
 
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.
 
633
.PP
 
634
The following commands are available:
 
635
.sp 
 
636
.ne 3
 
637
.BI acladd " usernames"
 
638
.RI [ crypted-pw ]
 
639
.br
 
640
.BI addacl " usernames"
 
641
.PP
 
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
 
644
.I screen
 
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.
 
650
.sp 
 
651
.ne 3
 
652
.BI aclchg " usernames permbits list"
 
653
.br
 
654
.BI chacl " usernames permbits list"
 
655
.PP
 
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 
 
670
.I screen 
 
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
 
675
.B nobody
 
676
cannot be changed (see the \*Qsu\*U command).
 
677
`Chacl' is a synonym to `aclchg'.
 
678
Multi user mode only.
 
679
.sp
 
680
.ne 3
 
681
.BI acldel " username"
 
682
.PP
 
683
Remove a user from
 
684
.IR screen 's
 
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.
 
688
.sp
 
689
.ne 3
 
690
.BI aclgrp " username"
 
691
.RI [ groupname ]
 
692
.PP
 
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
 
698
.IR groupname .
 
699
If the second parameter is omitted all groups the user is in are listed.
 
700
.sp
 
701
.ne 3
 
702
.B aclumask
 
703
.RI [[ users ] +bits 
 
704
.RI |[ users ] -bits " .... ]"
 
705
.br
 
706
.B umask
 
707
.RI [[ users ] +bits 
 
708
.RI |[ users ] -bits " .... ]"
 
709
.PP
 
710
This specifies the access other users have to windows that will be created by
 
711
the caller of the command.
 
712
.I Users
 
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. 
 
715
.I Bits
 
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
 
722
.B nobody
 
723
cannot be changed (see the \*Qsu\*U command).
 
724
`Umask' is a synonym to `aclumask'.
 
725
.sp
 
726
.ne 3
 
727
.BI activity " message"
 
728
.PP
 
729
When any activity occurs in a background window that is being monitored,
 
730
.I screen
 
731
displays a notification in the message line.
 
732
The notification message can be re-defined by means of the \*Qactivity\*U
 
733
command.
 
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
 
739
.sp
 
740
        'Activity in window %n'
 
741
.sp
 
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).
 
744
.sp
 
745
.ne 3
 
746
.BR "allpartial on" | off
 
747
.PP
 
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.
 
754
.sp
 
755
.ne 3
 
756
.BR "altscreen on" | off
 
757
.PP
 
758
If set to on, "alternate screen" support is enabled in virtual terminals,
 
759
just like in xterm.  Initial setting is `off'.
 
760
.sp
 
761
.ne 3
 
762
.BR "at " "[\fIidentifier\fP][" "#\fP|\fP*\fP|\fP%\fP] "
 
763
.IR "command " [ args " ... ]"
 
764
.PP
 
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).
 
784
.br
 
785
Caveat: 
 
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
 
790
like \*Qlogin\*U!
 
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.
 
794
.sp
 
795
.ne 3
 
796
.BI "attrcolor " attrib
 
797
.RI [ "attribute/color-modifier" ]
 
798
.PP
 
799
This command can be used to highlight attributes by changing the color of
 
800
the text. If the attribute
 
801
.I attrib
 
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.
 
807
.sp
 
808
Examples:
 
809
.IP
 
810
attrcolor b "R"
 
811
.PP
 
812
Change the color to bright red if bold text is to be printed.
 
813
.IP
 
814
attrcolor u "-u b"
 
815
.PP
 
816
Use blue text instead of underline.
 
817
.IP
 
818
attrcolor b ".I"
 
819
.PP
 
820
Use bright colors for bold text. Most terminal emulators do this
 
821
already.
 
822
.IP
 
823
attrcolor i "+b"
 
824
.PP
 
825
Make bright colored text also bold.
 
826
.sp
 
827
.ne 3
 
828
.BR "autodetach on" | off
 
829
.PP
 
830
Sets whether 
 
831
.I screen
 
832
will automatically detach upon hangup, which
 
833
saves all your running programs until they are resumed with a
 
834
.B "screen -r"
 
835
command.
 
836
When turned off, a hangup signal will terminate 
 
837
.I screen
 
838
and all the processes it contains. Autodetach is on by default.
 
839
.sp
 
840
.ne 3
 
841
.BR "autonuke on" | off
 
842
.PP
 
843
Sets whether a clear screen sequence should nuke all the output
 
844
that has not been written to the terminal. See also
 
845
\*Qobuflimit\*U.
 
846
.sp
 
847
.ne 3
 
848
.BI "backtick " id
 
849
.I lifespan
 
850
.I autorefresh
 
851
.I cmd
 
852
.I args...
 
853
.br
 
854
.BI "backtick " id
 
855
.PP
 
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
 
864
for substitution.
 
865
.br
 
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.
 
872
.br
 
873
The second form of the command deletes the backtick command
 
874
with the numerical id \fIid\fP.
 
875
.sp
 
876
.ne 3
 
877
.BR "bce " [ on | off ]
 
878
.PP
 
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.
 
883
.sp
 
884
.ne 3
 
885
.B bell_msg
 
886
.RI [ message ]
 
887
.PP
 
888
When a bell character is sent to a background window,
 
889
.I screen
 
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
 
897
.sp
 
898
        'Bell in window %n'
 
899
.sp
 
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.
 
903
.sp
 
904
.ne 3
 
905
.BI "bind "
 
906
.RB [ -c
 
907
.IR class ]
 
908
.I key 
 
909
.RI [ command " [" args ]]
 
910
.PP
 
911
Bind a command to a key.
 
912
By default, most of the commands provided by
 
913
.I screen
 
914
are bound to one or more keys as indicated in the \*QDEFAULT KEY BINDINGS\*U
 
915
section, e.\|g. the
 
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
 
918
define new bindings.
 
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.
 
927
 
 
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.
 
932
.PP
 
933
Some examples:
 
934
.PP
 
935
.nf
 
936
        bind ' ' windows
 
937
        bind ^k
 
938
        bind k
 
939
        bind K kill
 
940
        bind ^f screen telnet foobar
 
941
        bind \e033 screen -ln -t root -h 1000 9 su
 
942
.fi
 
943
.PP
 
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.
 
953
.PP
 
954
.nf
 
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
 
959
.fi
 
960
.PP
 
961
makes \*QC-b 0\*U select window 10, \*QC-b 1\*U window 11, etc.
 
962
.PP
 
963
.nf
 
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
 
968
.fi
 
969
.PP
 
970
makes \*QC-a - 0\*U select window 10, \*QC-a - 1\*U window 11, etc.
 
971
.sp
 
972
.ne 3
 
973
.B bindkey
 
974
.RB [ -d ]
 
975
.RB [ -m ]
 
976
.RB [ -a ]
 
977
.RB [[ -k | -t ]
 
978
.I string
 
979
.RI [ "cmd args" ]]
 
980
.PP
 
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.
 
988
.br
 
989
If the
 
990
.B -d
 
991
option is given, bindkey modifies the default table,
 
992
.B -m
 
993
changes the copy mode table
 
994
and with neither option the user table is selected.
 
995
The argument
 
996
.I string
 
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
 
1000
.B -k
 
1001
option).
 
1002
.br
 
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
 
1007
.B -a
 
1008
option.
 
1009
.br
 
1010
The
 
1011
.B -t
 
1012
option tells screen not to do inter-character timing. One cannot
 
1013
turn off the timing if a termcap capability is used.
 
1014
.br
 
1015
.I Cmd
 
1016
can be any of screen's commands with an arbitrary number of
 
1017
.IR args .
 
1018
If
 
1019
.I cmd
 
1020
is omitted the key-binding is removed from the table.
 
1021
.br
 
1022
Here are some examples of keyboard bindings:
 
1023
.sp
 
1024
.nf
 
1025
        bindkey -d
 
1026
.fi
 
1027
Show all of the default key bindings. The application mode entries
 
1028
are marked with [A].
 
1029
.sp
 
1030
.nf
 
1031
        bindkey -k k1 select 1
 
1032
.fi
 
1033
Make the "F1" key switch to window one.
 
1034
.sp
 
1035
.nf
 
1036
        bindkey -t foo stuff barfoo
 
1037
.fi
 
1038
Make "foo" an abbreviation of the word "barfoo". Timeout is disabled
 
1039
so that users can type slowly.
 
1040
.sp
 
1041
.nf
 
1042
        bindkey "\e024" mapdefault
 
1043
.fi
 
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).
 
1048
.sp
 
1049
.nf
 
1050
        bindkey -k F1 command
 
1051
.fi
 
1052
Make the F11 (not F1!) key an alternative screen
 
1053
escape (besides ^A).
 
1054
.sp
 
1055
.ne 3
 
1056
.B break
 
1057
.RI [ duration ]
 
1058
.PP
 
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.
 
1064
.sp
 
1065
.ne 3
 
1066
.B blanker
 
1067
.PP
 
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
 
1072
is discarded.
 
1073
.br
 
1074
This command is normally used together with the \*Qidle\*U command.
 
1075
.sp
 
1076
.ne 3
 
1077
.B blankerprg
 
1078
.RI [ "program args" ]
 
1079
.PP
 
1080
Defines a blanker program. Disables the blanker program if no
 
1081
arguments are given.
 
1082
.sp
 
1083
.ne 3
 
1084
.B breaktype
 
1085
.RI [ tcsendbreak | TIOCSBRK
 
1086
.RI | TCSBRK ]
 
1087
.PP
 
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
 
1091
the future.
 
1092
Calling \*Qbreaktype\*U with no parameter displays the break method for the
 
1093
current window.
 
1094
.sp
 
1095
.ne 3
 
1096
.B bufferfile
 
1097
.RI [ exchange-file ]
 
1098
.PP
 
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 
 
1103
the
 
1104
.I screen
 
1105
window (using the paste buffer, where a copy remains):
 
1106
.PP
 
1107
.nf
 
1108
        C-a : bufferfile /etc/passwd
 
1109
        C-a < C-a ]
 
1110
        C-a : bufferfile
 
1111
.fi
 
1112
.sp
 
1113
.ne 3
 
1114
.BR "c1 " [ on | off ]
 
1115
.PP
 
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.
 
1123
.sp
 
1124
.ne 3
 
1125
.BR "caption always" | splitonly
 
1126
.RI [ string ]
 
1127
.br
 
1128
.B "caption string"
 
1129
.RI [ string ]
 
1130
.PP
 
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
 
1134
.B always
 
1135
screen shows a caption even if only one window is displayed. The default
 
1136
is
 
1137
.BR splitonly .
 
1138
.P
 
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'.
 
1142
.P
 
1143
You can mix both forms by providing a string as an additional argument.
 
1144
.sp
 
1145
.ne 3
 
1146
.BI "charset " set
 
1147
.PP
 
1148
Change the current character set slot designation and charset
 
1149
mapping.  The first four character of
 
1150
.I set
 
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.
 
1158
.br
 
1159
The current setting can be viewed with the \*Qinfo\*U command.
 
1160
.sp
 
1161
.ne 3
 
1162
.B chdir
 
1163
.RI [ directory ]
 
1164
.PP
 
1165
Change the \fIcurrent directory\fP of
 
1166
.I screen
 
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
 
1173
.I screen
 
1174
was invoked.
 
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
 
1177
window.
 
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.
 
1181
.sp
 
1182
.ne 3
 
1183
.B clear
 
1184
.PP
 
1185
Clears the current window and saves its image to the scrollback buffer.
 
1186
.sp
 
1187
.ne 3
 
1188
.B colon
 
1189
.RI [ prefix ]
 
1190
.PP
 
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...'. 
 
1197
 
 
1198
If you consider this as the `Ex command mode' of 
 
1199
.IR screen ,
 
1200
you may regard \*QC-a esc\*U (copy mode) as its `Vi command mode'.
 
1201
.sp 
 
1202
.ne 3
 
1203
.B command
 
1204
.RB [ -c
 
1205
.IR class ]
 
1206
.PP
 
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.
 
1211
.sp 
 
1212
.ne 3
 
1213
.BR "compacthist " [ on | off ]
 
1214
.PP
 
1215
This tells screen whether to suppress trailing blank lines when
 
1216
scrolling up text into the history buffer.
 
1217
.sp 
 
1218
.ne 3
 
1219
.BR "console " [ on | off ]
 
1220
.PP
 
1221
Grabs or un-grabs the machines console output to a window.
 
1222
.IR Note :
 
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.
 
1225
.sp
 
1226
.ne 3
 
1227
.B copy
 
1228
.PP
 
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:
 
1232
.br
 
1233
.IR "Movement keys" :
 
1234
.br
 
1235
.in +4n
 
1236
.ti -2n
 
1237
\fBh\fP, \fBj\fP, \fBk\fP, \fBl\fP move the cursor line by line or 
 
1238
column by column.
 
1239
.br
 
1240
.ti -2n
 
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.
 
1243
.br
 
1244
.ti -2n
 
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. 
 
1247
.br
 
1248
.ti -2n
 
1249
\fB+\fP and \fB\-\fP positions one line up and down.
 
1250
.br
 
1251
.ti -2n
 
1252
\fBG\fP moves to the specified absolute line (default: end of buffer).
 
1253
.br 
 
1254
.ti -2n
 
1255
\fB|\fP moves to the specified absolute column.
 
1256
.br
 
1257
.ti -2n
 
1258
\fBw\fP, \fBb\fP, \fBe\fP move the cursor word by word.
 
1259
.br 
 
1260
.ti -2n
 
1261
\fBB\fP, \fBE\fP move the cursor WORD by WORD (as in vi).
 
1262
.br 
 
1263
.ti -2n
 
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). 
 
1266
.br
 
1267
.ti -2n
 
1268
\fBC-b\fP and \fBC-f\fP scroll the display up/down a full screen.
 
1269
.br
 
1270
.ti -2n
 
1271
\fBg\fP moves to the beginning of the buffer.
 
1272
.br
 
1273
.ti -2n
 
1274
\fB%\fP jumps to the specified percentage of the buffer.
 
1275
.br
 
1276
.ti -4n
 
1277
 
 
1278
.IR Note :
 
1279
.br
 
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.
 
1283
 
 
1284
.br
 
1285
.ti -4n
 
1286
.IR Marking :
 
1287
.br
 
1288
The copy range is specified by setting two marks. The text between these marks 
 
1289
will be highlighted. Press 
 
1290
.br
 
1291
.ti -2n
 
1292
\fBspace\fP to set the first or second mark
 
1293
respectively.
 
1294
.br
 
1295
.ti -2n
 
1296
\fBY\fP and \fBy\fP used to mark one whole line or to mark from 
 
1297
start of line.
 
1298
.br
 
1299
.ti -2n
 
1300
\fBW\fP marks exactly one word. 
 
1301
.br 
 
1302
.ti -4n
 
1303
.IR "Repeat count" :
 
1304
.br
 
1305
Any of these commands can be prefixed with a repeat count number by pressing 
 
1306
digits 
 
1307
.br
 
1308
.ti -2n
 
1309
\fB0\fP..\fB9\fP which
 
1310
is taken as a repeat count. 
 
1311
.br
 
1312
Example: \*QC-a C-[ H 10 j 5 Y\*U will copy lines
 
1313
11 to 15 into the paste buffer.
 
1314
.br
 
1315
.ti -4n
 
1316
.IR Searching :
 
1317
.ti -2n
 
1318
\fB/\fP \fIVi\fP-like search forward.
 
1319
.ti -2n
 
1320
\fB?\fP \fIVi\fP-like search backward.
 
1321
.ti -2n 
 
1322
\fBC-a s\fP \fIEmacs\fP style incremental search forward.
 
1323
.ti -2n
 
1324
\fBC-r\fP \fIEmacs\fP style reverse i-search.
 
1325
.ti -4n
 
1326
.IR Specials :
 
1327
.br
 
1328
There are however some keys that act differently than in
 
1329
.IR vi .
 
1330
.I Vi
 
1331
does not allow one to yank rectangular blocks of text, but
 
1332
.I screen
 
1333
does. Press 
 
1334
.br
 
1335
.ti -2n
 
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. 
 
1338
.br
 
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.
 
1341
 
 
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:
 
1346
.br
 
1347
\*QC-a [ M 20 l SPACE 10 l 5 j SPACE\*U
 
1348
 
 
1349
and notice the difference in the amount of text copied.
 
1350
.br
 
1351
.ti -2n
 
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.
 
1356
.br
 
1357
.ti -2n
 
1358
\fBv\fP is for all the
 
1359
.I vi 
 
1360
users with \*Q:set numbers\*U \- it toggles the left margin between column 9
 
1361
and 1. Press 
 
1362
.br
 
1363
.ti -2n
 
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.
 
1366
.br
 
1367
.ti -2n
 
1368
\fBA\fP toggles in append mode and sets a (second) mark.
 
1369
.br
 
1370
.ti -2n
 
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 
 
1373
finished. 
 
1374
.br
 
1375
This example demonstrates how to dump the whole scrollback buffer 
 
1376
to that file: \*QC-A [ g SPACE G $ >\*U.
 
1377
.br
 
1378
.ti -2n
 
1379
\fBC-g\fP gives information about the current line and column.
 
1380
.br
 
1381
.ti -2n
 
1382
\fBx\fP exchanges the first mark and the current cursor position. You
 
1383
can use this to adjust an already placed mark.
 
1384
.br
 
1385
.ti -2n
 
1386
\fB@\fP does nothing. Does not even exit copy mode.
 
1387
.br
 
1388
.ti -2n
 
1389
All keys not described here exit copy mode.
 
1390
.in -4n
 
1391
.sp
 
1392
.ne 3
 
1393
.B copy_reg
 
1394
.RI [ key ]
 
1395
.PP
 
1396
No longer exists, use \*Qreadreg\*U instead.
 
1397
.sp
 
1398
.ne 3
 
1399
.BR "crlf " [ on | off ]
 
1400
.PP
 
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.
 
1405
.sp
 
1406
.ne 3
 
1407
.BR "debug on" | off
 
1408
.PP
 
1409
Turns runtime debugging on or off. If 
 
1410
.I screen
 
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.
 
1415
.sp
 
1416
.ne 3
 
1417
.BR "defc1 on" | off
 
1418
.PP
 
1419
Same as the \fBc1\fP command except that the default setting for new
 
1420
windows is changed. Initial setting is `on'.
 
1421
.sp
 
1422
.ne 3
 
1423
.BR "defautonuke on" | off
 
1424
.PP
 
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.
 
1428
.sp
 
1429
.ne 3
 
1430
.BR "defbce on" | off
 
1431
.PP
 
1432
Same as the \fBbce\fP command except that the default setting for new
 
1433
windows is changed. Initial setting is `off'.
 
1434
.sp
 
1435
.ne 3
 
1436
.B defbreaktype
 
1437
.RI [ tcsendbreak | TIOCSBRK
 
1438
.RI | TCSBRK ]
 
1439
.PP
 
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 .
 
1443
The third, 
 
1444
.IR TCSBRK , 
 
1445
blocks the complete 
 
1446
.I screen
 
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.
 
1454
.sp
 
1455
.ne 3
 
1456
.BR "defcharset " [ \fIset ]
 
1457
.PP
 
1458
Like the \fBcharset\fP command except that the default setting for
 
1459
new windows is changed. Shows current default if called without
 
1460
argument.
 
1461
.sp
 
1462
.ne 3
 
1463
.BI "defescape " xy
 
1464
.PP
 
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.
 
1470
.sp
 
1471
.ne 3
 
1472
.BR "defflow on" | off | auto 
 
1473
.RB [ interrupt ]
 
1474
.PP
 
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
 
1478
.B \-fa
 
1479
and
 
1480
.BR \-i . 
 
1481
.sp
 
1482
.ne 3
 
1483
.BR "defgr on" | off
 
1484
.PP
 
1485
Same as the \fBgr\fP command except that the default setting for new
 
1486
windows is changed. Initial setting is `off'.
 
1487
.sp
 
1488
.ne 3
 
1489
.BR "defhstatus " [ \fIstatus ]
 
1490
.PP
 
1491
The hardstatus line that all new windows will get is set to
 
1492
.I status\fR.
 
1493
This command is useful to make the hardstatus of every window
 
1494
display the window number or title or the like.
 
1495
.I Status
 
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.
 
1500
If the parameter
 
1501
.I status
 
1502
is omitted, the current default string is displayed.
 
1503
Per default the hardstatus line of new windows is empty.
 
1504
.sp
 
1505
.ne 3
 
1506
.BI "defencoding " enc
 
1507
.PP
 
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
 
1510
terminal.
 
1511
.sp
 
1512
.ne 3
 
1513
.BR "deflog on" | off
 
1514
.PP
 
1515
Same as the \fBlog\fP command except that the default setting for new windows 
 
1516
is changed. Initial setting is `off'.
 
1517
.sp
 
1518
.ne 3
 
1519
.BR "deflogin on" | off
 
1520
.PP
 
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).
 
1523
.sp
 
1524
.ne 3
 
1525
.BI "defmode " mode
 
1526
.PP
 
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.
 
1530
.sp
 
1531
.ne 3
 
1532
.BR "defmonitor on" | off
 
1533
.PP
 
1534
Same as the \fBmonitor\fP command except that the default setting for new 
 
1535
windows is changed. Initial setting is `off'.
 
1536
.sp
 
1537
.ne 3
 
1538
.B defnonblock 
 
1539
.BR on | off | \fInumsecs
 
1540
.PP
 
1541
Same as the \fBnonblock\fP command except that the default setting for
 
1542
displays is changed. Initial setting is `off'.
 
1543
.sp
 
1544
.ne 3
 
1545
.BI "defobuflimit " limit
 
1546
.PP
 
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.
 
1550
.sp
 
1551
.ne 3
 
1552
.BI "defscrollback " num
 
1553
.PP
 
1554
Same as the \fBscrollback\fP command except that the default setting for new 
 
1555
windows is changed. Initial setting is 100.
 
1556
.sp
 
1557
.ne 3
 
1558
.BI "defshell " command
 
1559
.PP
 
1560
Synonym to the \fBshell\fP command. See there.
 
1561
.sp
 
1562
.ne 3
 
1563
.BR "defsilence on" | off
 
1564
.PP
 
1565
Same as the \fBsilence\fP command except that the default setting for new
 
1566
windows is changed. Initial setting is `off'.
 
1567
.sp
 
1568
.ne 3
 
1569
.BI "defslowpaste " msec"
 
1570
.PP
 
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'.
 
1573
.sp
 
1574
.ne 3
 
1575
.BR "defutf8 on" | off
 
1576
.PP
 
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'.
 
1580
.sp
 
1581
.ne 3
 
1582
.BR "defwrap on" | off
 
1583
.PP
 
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".
 
1587
.sp
 
1588
.ne 3
 
1589
.BR "defwritelock on" | off | auto
 
1590
.PP
 
1591
Same as the \fBwritelock\fP command except that the default setting for new 
 
1592
windows is changed. Initially writelocks will off.
 
1593
.sp
 
1594
.ne 3
 
1595
.BR "defzombie " [\fIkeys\fP]
 
1596
.PP
 
1597
Synonym to the \fBzombie\fP command. Both currently change the default.
 
1598
See there.
 
1599
.sp
 
1600
.ne 3
 
1601
.B detach
 
1602
.RB [ -h ]
 
1603
.PP
 
1604
Detach the 
 
1605
.I screen
 
1606
session (disconnect it from the terminal and put it into the background).
 
1607
This returns you to the shell where you invoked
 
1608
.IR screen .
 
1609
A detached
 
1610
.I screen
 
1611
can be resumed by invoking
 
1612
.I screen
 
1613
with the
 
1614
.B \-r
 
1615
option (see also section \*QCOMMAND-LINE OPTIONS\*U). The
 
1616
.B \-h
 
1617
option tells screen to immediately close the connection to the
 
1618
terminal (\*Qhangup\*U).
 
1619
.sp
 
1620
.ne 3
 
1621
.B dinfo
 
1622
.PP
 
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.
 
1625
.sp
 
1626
.ne 3
 
1627
.B displays
 
1628
.PP
 
1629
Shows a tabular listing of all currently connected user front-ends (displays).
 
1630
This is most useful for multiuser sessions.
 
1631
.sp
 
1632
.ne 3
 
1633
.BR "digraph " [ \fIpreset ]
 
1634
.PP
 
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),
 
1640
.I screen
 
1641
will treat the following characters (up to three) as an octal
 
1642
number instead.  The optional argument
 
1643
.I preset
 
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.
 
1647
.sp
 
1648
.ne 3
 
1649
.B dumptermcap
 
1650
.PP
 
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 
 
1654
.I screen
 
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
 
1658
.I screen
 
1659
for each window. For terminfo based systems you will need to run a converter
 
1660
like 
 
1661
.IR captoinfo
 
1662
and then compile the entry with 
 
1663
.IR tic .
 
1664
.sp
 
1665
.ne 3
 
1666
.BR "echo " [ -n ]
 
1667
.I message
 
1668
.PP
 
1669
The echo command may be used to annoy 
 
1670
.I screen
 
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.
 
1676
.sp
 
1677
.ne 3
 
1678
.BI "encoding " enc
 
1679
.RI [ enc ]
 
1680
.PP
 
1681
Tell 
 
1682
.I screen 
 
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.
 
1690
 
 
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.
 
1694
 
 
1695
See also \*Qdefencoding\*U, which changes the default setting of a new
 
1696
window.
 
1697
.sp
 
1698
.ne 3
 
1699
.BI "escape " xy
 
1700
.PP
 
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
 
1703
to the \-e option).
 
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.
 
1709
.sp
 
1710
.ne 3
 
1711
.B eval
 
1712
.I command1
 
1713
.RI [ command2
 
1714
.IR ... ]
 
1715
.PP
 
1716
Parses and executes each argument as separate command.
 
1717
.sp
 
1718
.ne 3
 
1719
.B exec
 
1720
.RI [[ fdpat ]
 
1721
.IR "newcommand " [ "args ..." ]]
 
1722
.PP
 
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
 
1730
to
 
1731
.IR screen .
 
1732
An exclamation mark (!) causes the file
 
1733
descriptor to be connected to the application-process. A colon (:) combines
 
1734
both.
 
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.
 
1739
.br
 
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
 
1742
in each window.
 
1743
.br
 
1744
When a subprocess is running the `kill' command will affect it instead of the
 
1745
windows process.
 
1746
.br
 
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
 
1752
.I screen
 
1753
at its master side.
 
1754
.sp
 
1755
Abbreviations: 
 
1756
.br
 
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 `!'.
 
1761
.sp
 
1762
Examples:
 
1763
.IP
 
1764
exec ... /bin/sh
 
1765
.br
 
1766
exec /bin/sh
 
1767
.br
 
1768
!/bin/sh
 
1769
.PP
 
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
 
1772
/bin/sh.
 
1773
.IP
 
1774
exec !.. stty 19200
 
1775
.br
 
1776
exec ! stty 19200
 
1777
.br
 
1778
!!stty 19200
 
1779
.PP
 
1780
Set the speed of the window's tty. If your stty command operates on stdout, 
 
1781
then add another `!'.
 
1782
.IP
 
1783
exec !..| less
 
1784
.br
 
1785
|less
 
1786
.PP
 
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
 
1790
.I less
 
1791
listens on stderr (a behavior that
 
1792
.I screen
 
1793
would not expect without the `|') 
 
1794
when its stdin is not a tty. 
 
1795
.I Less 
 
1796
versions newer than 177 fail miserably here; good old
 
1797
.I pg
 
1798
still works.
 
1799
.IP
 
1800
!:sed -n s/.*Error.*/\e007/p
 
1801
.PP
 
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
 
1804
.IR screen .
 
1805
This will cause "Bell in window x" messages, whenever the string "Error"
 
1806
appears in the window.
 
1807
.sp
 
1808
.ne 3
 
1809
.B fit
 
1810
.PP
 
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.
 
1814
.sp
 
1815
.ne 3
 
1816
.B flow
 
1817
.RB [ on | off | "auto\fR]\fP"
 
1818
.PP
 
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'.
 
1825
.sp
 
1826
.ne 3
 
1827
.BR "focus " [ up | down | top | bottom ]
 
1828
.PP
 
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)
 
1834
.nf
 
1835
    bind j focus down
 
1836
    bind k focus up
 
1837
    bind t focus top
 
1838
    bind b focus bottom
 
1839
.fi
 
1840
.sp
 
1841
.ne 3
 
1842
.BR "gr " [ on | off ]
 
1843
.PP
 
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.
 
1849
.sp
 
1850
.ne 3
 
1851
.B hardcopy
 
1852
.RB [ -h ]
 
1853
.RI [ file ]
 
1854
.PP
 
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
 
1860
scrollback buffer.
 
1861
.sp
 
1862
.ne 3
 
1863
.BR "hardcopy_append on" | off
 
1864
.PP
 
1865
If set to "on", 
 
1866
.I screen
 
1867
will append to the "hardcopy.n" files created by the command \*QC-a h\*U, 
 
1868
otherwise these files are overwritten each time.
 
1869
Default is `off'.
 
1870
.sp
 
1871
.ne 3
 
1872
.BI "hardcopydir "directory
 
1873
.PP
 
1874
Defines a directory where hardcopy files will be placed. If unset, hardcopys
 
1875
are dumped in
 
1876
.IR screen 's
 
1877
current working directory.
 
1878
.sp
 
1879
.ne 3
 
1880
.BR "hardstatus " [ on | off ]
 
1881
.br
 
1882
.BR "hardstatus \fR[\fBalways\fR]\fBlastline" | message | ignore
 
1883
.RI [ string ]
 
1884
.br
 
1885
.B "hardstatus string"
 
1886
.RI [ string ]
 
1887
.PP
 
1888
This command configures the use and emulation of the terminal's
 
1889
hardstatus line. The first form
 
1890
toggles whether
 
1891
.I screen
 
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
 
1895
setting is `on'.
 
1896
.P
 
1897
The second form tells 
 
1898
.I screen 
 
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, 
 
1903
.I screen 
 
1904
will reserve the last line of the
 
1905
display for
 
1906
the hardstatus. \*Qmessage\*U uses 
 
1907
.I screen's
 
1908
message mechanism and
 
1909
\*Qignore\*U tells 
 
1910
.I screen 
 
1911
never to display the hardstatus.
 
1912
If you prepend the word \*Qalways\*U to the type (e.g., \*Qalwayslastline\*U), 
 
1913
.I screen 
 
1914
will use the type even if the terminal supports a hardstatus.
 
1915
.P
 
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
 
1921
the argument
 
1922
.IR string ,
 
1923
the current string is displayed.
 
1924
.P
 
1925
You can mix the second and third form by providing the string as
 
1926
additional argument.
 
1927
.sp
 
1928
.ne 3
 
1929
.B height
 
1930
.RB [ -w | -d ]
 
1931
.RI [ lines " [" cols ]]
 
1932
.PP
 
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.
 
1936
The
 
1937
.B -w
 
1938
option tells screen to leave the display size unchanged and just set
 
1939
the window size,
 
1940
.B -d
 
1941
vice versa.
 
1942
.sp
 
1943
.ne 3
 
1944
.B help
 
1945
.RB [ -c
 
1946
.IR class ]
 
1947
.PP
 
1948
Not really a online help, but 
 
1949
displays a help 
 
1950
.I screen 
 
1951
showing you all the key bindings.
 
1952
The first pages list all the internal commands followed by their current
 
1953
bindings.
 
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.
 
1959
.sp
 
1960
.ne 3
 
1961
.B history
 
1962
.PP
 
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. 
 
1965
.I Screen
 
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
 
1968
`C-a {' and
 
1969
.I screen
 
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
 
1973
scrollback buffer). 
 
1974
.sp
 
1975
.ne 3
 
1976
.BI "hstatus " status
 
1977
.PP
 
1978
Change the window's hardstatus line to the string \fIstatus\fP.
 
1979
.sp
 
1980
.ne 3
 
1981
.B idle
 
1982
.RI [ timeout
 
1983
.RI [ "cmd args" ]]
 
1984
.PP
 
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.
 
1991
.sp
 
1992
.ne 3
 
1993
.BR "ignorecase " [ on | off ]
 
1994
.PP
 
1995
Tell screen to ignore the case of characters in searches. Default is
 
1996
`off'.
 
1997
.sp
 
1998
.ne 3
 
1999
.B info
 
2000
.PP
 
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):
 
2006
 
 
2007
.nf
 
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.
 
2014
.fi
 
2015
 
 
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.
 
2021
 
 
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.
 
2026
 
 
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).
 
2028
.br
 
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.
 
2031
.br
 
2032
For system information use the \*Qtime\*U command.
 
2033
.sp
 
2034
.ne 3
 
2035
.BR ins_reg " [" \fIkey ]
 
2036
.PP
 
2037
No longer exists, use \*Qpaste\*U instead.
 
2038
.sp
 
2039
.ne 3
 
2040
.B kill
 
2041
.PP
 
2042
Kill current window.
 
2043
.br 
 
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 
 
2047
.I screen 
 
2048
(your display) switches to another
 
2049
window.  When the last window is destroyed, 
 
2050
.I screen
 
2051
exits.
 
2052
After a kill 
 
2053
.I screen 
 
2054
switches to the previously displayed window.
 
2055
.br
 
2056
Note:
 
2057
.I Emacs
 
2058
users should keep this command in mind, when killing a line.
 
2059
It is recommended not to use \*QC-a\*U as the
 
2060
.I screen
 
2061
escape key or to rebind kill to \*QC-a K\*U.
 
2062
.sp
 
2063
.ne 3
 
2064
.B lastmsg
 
2065
.PP
 
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.
 
2070
.sp
 
2071
.ne 3
 
2072
.B license
 
2073
.PP
 
2074
Display the disclaimer page. This is done whenever
 
2075
.I screen
 
2076
is started without options, which should be often enough. See also 
 
2077
the \*Qstartup_message\*U command.
 
2078
.sp
 
2079
.ne 3
 
2080
.B lockscreen
 
2081
.PP
 
2082
Lock this display.
 
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 
 
2088
.I screen
 
2089
is started) and is executed with the user's uid and gid.
 
2090
.br
 
2091
Warning: 
 
2092
When you leave other shells unlocked and you have no password set on           
 
2093
.IR screen ,
 
2094
the lock is void: One could easily re-attach from an unlocked
 
2095
shell. This feature should rather be called `lockterminal'.
 
2096
.sp
 
2097
.ne 3
 
2098
.BR "log " [ on | off ]
 
2099
.PP
 
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.
 
2107
Default is `off'.
 
2108
.sp
 
2109
.ne 3
 
2110
.BI "logfile " filename
 
2111
.br
 
2112
.BI "logfile flush " secs
 
2113
.PP
 
2114
Defines the name the logfiles will get. The default is
 
2115
\*Qscreenlog.%n\*U. The second form changes the number of seconds
 
2116
.I screen
 
2117
will wait before flushing the logfile buffer to the file-system. The
 
2118
default value is 10 seconds.
 
2119
.sp
 
2120
.ne 3
 
2121
.BR "login " [ on | off ]
 
2122
.PP
 
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 
 
2130
.I screen
 
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 
 
2134
.I screen
 
2135
has been compiled with utmp support.
 
2136
.sp
 
2137
.ne 3
 
2138
.BR "logtstamp " [ on | off ]
 
2139
.br
 
2140
.B "logtstamp after"
 
2141
.RI [ secs ]
 
2142
.br
 
2143
.B "logtstamp string"
 
2144
.RI [ string ]
 
2145
.PP
 
2146
This command controls logfile time-stamp mechanism of 
 
2147
.I screen.
 
2148
If
 
2149
time-stamps are turned \*Qon\*U, 
 
2150
.I screen 
 
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
 
2158
default).
 
2159
.sp
 
2160
.ne 3
 
2161
.B mapdefault
 
2162
.PP
 
2163
Tell 
 
2164
.I screen 
 
2165
that the next input character should only be looked up
 
2166
in the default bindkey table. See also \*Qbindkey\*U.
 
2167
.sp
 
2168
.ne 3
 
2169
.B mapnotnext
 
2170
.PP
 
2171
Like mapdefault, but don't even look in the default bindkey table.
 
2172
.sp
 
2173
.ne 3
 
2174
.B maptimeout
 
2175
.RI [ timo ]
 
2176
.PP
 
2177
Set the inter-character timer for input sequence detection to a timeout
 
2178
of
 
2179
.I timo
 
2180
ms. The default timeout is 300ms. Maptimeout with no arguments shows
 
2181
the current setting.
 
2182
See also \*Qbindkey\*U.
 
2183
.sp
 
2184
.ne 3
 
2185
.BI "markkeys " string
 
2186
.PP
 
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
 
2193
binding.
 
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 
 
2199
single statement.
 
2200
.sp
 
2201
.ne 3
 
2202
.BI "maxwin " num
 
2203
.PP
 
2204
Set the maximum window number screen will create. Doesn't affect
 
2205
already existing windows. The number may only be decreased.
 
2206
.sp
 
2207
.ne 3
 
2208
.B meta
 
2209
.PP
 
2210
Insert the command character (C-a) in the current window's input stream.
 
2211
.sp
 
2212
.ne 3
 
2213
.BR "monitor " [ on | off ]
 
2214
.PP
 
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.
 
2221
.sp
 
2222
.ne 3
 
2223
.BI "msgminwait " sec
 
2224
.PP
 
2225
Defines the time 
 
2226
.I screen 
 
2227
delays a new message when one message is currently displayed. 
 
2228
The default is 1 second.
 
2229
.sp
 
2230
.ne 3
 
2231
.BI "msgwait " sec
 
2232
.PP
 
2233
Defines the time a message is displayed if 
 
2234
.I screen
 
2235
is not disturbed by other activity. The default is 5 seconds.
 
2236
.sp
 
2237
.ne 3
 
2238
.BR "multiuser on" | off
 
2239
.PP
 
2240
Switch between singleuser and multiuser mode. Standard
 
2241
.I screen
 
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 
 
2245
.I screen
 
2246
session. 
 
2247
.sp
 
2248
.ne 3
 
2249
.BR "nethack on" | off
 
2250
.PP
 
2251
Changes the kind of error messages used by
 
2252
.IR screen .
 
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
 
2256
well.
 
2257
.br
 
2258
This option is only 
 
2259
available if
 
2260
.I screen
 
2261
was compiled with the NETHACK flag defined. The
 
2262
default setting is then determined by the presence of the environment 
 
2263
variable $NETHACKOPTIONS.
 
2264
.sp
 
2265
.ne 3
 
2266
.B next
 
2267
.PP
 
2268
Switch to the next window.
 
2269
This command can be used repeatedly to cycle through the list of windows.
 
2270
.sp
 
2271
.ne 3
 
2272
.B nonblock 
 
2273
.RB [ on | off | \fInumsecs ]
 
2274
.PP
 
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.
 
2285
.sp
 
2286
.ne 3
 
2287
.BR "number " [ \fIn ]
 
2288
.PP
 
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.
 
2292
.sp
 
2293
.ne 3
 
2294
.BR "obuflimit " [ \fIlimit ]
 
2295
.PP
 
2296
If the output buffer contains more bytes than the specified limit, no
 
2297
more data will be
 
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.
 
2301
.sp
 
2302
.ne 3
 
2303
.B only
 
2304
.PP
 
2305
Kill all regions but the current one.
 
2306
.sp
 
2307
.ne 3
 
2308
.B other
 
2309
.PP
 
2310
Switch to the window displayed previously. If this window does no longer exist,
 
2311
\fIother\fP has the same effect as \fInext\fP.
 
2312
.sp
 
2313
.ne 3
 
2314
.BR "partial on" | off
 
2315
.PP
 
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.
 
2321
.sp
 
2322
.ne 3
 
2323
.BR "password " [ \fIcrypted_pw ]
 
2324
.PP
 
2325
Present a crypted password in your \*Q.screenrc\*U file and
 
2326
.I screen
 
2327
will ask
 
2328
for it, whenever someone attempts to resume a detached. This is useful
 
2329
if you have privileged programs running under
 
2330
.I screen
 
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,
 
2334
.I screen
 
2335
prompts twice for typing a
 
2336
password and places its encryption in the paste buffer.
 
2337
Default is `none', this disables password checking.
 
2338
.sp
 
2339
.ne 3
 
2340
.BR paste
 
2341
.RI [ registers " [" dest_reg ]]
 
2342
.PP
 
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 
 
2346
register to paste.
 
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
 
2354
the destination.
 
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.
 
2360
.sp
 
2361
.ne 3
 
2362
.BR "pastefont " [ on | off ]
 
2363
.PP
 
2364
Tell 
 
2365
.I screen 
 
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.
 
2369
.sp
 
2370
.ne 3
 
2371
.B pow_break
 
2372
.PP
 
2373
Reopen the window's terminal line and send a break condition. See `break'.
 
2374
.sp
 
2375
.ne 3
 
2376
.B pow_detach
 
2377
.PP
 
2378
Power detach. 
 
2379
Mainly the same as \fIdetach\fP, but also sends a HANGUP signal to
 
2380
the parent process of
 
2381
.IR screen .
 
2382
CAUTION: This will result in a logout, when 
 
2383
.I screen
 
2384
was started from your login shell.
 
2385
.sp
 
2386
.ne 3
 
2387
.B pow_detach_msg
 
2388
.RI [ message ]
 
2389
.PP
 
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 
 
2392
baud rate, etc. 
 
2393
Without parameter, the current message is shown.
 
2394
.sp
 
2395
.ne 3
 
2396
.B prev
 
2397
.PP
 
2398
Switch to the window with the next lower number.
 
2399
This command can be used repeatedly to cycle through the list of windows.
 
2400
.sp
 
2401
.ne 3
 
2402
.B printcmd
 
2403
.RI [ cmd ]
 
2404
.PP
 
2405
If
 
2406
.I cmd
 
2407
is not an empty string, 
 
2408
.I screen 
 
2409
will not use the terminal capabilities
 
2410
\*Qpo/pf\*U if it detects an ansi print sequence
 
2411
.BR "ESC [ 5 i" ,
 
2412
but pipe the output into
 
2413
.IR cmd .
 
2414
This should normally be a command like \*Qlpr\*U or
 
2415
\*Q'cat > /tmp/scrprint'\*U.
 
2416
.B printcmd
 
2417
without a command displays the current setting.
 
2418
The ansi sequence
 
2419
.B "ESC \e"
 
2420
ends printing and closes the pipe.
 
2421
.br
 
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.
 
2424
.sp
 
2425
.ne 3
 
2426
.BR process " [" \fIkey ]
 
2427
.PP
 
2428
Stuff the contents of the specified register into 
 
2429
.IR screen 's
 
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.
 
2433
.sp
 
2434
.ne 3
 
2435
.B quit
 
2436
.PP
 
2437
Kill all windows and terminate
 
2438
.IR screen .
 
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.
 
2443
.sp
 
2444
.ne 3
 
2445
.B readbuf
 
2446
.RB [ -e
 
2447
.IR encoding ]
 
2448
.RI [ filename ]
 
2449
.PP
 
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.
 
2454
.sp
 
2455
.ne 3
 
2456
.B readreg 
 
2457
.RB [ -e
 
2458
.IR encoding ]
 
2459
.RI [ register " [" filename ]]
 
2460
.PP
 
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 
 
2468
the 
 
2469
.I screen 
 
2470
window (using register p, where a copy remains):
 
2471
.PP
 
2472
.nf
 
2473
        C-a : readreg p /etc/passwd
 
2474
        C-a : paste p
 
2475
.fi
 
2476
.sp
 
2477
.ne 3
 
2478
.B redisplay
 
2479
.PP
 
2480
Redisplay the current window. Needed to get a full redisplay when in
 
2481
partial redraw mode.
 
2482
.sp
 
2483
.ne 3
 
2484
.B register
 
2485
.RB [ -e
 
2486
.IR encoding ]
 
2487
.I "key string"
 
2488
.PP
 
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.
 
2492
.sp
 
2493
.ne 3
 
2494
.B "remove"
 
2495
.PP
 
2496
Kill the current region. This is a no-op if there is only one region.
 
2497
.sp
 
2498
.ne 3
 
2499
.B "removebuf"
 
2500
.PP
 
2501
Unlinks the screen-exchange file used by the commands \*Qwritebuf\*U and 
 
2502
\*Qreadbuf\*U. 
 
2503
.sp
 
2504
.ne 3
 
2505
.B "reset"
 
2506
.PP 
 
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
 
2509
an application.
 
2510
.sp
 
2511
.ne 3
 
2512
.B "resize"
 
2513
.PP 
 
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.
 
2516
.IP
 
2517
resize +N       increase current region height by N
 
2518
.IP
 
2519
resize -N       decrease current region height by N
 
2520
.IP
 
2521
resize  N       set current region height to N
 
2522
.IP
 
2523
resize  =       make all windows equally high
 
2524
.IP
 
2525
resize  max     maximize current region height
 
2526
.IP
 
2527
resize  min     minimize current region height
 
2528
.PP
 
2529
.sp
 
2530
.ne 3
 
2531
.B "screen \fP[\fI-opts\fP] [\fIn\fP] [\fIcmd\fP [\fIargs\fP]]"
 
2532
.PP
 
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
 
2546
.sp
 
2547
.nf
 
2548
        # example for .screenrc:
 
2549
        screen 1
 
2550
        screen -fn -t foobar -L 2 telnet foobar
 
2551
.fi
 
2552
.sp
 
2553
.I screen
 
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 
 
2557
session.
 
2558
Note, that unlike previous versions of
 
2559
.I screen
 
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,
 
2562
.I screen
 
2563
switches to the last window specified in your .screenrc file or, if none,
 
2564
opens a default window #0.
 
2565
.br
 
2566
Screen has built in some functionality of \*Qcu\*U and \*Qtelnet\*U.
 
2567
See also chapter \*QWINDOW TYPES\*U.
 
2568
.sp
 
2569
.ne 3
 
2570
.B "scrollback \fP\fInum\fP"
 
2571
.PP
 
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 
 
2575
current setting.
 
2576
.sp
 
2577
.ne 3
 
2578
.BR "select " [ \fIWindowID ]
 
2579
.PP
 
2580
Switch to the window identified by \fIWindowID\fP.
 
2581
This can be a prefix of a window title (alphanumeric window name) or a
 
2582
window number.
 
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.
 
2592
.sp
 
2593
.ne
 
2594
.BR "sessionname " [ \fIname ]
 
2595
.PP
 
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 
 
2600
confusion. 
 
2601
The default is constructed from the tty and host names.
 
2602
.sp
 
2603
.ne 3
 
2604
.B "setenv " 
 
2605
.RI [ var " [" string ]]
 
2606
.PP
 
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.
 
2611
.sp
 
2612
.ne 3
 
2613
.BR "setsid " [ on | off ]
 
2614
.PP
 
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.
 
2621
.sp
 
2622
.ne 3
 
2623
.B "shell \fIcommand\fP"
 
2624
.PP
 
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.
 
2630
.sp
 
2631
.ne 3
 
2632
.B "shelltitle \fItitle\fP"
 
2633
.PP
 
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.
 
2638
.sp
 
2639
.ne 3
 
2640
.BR "silence " [ on | off "|\fIsec\fP]"
 
2641
.PP
 
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.
 
2649
.sp
 
2650
.ne 3
 
2651
.BI "silencewait " sec
 
2652
.PP
 
2653
Define the time that all windows monitored for silence should wait before
 
2654
displaying a message. Default 30 seconds.
 
2655
.sp
 
2656
.ne
 
2657
.B "sleep \fP\fInum\fP"
 
2658
.PP
 
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.
 
2662
.sp
 
2663
.ne 3
 
2664
.B "slowpaste \fImsec\fP"
 
2665
.PP
 
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.
 
2669
.I screen
 
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 
 
2673
text. 
 
2674
.sp
 
2675
.ne 3
 
2676
.BI "source " file
 
2677
.PP
 
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.
 
2683
 
 
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.
 
2687
.sp
 
2688
.ne 3
 
2689
.B sorendition
 
2690
.RB [ "\fIattr\fR " [ \fIcolor ]]
 
2691
.PP
 
2692
Change the way 
 
2693
.I screen 
 
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).
 
2697
.sp
 
2698
.ne 3
 
2699
.B split
 
2700
.PP
 
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.
 
2705
.sp
 
2706
.ne 3
 
2707
.B "startup_message on\fP|\fBoff"
 
2708
.PP
 
2709
Select whether you want to see the copyright notice during startup.
 
2710
Default is `on', as you probably noticed.
 
2711
.sp
 
2712
.ne 3
 
2713
.B stuff
 
2714
.I string
 
2715
.PP
 
2716
Stuff the string
 
2717
.I string
 
2718
in the input buffer of the current window.
 
2719
This is like the \*Qpaste\*U command but with much less overhead.
 
2720
You cannot paste
 
2721
large buffers with the \*Qstuff\*U command. It is most useful for key
 
2722
bindings. See also \*Qbindkey\*U.
 
2723
.sp
 
2724
.ne 3
 
2725
.B su
 
2726
.RB [ username " [" password
 
2727
.RB [ password2 ]]
 
2728
.PP
 
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 
 
2733
.I screen
 
2734
password as set with the commands \*Qacladd\*U or \*Qpassword\*U.
 
2735
\*QSu\*U may be useful for the 
 
2736
.I screen
 
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
 
2742
for user
 
2743
.BR nobody .
 
2744
These are \*Qdetach\*U, \*Qlicense\*U, \*Qversion\*U, \*Qhelp\*U and
 
2745
\*Qdisplays\*U.
 
2746
.sp
 
2747
.ne 3
 
2748
.B "suspend"
 
2749
.PP
 
2750
Suspend
 
2751
.IR screen .
 
2752
The windows are in the `detached' state, while 
 
2753
.I screen
 
2754
is suspended. This feature relies on the shell being able to do job control.
 
2755
.sp
 
2756
.ne 3
 
2757
.B "term \fIterm\fP"
 
2758
.PP
 
2759
In each window's environment
 
2760
.I screen
 
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 
 
2765
.I screen
 
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.
 
2771
.sp
 
2772
.ne 3
 
2773
.BI termcap " term terminal-tweaks"
 
2774
.RI [ window-tweaks ]
 
2775
.br
 
2776
.BI terminfo " term terminal-tweaks"
 
2777
.RI [ window-tweaks ]
 
2778
.br
 
2779
.BI termcapinfo " term terminal-tweaks"
 
2780
.RI [ window-tweaks ]
 
2781
.PP
 
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.  
 
2787
.br
 
2788
If your system works uses the terminfo database rather than termcap, 
 
2789
.I screen 
 
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. 
 
2795
.br
 
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.
 
2799
.PP
 
2800
The first argument specifies which terminal(s) should be affected by this
 
2801
definition.
 
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
 
2804
with \*Qvt\*U.
 
2805
.PP
 
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
 
2814
.I screen
 
2815
understands (see the \*QVIRTUAL TERMINAL\*U
 
2816
section).
 
2817
.PP
 
2818
Some examples:
 
2819
.IP
 
2820
termcap xterm*  LP:hs@
 
2821
.PP
 
2822
Informs
 
2823
.I screen
 
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.
 
2829
.IP
 
2830
termcap vt*  LP
 
2831
.br
 
2832
termcap vt102|vt220  Z0=\eE[?3h:Z1=\eE[?3l
 
2833
.PP
 
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
 
2837
a VT102 or VT220.
 
2838
(You must specify Z0 and Z1 in your termcap to use the width-changing
 
2839
commands.)
 
2840
.IP
 
2841
termcap vt100  ""  l0=PF1:l1=PF2:l2=PF3:l3=PF4
 
2842
.PP
 
2843
This leaves your vt100 termcap alone and adds the function key labels to
 
2844
each window's termcap entry.
 
2845
.IP
 
2846
termcap h19|z19  am@:im=\eE@:ei=\eEO  dc=\eE[P
 
2847
.PP
 
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
 
2852
cause
 
2853
.I screen
 
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
 
2857
termcap, which
 
2858
.I screen
 
2859
will translate into a line-update for the terminal
 
2860
(we're pretending it doesn't support character deletion).
 
2861
.PP
 
2862
If you would like to fully specify each window's termcap entry, you should
 
2863
instead set the $SCREENCAP variable prior to running
 
2864
.IR screen .
 
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.
 
2867
.sp
 
2868
.ne 3
 
2869
.B time
 
2870
.RI [ string ]
 
2871
.PP
 
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.
 
2875
 
 
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%?".
 
2879
.sp
 
2880
.ne 3
 
2881
.BR "title " [ \fIwindowtitle ]
 
2882
.PP
 
2883
Set the name of the current window to \fIwindowtitle\fP. If no name is 
 
2884
specified,
 
2885
.I screen
 
2886
prompts for one. This command was known as `aka' in previous
 
2887
releases.
 
2888
.sp
 
2889
.ne 3
 
2890
.BI "unsetenv " var
 
2891
.PP
 
2892
Unset an environment variable.
 
2893
.sp
 
2894
.ne 3
 
2895
.B utf8
 
2896
.RB [ on | off
 
2897
.RB [ on | off ]]
 
2898
.PP
 
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
 
2903
option).
 
2904
See also \*Qdefutf8\*U, which changes the default setting of a new
 
2905
window.
 
2906
.sp
 
2907
.ne 3
 
2908
.B vbell 
 
2909
.RB [ on | off ]
 
2910
.PP
 
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'). 
 
2917
.br
 
2918
Per default, vbell is off, thus the audible bell is used. 
 
2919
See also `bell_msg'.
 
2920
.sp
 
2921
.ne 3
 
2922
.B vbell_msg
 
2923
.RI [ message ]
 
2924
.PP
 
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.
 
2930
.sp
 
2931
.ne 3
 
2932
.BI "vbellwait " sec
 
2933
.PP
 
2934
Define a delay in seconds after each display of 
 
2935
.IR screen 's
 
2936
visual bell message. The default is 1 second.
 
2937
.sp
 
2938
.ne 3
 
2939
.B verbose
 
2940
.RB [ on | off ]
 
2941
.PP
 
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.
 
2945
.sp
 
2946
.ne 3
 
2947
.B version
 
2948
.PP
 
2949
Print the current version and the compile date in the status line.
 
2950
.sp
 
2951
.ne 3
 
2952
.BI "wall " "message"
 
2953
.PP
 
2954
Write a message to all displays. The message will appear in the terminal's
 
2955
status line.
 
2956
.sp
 
2957
.ne 3
 
2958
.B width
 
2959
.RB [ -w | -d ]
 
2960
.RI [ cols " [" lines ]]
 
2961
.PP
 
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.
 
2967
The
 
2968
.B -w
 
2969
option tells screen to leave the display size unchanged and just set
 
2970
the window size,
 
2971
.B -d
 
2972
vice versa.
 
2973
.sp
 
2974
.ne 3
 
2975
.B windowlist
 
2976
.RB [ -b ]
 
2977
.RB [ -m ]
 
2978
.br
 
2979
.B windowlist
 
2980
.B string
 
2981
.RI [ string ]
 
2982
.br
 
2983
.B windowlist
 
2984
.B title
 
2985
.RI [ title ]
 
2986
.PP
 
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.
 
2990
If the 
 
2991
.B -b
 
2992
option is given, screen will switch to the blank window before
 
2993
presenting the list, so that the current window is also selectable.
 
2994
The
 
2995
.B -m
 
2996
option changes the order of the windows, instead of sorting by
 
2997
window numbers screen uses its internal most-recently-used list.
 
2998
 
 
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
 
3003
for the lines.
 
3004
See the \*QSTRING ESCAPES\*U chapter for more codes (e.g. color
 
3005
settings).
 
3006
.sp
 
3007
.ne 3
 
3008
.B windows
 
3009
.PP
 
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.
 
3024
.sp
 
3025
.ne 3
 
3026
.BR "wrap " [ on | off ]
 
3027
.PP
 
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.
 
3033
Default is `on'.
 
3034
.sp
 
3035
.ne 3
 
3036
.B writebuf
 
3037
.RB [ -e
 
3038
.IR encoding ]
 
3039
.RI [ filename ]
 
3040
.PP
 
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
 
3043
.I screen
 
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.
 
3048
.sp
 
3049
.ne 3
 
3050
.BR "writelock " [ on | "off\fR|\fBauto\fR]"
 
3051
.PP
 
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
 
3059
to other windows.
 
3060
.sp
 
3061
.ne 3
 
3062
.B xoff
 
3063
.br
 
3064
.B xon
 
3065
.PP
 
3066
Insert a CTRL-s / CTRL-q character to the stdin queue of the
 
3067
current window.
 
3068
.sp
 
3069
.ne 3
 
3070
.B zmodem
 
3071
.RB [ off\fR|\fPauto\fR|\fPcatch\fR|\fPpass ]
 
3072
.br
 
3073
.B "zmodem sendcmd"
 
3074
.RI [ string ]
 
3075
.br
 
3076
.B "zmodem recvcmd"
 
3077
.RI [ string ]
 
3078
.PP
 
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.
 
3087
.br
 
3088
You can define the templates screen uses in \*Qcatch\*U mode
 
3089
via the second and the third form.
 
3090
.br
 
3091
Note also that this is an experimental feature.
 
3092
.sp
 
3093
.ne 3
 
3094
.BR "zombie " [\fIkeys\fP]
 
3095
.br
 
3096
.BR "defzombie " [\fIkeys\fP]
 
3097
.PP
 
3098
Per default
 
3099
.I screen 
 
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 
 
3105
key, 
 
3106
.I screen 
 
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.
 
3111
 
 
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.
 
3115
 
 
3116
.SH "THE MESSAGE LINE"
 
3117
.I Screen
 
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,
 
3122
.I screen
 
3123
will use this for displaying its messages, otherwise a line of the
 
3124
current screen will
 
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
 
3128
to type.
 
3129
.PP
 
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
 
3132
control sequence.
 
3133
For instance, from within the shell, try something like:
 
3134
.IP
 
3135
echo '<esc>^Hello world from window '$WINDOW'<esc>\e\e'
 
3136
.PP
 
3137
where '<esc>' is an \fIescape\fP, '^' is a literal up-arrow,
 
3138
and '\e\e' turns into a single backslash.
 
3139
 
 
3140
.SH "WINDOW TYPES"
 
3141
Screen provides three different window types. New windows are created with 
 
3142
.IR screen 's
 
3143
.B screen
 
3144
command (see also the entry in chapter \*QCUSTOMIZATION\*U). The first
 
3145
parameter to the 
 
3146
.B screen
 
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
 
3149
to allow 
 
3150
.I screen 
 
3151
to be used efficiently as a console multiplexer with 100 or more windows.
 
3152
 
 
3153
.IP \(bu 3
 
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.  
 
3156
.BR slogin ,
 
3157
etc...) 
 
3158
 
 
3159
.IP \(bu
 
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
 
3162
this device. 
 
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):
 
3168
.RS
 
3169
.IP <baud_rate>         
 
3170
Usually 300, 1200, 9600 or 19200. This affects transmission as well as receive speed.
 
3171
.IP "cs8 or cs7"
 
3172
Specify the transmission of eight (or seven) bits per byte.
 
3173
.IP "ixon or -ixon"
 
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.
 
3179
.PP
 
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.
 
3184
.PP
 
3185
For tty windows, the 
 
3186
.B info
 
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. 
 
3195
.br
 
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. 
 
3200
 
 
3201
 
 
3202
For tty windows, the command
 
3203
.B break
 
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 
 
3207
.B break
 
3208
is issued.
 
3209
.RE
 
3210
.IP \(bu
 
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.
 
3215
.br
 
3216
.br
 
3217
For telnet windows, the command
 
3218
.B info
 
3219
shows details about the connection in square brackets ([ and ]) at the end of
 
3220
the status line. 
 
3221
.RS
 
3222
.IP b
 
3223
BINARY. The connection is in binary mode.
 
3224
.IP e
 
3225
ECHO. Local echo is disabled.
 
3226
.IP c
 
3227
SGA. The connection is in `character mode' (default: `line mode').
 
3228
.IP t
 
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').
 
3232
.IP w
 
3233
NAWS. The remote site is notified about window size changes.
 
3234
.IP f
 
3235
LFLOW. The remote host will send flow control information.
 
3236
(Ignored at the moment.)
 
3237
.PP
 
3238
Additional flags for debugging are x, t and n (XDISPLOC, TSPEED and
 
3239
NEWENV).
 
3240
.PP
 
3241
For telnet windows, the command
 
3242
.B break
 
3243
sends the telnet code IAC BREAK (decimal 243) to the remote host.
 
3244
 
 
3245
 
 
3246
This window type is only available if
 
3247
.I screen
 
3248
was compiled with the BUILTIN_TELNET option defined.
 
3249
.RE
 
3250
 
 
3251
 
 
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')
 
3256
is used instead.
 
3257
 
 
3258
Here is the full list of supported escapes:
 
3259
.IP %
 
3260
the escape character itself
 
3261
.IP a
 
3262
either 'am' or 'pm'
 
3263
.IP A
 
3264
either 'AM' or 'PM'
 
3265
.IP c
 
3266
current time HH:MM in 24h format
 
3267
.IP C
 
3268
current time HH:MM in 12h format
 
3269
.IP d
 
3270
day number
 
3271
.IP D
 
3272
weekday name
 
3273
.IP f
 
3274
flags of the window
 
3275
.IP F
 
3276
sets %? to true if the window has the focus
 
3277
.IP h
 
3278
hardstatus of the window
 
3279
.IP H
 
3280
hostname of the system
 
3281
.IP l
 
3282
current load of the system
 
3283
.IP m
 
3284
month number
 
3285
.IP M
 
3286
month name
 
3287
.IP n
 
3288
window number
 
3289
.IP s
 
3290
seconds
 
3291
.IP t
 
3292
window title
 
3293
.IP u
 
3294
all other users on this window
 
3295
.IP w
 
3296
all window numbers and names. With '-' quailifier: up to the current
 
3297
window; with '+' qualifier: starting with the window after the current
 
3298
one.
 
3299
.IP W
 
3300
all window numbers and names except the current one
 
3301
.IP y
 
3302
last two digits of the year number
 
3303
.IP Y
 
3304
full year number
 
3305
.IP ?
 
3306
the part to the next '%?' is displayed only if a '%' escape
 
3307
inside the part expands to a non-empty string
 
3308
.IP :
 
3309
else part of '%?'
 
3310
.IP =
 
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
 
3318
to change this.
 
3319
.IP <
 
3320
same as '%=' but just do truncation, do not fill with spaces
 
3321
.IP >
 
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
 
3328
parts with '...'.
 
3329
.IP {
 
3330
attribute/color modifier string terminated by the next \*Q}\*U
 
3331
.IP `
 
3332
Substitute with the output of a 'backtick' command. The length
 
3333
qualifier is misused to identify one of the commands.
 
3334
.P
 
3335
The 'c' and 'C' escape may be qualified with a '0' to make 
 
3336
.I screen 
 
3337
use zero instead of space as fill character. The '0' qualifier
 
3338
also makes the '=' escape use absolute positions. The 'n' and '='
 
3339
escapes understand
 
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
 
3342
if 'L' is given.
 
3343
.PP
 
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:
 
3349
.IP +
 
3350
add the specified set to the current attributes
 
3351
.IP -
 
3352
remove the set from the current attributes
 
3353
.IP !
 
3354
invert the set in the current attributes
 
3355
.IP =
 
3356
change the current attributes to the specified set
 
3357
.PP
 
3358
The attribute set can either be specified as a hexadecimal number or
 
3359
a combination of the following letters:
 
3360
.IP d
 
3361
dim
 
3362
.PD 0
 
3363
.IP u
 
3364
underline
 
3365
.IP b
 
3366
bold
 
3367
.IP r
 
3368
reverse
 
3369
.IP s
 
3370
standout
 
3371
.IP B
 
3372
blinking
 
3373
.PD
 
3374
.PP
 
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
 
3377
colors are known:
 
3378
.IP k
 
3379
black
 
3380
.PD 0
 
3381
.IP r
 
3382
red
 
3383
.IP g
 
3384
green
 
3385
.IP y
 
3386
yellow
 
3387
.IP b
 
3388
blue
 
3389
.IP m
 
3390
magenta
 
3391
.IP c
 
3392
cyan
 
3393
.IP w
 
3394
white
 
3395
.IP d
 
3396
default color
 
3397
.IP .
 
3398
leave color unchanged
 
3399
.PD
 
3400
.PP
 
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
 
3403
unchanged.
 
3404
.br
 
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
 
3410
with a \*Q.\*U.
 
3411
.br
 
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).
 
3415
.PP
 
3416
Examples:
 
3417
.IP "\*QG\*U"
 
3418
set color to bright green
 
3419
.IP "\*Q+b r\*U"
 
3420
use bold red
 
3421
.IP "\*Q= yd\*U"
 
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.
 
3431
.SH "FLOW-CONTROL"
 
3432
Each window has a flow-control setting that determines how
 
3433
.I screen
 
3434
deals with
 
3435
the XON and XOFF characters (and perhaps the interrupt character).
 
3436
When flow-control is turned off,
 
3437
.I screen
 
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
 
3447
.I screen
 
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.
 
3452
.PP
 
3453
Each window has an initial flow-control value set with either the
 
3454
.B \-f
 
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".
 
3459
.PP
 
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,
 
3463
.I screen
 
3464
tries to find out
 
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.
 
3468
.PP
 
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
 
3472
.I screen
 
3473
with the \*Qinterrupt\*U
 
3474
option (add the \*Qinterrupt\*U flag to the \*Qflow\*U command in
 
3475
your .screenrc, or use the
 
3476
.B \-i
 
3477
command-line option).
 
3478
This causes the output that
 
3479
.I screen
 
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
 
3491
is enabled.
 
3492
If this happens, a simple refresh of the screen with \*QC-a l\*U will
 
3493
restore it.
 
3494
Give each mode a try, and use whichever mode you find more comfortable.
 
3495
 
 
3496
 
 
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
 
3500
the title commands.
 
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
 
3505
the window.
 
3506
.PP
 
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
 
3510
.B \-t
 
3511
option.
 
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.
 
3518
.PP
 
3519
Finally,
 
3520
.I screen
 
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 `:'
 
3527
.I screen
 
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
 
3531
running.
 
3532
.PP
 
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,
 
3538
.I screen
 
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
 
3542
end of the prompt.
 
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 '^'
 
3546
.I screen
 
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.
 
3551
.PP
 
3552
Here's some .screenrc examples:
 
3553
.IP
 
3554
screen -t top 2 nice top
 
3555
.PP
 
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.
 
3558
.sp
 
3559
.nf
 
3560
        shelltitle '> |csh'
 
3561
        screen 1
 
3562
.fi
 
3563
.sp
 
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:
 
3567
.IP
 
3568
/usr/joe/src/dir> trn
 
3569
.PP
 
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.
 
3573
.IP
 
3574
bind R screen -t '% |root:' su
 
3575
.PP
 
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
 
3580
like this:
 
3581
.sp
 
3582
.nf
 
3583
        % !em
 
3584
        emacs file.c
 
3585
.fi
 
3586
.sp
 
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.
 
3591
.PP
 
3592
.nf
 
3593
        bind o title
 
3594
        bind E title ""
 
3595
        bind u title (unknown)
 
3596
.fi
 
3597
.sp
 
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
 
3602
(C-a u).
 
3603
.PP
 
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:
 
3610
.IP
 
3611
set prompt='^[[0000m^[k^[\e% '
 
3612
.PP
 
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
 
3615
up to 8.
 
3616
Bash users will probably want to echo the escape sequence in the
 
3617
PROMPT_COMMAND:
 
3618
.IP
 
3619
PROMPT_COMMAND='echo -n -e "\e033k\e033\e134"'
 
3620
.PP
 
3621
(I used \*Q\134\*U to output a `\e' because of a bug in bash v1.04).
 
3622
 
 
3623
 
 
3624
.SH "THE VIRTUAL TERMINAL"
 
3625
Each window in a 
 
3626
.I screen
 
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.
 
3629
.br
 
3630
Usually
 
3631
.I screen
 
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
 
3635
.I screen
 
3636
has to tell the applications that some of the features
 
3637
are missing. This is no problem on machines using termcap,
 
3638
because
 
3639
.I screen
 
3640
can use the $TERMCAP variable to
 
3641
customize the standard
 
3642
.I screen
 
3643
termcap.
 
3644
.PP
 
3645
But if you do a
 
3646
rlogin on another machine or your machine supports only
 
3647
terminfo this method fails. Because of this,
 
3648
.I screen
 
3649
offers a way to deal with these cases. 
 
3650
Here is how it works:
 
3651
.PP
 
3652
When 
 
3653
.I screen
 
3654
tries to figure out a terminal name for itself,
 
3655
it first looks
 
3656
for an entry named \*Qscreen.<term>\*U, where <term> is
 
3657
the contents of your $TERM variable.
 
3658
If no such entry exists,
 
3659
.I screen
 
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
 
3663
substitute.
 
3664
.PP
 
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
 
3668
.I screen
 
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
 
3674
of all new windows.
 
3675
.I Screen
 
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
 
3680
of each window.
 
3681
.PP
 
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,
 
3685
.I screen
 
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
 
3690
.IR screen ;
 
3691
namely scrolling, clear screen, and direct cursor addressing
 
3692
(in addition,
 
3693
.I screen
 
3694
does not run on hardcopy terminals or on terminals that over-strike).
 
3695
.PP
 
3696
Also, you can customize the $TERMCAP value used by
 
3697
.I screen
 
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.
 
3704
.PP
 
3705
Note that 
 
3706
.I screen
 
3707
honors the \*Qterminfo\*U .screenrc command if the system uses the
 
3708
terminfo database rather than termcap.
 
3709
.PP
 
3710
When the boolean `G0' capability is present in the termcap entry
 
3711
for the terminal on which
 
3712
.I screen
 
3713
has been called, the terminal emulation of
 
3714
.I screen
 
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,
 
3725
.I screen
 
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.
 
3732
.PP
 
3733
When the `po' and `pf' capabilities are present in the terminal's
 
3734
termcap entry, applications running in a
 
3735
.I screen
 
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 
 
3744
.I info
 
3745
command displays a line starting `PRIN' while the printer is active.
 
3746
.PP
 
3747
.I Screen
 
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 
 
3752
.I screen 
 
3753
message.
 
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
 
3757
also accepted.
 
3758
.PP
 
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.
 
3767
.PP
 
3768
The "alternate screen" capability is not enabled by default.
 
3769
Set the \fBaltscreen\fP .screenrc command to enable it.
 
3770
.PP
 
3771
The following is a list of control sequences recognized by
 
3772
.IR screen .
 
3773
\*Q(V)\*U and \*Q(A)\*U indicate VT100-specific and ANSI- or
 
3774
ISO-specific functions, respectively.
 
3775
.PP
 
3776
.ta 22n
 
3777
.TP 27
 
3778
.B "ESC E"
 
3779
Next Line
 
3780
.TP 27
 
3781
.B "ESC D"
 
3782
Index
 
3783
.TP 27
 
3784
.B "ESC M"
 
3785
Reverse Index
 
3786
.TP 27
 
3787
.B "ESC H"
 
3788
Horizontal Tab Set
 
3789
.TP 27
 
3790
.B "ESC Z"
 
3791
Send VT100 Identification String
 
3792
.TP 27
 
3793
.BR "ESC 7" "   (V)"
 
3794
Save Cursor and Attributes
 
3795
.TP 27
 
3796
.BR "ESC 8" "   (V)"
 
3797
Restore Cursor and Attributes
 
3798
.TP 27
 
3799
.BR "ESC [s" "  (A)"
 
3800
Save Cursor and Attributes
 
3801
.TP 27
 
3802
.BR "ESC [u" "  (A)"
 
3803
Restore Cursor and Attributes
 
3804
.TP 27
 
3805
.B "ESC c"
 
3806
Reset to Initial State
 
3807
.TP 27
 
3808
.B "ESC g"
 
3809
Visual Bell
 
3810
.TP 27
 
3811
.B "ESC \fPPn\fB p"
 
3812
Cursor Visibility (97801)
 
3813
.TP 27
 
3814
\h'\w'ESC 'u'Pn = \fB6\fP
 
3815
Invisible
 
3816
.TP 27
 
3817
\h'\w'ESC Pn = 'u'\fB7\fP
 
3818
Visible
 
3819
.TP 27
 
3820
.BR "ESC =" "   (V)"
 
3821
Application Keypad Mode
 
3822
.TP 27
 
3823
.BR "ESC >" "   (V)"
 
3824
Numeric Keypad Mode
 
3825
.TP 27
 
3826
.BR "ESC # 8" " (V)"
 
3827
Fill Screen with E's
 
3828
.TP 27
 
3829
.BR "ESC \e" "  (A)"
 
3830
String Terminator
 
3831
.TP 27
 
3832
.BR "ESC ^" "   (A)"
 
3833
Privacy Message String (Message Line)
 
3834
.TP 27
 
3835
.B "ESC !"
 
3836
Global Message String (Message Line)
 
3837
.TP 27
 
3838
.B "ESC k"
 
3839
A.\|k.\|a. Definition String
 
3840
.TP 27
 
3841
.BR "ESC P" "   (A)"
 
3842
Device Control String.
 
3843
Outputs a string directly to the host
 
3844
terminal without interpretation.
 
3845
.TP 27
 
3846
.BR "ESC _" "   (A)"
 
3847
Application Program Command (Hardstatus)
 
3848
.TP 27
 
3849
.BR "ESC ] 0 ; string ^G" "     (A)"
 
3850
Operating System Command (Hardstatus, xterm title hack)
 
3851
.TP 27
 
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.
 
3857
.TP 27
 
3858
.BR "Control-N" "       (A)"
 
3859
Lock Shift G1 (SO)
 
3860
.TP 27
 
3861
.BR "Control-O" "       (A)"
 
3862
Lock Shift G0 (SI)
 
3863
.TP 27
 
3864
.BR "ESC n" "   (A)"
 
3865
Lock Shift G2
 
3866
.TP 27
 
3867
.BR "ESC o" "   (A)"
 
3868
Lock Shift G3
 
3869
.TP 27
 
3870
.BR "ESC N" "   (A)"
 
3871
Single Shift G2
 
3872
.TP 27
 
3873
.BR "ESC O" "   (A)"
 
3874
Single Shift G3
 
3875
.TP 27
 
3876
.BR "ESC ( \fPPcs" "    (A)"
 
3877
Designate character set as G0
 
3878
.TP 27
 
3879
.BR "ESC ) \fPPcs" "    (A)"
 
3880
Designate character set as G1
 
3881
.TP 27
 
3882
.BR "ESC * \fPPcs" "    (A)"
 
3883
Designate character set as G2
 
3884
.TP 27
 
3885
.BR "ESC + \fPPcs" "    (A)"
 
3886
Designate character set as G3
 
3887
.TP 27
 
3888
.B "ESC [ \fPPn\fB ; \fPPn\fB H"
 
3889
Direct Cursor Addressing
 
3890
.TP 27
 
3891
.B "ESC [ \fPPn\fB ; \fPPn\fB f"
 
3892
same as above
 
3893
.TP 27
 
3894
.B "ESC [ \fPPn\fB J"
 
3895
Erase in Display
 
3896
.TP 27
 
3897
\h'\w'ESC [ 'u'Pn = None or \fB0\fP
 
3898
From Cursor to End of Screen
 
3899
.TP 27
 
3900
\h'\w'ESC [ Pn = 'u'\fB1\fP
 
3901
From Beginning of Screen to Cursor
 
3902
.TP 27
 
3903
\h'\w'ESC [ Pn = 'u'\fB2\fP
 
3904
Entire Screen
 
3905
.TP 27
 
3906
.B "ESC [ \fPPn\fB K"
 
3907
Erase in Line
 
3908
.TP 27
 
3909
\h'\w'ESC [ 'u'Pn = None or \fB0\fP
 
3910
From Cursor to End of Line
 
3911
.TP 27
 
3912
\h'\w'ESC [ Pn = 'u'\fB1\fP
 
3913
From Beginning of Line to Cursor
 
3914
.TP 27
 
3915
\h'\w'ESC [ Pn = 'u'\fB2\fP
 
3916
Entire Line
 
3917
.TP 27
 
3918
.B "ESC [ \fPPn\fB X"
 
3919
Erase character
 
3920
.TP 27
 
3921
.B "ESC [ \fPPn\fB A"
 
3922
Cursor Up
 
3923
.TP 27
 
3924
.B "ESC [ \fPPn\fB B"
 
3925
Cursor Down
 
3926
.TP 27
 
3927
.B "ESC [ \fPPn\fB C"
 
3928
Cursor Right
 
3929
.TP 27
 
3930
.B "ESC [ \fPPn\fB D"
 
3931
Cursor Left
 
3932
.TP 27
 
3933
.B "ESC [ \fPPn\fB E"
 
3934
Cursor next line
 
3935
.TP 27
 
3936
.B "ESC [ \fPPn\fB F"
 
3937
Cursor previous line
 
3938
.TP 27
 
3939
.B "ESC [ \fPPn\fB G"
 
3940
Cursor horizontal position
 
3941
.TP 27
 
3942
.B "ESC [ \fPPn\fB `"
 
3943
same as above
 
3944
.TP 27
 
3945
.B "ESC [ \fPPn\fB d"
 
3946
Cursor vertical position
 
3947
.TP 27
 
3948
.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB m"
 
3949
Select Graphic Rendition
 
3950
.TP 27
 
3951
\h'\w'ESC [ 'u'Ps = None or \fB0\fP
 
3952
Default Rendition
 
3953
.TP 27
 
3954
\h'\w'ESC [ Ps = 'u'\fB1\fP
 
3955
Bold
 
3956
.TP 27
 
3957
\h'\w'ESC [ Ps = 'u'\fB2\fP     (A)
 
3958
Faint
 
3959
.TP 27
 
3960
\h'\w'ESC [ Ps = 'u'\fB3\fP     (A)
 
3961
\fIStandout\fP Mode (ANSI: Italicized)
 
3962
.TP 27
 
3963
\h'\w'ESC [ Ps = 'u'\fB4\fP
 
3964
Underlined
 
3965
.TP 27
 
3966
\h'\w'ESC [ Ps = 'u'\fB5\fP
 
3967
Blinking
 
3968
.TP 27
 
3969
\h'\w'ESC [ Ps = 'u'\fB7\fP
 
3970
Negative Image
 
3971
.TP 27
 
3972
\h'\w'ESC [ Ps = 'u'\fB22\fP    (A)
 
3973
Normal Intensity
 
3974
.TP 27
 
3975
\h'\w'ESC [ Ps = 'u'\fB23\fP    (A)
 
3976
\fIStandout\fP Mode off (ANSI: Italicized off)
 
3977
.TP 27
 
3978
\h'\w'ESC [ Ps = 'u'\fB24\fP    (A)
 
3979
Not Underlined
 
3980
.TP 27
 
3981
\h'\w'ESC [ Ps = 'u'\fB25\fP    (A)
 
3982
Not Blinking
 
3983
.TP 27
 
3984
\h'\w'ESC [ Ps = 'u'\fB27\fP    (A)
 
3985
Positive Image
 
3986
.TP 27
 
3987
\h'\w'ESC [ Ps = 'u'\fB30\fP    (A)
 
3988
Foreground Black
 
3989
.TP 27
 
3990
\h'\w'ESC [ Ps = 'u'\fB31\fP    (A)
 
3991
Foreground Red
 
3992
.TP 27
 
3993
\h'\w'ESC [ Ps = 'u'\fB32\fP    (A)
 
3994
Foreground Green
 
3995
.TP 27
 
3996
\h'\w'ESC [ Ps = 'u'\fB33\fP    (A)
 
3997
Foreground Yellow
 
3998
.TP 27
 
3999
\h'\w'ESC [ Ps = 'u'\fB34\fP    (A)
 
4000
Foreground Blue
 
4001
.TP 27
 
4002
\h'\w'ESC [ Ps = 'u'\fB35\fP    (A)
 
4003
Foreground Magenta
 
4004
.TP 27
 
4005
\h'\w'ESC [ Ps = 'u'\fB36\fP    (A)
 
4006
Foreground Cyan
 
4007
.TP 27
 
4008
\h'\w'ESC [ Ps = 'u'\fB37\fP    (A)
 
4009
Foreground White
 
4010
.TP 27
 
4011
\h'\w'ESC [ Ps = 'u'\fB39\fP    (A)
 
4012
Foreground Default
 
4013
.TP 27
 
4014
\h'\w'ESC [ Ps = 'u'\fB40\fP    (A)
 
4015
Background Black
 
4016
.TP 27
 
4017
\h'\w'ESC [ Ps = 'u'\fB...\fP
 
4018
...
 
4019
.TP 27
 
4020
\h'\w'ESC [ Ps = 'u'\fB49\fP    (A)
 
4021
Background Default
 
4022
.TP 27
 
4023
.B "ESC [ \fPPn\fB g"
 
4024
Tab Clear
 
4025
.TP 27
 
4026
\h'\w'ESC [ 'u'Pn = None or \fB0\fP
 
4027
Clear Tab at Current Position
 
4028
.TP 27
 
4029
\h'\w'ESC [ Ps = 'u'\fB3\fP
 
4030
Clear All Tabs
 
4031
.TP 27
 
4032
.BR "ESC [ \fPPn\fB ; \fPPn\fB r" "     (V)"
 
4033
Set Scrolling Region
 
4034
.TP 27
 
4035
.BR "ESC [ \fPPn\fB I" "        (A)"
 
4036
Horizontal Tab
 
4037
.TP 27
 
4038
.BR "ESC [ \fPPn\fB Z" "        (A)"
 
4039
Backward Tab
 
4040
.TP 27
 
4041
.BR "ESC [ \fPPn\fB L" "        (A)"
 
4042
Insert Line
 
4043
.TP 27
 
4044
.BR "ESC [ \fPPn\fB M" "        (A)"
 
4045
Delete Line
 
4046
.TP 27
 
4047
.BR "ESC [ \fPPn\fB @" "        (A)"
 
4048
Insert Character
 
4049
.TP 27
 
4050
.BR "ESC [ \fPPn\fB P" "        (A)"
 
4051
Delete Character
 
4052
.TP 27
 
4053
.B "ESC [ \fPPn\fB S"
 
4054
Scroll Scrolling Region Up
 
4055
.TP 27
 
4056
.B "ESC [ \fPPn\fB T"
 
4057
Scroll Scrolling Region Down
 
4058
.TP 27
 
4059
.B "ESC [ \fPPn\fB ^"
 
4060
same as above
 
4061
.TP 27
 
4062
.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB h"
 
4063
Set Mode
 
4064
.TP 27
 
4065
.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB l"
 
4066
Reset Mode
 
4067
.TP 27
 
4068
\h'\w'ESC [ 'u'Ps = \fB4\fP     (A)
 
4069
Insert Mode
 
4070
.TP 27
 
4071
\h'\w'ESC [ Ps = 'u'\fB20\fP    (A)
 
4072
\fIAutomatic Linefeed\fP Mode
 
4073
.TP 27
 
4074
\h'\w'ESC [ Ps = 'u'\fB34\fP
 
4075
Normal Cursor Visibility
 
4076
.TP 27
 
4077
\h'\w'ESC [ Ps = 'u'\fB?1\fP    (V)
 
4078
Application Cursor Keys
 
4079
.TP 27
 
4080
\h'\w'ESC [ Ps = 'u'\fB?3\fP    (V)
 
4081
Change Terminal Width to 132 columns
 
4082
.TP 27
 
4083
\h'\w'ESC [ Ps = 'u'\fB?5\fP    (V)
 
4084
Reverse Video
 
4085
.TP 27
 
4086
\h'\w'ESC [ Ps = 'u'\fB?6\fP    (V)
 
4087
\fIOrigin\fP Mode
 
4088
.TP 27
 
4089
\h'\w'ESC [ Ps = 'u'\fB?7\fP    (V)
 
4090
\fIWrap\fP Mode
 
4091
.TP 27
 
4092
\h'\w'ESC [ Ps = 'u'\fB?9\fP
 
4093
X10 mouse tracking
 
4094
.TP 27
 
4095
\h'\w'ESC [ Ps = 'u'\fB?25\fP   (V)
 
4096
Visible Cursor
 
4097
.TP 27
 
4098
\h'\w'ESC [ Ps = 'u'\fB?47\fP
 
4099
Alternate Screen (old xterm code)
 
4100
.TP 27
 
4101
\h'\w'ESC [ Ps = 'u'\fB?1000\fP (V)
 
4102
VT200 mouse tracking
 
4103
.TP 27
 
4104
\h'\w'ESC [ Ps = 'u'\fB?1047\fP
 
4105
Alternate Screen (new xterm code)
 
4106
.TP 27
 
4107
\h'\w'ESC [ Ps = 'u'\fB?1049\fP
 
4108
Alternate Screen (new xterm code)
 
4109
.TP 27
 
4110
.BR "ESC [ 5 i" "       (A)"
 
4111
Start relay to printer (ANSI Media Copy)
 
4112
.TP 27
 
4113
.BR "ESC [ 4 i" "       (A)"
 
4114
Stop relay to printer (ANSI Media Copy)
 
4115
.TP 27
 
4116
.B "ESC [ 8 ; \fPPh\fB ; \fPPw\fB t"
 
4117
Resize the window to `Ph' lines and `Pw' columns (SunView special)
 
4118
.TP 27
 
4119
.B "ESC [ c"
 
4120
Send VT100 Identification String
 
4121
.TP 27
 
4122
.B "ESC [ x"
 
4123
Send Terminal Parameter Report
 
4124
.TP 27
 
4125
.B "ESC [ > c"
 
4126
Send VT220 Secondary Device Attributes String
 
4127
.TP 27
 
4128
.B "ESC [ 6 n"
 
4129
Send Cursor Position Report
 
4130
 
 
4131
 
 
4132
.SH "INPUT TRANSLATION"
 
4133
In order to do a full VT100 emulation 
 
4134
.I screen
 
4135
has to detect
 
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.
 
4149
.PP
 
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
 
4152
mode.
 
4153
.PP
 
4154
.ta 18n 34n 50n
 
4155
.nf
 
4156
Key name        Termcap name    Command
 
4157
\l'54n'
 
4158
.ta 22n 34n 50n
 
4159
Cursor up       ku      stuff \e033[A
 
4160
                stuff \e033OA   (A)
 
4161
Cursor down     kd      stuff \e033[B
 
4162
                stuff \e033OB   (A)
 
4163
Cursor right    kr      stuff \e033[C
 
4164
                stuff \e033OC   (A)
 
4165
Cursor left     kl      stuff \e033[D
 
4166
                stuff \e033OD   (A)
 
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~
 
4186
Keypad 0        f0      stuff 0
 
4187
                stuff \e033Op   (A)
 
4188
Keypad 1        f1      stuff 1
 
4189
                stuff \e033Oq   (A)
 
4190
Keypad 2        f2      stuff 2
 
4191
                stuff \e033Or   (A)
 
4192
Keypad 3        f3      stuff 3
 
4193
                stuff \e033Os   (A)
 
4194
Keypad 4        f4      stuff 4
 
4195
                stuff \e033Ot   (A)
 
4196
Keypad 5        f5      stuff 5
 
4197
                stuff \e033Ou   (A)
 
4198
Keypad 6        f6      stuff 6
 
4199
                stuff \e033Ov   (A)
 
4200
Keypad 7        f7      stuff 7
 
4201
                stuff \e033Ow   (A)
 
4202
Keypad 8        f8      stuff 8
 
4203
                stuff \e033Ox   (A)
 
4204
Keypad 9        f9      stuff 9
 
4205
                stuff \e033Oy   (A)
 
4206
Keypad +        f+      stuff +
 
4207
                stuff \e033Ok   (A)
 
4208
Keypad -        f-      stuff -
 
4209
                stuff \e033Om   (A)
 
4210
Keypad *        f*      stuff *
 
4211
                stuff \e033Oj   (A)
 
4212
Keypad /        f/      stuff /
 
4213
                stuff \e033Oo   (A)
 
4214
Keypad =        fq      stuff =
 
4215
                stuff \e033OX   (A)
 
4216
Keypad .        f.      stuff .
 
4217
                stuff \e033On   (A)
 
4218
Keypad ,        f,      stuff ,
 
4219
                stuff \e033Ol   (A)
 
4220
Keypad enter    fe      stuff \e015
 
4221
                stuff \e033OM   (A)
 
4222
.fi
 
4223
 
 
4224
 
 
4225
.SH SPECIAL TERMINAL CAPABILITIES
 
4226
The following table describes all terminal capabilities
 
4227
that are recognized by 
 
4228
.I screen
 
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.
 
4234
.PP
 
4235
.ta 5n
 
4236
.TP 13
 
4237
.BI LP "        (bool)"
 
4238
Terminal has VT100 style margins (`magic margins'). Note that
 
4239
this capability is obsolete because 
 
4240
.I screen
 
4241
uses the standard 'xn' instead.
 
4242
.TP 13
 
4243
.BI Z0 "        (str)"
 
4244
Change width to 132 columns.
 
4245
.TP 13
 
4246
.BI Z1 "        (str)"
 
4247
Change width to 80 columns.
 
4248
.TP 13
 
4249
.BI WS "        (str)"
 
4250
Resize display. This capability has the desired width and height as
 
4251
arguments. \fISunView(tm)\fP example: '\eE[8;%d;%dt'.
 
4252
.TP 13
 
4253
.BI NF "        (bool)"
 
4254
Terminal doesn't need flow control. Send ^S and ^Q direct to
 
4255
the application. Same as 'flow off'. The opposite of this
 
4256
capability is 'nx'.
 
4257
.TP 13
 
4258
.BI G0 "        (bool)"
 
4259
Terminal can deal with ISO 2022 font selection sequences.
 
4260
.TP 13
 
4261
.BI S0 "        (str)"
 
4262
Switch charset 'G0' to the specified charset. Default
 
4263
is '\eE(%.'.
 
4264
.TP 13
 
4265
.BI E0 "        (str)"
 
4266
Switch charset 'G0' back to standard charset. Default
 
4267
is '\eE(B'.
 
4268
.TP 13
 
4269
.BI C0 "        (str)"
 
4270
Use the string as a conversion table for font '0'. See
 
4271
the 'ac' capability for more details.
 
4272
.TP 13
 
4273
.BI CS "        (str)"
 
4274
Switch cursor-keys to application mode.
 
4275
.TP 13
 
4276
.BI CE "        (str)"
 
4277
Switch cursor-keys back to normal mode.
 
4278
.TP 13
 
4279
.BI AN "        (bool)"
 
4280
Turn on autonuke. See the 'autonuke' command for more details.
 
4281
.TP 13
 
4282
.BI OL "        (num)"
 
4283
Set the output buffer limit. See the 'obuflimit' command for more details.
 
4284
.TP 13
 
4285
.BI KJ "        (str)"
 
4286
Set the encoding of the terminal. See the 'encoding' command for
 
4287
valid encodings.
 
4288
.TP 13
 
4289
.BI AF "        (str)"
 
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).
 
4293
.TP 13
 
4294
.BI AB "        (str)"
 
4295
Same as 'AF', but change background color.
 
4296
.TP 13
 
4297
.BI AX "        (bool)"
 
4298
Does understand ANSI set default fg/bg color (\eE[39m / \eE[49m).
 
4299
.TP 13
 
4300
.BI XC "        (str)"
 
4301
Describe a translation of characters to strings depending on the
 
4302
current font. More details follow in the next section.
 
4303
.TP 13
 
4304
.BI XT "        (bool)"
 
4305
Terminal understands special xterm sequences (OSC, mouse tracking).
 
4306
.TP 13
 
4307
.BI C8 "        (bool)"
 
4308
Terminal needs bold to display high-intensity colors (e.g. Eterm).
 
4309
.TP 13
 
4310
.BI TF "        (bool)"
 
4311
Add missing capabilities to the termcap/info entry. (Set by default).
 
4312
 
 
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.
 
4319
 
 
4320
Syntax:
 
4321
.nf
 
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
 
4325
.fi
 
4326
 
 
4327
The things in braces may be repeated any number of times.
 
4328
 
 
4329
A \fI<charset-mapping>\fP tells 
 
4330
.I screen
 
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 ','.
 
4343
 
 
4344
Here is an example:
 
4345
 
 
4346
    termcap hp700 'XC=B\eE(K%\eE(B,\e304[,\e326\e\e\e\e,\e334]'
 
4347
 
 
4348
This tells
 
4349
.I screen
 
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'.
 
4356
 
 
4357
Another extension was added to allow more emulation: If a mapping
 
4358
translates the unquoted '%' char, it will be sent to the terminal
 
4359
whenever 
 
4360
.I screen
 
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.
 
4365
 
 
4366
This example shows one use of the extension:
 
4367
 
 
4368
    termcap xterm 'XC=K%,%\eE(B,[\e304,\e\e\e\e\e326,]\e334'
 
4369
 
 
4370
Here, a part of the german ('K') charset is emulated on an xterm.
 
4371
If 
 
4372
.I screen
 
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'.
 
4377
 
 
4378
.SH ENVIRONMENT
 
4379
.PD 0
 
4380
.IP COLUMNS 15
 
4381
Number of columns on the terminal (overrides termcap entry).
 
4382
.IP HOME
 
4383
Directory in which to look for .screenrc.
 
4384
.IP LINES 
 
4385
Number of lines on the terminal (overrides termcap entry).
 
4386
.IP LOCKPRG
 
4387
Screen lock program.
 
4388
.IP NETHACKOPTIONS
 
4389
Turns on nethack option.
 
4390
.IP PATH
 
4391
Used for locating programs to run.
 
4392
.IP SCREENCAP
 
4393
For customizing a terminal's TERMCAP value.
 
4394
.IP SCREENDIR
 
4395
Alternate socket directory.
 
4396
.IP SCREENRC
 
4397
Alternate user screenrc file.
 
4398
.IP SHELL
 
4399
Default shell program for opening windows (default \*Q/bin/sh\*U).
 
4400
.IP STY
 
4401
Alternate socket name.
 
4402
.IP SYSSCREENRC
 
4403
Alternate system screenrc file.
 
4404
.IP TERM
 
4405
Terminal name.
 
4406
.IP TERMCAP
 
4407
Terminal description.
 
4408
.IP WINDOW
 
4409
Window number of a window (at creation time).
 
4410
 
 
4411
.SH FILES
 
4412
.PD 0
 
4413
.IP .../screen-4.?.??/etc/screenrc 34
 
4414
.IP .../screen-4.?.??/etc/etcscreenrc
 
4415
Examples in the 
 
4416
.I screen
 
4417
distribution package for private and global initialization files.
 
4418
.IP $SYSSCREENRC 
 
4419
.IP /usr/local/etc/screenrc
 
4420
.I screen
 
4421
initialization commands
 
4422
.IP $SCREENRC
 
4423
.IP $HOME/.screenrc
 
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
 
4433
or
 
4434
.IP /tmp/screen-exchange
 
4435
.I screen
 
4436
`interprocess communication buffer'
 
4437
.IP hardcopy.[0-9]
 
4438
Screen images created by the hardcopy function
 
4439
.IP screenlog.[0-9]
 
4440
Output log files created by the log function
 
4441
.IP /usr/lib/terminfo/?/*
 
4442
or
 
4443
.IP /etc/termcap
 
4444
Terminal capability databases
 
4445
.IP /etc/utmp
 
4446
Login records
 
4447
.IP $LOCKPRG
 
4448
Program that locks a terminal.
 
4449
 
 
4450
 
 
4451
.SH "SEE ALSO"
 
4452
termcap(5), utmp(5), vi(1), captoinfo(1), tic(1)
 
4453
 
 
4454
 
 
4455
.SH AUTHORS
 
4456
Originally created by Oliver Laumann, this latest version was
 
4457
produced by Wayne Davison, Juergen Weigert and Michael Schroeder.
 
4458
 
 
4459
.SH COPYLEFT
 
4460
.nf
 
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
 
4465
.fi
 
4466
.PP
 
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)
 
4470
any later version.
 
4471
.PP
 
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.
 
4476
.PP
 
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
 
4481
 
 
4482
.SH CONTRIBUTORS
 
4483
.nf
 
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).
 
4511
.fi
 
4512
 
 
4513
 
 
4514
.SH VERSION
 
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. 
 
4519
 
 
4520
.SH AVAILABILITY
 
4521
The latest official release of 
 
4522
.I screen
 
4523
available via anonymous ftp from gnudist.gnu.org, nic.funet.fi or any other 
 
4524
.I GNU 
 
4525
distribution site. The home site of
 
4526
.I screen
 
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.
 
4531
 
 
4532
.SH BUGS
 
4533
.PD
 
4534
.IP \(bu 3
 
4535
`dm' (delete mode) and `xs' are not handled
 
4536
correctly (they are ignored). `xn' is treated as a magic-margin
 
4537
indicator.
 
4538
.IP \(bu
 
4539
.I Screen
 
4540
has no clue about double-high or double-wide characters.         
 
4541
But this is the only area where 
 
4542
.I vttest
 
4543
is allowed to fail.
 
4544
.IP \(bu
 
4545
It is not possible to change the environment variable $TERMCAP when 
 
4546
reattaching under a different terminal type.
 
4547
.IP \(bu
 
4548
The support of terminfo based systems is very limited. Adding extra
 
4549
capabilities to $TERMCAP may not have any effects.
 
4550
.IP \(bu
 
4551
.I Screen
 
4552
does not make use of hardware tabs.
 
4553
.IP \(bu
 
4554
.I Screen
 
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
 
4557
each window.
 
4558
Special permission may also be required to write the file \*Q/etc/utmp\*U.
 
4559
.IP \(bu
 
4560
Entries in \*Q/etc/utmp\*U are not removed when
 
4561
.I screen
 
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.
 
4565
.IP \(bu
 
4566
.I Screen
 
4567
may give a strange warning when your tty has no utmp entry.
 
4568
.IP \(bu
 
4569
When the modem line was hung up, 
 
4570
.I screen
 
4571
may not automatically detach (or quit)
 
4572
unless the device driver is configured to send a HANGUP signal. 
 
4573
To detach a 
 
4574
.I screen
 
4575
session use the -D or -d command line option.
 
4576
.IP \(bu
 
4577
If a password is set, the command line options -d and -D still detach a 
 
4578
session without asking.
 
4579
.IP \(bu
 
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 
 
4583
windows.
 
4584
.IP \(bu
 
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.
 
4588
.IP \(bu
 
4589
A weird imagination is most useful to gain full advantage of all the features.
 
4590
.IP \(bu
 
4591
Send bug-reports, fixes, enhancements, t-shirts, money, beer & pizza to
 
4592
.BR screen@uni-erlangen.de .
 
4593