1SCREEN(1) General Commands Manual SCREEN(1)
2
3
4
6 screen - screen manager with VT100/ANSI terminal emulation
7
8
9
11 screen [ -options ] [ cmd [ args ] ]
12 screen -r [[pid.]tty[.host]]
13 screen -r sessionowner/[[pid.]tty[.host]]
14
15
16
18 Screen is a full-screen window manager that multiplexes a physical ter‐
19 minal between several processes (typically interactive shells). Each
20 virtual terminal provides the functions of a DEC VT100 terminal and, in
21 addition, several control functions from the ISO 6429 (ECMA 48, ANSI
22 X3.64) and ISO 2022 standards (e.g. insert/delete line and support for
23 multiple character sets). There is a scrollback history buffer for
24 each virtual terminal and a copy-and-paste mechanism that allows moving
25 text regions between windows.
26
27 When screen is called, it creates a single window with a shell in it
28 (or the specified command) and then gets out of your way so that you
29 can use the program as you normally would. Then, at any time, you can
30 create new (full-screen) windows with other programs in them (including
31 more shells), kill existing windows, view a list of windows, turn out‐
32 put logging on and off, copy-and-paste text between windows, view the
33 scrollback history, switch between windows in whatever manner you wish,
34 etc. All windows run their programs completely independent of each
35 other. Programs continue to run when their window is currently not vis‐
36 ible and even when the whole screen session is detached from the user's
37 terminal. When a program terminates, screen (per default) kills the
38 window that contained it. If this window was in the foreground, the
39 display switches to the previous window; if none are left, screen
40 exits.
41
42 Everything you type is sent to the program running in the current win‐
43 dow. The only exception to this is the one keystroke that is used to
44 initiate a command to the window manager. By default, each command
45 begins with a control-a (abbreviated C-a from now on), and is followed
46 by one other keystroke. The command character and all the key bindings
47 can be fully customized to be anything you like, though they are always
48 two characters in length.
49
50 Screen does not understand the prefix "C-" to mean control. Please use
51 the caret notation ("^A" instead of "C-a") as arguments to e.g. the
52 escape command or the -e option. Screen will also print out control
53 characters in caret notation.
54
55 The standard way to create a new window is to type "C-a c". This cre‐
56 ates a new window running a shell and switches to that window immedi‐
57 ately, regardless of the state of the process running in the current
58 window. Similarly, you can create a new window with a custom command
59 in it by first binding the command to a keystroke (in your .screenrc
60 file or at the "C-a :" command line) and then using it just like the
61 "C-a c" command. In addition, new windows can be created by running a
62 command like:
63
64 screen emacs prog.c
65
66 from a shell prompt within a previously created window. This will not
67 run another copy of screen, but will instead supply the command name
68 and its arguments to the window manager (specified in the $STY environ‐
69 ment variable) who will use it to create the new window. The above
70 example would start the emacs editor (editing prog.c) and switch to its
71 window. - Note that you cannot transport environment variables from the
72 invoking shell to the application (emacs in this case), because it is
73 forked from the parent screen process, not from the invoking shell.
74
75 If "/etc/utmp" is writable by screen, an appropriate record will be
76 written to this file for each window, and removed when the window is
77 terminated. This is useful for working with "talk", "script", "shut‐
78 down", "rsend", "sccs" and other similar programs that use the utmp
79 file to determine who you are. As long as screen is active on your ter‐
80 minal, the terminal's own record is removed from the utmp file. See
81 also "C-a L".
82
83
84
86 Before you begin to use screen you'll need to make sure you have cor‐
87 rectly selected your terminal type, just as you would for any other
88 termcap/terminfo program. (You can do this by using tset for example.)
89
90 If you're impatient and want to get started without doing a lot more
91 reading, you should remember this one command: "C-a ?". Typing these
92 two characters will display a list of the available screen commands and
93 their bindings. Each keystroke is discussed in the section "DEFAULT KEY
94 BINDINGS". The manual section "CUSTOMIZATION" deals with the contents
95 of your .screenrc.
96
97 If your terminal is a "true" auto-margin terminal (it doesn't allow the
98 last position on the screen to be updated without scrolling the screen)
99 consider using a version of your terminal's termcap that has automatic
100 margins turned off. This will ensure an accurate and optimal update of
101 the screen in all circumstances. Most terminals nowadays have "magic"
102 margins (automatic margins plus usable last column). This is the VT100
103 style type and perfectly suited for screen. If all you've got is a
104 "true" auto-margin terminal screen will be content to use it, but
105 updating a character put into the last position on the screen may not
106 be possible until the screen scrolls or the character is moved into a
107 safe position in some other way. This delay can be shortened by using a
108 terminal with insert-character capability.
109
110
111
113 Screen has the following command-line options:
114
115 -a include all capabilities (with some minor exceptions) in each win‐
116 dow's termcap, even if screen must redraw parts of the display in
117 order to implement a function.
118
119 -A Adapt the sizes of all windows to the size of the current termi‐
120 nal. By default, screen tries to restore its old window sizes
121 when attaching to resizable terminals (those with "WS" in its
122 description, e.g. suncmd or some xterm).
123
124 -c file
125 override the default configuration file from "$HOME/.screenrc" to
126 file.
127
128 -d|-D [pid.tty.host]
129 does not start screen, but detaches the elsewhere running screen
130 session. It has the same effect as typing "C-a d" from screen's
131 controlling terminal. -D is the equivalent to the power detach
132 key. If no session can be detached, this option is ignored. In
133 combination with the -r/-R option more powerful effects can be
134 achieved:
135
136 -d -r Reattach a session and if necessary detach it first.
137
138 -d -R Reattach a session and if necessary detach or even create it
139 first.
140
141 -d -RR Reattach a session and if necessary detach or create it. Use
142 the first session if more than one session is available.
143
144 -D -r Reattach a session. If necessary detach and logout remotely
145 first.
146
147 -D -R Attach here and now. In detail this means: If a session is run‐
148 ning, then reattach. If necessary detach and logout remotely
149 first. If it was not running create it and notify the user.
150 This is the author's favorite.
151
152 -D -RR Attach here and now. Whatever that means, just do it.
153
154 Note: It is always a good idea to check the status of your ses‐
155 sions by means of "screen -list".
156
157 -e xy
158 specifies the command character to be x and the character generat‐
159 ing a literal command character to y (when typed after the command
160 character). The default is "C-a" and `a', which can be specified
161 as "-e^Aa". When creating a screen session, this option sets the
162 default command character. In a multiuser session all users added
163 will start off with this command character. But when attaching to
164 an already running session, this option changes only the command
165 character of the attaching user. This option is equivalent to
166 either the commands "defescape" or "escape" respectively.
167
168 -f, -fn, and -fa
169 turns flow-control on, off, or "automatic switching mode". This
170 can also be defined through the "defflow" .screenrc command.
171
172 -h num
173 Specifies the history scrollback buffer to be num lines high.
174
175 -i will cause the interrupt key (usually C-c) to interrupt the dis‐
176 play immediately when flow-control is on. See the "defflow"
177 .screenrc command for details. The use of this option is discour‐
178 aged.
179
180 -l and -ln
181 turns login mode on or off (for /etc/utmp updating). This can
182 also be defined through the "deflogin" .screenrc command.
183
184 -ls [match]
185 -list [match]
186 does not start screen, but prints a list of pid.tty.host strings
187 identifying your screen sessions. Sessions marked `detached' can
188 be resumed with "screen -r". Those marked `attached' are running
189 and have a controlling terminal. If the session runs in multiuser
190 mode, it is marked `multi'. Sessions marked as `unreachable'
191 either live on a different host or are `dead'. An unreachable
192 session is considered dead, when its name matches either the name
193 of the local host, or the specified parameter, if any. See the -r
194 flag for a description how to construct matches. Sessions marked
195 as `dead' should be thoroughly checked and removed. Ask your sys‐
196 tem administrator if you are not sure. Remove sessions with the
197 -wipe option.
198
199 -L tells screen to turn on automatic output logging for the windows.
200
201 -m causes screen to ignore the $STY environment variable. With
202 "screen -m" creation of a new session is enforced, regardless
203 whether screen is called from within another screen session or
204 not. This flag has a special meaning in connection with the `-d'
205 option:
206
207 -d -m Start screen in "detached" mode. This creates a new session but
208 doesn't attach to it. This is useful for system startup
209 scripts.
210
211 -D -m This also starts screen in "detached" mode, but doesn't fork a
212 new process. The command exits if the session terminates.
213
214 -O selects a more optimal output mode for your terminal rather than
215 true VT100 emulation (only affects auto-margin terminals without
216 `LP'). This can also be set in your .screenrc by specifying `OP'
217 in a "termcap" command.
218
219 -p number_or_name|-|=|+
220 Preselect a window. This is useful when you want to reattach to a
221 specific window or you want to send a command via the "-X" option
222 to a specific window. As with screen's select command, "-" selects
223 the blank window. As a special case for reattach, "=" brings up
224 the windowlist on the blank window, while a "+" will create a new
225 window. The command will not be executed if the specified window
226 could not be found.
227
228 -q Suppress printing of error messages. In combination with "-ls" the
229 exit value is as follows: 9 indicates a directory without ses‐
230 sions. 10 indicates a directory with running but not attachable
231 sessions. 11 (or more) indicates 1 (or more) usable sessions. In
232 combination with "-r" the exit value is as follows: 10 indicates
233 that there is no session to resume. 12 (or more) indicates that
234 there are 2 (or more) sessions to resume and you should specify
235 which one to choose. In all other cases "-q" has no effect.
236
237 -Q Some commands now can be queried from a remote session using this
238 flag, e.g. 'screen -Q windows'. The commands will send the
239 response to the stdout of the querying process. If there was an
240 error in the command, then the querying process will exit with a
241 non-zero status.
242
243 The commands that can be queried now are:
244 echo
245 info
246 lastmsg
247 number
248 select
249 time
250 title
251 windows
252
253 -r [pid.tty.host]
254 -r sessionowner/[pid.tty.host]
255 resumes a detached screen session. No other options (except com‐
256 binations with -d/-D) may be specified, though an optional prefix
257 of [pid.]tty.host may be needed to distinguish between multiple
258 detached screen sessions. The second form is used to connect to
259 another user's screen session which runs in multiuser mode. This
260 indicates that screen should look for sessions in another user's
261 directory. This requires setuid-root.
262
263 -R attempts to resume the first detached screen session it finds. If
264 successful, all other command-line options are ignored. If no
265 detached session exists, starts a new session using the specified
266 options, just as if -R had not been specified. The option is set
267 by default if screen is run as a login-shell (actually screen uses
268 "-xRR" in that case). For combinations with the -d/-D option see
269 there.
270
271 -s program
272 sets the default shell to the program specified, instead of the
273 value in the environment variable $SHELL (or "/bin/sh" if not
274 defined). This can also be defined through the "shell" .screenrc
275 command.
276
277 -S sessionname
278 When creating a new session, this option can be used to specify a
279 meaningful name for the session. This name identifies the session
280 for "screen -list" and "screen -r" actions. It substitutes the
281 default [tty.host] suffix.
282
283 -t name
284 sets the title (a.k.a.) for the default shell or specified pro‐
285 gram. See also the "shelltitle" .screenrc command.
286
287 -T term
288 Set the $TERM enviroment varible using the spcified term as
289 opposed to the defualt setting of screen.
290
291 -U Run screen in UTF-8 mode. This option tells screen that your ter‐
292 minal sends and understands UTF-8 encoded characters. It also sets
293 the default encoding for new windows to `utf8'.
294
295 -v Print version number.
296
297 -wipe [match]
298 does the same as "screen -ls", but removes destroyed sessions
299 instead of marking them as `dead'. An unreachable session is con‐
300 sidered dead, when its name matches either the name of the local
301 host, or the explicitly given parameter, if any. See the -r flag
302 for a description how to construct matches.
303
304 -x Attach to a not detached screen session. (Multi display mode).
305 Screen refuses to attach from within itself. But when cascading
306 multiple screens, loops are not detected; take care.
307
308 -X Send the specified command to a running screen session. You can
309 use the -d or -r option to tell screen to look only for attached
310 or detached screen sessions. Note that this command doesn't work
311 if the session is password protected.
312
313 -4 Resolve hostnames only to IPv4 addresses.
314
315 -6 Resolve hostnames only to IPv6 addresses.
316
317
319 As mentioned, each screen command consists of a "C-a" followed by one
320 other character. For your convenience, all commands that are bound to
321 lower-case letters are also bound to their control character counter‐
322 parts (with the exception of "C-a a"; see below), thus, "C-a c" as well
323 as "C-a C-c" can be used to create a window. See section "CUSTOMIZA‐
324 TION" for a description of the command.
325
326 The following table shows the default key bindings:
327
328 C-a ' (select) Prompt for a window name or number to switch
329 to.
330
331 C-a " (windowlist -b)
332 Present a list of all windows for selection.
333
334 C-a 0 (select 0)
335 ... ...
336 C-a 9 (select 9)
337 C-a - (select -) Switch to window number 0 - 9, or to the
338 blank window.
339
340 C-a tab (focus) Switch the input focus to the next region.
341 See also split, remove, only.
342
343 C-a C-a (other) Toggle to the window displayed previously.
344 Note that this binding defaults to the com‐
345 mand character typed twice, unless overrid‐
346 den. For instance, if you use the option
347 "-e]x", this command becomes "]]".
348
349 C-a a (meta) Send the command character (C-a) to window.
350 See escape command.
351
352 C-a A (title) Allow the user to enter a name for the cur‐
353 rent window.
354
355 C-a b
356 C-a C-b (break) Send a break to window.
357
358 C-a B (pow_break) Reopen the terminal line and send a break.
359
360 C-a c
361 C-a C-c (screen) Create a new window with a shell and switch
362 to that window.
363
364 C-a C (clear) Clear the screen.
365
366 C-a d
367 C-a C-d (detach) Detach screen from this terminal.
368
369 C-a D D (pow_detach) Detach and logout.
370
371 C-a f
372 C-a C-f (flow) Toggle flow on, off or auto.
373
374 C-a F (fit) Resize the window to the current region size.
375
376 C-a C-g (vbell) Toggles screen's visual bell mode.
377
378 C-a h (hardcopy) Write a hardcopy of the current window to the
379 file "hardcopy.n".
380
381 C-a H (log) Begins/ends logging of the current window to
382 the file "screenlog.n".
383
384 C-a i
385 C-a C-i (info) Show info about this window.
386
387 C-a k
388 C-a C-k (kill) Destroy current window.
389
390 C-a l
391 C-a C-l (redisplay) Fully refresh current window.
392
393 C-a L (login) Toggle this windows login slot. Available
394 only if screen is configured to update the
395 utmp database.
396
397 C-a m
398 C-a C-m (lastmsg) Repeat the last message displayed in the mes‐
399 sage line.
400
401 C-a M (monitor) Toggles monitoring of the current window.
402
403 C-a space
404 C-a n
405 C-a C-n (next) Switch to the next window.
406
407 C-a N (number) Show the number (and title) of the current
408 window.
409
410 C-a backspace
411 C-a h
412 C-a p
413 C-a C-p (prev) Switch to the previous window (opposite of C-
414 a n).
415
416 C-a q
417 C-a C-q (xon) Send a control-q to the current window.
418
419 C-a Q (only) Delete all regions but the current one. See
420 also split, remove, focus.
421
422 C-a r
423 C-a C-r (wrap) Toggle the current window's line-wrap setting
424 (turn the current window's automatic margins
425 on and off).
426
427 C-a s
428 C-a C-s (xoff) Send a control-s to the current window.
429
430 C-a S (split) Split the current region horizontally into
431 two new ones. See also only, remove, focus.
432
433 C-a t
434 C-a C-t (time) Show system information.
435
436 C-a v (version) Display the version and compilation date.
437
438 C-a C-v (digraph) Enter digraph.
439
440 C-a w
441 C-a C-w (windows) Show a list of window.
442
443 C-a W (width) Toggle 80/132 columns.
444
445 C-a x
446 C-a C-x (lockscreen) Lock this terminal.
447
448 C-a X (remove) Kill the current region. See also split,
449 only, focus.
450
451 C-a z
452 C-a C-z (suspend) Suspend screen. Your system must support
453 BSD-style job-control.
454
455 C-a Z (reset) Reset the virtual terminal to its "power-on"
456 values.
457
458 C-a . (dumptermcap) Write out a ".termcap" file.
459
460 C-a ? (help) Show key bindings.
461
462 C-a C-\ (quit) Kill all windows and terminate screen.
463
464 C-a : (colon) Enter command line mode.
465
466 C-a [
467 C-a C-[
468 C-a esc (copy) Enter copy/scrollback mode.
469
470 C-a C-]
471 C-a ] (paste .) Write the contents of the paste buffer to the
472 stdin queue of the current window.
473
474 C-a {
475 C-a } (history) Copy and paste a previous (command) line.
476
477 C-a > (writebuf) Write paste buffer to a file.
478
479 C-a < (readbuf) Reads the screen-exchange file into the paste
480 buffer.
481
482 C-a = (removebuf) Removes the file used by C-a < and C-a >.
483
484 C-a , (license) Shows where screen comes from, where it went
485 to and why you can use it.
486
487 C-a _ (silence) Start/stop monitoring the current window for
488 inactivity.
489
490 C-a | (split -v) Split the current region vertically into two
491 new ones.
492
493 C-a * (displays) Show a listing of all currently attached dis‐
494 plays.
495
496
497
499 The "socket directory" defaults either to $HOME/.screen or simply to
500 /tmp/screens or preferably to /usr/local/screens chosen at compile-
501 time. If screen is installed setuid-root, then the administrator should
502 compile screen with an adequate (not NFS mounted) socket directory. If
503 screen is not running setuid-root, the user can specify any mode 700
504 directory in the environment variable $SCREENDIR.
505
506 When screen is invoked, it executes initialization commands from the
507 files "/etc/screenrc" and ".screenrc" in the user's home directory.
508 These are the "programmer's defaults" that can be overridden in the
509 following ways: for the global screenrc file screen searches for the
510 environment variable $SYSSCREENRC (this override feature may be dis‐
511 abled at compile-time). The user specific screenrc file is searched in
512 $SCREENRC, then $HOME/.screenrc. The command line option -c takes
513 precedence over the above user screenrc files.
514
515 Commands in these files are used to set options, bind functions to
516 keys, and to automatically establish one or more windows at the begin‐
517 ning of your screen session. Commands are listed one per line, with
518 empty lines being ignored. A command's arguments are separated by tabs
519 or spaces, and may be surrounded by single or double quotes. A `#'
520 turns the rest of the line into a comment, except in quotes. Unintel‐
521 ligible lines are warned about and ignored. Commands may contain ref‐
522 erences to environment variables. The syntax is the shell-like "$VAR "
523 or "${VAR}". Note that this causes incompatibility with previous screen
524 versions, as now the '$'-character has to be protected with '\' if no
525 variable substitution shall be performed. A string in single-quotes is
526 also protected from variable substitution.
527
528 Two configuration files are shipped as examples with your screen dis‐
529 tribution: "etc/screenrc" and "etc/etcscreenrc". They contain a number
530 of useful examples for various commands.
531
532 Customization can also be done 'on-line'. To enter the command mode
533 type `C-a :'. Note that commands starting with "def" change default
534 values, while others change current settings.
535
536 The following commands are available:
537
538 acladd usernames [crypted-pw]
539 addacl usernames
540
541 Enable users to fully access this screen session. Usernames can be one
542 user or a comma separated list of users. This command enables to attach
543 to the screen session and performs the equivalent of `aclchg usernames
544 +rwx "#?"'. executed. To add a user with restricted access, use the
545 `aclchg' command below. If an optional second parameter is supplied,
546 it should be a crypted password for the named user(s). `Addacl' is a
547 synonym to `acladd'. Multi user mode only.
548
549 aclchg usernames permbits list
550 chacl usernames permbits list
551
552 Change permissions for a comma separated list of users. Permission bits
553 are represented as `r', `w' and `x'. Prefixing `+' grants the permis‐
554 sion, `-' removes it. The third parameter is a comma separated list of
555 commands and/or windows (specified either by number or title). The spe‐
556 cial list `#' refers to all windows, `?' to all commands. if usernames
557 consists of a single `*', all known users are affected. A command can
558 be executed when the user has the `x' bit for it. The user can type
559 input to a window when he has its `w' bit set and no other user obtains
560 a writelock for this window. Other bits are currently ignored. To
561 withdraw the writelock from another user in window 2: `aclchg username
562 -w+w 2'. To allow read-only access to the session: `aclchg username -w
563 "#"'. As soon as a user's name is known to screen he can attach to the
564 session and (per default) has full permissions for all command and win‐
565 dows. Execution permission for the acl commands, `at' and others should
566 also be removed or the user may be able to regain write permission.
567 Rights of the special username nobody cannot be changed (see the "su"
568 command). `Chacl' is a synonym to `aclchg'. Multi user mode only.
569
570 acldel username
571
572 Remove a user from screen's access control list. If currently attached,
573 all the user's displays are detached from the session. He cannot attach
574 again. Multi user mode only.
575
576 aclgrp username [groupname]
577
578 Creates groups of users that share common access rights. The name of
579 the group is the username of the group leader. Each member of the group
580 inherits the permissions that are granted to the group leader. That
581 means, if a user fails an access check, another check is made for the
582 group leader. A user is removed from all groups the special value
583 "none" is used for groupname. If the second parameter is omitted all
584 groups the user is in are listed.
585
586 aclumask [[users]+bits |[users]-bits .... ]
587 umask [[users]+bits |[users]-bits .... ]
588
589 This specifies the access other users have to windows that will be cre‐
590 ated by the caller of the command. Users may be no, one or a comma
591 separated list of known usernames. If no users are specified, a list of
592 all currently known users is assumed. Bits is any combination of
593 access control bits allowed defined with the "aclchg" command. The spe‐
594 cial username "?" predefines the access that not yet known users will
595 be granted to any window initially. The special username "??" prede‐
596 fines the access that not yet known users are granted to any command.
597 Rights of the special username nobody cannot be changed (see the "su"
598 command). `Umask' is a synonym to `aclumask'.
599
600 activity message
601
602 When any activity occurs in a background window that is being moni‐
603 tored, screen displays a notification in the message line. The notifi‐
604 cation message can be re-defined by means of the "activity" command.
605 Each occurrence of `%' in message is replaced by the number of the win‐
606 dow in which activity has occurred, and each occurrence of `^G' is
607 replaced by the definition for bell in your termcap (usually an audible
608 bell). The default message is
609
610 'Activity in window %n'
611
612 Note that monitoring is off for all windows by default, but can be
613 altered by use of the "monitor" command (C-a M).
614
615 allpartial on|off
616
617 If set to on, only the current cursor line is refreshed on window
618 change. This affects all windows and is useful for slow terminal
619 lines. The previous setting of full/partial refresh for each window is
620 restored with "allpartial off". This is a global flag that immediately
621 takes effect on all windows overriding the "partial" settings. It does
622 not change the default redraw behavior of newly created windows.
623
624 altscreen on|off
625
626 If set to on, "alternate screen" support is enabled in virtual termi‐
627 nals, just like in xterm. Initial setting is `off'.
628
629 at [identifier][#|*|%] command [args ... ]
630
631 Execute a command at other displays or windows as if it had been
632 entered there. "At" changes the context (the `current window' or `cur‐
633 rent display' setting) of the command. If the first parameter describes
634 a non-unique context, the command will be executed multiple times. If
635 the first parameter is of the form `identifier*' then identifier is
636 matched against user names. The command is executed once for each dis‐
637 play of the selected user(s). If the first parameter is of the form
638 `identifier%' identifier is matched against displays. Displays are
639 named after the ttys they attach. The prefix `/dev/' or `/dev/tty' may
640 be omitted from the identifier. If identifier has a `#' or nothing
641 appended it is matched against window numbers and titles. Omitting an
642 identifier in front of the `#', `*' or `%'-character selects all users,
643 displays or windows because a prefix-match is performed. Note that on
644 the affected display(s) a short message will describe what happened.
645 Permission is checked for initiator of the "at" command, not for the
646 owners of the affected display(s). Note that the '#' character works
647 as a comment introducer when it is preceded by whitespace. This can be
648 escaped by prefixing a '\'. Permission is checked for the initiator of
649 the "at" command, not for the owners of the affected display(s).
650 Caveat: When matching against windows, the command is executed at least
651 once per window. Commands that change the internal arrangement of win‐
652 dows (like "other") may be called again. In shared windows the command
653 will be repeated for each attached display. Beware, when issuing toggle
654 commands like "login"! Some commands (e.g. "process") require that a
655 display is associated with the target windows. These commands may not
656 work correctly under "at" looping over windows.
657
658 attrcolor attrib [attribute/color-modifier]
659
660 This command can be used to highlight attributes by changing the color
661 of the text. If the attribute attrib is in use, the specified
662 attribute/color modifier is also applied. If no modifier is given, the
663 current one is deleted. See the "STRING ESCAPES" chapter for the syntax
664 of the modifier. Screen understands two pseudo-attributes, "i" stands
665 for high-intensity foreground color and "I" for high-intensity back‐
666 ground color.
667
668 Examples:
669
670 attrcolor b "R"
671
672 Change the color to bright red if bold text is to be printed.
673
674 attrcolor u "-u b"
675
676 Use blue text instead of underline.
677
678 attrcolor b ".I"
679
680 Use bright colors for bold text. Most terminal emulators do this
681 already.
682
683 attrcolor i "+b"
684
685 Make bright colored text also bold.
686
687 autodetach on|off
688
689 Sets whether screen will automatically detach upon hangup, which saves
690 all your running programs until they are resumed with a screen -r com‐
691 mand. When turned off, a hangup signal will terminate screen and all
692 the processes it contains. Autodetach is on by default.
693
694 autonuke on|off
695
696 Sets whether a clear screen sequence should nuke all the output that
697 has not been written to the terminal. See also "obuflimit".
698
699 backtick id lifespan autorefresh cmd args...
700 backtick id
701
702 Program the backtick command with the numerical id id. The output of
703 such a command is used for substitution of the "%`" string escape. The
704 specified lifespan is the number of seconds the output is considered
705 valid. After this time, the command is run again if a corresponding
706 string escape is encountered. The autorefresh parameter triggers an
707 automatic refresh for caption and hardstatus strings after the speci‐
708 fied number of seconds. Only the last line of output is used for sub‐
709 stitution.
710 If both the lifespan and the autorefresh parameters are zero, the back‐
711 tick program is expected to stay in the background and generate output
712 once in a while. In this case, the command is executed right away and
713 screen stores the last line of output. If a new line gets printed
714 screen will automatically refresh the hardstatus or the captions.
715 The second form of the command deletes the backtick command with the
716 numerical id id.
717
718 bce [on|off]
719
720 Change background-color-erase setting. If "bce" is set to on, all char‐
721 acters cleared by an erase/insert/scroll/clear operation will be dis‐
722 played in the current background color. Otherwise the default back‐
723 ground color is used.
724
725 bell_msg [message]
726
727 When a bell character is sent to a background window, screen displays a
728 notification in the message line. The notification message can be re-
729 defined by this command. Each occurrence of `%' in message is replaced
730 by the number of the window to which a bell has been sent, and each
731 occurrence of `^G' is replaced by the definition for bell in your term‐
732 cap (usually an audible bell). The default message is
733
734 'Bell in window %n'
735
736 An empty message can be supplied to the "bell_msg" command to suppress
737 output of a message line (bell_msg ""). Without parameter, the current
738 message is shown.
739
740 bind [-c class] key [command [args]]
741
742 Bind a command to a key. By default, most of the commands provided by
743 screen are bound to one or more keys as indicated in the "DEFAULT KEY
744 BINDINGS" section, e.g. the command to create a new window is bound to
745 "C-c" and "c". The "bind" command can be used to redefine the key
746 bindings and to define new bindings. The key argument is either a sin‐
747 gle character, a two-character sequence of the form "^x" (meaning "C-
748 x"), a backslash followed by an octal number (specifying the ASCII code
749 of the character), or a backslash followed by a second character, such
750 as "\^" or "\\". The argument can also be quoted, if you like. If no
751 further argument is given, any previously established binding for this
752 key is removed. The command argument can be any command listed in this
753 section.
754
755 If a command class is specified via the "-c" option, the key is bound
756 for the specified class. Use the "command" command to activate a class.
757 Command classes can be used to create multiple command keys or multi-
758 character bindings.
759
760 Some examples:
761
762 bind ' ' windows
763 bind ^k
764 bind k
765 bind K kill
766 bind ^f screen telnet foobar
767 bind \033 screen -ln -t root -h 1000 9 su
768
769 would bind the space key to the command that displays a list of windows
770 (so that the command usually invoked by "C-a C-w" would also be avail‐
771 able as "C-a space"). The next three lines remove the default kill
772 binding from "C-a C-k" and "C-a k". "C-a K" is then bound to the kill
773 command. Then it binds "C-f" to the command "create a window with a
774 TELNET connection to foobar", and bind "escape" to the command that
775 creates an non-login window with a.k.a. "root" in slot #9, with a supe‐
776 ruser shell and a scrollback buffer of 1000 lines.
777
778 bind -c demo1 0 select 10
779 bind -c demo1 1 select 11
780 bind -c demo1 2 select 12
781 bindkey "^B" command -c demo1
782
783 makes "C-b 0" select window 10, "C-b 1" window 11, etc.
784
785 bind -c demo2 0 select 10
786 bind -c demo2 1 select 11
787 bind -c demo2 2 select 12
788 bind - command -c demo2
789
790 makes "C-a - 0" select window 10, "C-a - 1" window 11, etc.
791
792 bindkey [-d] [-m] [-a] [[-k|-t] string [cmd args]]
793
794 This command manages screen's input translation tables. Every entry in
795 one of the tables tells screen how to react if a certain sequence of
796 characters is encountered. There are three tables: one that should con‐
797 tain actions programmed by the user, one for the default actions used
798 for terminal emulation and one for screen's copy mode to do cursor
799 movement. See section "INPUT TRANSLATION" for a list of default key
800 bindings.
801 If the -d option is given, bindkey modifies the default table, -m
802 changes the copy mode table and with neither option the user table is
803 selected. The argument string is the sequence of characters to which
804 an action is bound. This can either be a fixed string or a termcap key‐
805 board capability name (selectable with the -k option).
806 Some keys on a VT100 terminal can send a different string if applica‐
807 tion mode is turned on (e.g the cursor keys). Such keys have two
808 entries in the translation table. You can select the application mode
809 entry by specifying the -a option.
810 The -t option tells screen not to do inter-character timing. One cannot
811 turn off the timing if a termcap capability is used.
812 Cmd can be any of screen's commands with an arbitrary number of args.
813 If cmd is omitted the key-binding is removed from the table.
814 Here are some examples of keyboard bindings:
815
816 bindkey -d
817 Show all of the default key bindings. The application mode entries are
818 marked with [A].
819
820 bindkey -k k1 select 1
821 Make the "F1" key switch to window one.
822
823 bindkey -t foo stuff barfoo
824 Make "foo" an abbreviation of the word "barfoo". Timeout is disabled so
825 that users can type slowly.
826
827 bindkey "\024" mapdefault
828 This key-binding makes "^T" an escape character for key-bindings. If
829 you did the above "stuff barfoo" binding, you can enter the word "foo"
830 by typing "^Tfoo". If you want to insert a "^T" you have to press the
831 key twice (i.e., escape the escape binding).
832
833 bindkey -k F1 command
834 Make the F11 (not F1!) key an alternative screen escape (besides ^A).
835
836 break [duration]
837
838 Send a break signal for duration*0.25 seconds to this window. For non-
839 Posix systems the time interval may be rounded up to full seconds.
840 Most useful if a character device is attached to the window rather than
841 a shell process (See also chapter "WINDOW TYPES"). The maximum duration
842 of a break signal is limited to 15 seconds.
843
844 blanker
845
846 Activate the screen blanker. First the screen is cleared. If no blanker
847 program is defined, the cursor is turned off, otherwise, the program is
848 started and it's output is written to the screen. The screen blanker
849 is killed with the first keypress, the read key is discarded.
850 This command is normally used together with the "idle" command.
851
852 blankerprg [program args]
853
854 Defines a blanker program. Disables the blanker program if an empty
855 argument is given. Shows the currently set blanker program if no argu‐
856 ments are given.
857
858 breaktype [tcsendbreak|TIOCSBRK |TCSBRK]
859
860 Choose one of the available methods of generating a break signal for
861 terminal devices. This command should affect the current window only.
862 But it still behaves identical to "defbreaktype". This will be changed
863 in the future. Calling "breaktype" with no parameter displays the
864 break method for the current window.
865
866 bufferfile [exchange-file]
867
868 Change the filename used for reading and writing with the paste buffer.
869 If the optional argument to the "bufferfile" command is omitted, the
870 default setting ("/tmp/screen-exchange") is reactivated. The following
871 example will paste the system's password file into the screen window
872 (using the paste buffer, where a copy remains):
873
874 C-a : bufferfile /etc/passwd
875 C-a < C-a ]
876 C-a : bufferfile
877
878 c1 [on|off]
879
880 Change c1 code processing. "C1 on" tells screen to treat the input
881 characters between 128 and 159 as control functions. Such an 8-bit
882 code is normally the same as ESC followed by the corresponding 7-bit
883 code. The default setting is to process c1 codes and can be changed
884 with the "defc1" command. Users with fonts that have usable characters
885 in the c1 positions may want to turn this off.
886
887 caption always|splitonly [string]
888 caption string [string]
889
890 This command controls the display of the window captions. Normally a
891 caption is only used if more than one window is shown on the display
892 (split screen mode). But if the type is set to always screen shows a
893 caption even if only one window is displayed. The default is splitonly.
894
895 The second form changes the text used for the caption. You can use all
896 escapes from the "STRING ESCAPES" chapter. Screen uses a default of
897 `%3n %t'.
898
899 You can mix both forms by providing a string as an additional argument.
900
901 charset set
902
903 Change the current character set slot designation and charset mapping.
904 The first four character of set are treated as charset designators
905 while the fifth and sixth character must be in range '0' to '3' and set
906 the GL/GR charset mapping. On every position a '.' may be used to indi‐
907 cate that the corresponding charset/mapping should not be changed (set
908 is padded to six characters internally by appending '.' chars). New
909 windows have "BBBB02" as default charset, unless a "encoding" command
910 is active.
911 The current setting can be viewed with the "info" command.
912
913 chdir [directory]
914
915 Change the current directory of screen to the specified directory or,
916 if called without an argument, to your home directory (the value of the
917 environment variable $HOME). All windows that are created by means of
918 the "screen" command from within ".screenrc" or by means of "C-a :
919 screen ..." or "C-a c" use this as their default directory. Without a
920 chdir command, this would be the directory from which screen was
921 invoked. Hardcopy and log files are always written to the window's
922 default directory, not the current directory of the process running in
923 the window. You can use this command multiple times in your .screenrc
924 to start various windows in different default directories, but the last
925 chdir value will affect all the windows you create interactively.
926
927 clear
928
929 Clears the current window and saves its image to the scrollback buffer.
930
931 colon [prefix]
932
933 Allows you to enter ".screenrc" command lines. Useful for on-the-fly
934 modification of key bindings, specific window creation and changing
935 settings. Note that the "set" keyword no longer exists! Usually com‐
936 mands affect the current window rather than default settings for future
937 windows. Change defaults with commands starting with 'def...'.
938
939 If you consider this as the `Ex command mode' of screen, you may regard
940 "C-a esc" (copy mode) as its `Vi command mode'.
941
942 command [-c class]
943
944 This command has the same effect as typing the screen escape character
945 (^A). It is probably only useful for key bindings. If the "-c" option
946 is given, select the specified command class. See also "bind" and
947 "bindkey".
948
949 compacthist [on|off]
950
951 This tells screen whether to suppress trailing blank lines when
952 scrolling up text into the history buffer.
953
954 console [on|off]
955
956 Grabs or un-grabs the machines console output to a window. Note: Only
957 the owner of /dev/console can grab the console output. This command is
958 only available if the machine supports the ioctl TIOCCONS.
959
960 copy
961
962 Enter copy/scrollback mode. This allows you to copy text from the cur‐
963 rent window and its history into the paste buffer. In this mode a vi-
964 like `full screen editor' is active:
965 Movement keys:
966 h, C-h, or left arrow move the cursor left.
967 j, C-n, or down arrow move the cursor down.
968 k, C-p, or up arrow move the cursor up.
969 l ('el') or right arrow move the cursor right.
970 0 (zero) or C-a move to the leftmost column.
971 + and - positions one line up and down.
972 H, M and L move the cursor to the leftmost column of the top, center
973 or bottom line of the window.
974 | moves to the specified absolute column.
975 g or home moves to the beginning of the buffer.
976 G or end moves to the specified absolute line (default: end of buf‐
977 fer).
978 % jumps to the specified percentage of the buffer.
979 ^ or $ move to the leftmost column, to the first or last non-white‐
980 space character on the line.
981 w, b, and e move the cursor word by word.
982 B, E move the cursor WORD by WORD (as in vi).
983 f/F, t/T move the cursor forward/backward to the next occurence of
984 the target. (eg, '3fy' will move the cursor to the 3rd 'y' to the
985 right.)
986 ; and , Repeat the last f/F/t/T command in the same/opposite direc‐
987 tion.
988 C-e and C-y scroll the display up/down by one line while preserving
989 the cursor position.
990 C-u and C-d scroll the display up/down by the specified amount of
991 lines while preserving the cursor position. (Default: half screen-
992 full).
993 C-b and C-f scroll the display up/down a full screen.
994
995 Note:
996 Emacs style movement keys can be customized by a .screenrc command.
997 (E.g. markkeys "h=^B:l=^F:$=^E") There is no simple method for a
998 full emacs-style keymap, as this involves multi-character codes.
999
1000 Marking:
1001 The copy range is specified by setting two marks. The text between
1002 these marks will be highlighted. Press:
1003 space or enter to set the first or second mark respectively. If
1004 mousetrack is set to `on', marks can also be set using left mouse
1005 click.
1006 Y and y used to mark one whole line or to mark from start of line.
1007 W marks exactly one word.
1008 Repeat count:
1009 Any of these commands can be prefixed with a repeat count number by
1010 pressing digits
1011 0..9 which is taken as a repeat count.
1012 Example: "C-a C-[ H 10 j 5 Y" will copy lines 11 to 15 into the
1013 paste buffer.
1014 Searching:
1015 / Vi-like search forward.
1016 ? Vi-like search backward.
1017 C-a s Emacs style incremental search forward.
1018 C-r Emacs style reverse i-search.
1019 n Find next search pattern.
1020 N Find previous search pattern.
1021 Specials:
1022 There are however some keys that act differently than in vi. Vi
1023 does not allow one to yank rectangular blocks of text, but screen
1024 does. Press:
1025 c or C to set the left or right margin respectively. If no repeat
1026 count is given, both default to the current cursor position.
1027 Example: Try this on a rather full text screen: "C-a [ M 20 l SPACE
1028 c 10 l 5 j C SPACE".
1029
1030 This moves one to the middle line of the screen, moves in 20 col‐
1031 umns left, marks the beginning of the paste buffer, sets the left
1032 column, moves 5 columns down, sets the right column, and then marks
1033 the end of the paste buffer. Now try:
1034 "C-a [ M 20 l SPACE 10 l 5 j SPACE"
1035
1036 and notice the difference in the amount of text copied.
1037 J joins lines. It toggles between 4 modes: lines separated by a new‐
1038 line character (012), lines glued seamless, lines separated by a
1039 single whitespace and comma separated lines. Note that you can
1040 prepend the newline character with a carriage return character, by
1041 issuing a "crlf on".
1042 v or V is for all the vi users with ":set numbers" - it toggles the
1043 left margin between column 9 and 1. Press
1044 a before the final space key to toggle in append mode. Thus the con‐
1045 tents of the paste buffer will not be overwritten, but is appended
1046 to.
1047 A toggles in append mode and sets a (second) mark.
1048 > sets the (second) mark and writes the contents of the paste buffer
1049 to the screen-exchange file (/tmp/screen-exchange per default) once
1050 copy-mode is finished.
1051 This example demonstrates how to dump the whole scrollback buffer
1052 to that file: "C-A [ g SPACE G $ >".
1053 C-g gives information about the current line and column.
1054 x or o exchanges the first mark and the current cursor position. You
1055 can use this to adjust an already placed mark.
1056 C-l ('el') will redraw the screen.
1057 @ does nothing. Does not even exit copy mode.
1058 All keys not described here exit copy mode.
1059
1060 copy_reg [key]
1061
1062 No longer exists, use "readreg" instead.
1063
1064 crlf [on|off]
1065
1066 This affects the copying of text regions with the `C-a [' command. If
1067 it is set to `on', lines will be separated by the two character
1068 sequence `CR' - `LF'. Otherwise (default) only `LF' is used. When no
1069 parameter is given, the state is toggled.
1070
1071 debug on|off
1072
1073 Turns runtime debugging on or off. If screen has been compiled with
1074 option -DDEBUG debugging available and is turned on per default. Note
1075 that this command only affects debugging output from the main "SCREEN"
1076 process correctly. Debug output from attacher processes can only be
1077 turned off once and forever.
1078
1079 defc1 on|off
1080
1081 Same as the c1 command except that the default setting for new windows
1082 is changed. Initial setting is `on'.
1083
1084 defautonuke on|off
1085
1086 Same as the autonuke command except that the default setting for new
1087 displays is changed. Initial setting is `off'. Note that you can use
1088 the special `AN' terminal capability if you want to have a dependency
1089 on the terminal type.
1090
1091 defbce on|off
1092
1093 Same as the bce command except that the default setting for new windows
1094 is changed. Initial setting is `off'.
1095
1096 defbreaktype [tcsendbreak|TIOCSBRK |TCSBRK]
1097
1098 Choose one of the available methods of generating a break signal for
1099 terminal devices. The preferred methods are tcsendbreak and TIOCSBRK.
1100 The third, TCSBRK, blocks the complete screen session for the duration
1101 of the break, but it may be the only way to generate long breaks.
1102 Tcsendbreak and TIOCSBRK may or may not produce long breaks with spikes
1103 (e.g. 4 per second). This is not only system-dependent, this also dif‐
1104 fers between serial board drivers. Calling "defbreaktype" with no
1105 parameter displays the current setting.
1106
1107 defcharset [set]
1108
1109 Like the charset command except that the default setting for new win‐
1110 dows is changed. Shows current default if called without argument.
1111
1112 defescape xy
1113
1114 Set the default command characters. This is equivalent to the "escape"
1115 except that it is useful multiuser sessions only. In a multiuser ses‐
1116 sion "escape" changes the command character of the calling user, where
1117 "defescape" changes the default command characters for users that will
1118 be added later.
1119
1120 defflow on|off|auto [interrupt]
1121
1122 Same as the flow command except that the default setting for new win‐
1123 dows is changed. Initial setting is `auto'. Specifying "defflow auto
1124 interrupt" is the same as the command-line options -fa and -i.
1125
1126 defgr on|off
1127
1128 Same as the gr command except that the default setting for new windows
1129 is changed. Initial setting is `off'.
1130
1131 defhstatus [status]
1132
1133 The hardstatus line that all new windows will get is set to status.
1134 This command is useful to make the hardstatus of every window display
1135 the window number or title or the like. Status may contain the same
1136 directives as in the window messages, but the directive escape charac‐
1137 ter is '^E' (octal 005) instead of '%'. This was done to make a misin‐
1138 terpretation of program generated hardstatus lines impossible. If the
1139 parameter status is omitted, the current default string is displayed.
1140 Per default the hardstatus line of new windows is empty.
1141
1142 defencoding enc
1143
1144 Same as the encoding command except that the default setting for new
1145 windows is changed. Initial setting is the encoding taken from the ter‐
1146 minal.
1147
1148 deflog on|off
1149
1150 Same as the log command except that the default setting for new windows
1151 is changed. Initial setting is `off'.
1152
1153 deflogin on|off
1154
1155 Same as the login command except that the default setting for new win‐
1156 dows is changed. This is initialized with `on' as distributed (see con‐
1157 fig.h.in).
1158
1159 defmode mode
1160
1161 The mode of each newly allocated pseudo-tty is set to mode. Mode is an
1162 octal number. When no "defmode" command is given, mode 0622 is used.
1163
1164 defmonitor on|off
1165
1166 Same as the monitor command except that the default setting for new
1167 windows is changed. Initial setting is `off'.
1168
1169 defmousetrack on|off
1170
1171 Same as the mousetrack command except that the default setting for new
1172 windows is changed. Initial setting is `off'.
1173
1174 defnonblock on|off|numsecs
1175
1176 Same as the nonblock command except that the default setting for dis‐
1177 plays is changed. Initial setting is `off'.
1178
1179 defobuflimit limit
1180
1181 Same as the obuflimit command except that the default setting for new
1182 displays is changed. Initial setting is 256 bytes. Note that you can
1183 use the special 'OL' terminal capability if you want to have a depen‐
1184 dency on the terminal type.
1185
1186 defscrollback num
1187
1188 Same as the scrollback command except that the default setting for new
1189 windows is changed. Initial setting is 100.
1190
1191 defshell command
1192
1193 Synonym to the shell command. See there.
1194
1195 defsilence on|off
1196
1197 Same as the silence command except that the default setting for new
1198 windows is changed. Initial setting is `off'.
1199
1200 defslowpaste msec"
1201
1202 Same as the slowpaste command except that the default setting for new
1203 windows is changed. Initial setting is 0 milliseconds, meaning `off'.
1204
1205 defutf8 on|off
1206
1207 Same as the utf8 command except that the default setting for new win‐
1208 dows is changed. Initial setting is `on' if screen was started with
1209 "-U", otherwise `off'.
1210
1211 defwrap on|off
1212
1213 Same as the wrap command except that the default setting for new win‐
1214 dows is changed. Initially line-wrap is on and can be toggled with the
1215 "wrap" command ("C-a r") or by means of "C-a : wrap on|off".
1216
1217 defwritelock on|off|auto
1218
1219 Same as the writelock command except that the default setting for new
1220 windows is changed. Initially writelocks will off.
1221
1222 defzombie [keys]
1223
1224 Synonym to the zombie command. Both currently change the default. See
1225 there.
1226
1227 detach [-h]
1228
1229 Detach the screen session (disconnect it from the terminal and put it
1230 into the background). This returns you to the shell where you invoked
1231 screen. A detached screen can be resumed by invoking screen with the
1232 -r option (see also section "COMMAND-LINE OPTIONS"). The -h option
1233 tells screen to immediately close the connection to the terminal
1234 ("hangup").
1235
1236 dinfo
1237
1238 Show what screen thinks about your terminal. Useful if you want to know
1239 why features like color or the alternate charset don't work.
1240
1241 displays
1242
1243 Shows a tabular listing of all currently connected user front-ends
1244 (displays). This is most useful for multiuser sessions. The following
1245 keys can be used in displays list:
1246 k, C-p, or up Move up one line.
1247 j, C-n, or down Move down one line.
1248 C-a or home Move to the first line.
1249 C-e or end Move to the last line.
1250 C-u or C-d Move one half page up or down.
1251 C-b or C-f Move one full page up or down.
1252 mouseclick Move to the selected line. Available when "mousetrack" is
1253 set to on.
1254 space Refresh the list
1255 d Detach that display
1256 D Power detach that display
1257 C-g, enter, or escape Exit the list
1258
1259 The following is an example of what "displays" could look like:
1260
1261 xterm 80x42 jnweiger@/dev/ttyp4 0(m11) &rWx
1262 facit 80x24 mlschroe@/dev/ttyhf nb 11(tcsh) rwx
1263 xterm 80x42 jnhollma@/dev/ttyp5 0(m11) &R.x
1264 (A) (B) (C) (D) (E) (F)(G) (H)(I)
1265
1266 The legend is as follows:
1267 (A) The terminal type known by screen for this display.
1268 (B) Displays geometry as width x height.
1269 (C) Username who is logged in at the display.
1270 (D) Device name of the display or the attached device
1271 (E) Display is in blocking or nonblocking mode. The available modes are
1272 "nb", "NB", "Z<", "Z>", and "BL".
1273 (F) Number of the window
1274 (G) Name/title of window
1275 (H) Whether the window is shared
1276 (I) Window permissions. Made up of three characters:
1277 (1st character)
1278 ‘-’ : no read
1279 ‘r’ : read
1280 ‘R’ : read only due to foreign wlock
1281 (2nd character)
1282 ‘-’ : no write
1283 ‘.’ : write suppressed by foreign wlock
1284 ‘w’ : write
1285 ‘W’ : own wlock
1286 (3rd character)
1287 ‘-’ : no execute
1288 ‘x’ : execute
1289
1290 "Displays" needs a region size of at least 10 characters wide and 5
1291 characters high in order to display.
1292
1293 digraph [preset[unicode-value]]
1294
1295 This command prompts the user for a digraph sequence. The next two
1296 characters typed are looked up in a builtin table and the resulting
1297 character is inserted in the input stream. For example, if the user
1298 enters 'a"', an a-umlaut will be inserted. If the first character
1299 entered is a 0 (zero), screen will treat the following characters (up
1300 to three) as an octal number instead. The optional argument preset is
1301 treated as user input, thus one can create an "umlaut" key. For exam‐
1302 ple the command "bindkey ^K digraph '"'" enables the user to generate
1303 an a-umlaut by typing CTRL-K a. When a non-zero unicode-value is spec‐
1304 ified, a new digraph is created with the specified preset. The digraph
1305 is unset if a zero value is provided for the unicode-value.
1306
1307 dumptermcap
1308
1309 Write the termcap entry for the virtual terminal optimized for the cur‐
1310 rently active window to the file ".termcap" in the user's
1311 "$HOME/.screen" directory (or wherever screen stores its sockets. See
1312 the "FILES" section below). This termcap entry is identical to the
1313 value of the environment variable $TERMCAP that is set up by screen for
1314 each window. For terminfo based systems you will need to run a con‐
1315 verter like captoinfo and then compile the entry with tic.
1316
1317 echo [-n] message
1318
1319 The echo command may be used to annoy screen users with a 'message of
1320 the day'. Typically installed in a global /etc/screenrc. The option
1321 "-n" may be used to suppress the line feed. See also "sleep". Echo is
1322 also useful for online checking of environment variables.
1323
1324 encoding enc [enc]
1325
1326 Tell screen how to interpret the input/output. The first argument sets
1327 the encoding of the current window. Each window can emulate a different
1328 encoding. The optional second parameter overwrites the encoding of the
1329 connected terminal. It should never be needed as screen uses the locale
1330 setting to detect the encoding. There is also a way to select a termi‐
1331 nal encoding depending on the terminal type by using the "KJ" termcap
1332 entry.
1333
1334 Supported encodings are eucJP, SJIS, eucKR, eucCN, Big5, GBK, KOI8-R,
1335 CP1251, UTF-8, ISO8859-2, ISO8859-3, ISO8859-4, ISO8859-5, ISO8859-6,
1336 ISO8859-7, ISO8859-8, ISO8859-9, ISO8859-10, ISO8859-15, jis.
1337
1338 See also "defencoding", which changes the default setting of a new win‐
1339 dow.
1340
1341 escape xy
1342
1343 Set the command character to x and the character generating a literal
1344 command character (by triggering the "meta" command) to y (similar to
1345 the -e option). Each argument is either a single character, a two-
1346 character sequence of the form "^x" (meaning "C-x"), a backslash fol‐
1347 lowed by an octal number (specifying the ASCII code of the character),
1348 or a backslash followed by a second character, such as "\^" or "\\".
1349 The default is "^Aa".
1350
1351 eval command1 [command2 ...]
1352
1353 Parses and executes each argument as separate command.
1354
1355 exec [[fdpat] newcommand [args ...]]
1356
1357 Run a unix subprocess (specified by an executable path newcommand and
1358 its optional arguments) in the current window. The flow of data between
1359 newcommands stdin/stdout/stderr, the process originally started in the
1360 window (let us call it "application-process") and screen itself (win‐
1361 dow) is controlled by the file descriptor pattern fdpat. This pattern
1362 is basically a three character sequence representing stdin, stdout and
1363 stderr of newcommand. A dot (.) connects the file descriptor to screen.
1364 An exclamation mark (!) causes the file descriptor to be connected to
1365 the application-process. A colon (:) combines both. User input will go
1366 to newcommand unless newcommand receives the application-process' out‐
1367 put (fdpats first character is `!' or `:') or a pipe symbol (|) is
1368 added (as a fourth character) to the end of fdpat.
1369 Invoking `exec' without arguments shows name and arguments of the cur‐
1370 rently running subprocess in this window. Only one subprocess a time
1371 can be running in each window.
1372 When a subprocess is running the `kill' command will affect it instead
1373 of the windows process.
1374 Refer to the postscript file `doc/fdpat.ps' for a confusing illustra‐
1375 tion of all 21 possible combinations. Each drawing shows the digits
1376 2,1,0 representing the three file descriptors of newcommand. The box
1377 marked `W' is the usual pty that has the application-process on its
1378 slave side. The box marked `P' is the secondary pty that now has
1379 screen at its master side.
1380
1381 Abbreviations:
1382 Whitespace between the word `exec' and fdpat and the command can be
1383 omitted. Trailing dots and a fdpat consisting only of dots can be omit‐
1384 ted. A simple `|' is synonymous for the pattern `!..|'; the word exec
1385 can be omitted here and can always be replaced by `!'.
1386
1387 Examples:
1388
1389 exec ... /bin/sh
1390 exec /bin/sh
1391 !/bin/sh
1392
1393 Creates another shell in the same window, while the original shell is
1394 still running. Output of both shells is displayed and user input is
1395 sent to the new /bin/sh.
1396
1397 exec !.. stty 19200
1398 exec ! stty 19200
1399 !!stty 19200
1400
1401 Set the speed of the window's tty. If your stty command operates on
1402 stdout, then add another `!'.
1403
1404 exec !..| less
1405 |less
1406
1407 This adds a pager to the window output. The special character `|' is
1408 needed to give the user control over the pager although it gets its
1409 input from the window's process. This works, because less listens on
1410 stderr (a behavior that screen would not expect without the `|') when
1411 its stdin is not a tty. Less versions newer than 177 fail miserably
1412 here; good old pg still works.
1413
1414 !:sed -n s/.*Error.*/\007/p
1415
1416 Sends window output to both, the user and the sed command. The sed
1417 inserts an additional bell character (oct. 007) to the window output
1418 seen by screen. This will cause "Bell in window x" messages, whenever
1419 the string "Error" appears in the window.
1420
1421 fit
1422
1423 Change the window size to the size of the current region. This command
1424 is needed because screen doesn't adapt the window size automatically if
1425 the window is displayed more than once.
1426
1427 flow [on|off|auto]
1428
1429 Sets the flow-control mode for this window. Without parameters it
1430 cycles the current window's flow-control setting from "automatic" to
1431 "on" to "off". See the discussion on "FLOW-CONTROL" later on in this
1432 document for full details and note, that this is subject to change in
1433 future releases. Default is set by `defflow'.
1434
1435 focus [up|down|top|bottom]
1436
1437 Move the input focus to the next region. This is done in a cyclic way
1438 so that the top region is selected after the bottom one. If no subcom‐
1439 mand is given it defaults to `down'. `up' cycles in the opposite order,
1440 `top' and `bottom' go to the top and bottom region respectively. Useful
1441 bindings are (j and k as in vi)
1442 bind j focus down
1443 bind k focus up
1444 bind t focus top
1445 bind b focus bottom
1446 Note that k is traditionally bound to the kill command.
1447
1448 focusminsize [ ( width|max|_ ) ( height|max|_ ) ]
1449
1450 This forces any currently selected region to be automatically resized
1451 at least a certain width and height. All other surrounding regions will
1452 be resized in order to accommodate. This constraint follows everytime
1453 the "focus" command is used. The "resize" command can be used to
1454 increase either dimension of a region, but never below what is set with
1455 "focusminsize". The underscore `_' is a synonym for max. Setting a
1456 width and height of `0 0' (zero zero) will undo any constraints and
1457 allow for manual resizing. Without any parameters, the minimum width
1458 and height is shown.
1459
1460 gr [on|off]
1461
1462 Turn GR charset switching on/off. Whenever screen sees an input charac‐
1463 ter with the 8th bit set, it will use the charset stored in the GR slot
1464 and print the character with the 8th bit stripped. The default (see
1465 also "defgr") is not to process GR switching because otherwise the
1466 ISO88591 charset would not work.
1467
1468 group [grouptitle]
1469
1470 Change or show the group the current window belongs to. Windows can be
1471 moved around between different groups by specifying the name of the
1472 destination group. Without specifying a group, the title of the current
1473 group is displayed.
1474
1475 hardcopy [-h] [file]
1476
1477 Writes out the currently displayed image to the file file, or, if no
1478 filename is specified, to hardcopy.n in the default directory, where n
1479 is the number of the current window. This either appends or overwrites
1480 the file if it exists. See below. If the option -h is specified, dump
1481 also the contents of the scrollback buffer.
1482
1483 hardcopy_append on|off
1484
1485 If set to "on", screen will append to the "hardcopy.n" files created by
1486 the command "C-a h", otherwise these files are overwritten each time.
1487 Default is `off'.
1488
1489 hardcopydir directory
1490
1491 Defines a directory where hardcopy files will be placed. If unset,
1492 hardcopys are dumped in screen's current working directory.
1493
1494 hardstatus [on|off]
1495 hardstatus [always]lastline|message|ignore [string]
1496 hardstatus string [string]
1497
1498 This command configures the use and emulation of the terminal's hard‐
1499 status line. The first form toggles whether screen will use the hard‐
1500 ware status line to display messages. If the flag is set to `off',
1501 these messages are overlaid in reverse video mode at the display line.
1502 The default setting is `on'.
1503
1504 The second form tells screen what to do if the terminal doesn't have a
1505 hardstatus line (i.e. the termcap/terminfo capabilities "hs", "ts",
1506 "fs" and "ds" are not set). If the type "lastline" is used, screen will
1507 reserve the last line of the display for the hardstatus. "message" uses
1508 screen's message mechanism and "ignore" tells screen never to display
1509 the hardstatus. If you prepend the word "always" to the type (e.g.,
1510 "alwayslastline"), screen will use the type even if the terminal sup‐
1511 ports a hardstatus.
1512
1513 The third form specifies the contents of the hardstatus line. '%h' is
1514 used as default string, i.e., the stored hardstatus of the current win‐
1515 dow (settable via "ESC]0;<string>^G" or "ESC_<string>ESC\") is dis‐
1516 played. You can customize this to any string you like including the
1517 escapes from the "STRING ESCAPES" chapter. If you leave out the argu‐
1518 ment string, the current string is displayed.
1519
1520 You can mix the second and third form by providing the string as addi‐
1521 tional argument.
1522
1523 height [-w|-d] [lines [cols]]
1524
1525 Set the display height to a specified number of lines. When no argument
1526 is given it toggles between 24 and 42 lines display. You can also spec‐
1527 ify a width if you want to change both values. The -w option tells
1528 screen to leave the display size unchanged and just set the window
1529 size, -d vice versa.
1530
1531 help [-c class]
1532
1533 Not really a online help, but displays a help screen showing you all
1534 the key bindings. The first pages list all the internal commands fol‐
1535 lowed by their current bindings. Subsequent pages will display the
1536 custom commands, one command per key. Press space when you're done
1537 reading each page, or return to exit early. All other characters are
1538 ignored. If the "-c" option is given, display all bound commands for
1539 the specified command class. See also "DEFAULT KEY BINDINGS" section.
1540
1541 history
1542
1543 Usually users work with a shell that allows easy access to previous
1544 commands. For example csh has the command "!!" to repeat the last com‐
1545 mand executed. Screen allows you to have a primitive way of re-calling
1546 "the command that started ...": You just type the first letter of that
1547 command, then hit `C-a {' and screen tries to find a previous line that
1548 matches with the `prompt character' to the left of the cursor. This
1549 line is pasted into this window's input queue. Thus you have a crude
1550 command history (made up by the visible window and its scrollback buf‐
1551 fer).
1552
1553 hstatus status
1554
1555 Change the window's hardstatus line to the string status.
1556
1557 idle [timeout [cmd args]]
1558
1559 Sets a command that is run after the specified number of seconds inac‐
1560 tivity is reached. This command will normally be the "blanker" command
1561 to create a screen blanker, but it can be any screen command. If no
1562 command is specified, only the timeout is set. A timeout of zero (or
1563 the special timeout off) disables the timer. If no arguments are
1564 given, the current settings are displayed.
1565
1566 ignorecase [on|off]
1567
1568 Tell screen to ignore the case of characters in searches. Default is
1569 `off'. Without any options, the state of ignorecase is toggled.
1570
1571 info
1572
1573 Uses the message line to display some information about the current
1574 window: the cursor position in the form "(column,row)" starting with
1575 "(1,1)", the terminal width and height plus the size of the scrollback
1576 buffer in lines, like in "(80,24)+50", the current state of window
1577 XON/XOFF flow control is shown like this (See also section FLOW CON‐
1578 TROL):
1579
1580 +flow automatic flow control, currently on.
1581 -flow automatic flow control, currently off.
1582 +(+)flow flow control enabled. Agrees with automatic control.
1583 -(+)flow flow control disabled. Disagrees with automatic control.
1584 +(-)flow flow control enabled. Disagrees with automatic control.
1585 -(-)flow flow control disabled. Agrees with automatic control.
1586
1587 The current line wrap setting (`+wrap' indicates enabled, `-wrap' not)
1588 is also shown. The flags `ins', `org', `app', `log', `mon' or `nored'
1589 are displayed when the window is in insert mode, origin mode, applica‐
1590 tion-keypad mode, has output logging, activity monitoring or partial
1591 redraw enabled.
1592
1593 The currently active character set (G0, G1, G2, or G3) and in square
1594 brackets the terminal character sets that are currently designated as
1595 G0 through G3 is shown. If the window is in UTF-8 mode, the string
1596 "UTF-8" is shown instead.
1597
1598 Additional modes depending on the type of the window are displayed at
1599 the end of the status line (See also chapter "WINDOW TYPES").
1600 If the state machine of the terminal emulator is in a non-default
1601 state, the info line is started with a string identifying the current
1602 state.
1603 For system information use the "time" command.
1604
1605 ins_reg [key]
1606
1607 No longer exists, use "paste" instead.
1608
1609 kill
1610
1611 Kill current window.
1612 If there is an `exec' command running then it is killed. Otherwise the
1613 process (shell) running in the window receives a HANGUP condition, the
1614 window structure is removed and screen (your display) switches to
1615 another window. When the last window is destroyed, screen exits.
1616 After a kill screen switches to the previously displayed window.
1617 Note: Emacs users should keep this command in mind, when killing a
1618 line. It is recommended not to use "C-a" as the screen escape key or
1619 to rebind kill to "C-a K".
1620
1621 lastmsg
1622
1623 Redisplay the last contents of the message/status line. Useful if
1624 you're typing when a message appears, because the message goes away
1625 when you press a key (unless your terminal has a hardware status line).
1626 Refer to the commands "msgwait" and "msgminwait" for fine tuning.
1627
1628 layout new [title]
1629
1630 Create a new layout. The screen will change to one whole region and be
1631 switched to the blank window. From here, you build the regions and the
1632 windows they show as you desire. The new layout will be numbered with
1633 the smallest available integer, starting with zero. You can optionally
1634 give a title to your new layout. Otherwise, it will have a default
1635 title of "layout". You can always change the title later by using the
1636 command layout title.
1637
1638 layout remove [n|title]
1639
1640 Remove, or in other words, delete the specified layout. Either the num‐
1641 ber or the title can be specified. Without either specification, screen
1642 will remove the current layout.
1643
1644 Removing a layout does not affect your set windows or regions.
1645
1646 layout next
1647
1648 Switch to the next layout available
1649
1650 layout prev
1651
1652 Switch to the previous layout available
1653
1654 layout select [n|title]
1655
1656 Select the desired layout. Either the number or the title can be speci‐
1657 fied. Without either specification, screen will prompt and ask which
1658 screen is desired. To see which layouts are available, use the layout
1659 show command.
1660
1661 layout show
1662
1663 List on the message line the number(s) and title(s) of the available
1664 layout(s). The current layout is flagged.
1665
1666 layout title [title]
1667
1668 Change or display the title of the current layout. A string given will
1669 be used to name the layout. Without any options, the current title and
1670 number is displayed on the message line.
1671
1672 layout number [n]
1673
1674 Change or display the number of the current layout. An integer given
1675 will be used to number the layout. Without any options, the current
1676 number and title is displayed on the message line.
1677
1678 layout attach [title|:last]
1679
1680 Change or display which layout to reattach back to. The default is
1681 :last, which tells screen to reattach back to the last used layout just
1682 before detachment. By supplying a title, You can instruct screen to
1683 reattach to a particular layout regardless which one was used at the
1684 time of detachment. Without any options, the layout to reattach to will
1685 be shown in the message line.
1686
1687 layout save [n|title]
1688
1689 Remember the current arrangement of regions. When used, screen will
1690 remember the arrangement of vertically and horizontally split regions.
1691 This arrangement is restored when a screen session is reattached or
1692 switched back from a different layout. If the session ends or the
1693 screen process dies, the layout arrangements are lost. The layout dump
1694 command should help in this siutation. If a number or title is sup‐
1695 plied, screen will remember the arrangement of that particular layout.
1696 Without any options, screen will remember the current layout.
1697
1698 Saving your regions can be done automatically by using the layout
1699 autosave command.
1700
1701 layout autosave [on|off]
1702
1703 Change or display the status of automatcally saving layouts. The
1704 default is on, meaning when screen is detached or changed to a differ‐
1705 ent layout, the arrangement of regions and windows will be remembered
1706 at the time of change and restored upon return. If autosave is set to
1707 off, that arrangement will only be restored to either to the last man‐
1708 ual save, using layout save, or to when the layout was first created,
1709 to a single region with a single window. Without either an on or off,
1710 the current status is displayed on the message line.
1711
1712 layout dump [filename]
1713
1714 Write to a file the order of splits made in the current layout. This is
1715 useful to recreate the order of your regions used in your current lay‐
1716 out. Only the current layout is recorded. While the order of the
1717 regions are recorded, the sizes of those regions and which windows cor‐
1718 respond to which regions are not. If no filename is specified, the
1719 default is layout-dump, saved in the directory that the screen process
1720 was started in. If the file already exists, layout dump will append to
1721 that file. As an example:
1722
1723 C-a : layout dump /home/user/.screenrc
1724
1725 will save or append the layout to the user's .screenrc file.
1726
1727 license
1728
1729 Display the disclaimer page. This is done whenever screen is started
1730 without options, which should be often enough. See also the
1731 "startup_message" command.
1732
1733 lockscreen
1734
1735 Lock this display. Call a screenlock program (/local/bin/lck or
1736 /usr/bin/lock or a builtin if no other is available). Screen does not
1737 accept any command keys until this program terminates. Meanwhile pro‐
1738 cesses in the windows may continue, as the windows are in the
1739 `detached' state. The screenlock program may be changed through the
1740 environment variable $LOCKPRG (which must be set in the shell from
1741 which screen is started) and is executed with the user's uid and gid.
1742 Warning: When you leave other shells unlocked and you have no password
1743 set on screen, the lock is void: One could easily re-attach from an
1744 unlocked shell. This feature should rather be called `lockterminal'.
1745
1746 log [on|off]
1747
1748 Start/stop writing output of the current window to a file "screenlog.n"
1749 in the window's default directory, where n is the number of the current
1750 window. This filename can be changed with the `logfile' command. If no
1751 parameter is given, the state of logging is toggled. The session log is
1752 appended to the previous contents of the file if it already exists. The
1753 current contents and the contents of the scrollback history are not
1754 included in the session log. Default is `off'.
1755
1756 logfile filename
1757 logfile flush secs
1758
1759 Defines the name the log files will get. The default is "screenlog.%n".
1760 The second form changes the number of seconds screen will wait before
1761 flushing the logfile buffer to the file-system. The default value is 10
1762 seconds.
1763
1764 login [on|off]
1765
1766 Adds or removes the entry in the utmp database file for the current
1767 window. This controls if the window is `logged in'. When no parameter
1768 is given, the login state of the window is toggled. Additionally to
1769 that toggle, it is convenient having a `log in' and a `log out' key.
1770 E.g. `bind I login on' and `bind O login off' will map these keys to be
1771 C-a I and C-a O. The default setting (in config.h.in) should be "on"
1772 for a screen that runs under suid-root. Use the "deflogin" command to
1773 change the default login state for new windows. Both commands are only
1774 present when screen has been compiled with utmp support.
1775
1776 logtstamp [on|off]
1777 logtstamp after [secs]
1778 logtstamp string [string]
1779
1780 This command controls logfile time-stamp mechanism of screen. If time-
1781 stamps are turned "on", screen adds a string containing the current
1782 time to the logfile after two minutes of inactivity. When output con‐
1783 tinues and more than another two minutes have passed, a second time-
1784 stamp is added to document the restart of the output. You can change
1785 this timeout with the second form of the command. The third form is
1786 used for customizing the time-stamp string (`-- %n:%t -- time-stamp --
1787 %M/%d/%y %c:%s --\n' by default).
1788
1789 mapdefault
1790
1791 Tell screen that the next input character should only be looked up in
1792 the default bindkey table. See also "bindkey".
1793
1794 mapnotnext
1795
1796 Like mapdefault, but don't even look in the default bindkey table.
1797
1798 maptimeout [timeout]
1799
1800 Set the inter-character timer for input sequence detection to a timeout
1801 of timeout ms. The default timeout is 300ms. Maptimeout with no argu‐
1802 ments shows the current setting. See also "bindkey".
1803
1804 markkeys string
1805
1806 This is a method of changing the keymap used for copy/history mode.
1807 The string is made up of oldchar=newchar pairs which are separated by
1808 `:'. Example: The string "B=^B:F=^F" will change the keys `C-b' and `C-
1809 f' to the vi style binding (scroll up/down fill page). This happens to
1810 be the default binding for `B' and `F'. The command "markkeys
1811 h=^B:l=^F:$=^E" would set the mode for an emacs-style binding. If your
1812 terminal sends characters, that cause you to abort copy mode, then this
1813 command may help by binding these characters to do nothing. The no-op
1814 character is `@' and is used like this: "markkeys @=L=H" if you do not
1815 want to use the `H' or `L' commands any longer. As shown in this exam‐
1816 ple, multiple keys can be assigned to one function in a single state‐
1817 ment.
1818
1819 maxwin num
1820
1821 Set the maximum window number screen will create. Doesn't affect
1822 already existing windows. The number can be increased only when there
1823 are no existing windows.
1824
1825 meta
1826
1827 Insert the command character (C-a) in the current window's input
1828 stream.
1829
1830 monitor [on|off]
1831
1832 Toggles activity monitoring of windows. When monitoring is turned on
1833 and an affected window is switched into the background, you will
1834 receive the activity notification message in the status line at the
1835 first sign of output and the window will also be marked with an `@' in
1836 the window-status display. Monitoring is initially off for all win‐
1837 dows.
1838
1839 mousetrack [on|off]
1840
1841 This command determines whether screen will watch for mouse clicks.
1842 When this command is enabled, regions that have been split in various
1843 ways can be selected by pointing to them with a mouse and left-clicking
1844 them. Without specifying on or off, the current state is displayed. The
1845 default state is determined by the "defmousetrack" command.
1846
1847 msgminwait sec
1848
1849 Defines the time screen delays a new message when one message is cur‐
1850 rently displayed. The default is 1 second.
1851
1852 msgwait sec
1853
1854 Defines the time a message is displayed if screen is not disturbed by
1855 other activity. The default is 5 seconds.
1856
1857 multiuser on|off
1858
1859 Switch between singleuser and multiuser mode. Standard screen operation
1860 is singleuser. In multiuser mode the commands `acladd', `aclchg',
1861 `aclgrp' and `acldel' can be used to enable (and disable) other users
1862 accessing this screen session.
1863
1864 nethack on|off
1865
1866 Changes the kind of error messages used by screen. When you are famil‐
1867 iar with the game "nethack", you may enjoy the nethack-style messages
1868 which will often blur the facts a little, but are much funnier to read.
1869 Anyway, standard messages often tend to be unclear as well.
1870 This option is only available if screen was compiled with the NETHACK
1871 flag defined. The default setting is then determined by the presence of
1872 the environment variable $NETHACKOPTIONS and the file ~/.nethackrc - if
1873 either one is present, the default is on.
1874
1875 next
1876
1877 Switch to the next window. This command can be used repeatedly to
1878 cycle through the list of windows.
1879
1880 nonblock [on|off|numsecs]
1881
1882 Tell screen how to deal with user interfaces (displays) that cease to
1883 accept output. This can happen if a user presses ^S or a TCP/modem con‐
1884 nection gets cut but no hangup is received. If nonblock is off (this is
1885 the default) screen waits until the display restarts to accept the out‐
1886 put. If nonblock is on, screen waits until the timeout is reached (on
1887 is treated as 1s). If the display still doesn't receive characters,
1888 screen will consider it "blocked" and stop sending characters to it. If
1889 at some time it restarts to accept characters, screen will unblock the
1890 display and redisplay the updated window contents.
1891
1892 number [[+|-]n]
1893
1894 Change the current window's number. If the given number n is already
1895 used by another window, both windows exchange their numbers. If no
1896 argument is specified, the current window number (and title) is shown.
1897 Using `+' or `-' will change the window's number by the relative amount
1898 specified.
1899
1900 obuflimit [limit]
1901
1902 If the output buffer contains more bytes than the specified limit, no
1903 more data will be read from the windows. The default value is 256. If
1904 you have a fast display (like xterm), you can set it to some higher
1905 value. If no argument is specified, the current setting is displayed.
1906
1907 only
1908
1909 Kill all regions but the current one.
1910
1911 other
1912
1913 Switch to the window displayed previously. If this window does no
1914 longer exist, other has the same effect as next.
1915
1916 partial on|off
1917
1918 Defines whether the display should be refreshed (as with redisplay)
1919 after switching to the current window. This command only affects the
1920 current window. To immediately affect all windows use the allpartial
1921 command. Default is `off', of course. This default is fixed, as there
1922 is currently no defpartial command.
1923
1924 password [crypted_pw]
1925
1926 Present a crypted password in your ".screenrc" file and screen will ask
1927 for it, whenever someone attempts to resume a detached. This is useful
1928 if you have privileged programs running under screen and you want to
1929 protect your session from reattach attempts by another user masquerad‐
1930 ing as your uid (i.e. any superuser.) If no crypted password is speci‐
1931 fied, screen prompts twice for typing a password and places its encryp‐
1932 tion in the paste buffer. Default is `none', this disables password
1933 checking.
1934
1935 paste [registers [dest_reg]]
1936
1937 Write the (concatenated) contents of the specified registers to the
1938 stdin queue of the current window. The register '.' is treated as the
1939 paste buffer. If no parameter is given the user is prompted for a sin‐
1940 gle register to paste. The paste buffer can be filled with the copy,
1941 history and readbuf commands. Other registers can be filled with the
1942 register, readreg and paste commands. If paste is called with a second
1943 argument, the contents of the specified registers is pasted into the
1944 named destination register rather than the window. If '.' is used as
1945 the second argument, the displays paste buffer is the destination.
1946 Note, that "paste" uses a wide variety of resources: Whenever a second
1947 argument is specified no current window is needed. When the source
1948 specification only contains registers (not the paste buffer) then there
1949 need not be a current display (terminal attached), as the registers are
1950 a global resource. The paste buffer exists once for every user.
1951
1952 pastefont [on|off]
1953
1954 Tell screen to include font information in the paste buffer. The
1955 default is not to do so. This command is especially useful for multi
1956 character fonts like kanji.
1957
1958 pow_break
1959
1960 Reopen the window's terminal line and send a break condition. See
1961 `break'.
1962
1963 pow_detach
1964
1965 Power detach. Mainly the same as detach, but also sends a HANGUP sig‐
1966 nal to the parent process of screen. CAUTION: This will result in a
1967 logout, when screen was started from your login shell.
1968
1969 pow_detach_msg [message]
1970
1971 The message specified here is output whenever a `Power detach' was per‐
1972 formed. It may be used as a replacement for a logout message or to
1973 reset baud rate, etc. Without parameter, the current message is shown.
1974
1975 prev
1976
1977 Switch to the window with the next lower number. This command can be
1978 used repeatedly to cycle through the list of windows.
1979
1980 printcmd [cmd]
1981
1982 If cmd is not an empty string, screen will not use the terminal capa‐
1983 bilities "po/pf" if it detects an ansi print sequence ESC [ 5 i, but
1984 pipe the output into cmd. This should normally be a command like "lpr"
1985 or "'cat > /tmp/scrprint'". printcmd without a command displays the
1986 current setting. The ansi sequence ESC \ ends printing and closes the
1987 pipe.
1988 Warning: Be careful with this command! If other user have write access
1989 to your terminal, they will be able to fire off print commands.
1990
1991 process [key]
1992
1993 Stuff the contents of the specified register into screen's input queue.
1994 If no argument is given you are prompted for a register name. The text
1995 is parsed as if it had been typed in from the user's keyboard. This
1996 command can be used to bind multiple actions to a single key.
1997
1998 quit
1999
2000 Kill all windows and terminate screen. Note that on VT100-style termi‐
2001 nals the keys C-4 and C-\ are identical. This makes the default bind‐
2002 ings dangerous: Be careful not to type C-a C-4 when selecting window
2003 no. 4. Use the empty bind command (as in "bind '^\'") to remove a key
2004 binding.
2005
2006 readbuf [-e encoding] [filename]
2007
2008 Reads the contents of the specified file into the paste buffer. You
2009 can tell screen the encoding of the file via the -e option. If no file
2010 is specified, the screen-exchange filename is used. See also "buffer‐
2011 file" command.
2012
2013 readreg [-e encoding] [register [filename]]
2014
2015 Does one of two things, dependent on number of arguments: with zero or
2016 one arguments it it duplicates the paste buffer contents into the reg‐
2017 ister specified or entered at the prompt. With two arguments it reads
2018 the contents of the named file into the register, just as readbuf reads
2019 the screen-exchange file into the paste buffer. You can tell screen
2020 the encoding of the file via the -e option. The following example will
2021 paste the system's password file into the screen window (using register
2022 p, where a copy remains):
2023
2024 C-a : readreg p /etc/passwd
2025 C-a : paste p
2026
2027 redisplay
2028
2029 Redisplay the current window. Needed to get a full redisplay when in
2030 partial redraw mode.
2031
2032 register [-e encoding] key string
2033
2034 Save the specified string to the register key. The encoding of the
2035 string can be specified via the -e option. See also the "paste" com‐
2036 mand.
2037
2038 remove
2039
2040 Kill the current region. This is a no-op if there is only one region.
2041
2042 removebuf
2043
2044 Unlinks the screen-exchange file used by the commands "writebuf" and
2045 "readbuf".
2046
2047 rendition bell | monitor | silence | so attr [color]
2048
2049 Change the way screen renders the titles of windows that have monitor
2050 or bell flags set in caption or hardstatus or windowlist. See the
2051 "STRING ESCAPES" chapter for the syntax of the modifiers. The default
2052 for monitor is currently "=b " (bold, active colors), for bell "=ub "
2053 (underline, bold and active colors), and "=u " for silence.
2054
2055 reset
2056
2057 Reset the virtual terminal to its "power-on" values. Useful when
2058 strange settings (like scroll regions or graphics character set) are
2059 left over from an application.
2060
2061 resize
2062
2063 Resize the current region. The space will be removed from or added to
2064 the region below or if there's not enough space from the region above.
2065
2066 resize +N increase current region height by N
2067
2068 resize -N decrease current region height by N
2069
2070 resize N set current region height to N
2071
2072 resize = make all windows equally high
2073
2074 resize max maximize current region height
2075
2076 resize min minimize current region height
2077
2078 screen [-opts] [n] [cmd [args]|//group]
2079
2080 Establish a new window. The flow-control options (-f, -fn and -fa),
2081 title (a.k.a.) option (-t), login options (-l and -ln) , terminal type
2082 option (-T <term>), the all-capability-flag (-a) and scrollback option
2083 (-h <num>) may be specified with each command. The option (-M) turns
2084 monitoring on for this window. The option (-L) turns output logging on
2085 for this window. If an optional number n in the range 0..MAXWIN-1 is
2086 given, the window number n is assigned to the newly created window (or,
2087 if this number is already in-use, the next available number). If a
2088 command is specified after "screen", this command (with the given argu‐
2089 ments) is started in the window; otherwise, a shell is created. If
2090 //group is supplied, a container-type window is created in which other
2091 windows may be created inside it.
2092
2093 Thus, if your ".screenrc" contains the lines
2094
2095 # example for .screenrc:
2096 screen 1
2097 screen -fn -t foobar -L 2 telnet foobar
2098
2099 screen creates a shell window (in window #1) and a window with a TELNET
2100 connection to the machine foobar (with no flow-control using the title
2101 "foobar" in window #2) and will write a logfile ("screenlog.2") of the
2102 telnet session. Note, that unlike previous versions of screen no addi‐
2103 tional default window is created when "screen" commands are included in
2104 your ".screenrc" file. When the initialization is completed, screen
2105 switches to the last window specified in your .screenrc file or, if
2106 none, opens a default window #0.
2107 Screen has built in some functionality of "cu" and "telnet". See also
2108 chapter "WINDOW TYPES".
2109
2110 scrollback num
2111
2112 Set the size of the scrollback buffer for the current windows to num
2113 lines. The default scrollback is 100 lines. See also the "defscroll‐
2114 back" command and use "info" to view the current setting. To access and
2115 use the contents in the scrollback buffer, use the "copy" command.
2116
2117 select [WindowID]
2118
2119 Switch to the window identified by WindowID. This can be a prefix of a
2120 window title (alphanumeric window name) or a window number. The param‐
2121 eter is optional and if omitted, you get prompted for an identifier.
2122 When a new window is established, the first available number is
2123 assigned to this window. Thus, the first window can be activated by
2124 "select 0". The number of windows is limited at compile-time by the
2125 MAXWIN configuration parameter (which defaults to 40). There are two
2126 special WindowIDs, "-" selects the internal blank window and "."
2127 selects the current window. The latter is useful if used with screen's
2128 "-X" option.
2129
2130 sessionname [name]
2131
2132 Rename the current session. Note, that for "screen -list" the name
2133 shows up with the process-id prepended. If the argument "name" is omit‐
2134 ted, the name of this session is displayed. Caution: The $STY environ‐
2135 ment variables will still reflect the old name in pre-existing shells.
2136 This may result in confusion. Use of this command is generally discour‐
2137 aged. Use the "-S" command-line option if you want to name a new ses‐
2138 sion. The default is constructed from the tty and host names.
2139
2140 setenv [var [string]]
2141
2142 Set the environment variable var to value string. If only var is spec‐
2143 ified, the user will be prompted to enter a value. If no parameters
2144 are specified, the user will be prompted for both variable and value.
2145 The environment is inherited by all subsequently forked shells.
2146
2147 setsid [on|off]
2148
2149 Normally screen uses different sessions and process groups for the win‐
2150 dows. If setsid is turned off, this is not done anymore and all windows
2151 will be in the same process group as the screen backend process. This
2152 also breaks job-control, so be careful. The default is on, of course.
2153 This command is probably useful only in rare circumstances.
2154
2155 shell command
2156
2157 Set the command to be used to create a new shell. This overrides the
2158 value of the environment variable $SHELL. This is useful if you'd like
2159 to run a tty-enhancer which is expecting to execute the program speci‐
2160 fied in $SHELL. If the command begins with a '-' character, the shell
2161 will be started as a login-shell.
2162
2163 shelltitle title
2164
2165 Set the title for all shells created during startup or by the C-A C-c
2166 command. For details about what a title is, see the discussion enti‐
2167 tled "TITLES (naming windows)".
2168
2169 silence [on|off|sec]
2170
2171 Toggles silence monitoring of windows. When silence is turned on and
2172 an affected window is switched into the background, you will receive
2173 the silence notification message in the status line after a specified
2174 period of inactivity (silence). The default timeout can be changed with
2175 the `silencewait' command or by specifying a number of seconds instead
2176 of `on' or `off'. Silence is initially off for all windows.
2177
2178 silencewait sec
2179
2180 Define the time that all windows monitored for silence should wait
2181 before displaying a message. Default 30 seconds.
2182
2183 sleep num
2184
2185 This command will pause the execution of a .screenrc file for num sec‐
2186 onds. Keyboard activity will end the sleep. It may be used to give
2187 users a chance to read the messages output by "echo".
2188
2189 slowpaste msec
2190
2191 Define the speed at which text is inserted into the current window by
2192 the paste ("C-a ]") command. If the slowpaste value is nonzero text is
2193 written character by character. screen will make a pause of msec mil‐
2194 liseconds after each single character write to allow the application to
2195 process its input. Only use slowpaste if your underlying system exposes
2196 flow control problems while pasting large amounts of text.
2197
2198 source file
2199
2200 Read and execute commands from file file. Source commands may be nested
2201 to a maximum recursion level of ten. If file is not an absolute path
2202 and screen is already processing a source command, the parent directory
2203 of the running source command file is used to search for the new com‐
2204 mand file before screen's current directory.
2205
2206 Note that termcap/terminfo/termcapinfo commands only work at startup
2207 and reattach time, so they must be reached via the default screenrc
2208 files to have an effect.
2209
2210 sorendition [attr [color]]
2211
2212 This command is deprecated. See "rendition so" instead.
2213
2214 split [-v]
2215
2216 Split the current region into two new ones. All regions on the display
2217 are resized to make room for the new region. The blank window is dis‐
2218 played on the new region. Splits are made horizontally unless -v is
2219 used. Use the "remove" or the "only" command to delete regions. Use
2220 "focus" to toggle between regions.
2221
2222 startup_message on|off
2223
2224 Select whether you want to see the copyright notice during startup.
2225 Default is `on', as you probably noticed.
2226
2227 stuff [string]
2228
2229 Stuff the string string in the input buffer of the current window.
2230 This is like the "paste" command but with much less overhead. Without
2231 a paramter, screen will prompt for a string to stuff. You cannot paste
2232 large buffers with the "stuff" command. It is most useful for key bind‐
2233 ings. See also "bindkey".
2234
2235 su [username [password [password2]]]
2236
2237 Substitute the user of a display. The command prompts for all parame‐
2238 ters that are omitted. If passwords are specified as parameters, they
2239 have to be specified un-crypted. The first password is matched against
2240 the systems passwd database, the second password is matched against the
2241 screen password as set with the commands "acladd" or "password". "Su"
2242 may be useful for the screen administrator to test multiuser setups.
2243 When the identification fails, the user has access to the commands
2244 available for user nobody. These are "detach", "license", "version",
2245 "help" and "displays".
2246
2247 suspend
2248
2249 Suspend screen. The windows are in the `detached' state, while screen
2250 is suspended. This feature relies on the shell being able to do job
2251 control.
2252
2253 term term
2254
2255 In each window's environment screen opens, the $TERM variable is set to
2256 "screen" by default. But when no description for "screen" is installed
2257 in the local termcap or terminfo data base, you set $TERM to - say -
2258 "vt100". This won't do much harm, as screen is VT100/ANSI compatible.
2259 The use of the "term" command is discouraged for non-default purpose.
2260 That is, one may want to specify special $TERM settings (e.g. vt100)
2261 for the next "screen rlogin othermachine" command. Use the command
2262 "screen -T vt100 rlogin othermachine" rather than setting and resetting
2263 the default.
2264
2265 termcap term terminal-tweaks [window-tweaks]
2266 terminfo term terminal-tweaks [window-tweaks]
2267 termcapinfo term terminal-tweaks [window-tweaks]
2268
2269 Use this command to modify your terminal's termcap entry without going
2270 through all the hassles involved in creating a custom termcap entry.
2271 Plus, you can optionally customize the termcap generated for the win‐
2272 dows. You have to place these commands in one of the screenrc startup
2273 files, as they are meaningless once the terminal emulator is booted.
2274 If your system works uses the terminfo database rather than termcap,
2275 screen will understand the `terminfo' command, which has the same
2276 effects as the `termcap' command. Two separate commands are provided,
2277 as there are subtle syntactic differences, e.g. when parameter interpo‐
2278 lation (using `%') is required. Note that termcap names of the capabil‐
2279 ities have to be used with the `terminfo' command.
2280 In many cases, where the arguments are valid in both terminfo and term‐
2281 cap syntax, you can use the command `termcapinfo', which is just a
2282 shorthand for a pair of `termcap' and `terminfo' commands with identi‐
2283 cal arguments.
2284
2285 The first argument specifies which terminal(s) should be affected by
2286 this definition. You can specify multiple terminal names by separating
2287 them with `|'s. Use `*' to match all terminals and `vt*' to match all
2288 terminals that begin with "vt".
2289
2290 Each tweak argument contains one or more termcap defines (separated by
2291 `:'s) to be inserted at the start of the appropriate termcap entry,
2292 enhancing it or overriding existing values. The first tweak modifies
2293 your terminal's termcap, and contains definitions that your terminal
2294 uses to perform certain functions. Specify a null string to leave this
2295 unchanged (e.g. ''). The second (optional) tweak modifies all the win‐
2296 dow termcaps, and should contain definitions that screen understands
2297 (see the "VIRTUAL TERMINAL" section).
2298
2299 Some examples:
2300
2301 termcap xterm* LP:hs@
2302
2303 Informs screen that all terminals that begin with `xterm' have firm
2304 auto-margins that allow the last position on the screen to be updated
2305 (LP), but they don't really have a status line (no 'hs' - append `@' to
2306 turn entries off). Note that we assume `LP' for all terminal names
2307 that start with "vt", but only if you don't specify a termcap command
2308 for that terminal.
2309
2310 termcap vt* LP
2311 termcap vt102|vt220 Z0=\E[?3h:Z1=\E[?3l
2312
2313 Specifies the firm-margined `LP' capability for all terminals that
2314 begin with `vt', and the second line will also add the escape-sequences
2315 to switch into (Z0) and back out of (Z1) 132-character-per-line mode if
2316 this is a VT102 or VT220. (You must specify Z0 and Z1 in your termcap
2317 to use the width-changing commands.)
2318
2319 termcap vt100 "" l0=PF1:l1=PF2:l2=PF3:l3=PF4
2320
2321 This leaves your vt100 termcap alone and adds the function key labels
2322 to each window's termcap entry.
2323
2324 termcap h19|z19 am@:im=\E@:ei=\EO dc=\E[P
2325
2326 Takes a h19 or z19 termcap and turns off auto-margins (am@) and enables
2327 the insert mode (im) and end-insert (ei) capabilities (the `@' in the
2328 `im' string is after the `=', so it is part of the string). Having the
2329 `im' and `ei' definitions put into your terminal's termcap will cause
2330 screen to automatically advertise the character-insert capability in
2331 each window's termcap. Each window will also get the delete-character
2332 capability (dc) added to its termcap, which screen will translate into
2333 a line-update for the terminal (we're pretending it doesn't support
2334 character deletion).
2335
2336 If you would like to fully specify each window's termcap entry, you
2337 should instead set the $SCREENCAP variable prior to running screen.
2338 See the discussion on the "VIRTUAL TERMINAL" in this manual, and the
2339 termcap(5) man page for more information on termcap definitions.
2340
2341 time [string]
2342
2343 Uses the message line to display the time of day, the host name, and
2344 the load averages over 1, 5, and 15 minutes (if this is available on
2345 your system). For window specific information, use "info".
2346
2347 If a string is specified, it changes the format of the time report like
2348 it is described in the "STRING ESCAPES" chapter. Screen uses a default
2349 of "%c:%s %M %d %H%? %l%?".
2350
2351 title [windowtitle]
2352
2353 Set the name of the current window to windowtitle. If no name is speci‐
2354 fied, screen prompts for one. This command was known as `aka' in previ‐
2355 ous releases.
2356
2357 unbindall
2358
2359 Unbind all the bindings. This can be useful when screen is used solely
2360 for its detaching abilities, such as when letting a console application
2361 run as a daemon. If, for some reason, it is necessary to bind commands
2362 after this, use 'screen -X'.
2363
2364 unsetenv var
2365
2366 Unset an environment variable.
2367
2368 utf8 [on|off [on|off]]
2369
2370 Change the encoding used in the current window. If utf8 is enabled, the
2371 strings sent to the window will be UTF-8 encoded and vice versa. Omit‐
2372 ting the parameter toggles the setting. If a second parameter is given,
2373 the display's encoding is also changed (this should rather be done with
2374 screen's "-U" option). See also "defutf8", which changes the default
2375 setting of a new window.
2376
2377 vbell [on|off]
2378
2379 Sets the visual bell setting for this window. Omitting the parameter
2380 toggles the setting. If vbell is switched on, but your terminal does
2381 not support a visual bell, a `vbell-message' is displayed in the status
2382 line when the bell character (^G) is received. Visual bell support of
2383 a terminal is defined by the termcap variable `vb' (terminfo: 'flash').
2384 Per default, vbell is off, thus the audible bell is used. See also
2385 `bell_msg'.
2386
2387 vbell_msg [message]
2388
2389 Sets the visual bell message. message is printed to the status line if
2390 the window receives a bell character (^G), vbell is set to "on", but
2391 the terminal does not support a visual bell. The default message is
2392 "Wuff, Wuff!!". Without a parameter, the current message is shown.
2393
2394 vbellwait sec
2395
2396 Define a delay in seconds after each display of screen's visual bell
2397 message. The default is 1 second.
2398
2399 verbose [on|off]
2400
2401 If verbose is switched on, the command name is echoed, whenever a win‐
2402 dow is created (or resurrected from zombie state). Default is off.
2403 Without a parameter, the current setting is shown.
2404
2405 version
2406
2407 Print the current version and the compile date in the status line.
2408
2409 wall message
2410
2411 Write a message to all displays. The message will appear in the termi‐
2412 nal's status line.
2413
2414 width [-w|-d] [cols [lines]]
2415
2416 Toggle the window width between 80 and 132 columns or set it to cols
2417 columns if an argument is specified. This requires a capable terminal
2418 and the termcap entries "Z0" and "Z1". See the "termcap" command for
2419 more information. You can also specify a new height if you want to
2420 change both values. The -w option tells screen to leave the display
2421 size unchanged and just set the window size, -d vice versa.
2422
2423 windowlist [-b] [-m] [-g]
2424 windowlist string [string]
2425 windowlist title [title]
2426
2427 Display all windows in a table for visual window selection. If screen
2428 was in a window group, screen will back out of the group and then dis‐
2429 play the windows in that group. If the -b option is given, screen will
2430 switch to the blank window before presenting the list, so that the cur‐
2431 rent window is also selectable. The -m option changes the order of the
2432 windows, instead of sorting by window numbers screen uses its internal
2433 most-recently-used list. The -g option will show the windows inside
2434 any groups in that level and downwards.
2435
2436 The following keys are used to navigate in "windowlist":
2437 k, C-p, or up Move up one line.
2438 j, C-n, or down Move down one line.
2439 C-g or escape Exit windowlist.
2440 C-a or home Move to the first line.
2441 C-e or end Move to the last line.
2442 C-u or C-d Move one half page up or down.
2443 C-b or C-f Move one full page up or down.
2444 0..9 Using the number keys, move to the selected line.
2445 mouseclick Move to the selected line. Available when "mousetrack" is
2446 set to "on"
2447 / Search.
2448 n Repeat search in the forward direction.
2449 N Repeat search in the backward direction.
2450 m Toggle MRU.
2451 g Toggle group nesting.
2452 a All window view.
2453 C-h or backspace Back out the group.
2454 , Switch numbers with the previous window.
2455 . Switch numbers with the next window.
2456 K Kill that window.
2457 space or enter Select that window.
2458
2459 The table format can be changed with the string and title option, the
2460 title is displayed as table heading, while the lines are made by using
2461 the string setting. The default setting is "Num Name%=Flags" for the
2462 title and "%3n %t%=%f" for the lines. See the "STRING ESCAPES" chapter
2463 for more codes (e.g. color settings).
2464
2465 "Windowlist" needs a region size of at least 10 characters wide and 6
2466 characters high in order to display.
2467
2468 windows
2469
2470 Uses the message line to display a list of all the windows. Each win‐
2471 dow is listed by number with the name of process that has been started
2472 in the window (or its title); the current window is marked with a `*';
2473 the previous window is marked with a `-'; all the windows that are
2474 "logged in" are marked with a `$'; a background window that has
2475 received a bell is marked with a `!'; a background window that is being
2476 monitored and has had activity occur is marked with an `@'; a window
2477 which has output logging turned on is marked with `(L)'; windows occu‐
2478 pied by other users are marked with `&'; windows in the zombie state
2479 are marked with `Z'. If this list is too long to fit on the terminal's
2480 status line only the portion around the current window is displayed.
2481
2482 wrap [on|off]
2483
2484 Sets the line-wrap setting for the current window. When line-wrap is
2485 on, the second consecutive printable character output at the last col‐
2486 umn of a line will wrap to the start of the following line. As an
2487 added feature, backspace (^H) will also wrap through the left margin to
2488 the previous line. Default is `on'. Without any options, the state of
2489 wrap is toggled.
2490
2491 writebuf [-e encoding] [filename]
2492
2493 Writes the contents of the paste buffer to the specified file, or the
2494 public accessible screen-exchange file if no filename is given. This is
2495 thought of as a primitive means of communication between screen users
2496 on the same host. If an encoding is specified the paste buffer is
2497 recoded on the fly to match the encoding. The filename can be set with
2498 the bufferfile command and defaults to "/tmp/screen-exchange".
2499
2500 writelock [on|off|auto]
2501
2502 In addition to access control lists, not all users may be able to write
2503 to the same window at once. Per default, writelock is in `auto' mode
2504 and grants exclusive input permission to the user who is the first to
2505 switch to the particular window. When he leaves the window, other users
2506 may obtain the writelock (automatically). The writelock of the current
2507 window is disabled by the command "writelock off". If the user issues
2508 the command "writelock on" he keeps the exclusive write permission
2509 while switching to other windows.
2510
2511 xoff
2512 xon
2513
2514 Insert a CTRL-s / CTRL-q character to the stdin queue of the current
2515 window.
2516
2517 zmodem [off|auto|catch|pass]
2518 zmodem sendcmd [string]
2519 zmodem recvcmd [string]
2520
2521 Define zmodem support for screen. Screen understands two different
2522 modes when it detects a zmodem request: "pass" and "catch". If the
2523 mode is set to "pass", screen will relay all data to the attacher until
2524 the end of the transmission is reached. In "catch" mode screen acts as
2525 a zmodem endpoint and starts the corresponding rz/sz commands. If the
2526 mode is set to "auto", screen will use "catch" if the window is a tty
2527 (e.g. a serial line), otherwise it will use "pass".
2528 You can define the templates screen uses in "catch" mode via the second
2529 and the third form.
2530 Note also that this is an experimental feature.
2531
2532 zombie [keys[onerror]]
2533 defzombie [keys]
2534
2535 Per default screen windows are removed from the window list as soon as
2536 the windows process (e.g. shell) exits. When a string of two keys is
2537 specified to the zombie command, `dead' windows will remain in the
2538 list. The kill command may be used to remove such a window. Pressing
2539 the first key in the dead window has the same effect. When pressing the
2540 second key, screen will attempt to resurrect the window. The process
2541 that was initially running in the window will be launched again. Call‐
2542 ing zombie without parameters will clear the zombie setting, thus mak‐
2543 ing windows disappear when their process exits.
2544
2545 As the zombie-setting is manipulated globally for all windows, this
2546 command should only be called defzombie. Until we need this as a per
2547 window setting, the commands zombie and defzombie are synonymous.
2548
2549 Optionally you can put the word "onerror" after the keys. This will
2550 cause screen to monitor exit status of the process running in the win‐
2551 dow. If it exits normally ('0'), the window disappears. Any other exit
2552 value causes the window to become a zombie.
2553
2554
2556 Screen displays informational messages and other diagnostics in a mes‐
2557 sage line. While this line is distributed to appear at the bottom of
2558 the screen, it can be defined to appear at the top of the screen during
2559 compilation. If your terminal has a status line defined in its term‐
2560 cap, screen will use this for displaying its messages, otherwise a line
2561 of the current screen will be temporarily overwritten and output will
2562 be momentarily interrupted. The message line is automatically removed
2563 after a few seconds delay, but it can also be removed early (on termi‐
2564 nals without a status line) by beginning to type.
2565
2566 The message line facility can be used by an application running in the
2567 current window by means of the ANSI Privacy message control sequence.
2568 For instance, from within the shell, try something like:
2569
2570 echo '<esc>^Hello world from window '$WINDOW'<esc>\\'
2571
2572 where '<esc>' is an escape, '^' is a literal up-arrow, and '\\' turns
2573 into a single backslash.
2574
2575
2577 Screen provides three different window types. New windows are created
2578 with screen's screen command (see also the entry in chapter "CUSTOMIZA‐
2579 TION"). The first parameter to the screen command defines which type of
2580 window is created. The different window types are all special cases of
2581 the normal type. They have been added in order to allow screen to be
2582 used efficiently as a console multiplexer with 100 or more windows.
2583
2584
2585 · The normal window contains a shell (default, if no parameter is
2586 given) or any other system command that could be executed from a
2587 shell (e.g. slogin, etc...)
2588
2589
2590 · If a tty (character special device) name (e.g. "/dev/ttya") is spec‐
2591 ified as the first parameter, then the window is directly connected
2592 to this device. This window type is similar to "screen cu -l
2593 /dev/ttya". Read and write access is required on the device node,
2594 an exclusive open is attempted on the node to mark the connection
2595 line as busy. An optional parameter is allowed consisting of a
2596 comma separated list of flags in the notation used by stty(1):
2597
2598 <baud_rate>
2599 Usually 300, 1200, 9600 or 19200. This affects transmission
2600 as well as receive speed.
2601
2602 cs8 or cs7
2603 Specify the transmission of eight (or seven) bits per byte.
2604
2605 ixon or -ixon
2606 Enables (or disables) software flow-control (CTRL-S/CTRL-Q)
2607 for sending data.
2608
2609 ixoff or -ixoff
2610 Enables (or disables) software flow-control for receiving
2611 data.
2612
2613 istrip or -istrip
2614 Clear (or keep) the eight bit in each received byte.
2615
2616 You may want to specify as many of these options as applicable.
2617 Unspecified options cause the terminal driver to make up the parame‐
2618 ter values of the connection. These values are system dependent and
2619 may be in defaults or values saved from a previous connection.
2620
2621 For tty windows, the info command shows some of the modem control
2622 lines in the status line. These may include `RTS', `CTS', 'DTR',
2623 `DSR', `CD' and more. This depends on the available ioctl()'s and
2624 system header files as well as the on the physical capabilities of
2625 the serial board. Signals that are logical low (inactive) have
2626 their name preceded by an exclamation mark (!), otherwise the signal
2627 is logical high (active). Signals not supported by the hardware but
2628 available to the ioctl() interface are usually shown low.
2629
2630 When the CLOCAL status bit is true, the whole set of modem signals
2631 is placed inside curly braces ({ and }). When the CRTSCTS or TIOC‐
2632 SOFTCAR bit is set, the signals `CTS' or `CD' are shown in parenthe‐
2633 sis, respectively.
2634
2635 For tty windows, the command break causes the Data transmission line
2636 (TxD) to go low for a specified period of time. This is expected to
2637 be interpreted as break signal on the other side. No data is sent
2638 and no modem control line is changed when a break is issued.
2639
2640
2641 · If the first parameter is "//telnet", the second parameter is
2642 expected to be a host name, and an optional third parameter may
2643 specify a TCP port number (default decimal 23). Screen will connect
2644 to a server listening on the remote host and use the telnet protocol
2645 to communicate with that server.
2646 For telnet windows, the command info shows details about the connec‐
2647 tion in square brackets ([ and ]) at the end of the status line.
2648
2649 b BINARY. The connection is in binary mode.
2650
2651 e ECHO. Local echo is disabled.
2652
2653 c SGA. The connection is in `character mode' (default: `line
2654 mode').
2655
2656 t TTYPE. The terminal type has been requested by the remote
2657 host. Screen sends the name "screen" unless instructed oth‐
2658 erwise (see also the command `term').
2659
2660 w NAWS. The remote site is notified about window size changes.
2661
2662 f LFLOW. The remote host will send flow control information.
2663 (Ignored at the moment.)
2664
2665 Additional flags for debugging are x, t and n (XDISPLOC, TSPEED and
2666 NEWENV).
2667
2668 For telnet windows, the command break sends the telnet code IAC
2669 BREAK (decimal 243) to the remote host.
2670
2671
2672 This window type is only available if screen was compiled with the
2673 BUILTIN_TELNET option defined.
2674
2675
2676
2678 Screen provides an escape mechanism to insert information like the cur‐
2679 rent time into messages or file names. The escape character is '%' with
2680 one exception: inside of a window's hardstatus '^%' ('^E') is used
2681 instead.
2682
2683 Here is the full list of supported escapes:
2684
2685 % the escape character itself
2686
2687 a either 'am' or 'pm'
2688
2689 A either 'AM' or 'PM'
2690
2691 c current time HH:MM in 24h format
2692
2693 C current time HH:MM in 12h format
2694
2695 d day number
2696
2697 D weekday name
2698
2699 f flags of the window, see "windows" for meanings of the various
2700 flags
2701
2702 F sets %? to true if the window has the focus
2703
2704 h hardstatus of the window
2705
2706 H hostname of the system
2707
2708 l current load of the system
2709
2710 m month number
2711
2712 M month name
2713
2714 n window number
2715
2716 P sets %? to true if the current region is in copy/paste mode
2717
2718 S session name
2719
2720 s seconds
2721
2722 t window title
2723
2724 u all other users on this window
2725
2726 w all window numbers and names. With '-' qualifier: up to the cur‐
2727 rent window; with '+' qualifier: starting with the window after
2728 the current one.
2729
2730 W all window numbers and names except the current one
2731
2732 y last two digits of the year number
2733
2734 Y full year number
2735
2736 ? the part to the next '%?' is displayed only if a '%' escape
2737 inside the part expands to a non-empty string
2738
2739 : else part of '%?'
2740
2741 = pad the string to the display's width (like TeX's hfill). If a
2742 number is specified, pad to the percentage of the window's
2743 width. A '0' qualifier tells screen to treat the number as
2744 absolute position. You can specify to pad relative to the last
2745 absolute pad position by adding a '+' qualifier or to pad rela‐
2746 tive to the right margin by using '-'. The padding truncates the
2747 string if the specified position lies before the current posi‐
2748 tion. Add the 'L' qualifier to change this.
2749
2750 < same as '%=' but just do truncation, do not fill with spaces
2751
2752 > mark the current text position for the next truncation. When
2753 screen needs to do truncation, it tries to do it in a way that
2754 the marked position gets moved to the specified percentage of
2755 the output area. (The area starts from the last absolute pad
2756 position and ends with the position specified by the truncation
2757 operator.) The 'L' qualifier tells screen to mark the truncated
2758 parts with '...'.
2759
2760 { attribute/color modifier string terminated by the next "}"
2761
2762 ` Substitute with the output of a 'backtick' command. The length
2763 qualifier is misused to identify one of the commands.
2764
2765 The 'c' and 'C' escape may be qualified with a '0' to make screen use
2766 zero instead of space as fill character. The '0' qualifier also makes
2767 the '=' escape use absolute positions. The 'n' and '=' escapes under‐
2768 stand a length qualifier (e.g. '%3n'), 'D' and 'M' can be prefixed with
2769 'L' to generate long names, 'w' and 'W' also show the window flags if
2770 'L' is given.
2771
2772 An attribute/color modifier is is used to change the attributes or the
2773 color settings. Its format is "[attribute modifier] [color descrip‐
2774 tion]". The attribute modifier must be prefixed by a change type indi‐
2775 cator if it can be confused with a color description. The following
2776 change types are known:
2777
2778 + add the specified set to the current attributes
2779
2780 - remove the set from the current attributes
2781
2782 ! invert the set in the current attributes
2783
2784 = change the current attributes to the specified set
2785
2786 The attribute set can either be specified as a hexadecimal number or a
2787 combination of the following letters:
2788
2789 d dim
2790 u underline
2791 b bold
2792 r reverse
2793 s standout
2794 B blinking
2795
2796 Colors are coded either as a hexadecimal number or two letters specify‐
2797 ing the desired background and foreground color (in that order). The
2798 following colors are known:
2799
2800 k black
2801 r red
2802 g green
2803 y yellow
2804 b blue
2805 m magenta
2806 c cyan
2807 w white
2808 d default color
2809 . leave color unchanged
2810
2811 The capitalized versions of the letter specify bright colors. You can
2812 also use the pseudo-color 'i' to set just the brightness and leave the
2813 color unchanged.
2814 A one digit/letter color description is treated as foreground or back‐
2815 ground color dependent on the current attributes: if reverse mode is
2816 set, the background color is changed instead of the foreground color.
2817 If you don't like this, prefix the color with a ".". If you want the
2818 same behavior for two-letter color descriptions, also prefix them with
2819 a ".".
2820 As a special case, "%{-}" restores the attributes and colors that were
2821 set before the last change was made (i.e., pops one level of the color-
2822 change stack).
2823
2824 Examples:
2825
2826 "G" set color to bright green
2827
2828 "+b r" use bold red
2829
2830 "= yd" clear all attributes, write in default color on yellow back‐
2831 ground.
2832
2833 %-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<
2834 The available windows centered at the current window and trun‐
2835 cated to the available width. The current window is displayed
2836 white on blue. This can be used with "hardstatus alwayslast‐
2837 line".
2838
2839 %?%F%{.R.}%?%3n %t%? [%h]%?
2840 The window number and title and the window's hardstatus, if one
2841 is set. Also use a red background if this is the active focus.
2842 Useful for "caption string".
2843
2845 Each window has a flow-control setting that determines how screen deals
2846 with the XON and XOFF characters (and perhaps the interrupt character).
2847 When flow-control is turned off, screen ignores the XON and XOFF char‐
2848 acters, which allows the user to send them to the current program by
2849 simply typing them (useful for the emacs editor, for instance). The
2850 trade-off is that it will take longer for output from a "normal" pro‐
2851 gram to pause in response to an XOFF. With flow-control turned on, XON
2852 and XOFF characters are used to immediately pause the output of the
2853 current window. You can still send these characters to the current
2854 program, but you must use the appropriate two-character screen commands
2855 (typically "C-a q" (xon) and "C-a s" (xoff)). The xon/xoff commands
2856 are also useful for typing C-s and C-q past a terminal that intercepts
2857 these characters.
2858
2859 Each window has an initial flow-control value set with either the -f
2860 option or the "defflow" .screenrc command. Per default the windows are
2861 set to automatic flow-switching. It can then be toggled between the
2862 three states 'fixed on', 'fixed off' and 'automatic' interactively with
2863 the "flow" command bound to "C-a f".
2864
2865 The automatic flow-switching mode deals with flow control using the
2866 TIOCPKT mode (like "rlogin" does). If the tty driver does not support
2867 TIOCPKT, screen tries to find out the right mode based on the current
2868 setting of the application keypad - when it is enabled, flow-control is
2869 turned off and visa versa. Of course, you can still manipulate flow-
2870 control manually when needed.
2871
2872 If you're running with flow-control enabled and find that pressing the
2873 interrupt key (usually C-c) does not interrupt the display until
2874 another 6-8 lines have scrolled by, try running screen with the "inter‐
2875 rupt" option (add the "interrupt" flag to the "flow" command in your
2876 .screenrc, or use the -i command-line option). This causes the output
2877 that screen has accumulated from the interrupted program to be flushed.
2878 One disadvantage is that the virtual terminal's memory contains the
2879 non-flushed version of the output, which in rare cases can cause minor
2880 inaccuracies in the output. For example, if you switch screens and
2881 return, or update the screen with "C-a l" you would see the version of
2882 the output you would have gotten without "interrupt" being on. Also,
2883 you might need to turn off flow-control (or use auto-flow mode to turn
2884 it off automatically) when running a program that expects you to type
2885 the interrupt character as input, as it is possible to interrupt the
2886 output of the virtual terminal to your physical terminal when flow-con‐
2887 trol is enabled. If this happens, a simple refresh of the screen with
2888 "C-a l" will restore it. Give each mode a try, and use whichever mode
2889 you find more comfortable.
2890
2891
2892
2894 You can customize each window's name in the window display (viewed with
2895 the "windows" command (C-a w)) by setting it with one of the title com‐
2896 mands. Normally the name displayed is the actual command name of the
2897 program created in the window. However, it is sometimes useful to dis‐
2898 tinguish various programs of the same name or to change the name on-
2899 the-fly to reflect the current state of the window.
2900
2901 The default name for all shell windows can be set with the "shelltitle"
2902 command in the .screenrc file, while all other windows are created with
2903 a "screen" command and thus can have their name set with the -t option.
2904 Interactively, there is the title-string escape-sequence
2905 (<esc>kname<esc>\) and the "title" command (C-a A). The former can be
2906 output from an application to control the window's name under software
2907 control, and the latter will prompt for a name when typed. You can
2908 also bind pre-defined names to keys with the "title" command to set
2909 things quickly without prompting.
2910
2911 Finally, screen has a shell-specific heuristic that is enabled by set‐
2912 ting the window's name to "search|name" and arranging to have a null
2913 title escape-sequence output as a part of your prompt. The search por‐
2914 tion specifies an end-of-prompt search string, while the name portion
2915 specifies the default shell name for the window. If the name ends in a
2916 `:' screen will add what it believes to be the current command running
2917 in the window to the end of the window's shell name (e.g. "name:cmd").
2918 Otherwise the current command name supersedes the shell name while it
2919 is running.
2920
2921 Here's how it works: you must modify your shell prompt to output a
2922 null title-escape-sequence (<esc>k<esc>\) as a part of your prompt.
2923 The last part of your prompt must be the same as the string you speci‐
2924 fied for the search portion of the title. Once this is set up, screen
2925 will use the title-escape-sequence to clear the previous command name
2926 and get ready for the next command. Then, when a newline is received
2927 from the shell, a search is made for the end of the prompt. If found,
2928 it will grab the first word after the matched string and use it as the
2929 command name. If the command name begins with either '!', '%', or '^'
2930 screen will use the first word on the following line (if found) in
2931 preference to the just-found name. This helps csh users get better
2932 command names when using job control or history recall commands.
2933
2934 Here's some .screenrc examples:
2935
2936 screen -t top 2 nice top
2937
2938 Adding this line to your .screenrc would start a nice-d version of the
2939 "top" command in window 2 named "top" rather than "nice".
2940
2941 shelltitle '> |csh'
2942 screen 1
2943
2944 These commands would start a shell with the given shelltitle. The
2945 title specified is an auto-title that would expect the prompt and the
2946 typed command to look something like the following:
2947
2948 /usr/joe/src/dir> trn
2949
2950 (it looks after the '> ' for the command name). The window status
2951 would show the name "trn" while the command was running, and revert to
2952 "csh" upon completion.
2953
2954 bind R screen -t '% |root:' su
2955
2956 Having this command in your .screenrc would bind the key sequence "C-a
2957 R" to the "su" command and give it an auto-title name of "root:". For
2958 this auto-title to work, the screen could look something like this:
2959
2960 % !em
2961 emacs file.c
2962
2963 Here the user typed the csh history command "!em" which ran the previ‐
2964 ously entered "emacs" command. The window status would show
2965 "root:emacs" during the execution of the command, and revert to simply
2966 "root:" at its completion.
2967
2968 bind o title
2969 bind E title ""
2970 bind u title (unknown)
2971
2972 The first binding doesn't have any arguments, so it would prompt you
2973 for a title. when you type "C-a o". The second binding would clear an
2974 auto-title's current setting (C-a E). The third binding would set the
2975 current window's title to "(unknown)" (C-a u).
2976
2977 One thing to keep in mind when adding a null title-escape-sequence to
2978 your prompt is that some shells (like the csh) count all the non-con‐
2979 trol characters as part of the prompt's length. If these invisible
2980 characters aren't a multiple of 8 then backspacing over a tab will
2981 result in an incorrect display. One way to get around this is to use a
2982 prompt like this:
2983
2984 set prompt='^[[0000m^[k^[\% '
2985
2986 The escape-sequence "<esc>[0000m" not only normalizes the character
2987 attributes, but all the zeros round the length of the invisible charac‐
2988 ters up to 8. Bash users will probably want to echo the escape
2989 sequence in the PROMPT_COMMAND:
2990
2991 PROMPT_COMMAND='printf "\033k\033\134"'
2992
2993 (I used "134" to output a `\' because of a bug in bash v1.04).
2994
2995
2996
2998 Each window in a screen session emulates a VT100 terminal, with some
2999 extra functions added. The VT100 emulator is hard-coded, no other ter‐
3000 minal types can be emulated.
3001 Usually screen tries to emulate as much of the VT100/ANSI standard as
3002 possible. But if your terminal lacks certain capabilities, the emula‐
3003 tion may not be complete. In these cases screen has to tell the appli‐
3004 cations that some of the features are missing. This is no problem on
3005 machines using termcap, because screen can use the $TERMCAP variable to
3006 customize the standard screen termcap.
3007
3008 But if you do a rlogin on another machine or your machine supports only
3009 terminfo this method fails. Because of this, screen offers a way to
3010 deal with these cases. Here is how it works:
3011
3012 When screen tries to figure out a terminal name for itself, it first
3013 looks for an entry named "screen.<term>", where <term> is the contents
3014 of your $TERM variable. If no such entry exists, screen tries "screen"
3015 (or "screen-w" if the terminal is wide (132 cols or more)). If even
3016 this entry cannot be found, "vt100" is used as a substitute.
3017
3018 The idea is that if you have a terminal which doesn't support an impor‐
3019 tant feature (e.g. delete char or clear to EOS) you can build a new
3020 termcap/terminfo entry for screen (named "screen.<dumbterm>") in which
3021 this capability has been disabled. If this entry is installed on your
3022 machines you are able to do a rlogin and still keep the correct term‐
3023 cap/terminfo entry. The terminal name is put in the $TERM variable of
3024 all new windows. Screen also sets the $TERMCAP variable reflecting the
3025 capabilities of the virtual terminal emulated. Notice that, however, on
3026 machines using the terminfo database this variable has no effect. Fur‐
3027 thermore, the variable $WINDOW is set to the window number of each win‐
3028 dow.
3029
3030 The actual set of capabilities supported by the virtual terminal
3031 depends on the capabilities supported by the physical terminal. If,
3032 for instance, the physical terminal does not support underscore mode,
3033 screen does not put the `us' and `ue' capabilities into the window's
3034 $TERMCAP variable, accordingly. However, a minimum number of capabili‐
3035 ties must be supported by a terminal in order to run screen; namely
3036 scrolling, clear screen, and direct cursor addressing (in addition,
3037 screen does not run on hardcopy terminals or on terminals that over-
3038 strike).
3039
3040 Also, you can customize the $TERMCAP value used by screen by using the
3041 "termcap" .screenrc command, or by defining the variable $SCREENCAP
3042 prior to startup. When the is latter defined, its value will be copied
3043 verbatim into each window's $TERMCAP variable. This can either be the
3044 full terminal definition, or a filename where the terminal "screen"
3045 (and/or "screen-w") is defined.
3046
3047 Note that screen honors the "terminfo" .screenrc command if the system
3048 uses the terminfo database rather than termcap.
3049
3050 When the boolean `G0' capability is present in the termcap entry for
3051 the terminal on which screen has been called, the terminal emulation of
3052 screen supports multiple character sets. This allows an application to
3053 make use of, for instance, the VT100 graphics character set or national
3054 character sets. The following control functions from ISO 2022 are sup‐
3055 ported: lock shift G0 (SI), lock shift G1 (SO), lock shift G2, lock
3056 shift G3, single shift G2, and single shift G3. When a virtual termi‐
3057 nal is created or reset, the ASCII character set is designated as G0
3058 through G3. When the `G0' capability is present, screen evaluates the
3059 capabilities `S0', `E0', and `C0' if present. `S0' is the sequence the
3060 terminal uses to enable and start the graphics character set rather
3061 than SI. `E0' is the corresponding replacement for SO. `C0' gives a
3062 character by character translation string that is used during semi-
3063 graphics mode. This string is built like the `acsc' terminfo capabil‐
3064 ity.
3065
3066 When the `po' and `pf' capabilities are present in the terminal's term‐
3067 cap entry, applications running in a screen window can send output to
3068 the printer port of the terminal. This allows a user to have an appli‐
3069 cation in one window sending output to a printer connected to the ter‐
3070 minal, while all other windows are still active (the printer port is
3071 enabled and disabled again for each chunk of output). As a side-
3072 effect, programs running in different windows can send output to the
3073 printer simultaneously. Data sent to the printer is not displayed in
3074 the window. The info command displays a line starting `PRIN' while the
3075 printer is active.
3076
3077 Screen maintains a hardstatus line for every window. If a window gets
3078 selected, the display's hardstatus will be updated to match the win‐
3079 dow's hardstatus line. If the display has no hardstatus the line will
3080 be displayed as a standard screen message. The hardstatus line can be
3081 changed with the ANSI Application Program Command (APC):
3082 "ESC_<string>ESC\". As a convenience for xterm users the sequence
3083 "ESC]0..2;<string>^G" is also accepted.
3084
3085 Some capabilities are only put into the $TERMCAP variable of the vir‐
3086 tual terminal if they can be efficiently implemented by the physical
3087 terminal. For instance, `dl' (delete line) is only put into the $TERM‐
3088 CAP variable if the terminal supports either delete line itself or
3089 scrolling regions. Note that this may provoke confusion, when the ses‐
3090 sion is reattached on a different terminal, as the value of $TERMCAP
3091 cannot be modified by parent processes.
3092
3093 The "alternate screen" capability is not enabled by default. Set the
3094 altscreen .screenrc command to enable it.
3095
3096 The following is a list of control sequences recognized by screen.
3097 "(V)" and "(A)" indicate VT100-specific and ANSI- or ISO-specific func‐
3098 tions, respectively.
3099
3100 ESC E Next Line
3101
3102 ESC D Index
3103
3104 ESC M Reverse Index
3105
3106 ESC H Horizontal Tab Set
3107
3108 ESC Z Send VT100 Identification String
3109
3110 ESC 7 (V) Save Cursor and Attributes
3111
3112 ESC 8 (V) Restore Cursor and Attributes
3113
3114 ESC [s (A) Save Cursor and Attributes
3115
3116 ESC [u (A) Restore Cursor and Attributes
3117
3118 ESC c Reset to Initial State
3119
3120 ESC g Visual Bell
3121
3122 ESC Pn p Cursor Visibility (97801)
3123
3124 Pn = 6 Invisible
3125
3126 7 Visible
3127
3128 ESC = (V) Application Keypad Mode
3129
3130 ESC > (V) Numeric Keypad Mode
3131
3132 ESC # 8 (V) Fill Screen with E's
3133
3134 ESC \ (A) String Terminator
3135
3136 ESC ^ (A) Privacy Message String (Message Line)
3137
3138 ESC ! Global Message String (Message Line)
3139
3140 ESC k A.k.a. Definition String
3141
3142 ESC P (A) Device Control String. Outputs a string
3143 directly to the host terminal without inter‐
3144 pretation.
3145
3146 ESC _ (A) Application Program Command (Hardstatus)
3147
3148 ESC ] 0 ; string ^G (A) Operating System Command (Hardstatus, xterm
3149 title hack)
3150
3151 ESC ] 83 ; cmd ^G (A) Execute screen command. This only works if
3152 multi-user support is compiled into screen.
3153 The pseudo-user ":window:" is used to check
3154 the access control list. Use "addacl :win‐
3155 dow: -rwx #?" to create a user with no
3156 rights and allow only the needed commands.
3157
3158 Control-N (A) Lock Shift G1 (SO)
3159
3160 Control-O (A) Lock Shift G0 (SI)
3161
3162 ESC n (A) Lock Shift G2
3163
3164 ESC o (A) Lock Shift G3
3165
3166 ESC N (A) Single Shift G2
3167
3168 ESC O (A) Single Shift G3
3169
3170 ESC ( Pcs (A) Designate character set as G0
3171
3172 ESC ) Pcs (A) Designate character set as G1
3173
3174 ESC * Pcs (A) Designate character set as G2
3175
3176 ESC + Pcs (A) Designate character set as G3
3177
3178 ESC [ Pn ; Pn H Direct Cursor Addressing
3179
3180 ESC [ Pn ; Pn f same as above
3181
3182 ESC [ Pn J Erase in Display
3183
3184 Pn = None or 0 From Cursor to End of Screen
3185
3186 1 From Beginning of Screen to Cursor
3187
3188 2 Entire Screen
3189
3190 ESC [ Pn K Erase in Line
3191
3192 Pn = None or 0 From Cursor to End of Line
3193
3194 1 From Beginning of Line to Cursor
3195
3196 2 Entire Line
3197
3198 ESC [ Pn X Erase character
3199
3200 ESC [ Pn A Cursor Up
3201
3202 ESC [ Pn B Cursor Down
3203
3204 ESC [ Pn C Cursor Right
3205
3206 ESC [ Pn D Cursor Left
3207
3208 ESC [ Pn E Cursor next line
3209
3210 ESC [ Pn F Cursor previous line
3211
3212 ESC [ Pn G Cursor horizontal position
3213
3214 ESC [ Pn ` same as above
3215
3216 ESC [ Pn d Cursor vertical position
3217
3218 ESC [ Ps ;...; Ps m Select Graphic Rendition
3219
3220 Ps = None or 0 Default Rendition
3221
3222 1 Bold
3223
3224 2 (A) Faint
3225
3226 3 (A) Standout Mode (ANSI: Italicized)
3227
3228 4 Underlined
3229
3230 5 Blinking
3231
3232 7 Negative Image
3233
3234 22 (A) Normal Intensity
3235
3236 23 (A) Standout Mode off (ANSI: Italicized off)
3237
3238 24 (A) Not Underlined
3239
3240 25 (A) Not Blinking
3241
3242 27 (A) Positive Image
3243
3244 30 (A) Foreground Black
3245
3246 31 (A) Foreground Red
3247
3248 32 (A) Foreground Green
3249
3250 33 (A) Foreground Yellow
3251
3252 34 (A) Foreground Blue
3253
3254 35 (A) Foreground Magenta
3255
3256 36 (A) Foreground Cyan
3257
3258 37 (A) Foreground White
3259
3260 39 (A) Foreground Default
3261
3262 40 (A) Background Black
3263
3264 ...
3265
3266 49 (A) Background Default
3267
3268 ESC [ Pn g Tab Clear
3269
3270 Pn = None or 0 Clear Tab at Current Position
3271
3272 3 Clear All Tabs
3273
3274 ESC [ Pn ; Pn r (V) Set Scrolling Region
3275
3276 ESC [ Pn I (A) Horizontal Tab
3277
3278 ESC [ Pn Z (A) Backward Tab
3279
3280 ESC [ Pn L (A) Insert Line
3281
3282 ESC [ Pn M (A) Delete Line
3283
3284 ESC [ Pn @ (A) Insert Character
3285
3286 ESC [ Pn P (A) Delete Character
3287
3288 ESC [ Pn S Scroll Scrolling Region Up
3289
3290 ESC [ Pn T Scroll Scrolling Region Down
3291
3292 ESC [ Pn ^ same as above
3293
3294 ESC [ Ps ;...; Ps h Set Mode
3295
3296 ESC [ Ps ;...; Ps l Reset Mode
3297
3298 Ps = 4 (A) Insert Mode
3299
3300 20 (A) Automatic Linefeed Mode
3301
3302 34 Normal Cursor Visibility
3303
3304 ?1 (V) Application Cursor Keys
3305
3306 ?3 (V) Change Terminal Width to 132 columns
3307
3308 ?5 (V) Reverse Video
3309
3310 ?6 (V) Origin Mode
3311
3312 ?7 (V) Wrap Mode
3313
3314 ?9 X10 mouse tracking
3315
3316 ?25 (V) Visible Cursor
3317
3318 ?47 Alternate Screen (old xterm code)
3319
3320 ?1000 (V) VT200 mouse tracking
3321
3322 ?1047 Alternate Screen (new xterm code)
3323
3324 ?1049 Alternate Screen (new xterm code)
3325
3326 ESC [ 5 i (A) Start relay to printer (ANSI Media Copy)
3327
3328 ESC [ 4 i (A) Stop relay to printer (ANSI Media Copy)
3329
3330 ESC [ 8 ; Ph ; Pw t Resize the window to `Ph' lines and `Pw'
3331 columns (SunView special)
3332
3333 ESC [ c Send VT100 Identification String
3334
3335 ESC [ x Send Terminal Parameter Report
3336
3337 ESC [ > c Send VT220 Secondary Device Attributes
3338 String
3339
3340 ESC [ 6 n Send Cursor Position Report
3341
3342
3343
3345 In order to do a full VT100 emulation screen has to detect that a
3346 sequence of characters in the input stream was generated by a keypress
3347 on the user's keyboard and insert the VT100 style escape sequence.
3348 Screen has a very flexible way of doing this by making it possible to
3349 map arbitrary commands on arbitrary sequences of characters. For stan‐
3350 dard VT100 emulation the command will always insert a string in the
3351 input buffer of the window (see also command stuff in the command ta‐
3352 ble). Because the sequences generated by a keypress can change after a
3353 reattach from a different terminal type, it is possible to bind com‐
3354 mands to the termcap name of the keys. Screen will insert the correct
3355 binding after each reattach. See the bindkey command for further
3356 details on the syntax and examples.
3357
3358 Here is the table of the default key bindings. (A) means that the com‐
3359 mand is executed if the keyboard is switched into application mode.
3360
3361 Key name Termcap name Command
3362 ______________________________________________________
3363 Cursor up ku stuff \033[A
3364 stuff \033OA (A)
3365 Cursor down kd stuff \033[B
3366 stuff \033OB (A)
3367 Cursor right kr stuff \033[C
3368 stuff \033OC (A)
3369 Cursor left kl stuff \033[D
3370 stuff \033OD (A)
3371 Function key 0 k0 stuff \033[10~
3372 Function key 1 k1 stuff \033OP
3373 Function key 2 k2 stuff \033OQ
3374 Function key 3 k3 stuff \033OR
3375 Function key 4 k4 stuff \033OS
3376 Function key 5 k5 stuff \033[15~
3377 Function key 6 k6 stuff \033[17~
3378 Function key 7 k7 stuff \033[18~
3379 Function key 8 k8 stuff \033[19~
3380 Function key 9 k9 stuff \033[20~
3381 Function key 10 k; stuff \033[21~
3382 Function key 11 F1 stuff \033[23~
3383 Function key 12 F2 stuff \033[24~
3384 Home kh stuff \033[1~
3385 End kH stuff \033[4~
3386 Insert kI stuff \033[2~
3387 Delete kD stuff \033[3~
3388 Page up kP stuff \033[5~
3389 Page down kN stuff \033[6~
3390 Keypad 0 f0 stuff 0
3391 stuff \033Op (A)
3392 Keypad 1 f1 stuff 1
3393 stuff \033Oq (A)
3394 Keypad 2 f2 stuff 2
3395 stuff \033Or (A)
3396 Keypad 3 f3 stuff 3
3397 stuff \033Os (A)
3398 Keypad 4 f4 stuff 4
3399 stuff \033Ot (A)
3400 Keypad 5 f5 stuff 5
3401 stuff \033Ou (A)
3402 Keypad 6 f6 stuff 6
3403 stuff \033Ov (A)
3404 Keypad 7 f7 stuff 7
3405 stuff \033Ow (A)
3406 Keypad 8 f8 stuff 8
3407 stuff \033Ox (A)
3408 Keypad 9 f9 stuff 9
3409 stuff \033Oy (A)
3410 Keypad + f+ stuff +
3411 stuff \033Ok (A)
3412 Keypad - f- stuff -
3413 stuff \033Om (A)
3414 Keypad * f* stuff *
3415 stuff \033Oj (A)
3416 Keypad / f/ stuff /
3417 stuff \033Oo (A)
3418 Keypad = fq stuff =
3419 stuff \033OX (A)
3420 Keypad . f. stuff .
3421 stuff \033On (A)
3422 Keypad , f, stuff ,
3423 stuff \033Ol (A)
3424 Keypad enter fe stuff \015
3425 stuff \033OM (A)
3426
3427
3428
3430 The following table describes all terminal capabilities that are recog‐
3431 nized by screen and are not in the termcap(5) manual. You can place
3432 these capabilities in your termcap entries (in `/etc/termcap') or use
3433 them with the commands `termcap', `terminfo' and `termcapinfo' in your
3434 screenrc files. It is often not possible to place these capabilities in
3435 the terminfo database.
3436
3437 LP (bool) Terminal has VT100 style margins (`magic margins'). Note
3438 that this capability is obsolete because screen uses the
3439 standard 'xn' instead.
3440
3441 Z0 (str) Change width to 132 columns.
3442
3443 Z1 (str) Change width to 80 columns.
3444
3445 WS (str) Resize display. This capability has the desired width and
3446 height as arguments. SunView(tm) example: '\E[8;%d;%dt'.
3447
3448 NF (bool) Terminal doesn't need flow control. Send ^S and ^Q direct
3449 to the application. Same as 'flow off'. The opposite of
3450 this capability is 'nx'.
3451
3452 G0 (bool) Terminal can deal with ISO 2022 font selection sequences.
3453
3454 S0 (str) Switch charset 'G0' to the specified charset. Default is
3455 '\E(%.'.
3456
3457 E0 (str) Switch charset 'G0' back to standard charset. Default is
3458 '\E(B'.
3459
3460 C0 (str) Use the string as a conversion table for font '0'. See the
3461 'ac' capability for more details.
3462
3463 CS (str) Switch cursor-keys to application mode.
3464
3465 CE (str) Switch cursor-keys back to normal mode.
3466
3467 AN (bool) Turn on autonuke. See the 'autonuke' command for more
3468 details.
3469
3470 OL (num) Set the output buffer limit. See the 'obuflimit' command
3471 for more details.
3472
3473 KJ (str) Set the encoding of the terminal. See the 'encoding' com‐
3474 mand for valid encodings.
3475
3476 AF (str) Change character foreground color in an ANSI conform way.
3477 This capability will almost always be set to '\E[3%dm'
3478 ('\E[3%p1%dm' on terminfo machines).
3479
3480 AB (str) Same as 'AF', but change background color.
3481
3482 AX (bool) Does understand ANSI set default fg/bg color (\E[39m /
3483 \E[49m).
3484
3485 XC (str) Describe a translation of characters to strings depending
3486 on the current font. More details follow in the next sec‐
3487 tion.
3488
3489 XT (bool) Terminal understands special xterm sequences (OSC, mouse
3490 tracking).
3491
3492 C8 (bool) Terminal needs bold to display high-intensity colors (e.g.
3493 Eterm).
3494
3495 TF (bool) Add missing capabilities to the termcap/info entry. (Set
3496 by default).
3497
3498
3500 Screen has a powerful mechanism to translate characters to arbitrary
3501 strings depending on the current font and terminal type. Use this fea‐
3502 ture if you want to work with a common standard character set (say
3503 ISO8851-latin1) even on terminals that scatter the more unusual charac‐
3504 ters over several national language font pages.
3505
3506 Syntax:
3507 XC=<charset-mapping>{,,<charset-mapping>}
3508 <charset-mapping> := <designator><template>{,<mapping>}
3509 <mapping> := <char-to-be-mapped><template-arg>
3510
3511 The things in braces may be repeated any number of times.
3512
3513 A <charset-mapping> tells screen how to map characters in font <desig‐
3514 nator> ('B': Ascii, 'A': UK, 'K': German, etc.) to strings. Every
3515 <mapping> describes to what string a single character will be trans‐
3516 lated. A template mechanism is used, as most of the time the codes have
3517 a lot in common (for example strings to switch to and from another
3518 charset). Each occurrence of '%' in <template> gets substituted with
3519 the <template-arg> specified together with the character. If your
3520 strings are not similar at all, then use '%' as a template and place
3521 the full string in <template-arg>. A quoting mechanism was added to
3522 make it possible to use a real '%'. The '\' character quotes the spe‐
3523 cial characters '\', '%', and ','.
3524
3525 Here is an example:
3526
3527 termcap hp700 'XC=B\E(K%\E(B,\304[,\326\\\\,\334]'
3528
3529 This tells screen how to translate ISOlatin1 (charset 'B') upper case
3530 umlaut characters on a hp700 terminal that has a German charset. '\304'
3531 gets translated to '\E(K[\E(B' and so on. Note that this line gets
3532 parsed *three* times before the internal lookup table is built, there‐
3533 fore a lot of quoting is needed to create a single '\'.
3534
3535 Another extension was added to allow more emulation: If a mapping
3536 translates the unquoted '%' char, it will be sent to the terminal when‐
3537 ever screen switches to the corresponding <designator>. In this special
3538 case the template is assumed to be just '%' because the charset switch
3539 sequence and the character mappings normally haven't much in common.
3540
3541 This example shows one use of the extension:
3542
3543 termcap xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334'
3544
3545 Here, a part of the German ('K') charset is emulated on an xterm. If
3546 screen has to change to the 'K' charset, '\E(B' will be sent to the
3547 terminal, i.e. the ASCII charset is used instead. The template is just
3548 '%', so the mapping is straightforward: '[' to '\304', '\' to '\326',
3549 and ']' to '\334'.
3550
3551
3553 COLUMNS Number of columns on the terminal (overrides termcap
3554 entry).
3555 HOME Directory in which to look for .screenrc.
3556 LINES Number of lines on the terminal (overrides termcap
3557 entry).
3558 LOCKPRG Screen lock program.
3559 NETHACKOPTIONS Turns on nethack option.
3560 PATH Used for locating programs to run.
3561 SCREENCAP For customizing a terminal's TERMCAP value.
3562 SCREENDIR Alternate socket directory.
3563 SCREENRC Alternate user screenrc file.
3564 SHELL Default shell program for opening windows (default
3565 "/bin/sh").
3566 STY Alternate socket name.
3567 SYSSCREENRC Alternate system screenrc file.
3568 TERM Terminal name.
3569 TERMCAP Terminal description.
3570 WINDOW Window number of a window (at creation time).
3571
3573 .../screen-4.?.??/etc/screenrc
3574 .../screen-4.?.??/etc/etcscreenrc Examples in the screen distribution
3575 package for private and global ini‐
3576 tialization files.
3577 $SYSSCREENRC
3578 /etc/screenrc screen initialization commands
3579 $SCREENRC
3580 $HOME/.screenrc Read in after /etc/screenrc
3581 $SCREENDIR/S-<login>
3582 /local/screens/S-<login> Socket directories (default)
3583 /usr/tmp/screens/S-<login> Alternate socket directories.
3584 <socket directory>/.termcap Written by the "termcap" output func‐
3585 tion
3586 /usr/tmp/screens/screen-exchange or
3587 /tmp/screen-exchange screen `interprocess communication
3588 buffer'
3589 hardcopy.[0-9] Screen images created by the hardcopy
3590 function
3591 screenlog.[0-9] Output log files created by the log
3592 function
3593 /usr/lib/terminfo/?/* or
3594 /etc/termcap Terminal capability databases
3595 /etc/utmp Login records
3596 $LOCKPRG Program that locks a terminal.
3597
3598
3600 termcap(5), utmp(5), vi(1), captoinfo(1), tic(1)
3601
3602
3604 Originally created by Oliver Laumann, this latest version was produced
3605 by Juergen Weigert, Michael Schroeder, Micah Cowan and Sadrul Habib
3606 Chowdhury.
3607
3609 Copyright (c) 2010
3610 Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
3611 Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
3612 Copyright (c) 2008, 2009
3613 Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
3614 Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
3615 Micah Cowan (micah@cowan.name)
3616 Sadrul Habib Chowdhury (sadrul@users.sourceforge.net)
3617 Copyright (C) 1993-2003
3618 Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de)
3619 Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de)
3620 Copyright (C) 1987 Oliver Laumann
3621 This program is free software; you can redistribute it and/or modify it
3622 under the terms of the GNU General Public License as published by the
3623 Free Software Foundation; either version 3, or (at your option) any
3624 later version.
3625 This program is distributed in the hope that it will be useful, but
3626 WITHOUT ANY WARRANTY; without even the implied warranty of MER‐
3627 CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
3628 Public License for more details.
3629 You should have received a copy of the GNU General Public License along
3630 with this program (see the file COPYING); if not, write to the Free
3631 Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
3632 02111-1307, USA
3633
3635 Ken Beal (kbeal@amber.ssd.csd.harris.com),
3636 Rudolf Koenig (rfkoenig@immd4.informatik.uni-erlangen.de),
3637 Toerless Eckert (eckert@immd4.informatik.uni-erlangen.de),
3638 Wayne Davison (davison@borland.com),
3639 Patrick Wolfe (pat@kai.com, kailand!pat),
3640 Bart Schaefer (schaefer@cse.ogi.edu),
3641 Nathan Glasser (nathan@brokaw.lcs.mit.edu),
3642 Larry W. Virden (lvirden@cas.org),
3643 Howard Chu (hyc@hanauma.jpl.nasa.gov),
3644 Tim MacKenzie (tym@dibbler.cs.monash.edu.au),
3645 Markku Jarvinen (mta@{cc,cs,ee}.tut.fi),
3646 Marc Boucher (marc@CAM.ORG),
3647 Doug Siebert (dsiebert@isca.uiowa.edu),
3648 Ken Stillson (stillson@tsfsrv.mitre.org),
3649 Ian Frechett (frechett@spot.Colorado.EDU),
3650 Brian Koehmstedt (bpk@gnu.ai.mit.edu),
3651 Don Smith (djs6015@ultb.isc.rit.edu),
3652 Frank van der Linden (vdlinden@fwi.uva.nl),
3653 Martin Schweikert (schweik@cpp.ob.open.de),
3654 David Vrona (dave@sashimi.lcu.com),
3655 E. Tye McQueen (tye%spillman.UUCP@uunet.uu.net),
3656 Matthew Green (mrg@eterna.com.au),
3657 Christopher Williams (cgw@pobox.com),
3658 Matt Mosley (mattm@access.digex.net),
3659 Gregory Neil Shapiro (gshapiro@wpi.WPI.EDU),
3660 Johannes Zellner (johannes@zellner.org),
3661 Pablo Averbuj (pablo@averbuj.com).
3662
3663
3665 This is version 4.1.0. Its roots are a merge of a custom version 2.3PR7
3666 by Wayne Davison and several enhancements to Oliver Laumann's version
3667 2.0. Note that all versions numbered 2.x are copyright by Oliver Lau‐
3668 mann.
3669
3671 The latest official release of screen available via anonymous ftp from
3672 gnudist.gnu.org, nic.funet.fi or any other GNU distribution site. The
3673 home site of screen is ftp.uni-erlangen.de, in the directory pub/utili‐
3674 ties/screen. The subdirectory `private' contains the latest beta test‐
3675 ing release. If you want to help, send a note to screen@uni-erlan‐
3676 gen.de.
3677
3679 · `dm' (delete mode) and `xs' are not handled correctly (they are
3680 ignored). `xn' is treated as a magic-margin indicator.
3681
3682 · Screen has no clue about double-high or double-wide characters. But
3683 this is the only area where vttest is allowed to fail.
3684
3685 · It is not possible to change the environment variable $TERMCAP when
3686 reattaching under a different terminal type.
3687
3688 · The support of terminfo based systems is very limited. Adding extra
3689 capabilities to $TERMCAP may not have any effects.
3690
3691 · Screen does not make use of hardware tabs.
3692
3693 · Screen must be installed as set-uid with owner root on most systems
3694 in order to be able to correctly change the owner of the tty device
3695 file for each window. Special permission may also be required to
3696 write the file "/etc/utmp".
3697
3698 · Entries in "/etc/utmp" are not removed when screen is killed with
3699 SIGKILL. This will cause some programs (like "w" or "rwho") to
3700 advertise that a user is logged on who really isn't.
3701
3702 · Screen may give a strange warning when your tty has no utmp entry.
3703
3704 · When the modem line was hung up, screen may not automatically detach
3705 (or quit) unless the device driver is configured to send a HANGUP
3706 signal. To detach a screen session use the -D or -d command line
3707 option.
3708
3709 · If a password is set, the command line options -d and -D still
3710 detach a session without asking.
3711
3712 · Both "breaktype" and "defbreaktype" change the break generating
3713 method used by all terminal devices. The first should change a win‐
3714 dow specific setting, where the latter should change only the
3715 default for new windows.
3716
3717 · When attaching to a multiuser session, the user's .screenrc file is
3718 not sourced. Each user's personal settings have to be included in
3719 the .screenrc file from which the session is booted, or have to be
3720 changed manually.
3721
3722 · A weird imagination is most useful to gain full advantage of all the
3723 features.
3724
3725 · Send bug-reports, fixes, enhancements, t-shirts, money, beer & pizza
3726 to screen@uni-erlangen.de.
3727
3728
3729
3730
37314th Berkeley Distribution Aug 2003 SCREEN(1)