Credit.
[screen-lua.git] / src / ChangeLog
blob1b29f870f991cbff4a2df8ad8bffb1dca5fade07
1 Version 4.1.0 (??/??/20??):
2   New Commands:
3   * 'unbindall' to unbind all commands
4   * 'up', 'down', 'left', 'right' sub-commands for 'focus'
5   * 'rendition' to specify rendition to use in caption/hardstatus for
6     window-names that have bell/monitor/silence/so turned on.
7   * 'layout', with the following sub-commands
8         - 'title'
9         - 'number'
10         - 'autosave' ('autosave on' or 'autosave off')
11         - 'new'
12         - 'save' ('save <name>')
13         - 'select'
14         - 'next'
15         - 'prev'
16         - 'attach'
17         - 'show'
18         - 'remove'
19         - 'dump'
20   * 'group' for moving window(s) into a group.
21   * 'defmousetrack' and 'mousetrack', to turn on/off mouse-tracking for
22     displays. It's turned off by default. With mouse-tracking turned on, it's
23     possible to switch to a region ('focus') using mouse clicks. It's also
24     possible to select a text region in copy-mode using a mouse click to place
25     a mark and the scroll wheel to scroll through the buffer. Additional
26     features might be to allow clicking on window-titles in the caption to
27     switch to that window.
28   * All commands prefixed '@' are treated as 'quiet', i.e. '@'-prefixed commands
29     do not trigger any display messages.
31   Changed Commands:
32   * '-v' parameter to 'split' command for vertical splits.
33   * 'sorendition' deprecated in favour of 'rendition so'.
34   * 'digraph' can take a second parameter to specify custom digraphs. For
35     example,
36         'digraph >= ≥' or 'digraph >= U+2265'
37     Using '0' as the second parameter will remove the digraph.
38   * 'stuff' will prompt for input if there's nothing to stuff.
39   * The argument to ":number" can be prefixed with '+' or '-' to use it as a
40     relative argument.
41   * '-g' parameter to 'windowlist' to show nested list of windows.
42   * '//group' parameter to 'screen' to create a grouped window.
43   * 'blankerprg' shows the currently set command on no argument.
44   * 'maxwin' can now be used to increase the number of maximum windows.
46   .screenrc:
47   * $PID expands to the PID of the screen session.
48   * $PWD expands to the current working directory of the session.
49   * $STY expands to the session name.
50   * Tilde-expansion in pathnames (e.g. for the 'source' command)
51   * C-style escapes can be used (e.g. "\n" to get a newline with 'stuff')
52   * '%p' in caption/hardstatus string expands to the PID of the backend, and
53     '%+p' expands to the PID of the frontend (display).
54   * '%S' in caption/hardstatus string expands to the session name.
55   * '%P' in the caption string evaluates to true if the region is in copy mode.
57   Window List:
58   * Nested views when there are window groups (with 'windowlist -g').
59   * Press 'm' to toggle the most-recent view.
60   * Press 'g' to toggle nestedness.
61   * Press 'a' to view all windows in the list.
62   * Press '/' to search in the list.
63   * Press ',' and '.' to re-order windows in the list.
64   * Press 'K' to kill a window (requires confirmation).
66   Display List:
67   * Press 'd' to detach a display, 'D' to power-detach.
69   Others:
70   * Start using 'ChangeLog' for logging changes again.
71   * Terminfo update for 256-color support.
72   * Multiple input history (partially from Romain Francoise).
73   * vi-like fFtT;, searching in copy mode.
74   * In copy mode, search in reverse direction when 'N' is pressed.
75   * Tab-completion for command input.
76   * Some more readline-like bindings in input mode (e.g. ^W, ^D, ^P, ^N etc.)
77   * Fix displaying unicode characters in the caption/hardstatus on UTF8 locale.
78   * A revamped displays list (for 'displays' command)
79   * Increased default maximum number of windows from 40 to 100.
80   * Increased number color/attribute changes in caption/hardstatus string from 16 to 256.
81   * Some commands can be remotely queried using the -Q command-line flag.
83   In-Progress:
84   * Scripting support (thanks to Google Summer of Code 2009 project by Rui Guo)
86   Developers:
87   * Juergen Weigert <jw@suse.de>
88   * Michael Schroeder <mls@suse.de>
89   * Micah Cowan <micah@cowan.name>
90   * Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
92   Contributors:
93   * Clavelito <maromomo@hotmail.com>
94   * Dick <dick@mrns.nl>
95   * Gabriel <g2p.code@gmail.com>
96   * Benjamin Andresen <bandresen@gmail.com>
97   * Takeshi Banse <takebi@laafc.net>
98   * Maarten Billemont <lhunath@gmail.com>
99   * Curtis Brown <mrbrown8@juno.com>
100   * Cyril Brulebois <kibi@debian.org>
101   * Trent W Buck <trentbuck@gmail.com>
102   * Stephane Chazelas <stephane_chazelas@yahoo.fr>
103   * Kees Cook <kees@ubuntu.com>
104   * Thomas Dickey <tom@invisible-island.net>
105   * Christian Ebert <blacktrash@gmx.net>
106   * Geraint Edwards <gedge-lists-screen@yadn.org>
107   * Romain Francoise <romain@orebokech.com>
108   * Alexander Gattin <xrgtn@yandex.ru>
109   * Emanuele Giaquinta <e.giaquinta@glauco.it>
110   * Yi-Hsuan Hsin <mhsin@mhsin.org>
111   * Kipling Inscore <kinscore@synaptics.com>
112   * Chris Jones <cjns1989@gmail.com>
113   * Max Kalashnikov <mmt@maxkalashnikov.com>
114   * Steve Kemp <steve@steve.org.uk>
115   * Ryan Niebur <ryan@debian.org>
116   * Jan Christoph Nordholz <hesso@pool.math.tu-berlin.de>
117   * William Pursell <bill.pursell@gmail.com>
118   * Michael Scherer <misc@mandriva.org>
119   * Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
120   * Peter Teichman <peter@teichman.org>
122 30.10.94
124 This is a quick overview of screen's life story. But it is not up
125 to date.  You'll find more details about the revision history in
126 patchlevel.h and newer changes are only documented there. 
128 31.7.93 -- 3.5.1
129 ================
131 * writelock, number, paste with arg, at, zombie and wall commands added.
133 * Access Control Lists and more multi-user support added.
135 * select and setenv commands enhanced.
137 * socket.c: motorola bugfix.
139 * configure.in: --srcdir support.
141 * configure.in: recognize alpha and SUNOS3 correctly.
143 * doc/screen.texinfo: Documentation by Jason Merrill.
145 13.05.93 -- 3.3.3
146 =================
148 * defautonuke, silence commands added.
150 * exec command added.
152 * hardcopydir, logdir commands added.
154 * Made a superb configure script.
156 * BROKEN_PIPE, SOCK_NOT_IN_FS added for braindamaged systems.
158 * multi display, multi user support.
160 * process command. CS, CE switch cursorkeycap in application mode.
162 * lockprg pow_detaches on SIGHUP
164 * ins_reg copy_reg commands.
166 * new screenrc syntax.
168 * split up screen.c and ansi.c
170 21.10.92 -- 3.2.9
171 ================
173 * ChangeLog: replaces CHANGES and is in GNUish format.
175 * Makefile (CFLAGS, M_CFLAGS, LIBS, OPTIONS): moved user config here, 
176         merged all Makefiles, GNUified
178 * socket.c (FindSocket): ignoring bad files in $SCREENDIR
180 * config/config.linux: ported.
182 * utmp.c, exec.c, loadav.c: split apart from screen.c/fileio.c
184 15.07.92 -- 3.2.8
185 =================
187 * ansi.c (WriteString): automatic character set switching for 8bit support
189 3.2.3-3.2.7
190 ===========
192 * concept changes: Display structure, Multi attacher 
196 3.2.2
197 =====
199 * screen.c (main): -m option, "_M_ake always new session", ignore $STY
201 * screen.c (main):  -Ssessionname 
202 * fileio.c (RcLine): ^A:sessionname give your session a nicer name.
204 * screen.c (main): supporting detached startup via screen -d -m -Ssockname
206 * fileio.c (stripdev): moved, could not compile
208 * overlay.h: "stackable overlay concept"
210 * search.c: vi-like / and ? search AND emacs-like ^S and ^R incremental search
211         in scrollback
213 * mark.c: I meant BSDI not BSD
215 * concept change: struct display and struct newwin introduced.
217 * screen.c (main): -v option prints version.
219 * screen.c (MakeWindow): ^A:screen /dev/ttya opens a character device 
220         instead of forking ShellProg with a pty pair.
222 3.2.0
223 =====
225 Ultrix port
227 Irix 3.3 SGI port
229 shadow password suite supported
231 data loss on stdin overflow fixed
233 "refresh off" keyword added.
235 3.1.1
236 ------
238 Screen is now under the GNU copyleft license. See file COPYING.
240 command line option -A. $LINES, $COLUMNS improved.
242 C-A : vbellwait <sec>
244 XENIX support (Ronald Khoo)
246 SYSV has uname() instead of gethostname().
248 hpux has setresuid.
250 ClearScreen now saves image to scrollback buffer.
252 mips has setenv.
254 numerous bugfixes.
256 3.1 finally released version.
257 =============================
259 3.0.99: last minute changes:
260 ----------------------------
262 MIPS support (J{rvinen Markku)
264 SVR4 support (Marc Boucher)
266 secopen() secfopen() calls replace stat/access/open.
267 C-a : echo improved.
268 'register int'
270 Changes up to Screen 3.0 Patchlevel 7
271 =====================================
273 Better terminfo support: Screen now checks if a termcap/info
274 entry which the name "screen.$TERM" does exist. Look in the
275 "VIRTUAL TERMINAL" section of the manual for more details.
277 Many security improvements.
279 ScrollRegion() bug fixed which caused slow scrolling if AL
280 or DL was used.
282 Pyramid and Ultrix support added. (Tim and Larry)
283   
284 ENVIRONMENT support.
285   /local/etc/screenrc checks for $SYSSCREENRC
286   $HOME/.screenrc checks for $ISCREENRC and $SCREENRC
287   /local/screens checks for $ISCREENDIR and $SCREENDIR
288   .screenrc understands ${VAR} and $VAR .
290 screen 3.0 Patchlevel 6
291 =======================
293 .screenrc:
294   screen now only opens the windows you explicitly ask for. if you 
295   specify none, you still get one window, of course.
297 screen 3.0. Patchlevel 5
298 ========================
300 Ansi prototyping by Christos.
302 copy mode: CTRL-U / CTRL-D exchanged. code cleanup.
304 changes to screen 3.0 patchlevel 4
305 ==================================
307 markkeys "string"
308   allows to rebind the keys used in copy/history mode.
309   string is made up of pairs "<oldchar>=<newchar>" which are separated
310   by a colon. Oldchar and newchar are either single ascii characters, 
311   or the two character sequence ^x, where x is an ascii character, or
312   a 3 digit octal value prepended with '\'. the string "\040=.:^M=q"
313   rebinds '.' to set marks, and the return rey will abort copy mode.
315 set scrollback 100
316   resizes the scrollback history buffer to 100 lines. a default of 50
317   is installed. 
319 A Howard Chu like scrollback history is installed. Many vi-like keys
320   are added to the copy mode. The '?' key reports on cursor position.
322 screen 3.0 Patchlevel 3
323 =======================
325 WriteString fixed, it did kill the display variable.
327 Yet another LP bugfix.
329 non vt100 semi-graphics character support.
331 waynes patch fixed
333 screen 3.0 Patchlevel 2
334 =======================
336 wayne patches cursor motion outside scrollregions.
338 .screenrc 
339   monitor on|off
341 changes in Screen 3.0 Patchlevel 1
342 ==================================
344 screen -wipe
346 ^A : set vbell_msg "Wuff Wuff"
348 Thousand enhancements: help resizible, copy'n'paste in main
349   socket loop, and no more '\0' hackin'. :WS=\E8;%d;%dt:
351 screen can now resize windows under sunview.
353 ^A : set crlf on|off
354   effects markroutine join.
356 screen learned about sized windows under X
358 screen -ls (-d) -q
359   quiet option. We count the number of detached (attached) sessions and set
360   a return value of 10+n. The -q option inhibits all startup
361   warnings/messages. i.e. screen -R -q may return with code 12 or higher
362   or start a new/old session.
364 pow_detach_msg "text string"
365   new command, allows messages, terminal reset, etc. on logout caused
366   by pow_detach.
368 ^A : learned a new keyword "set":
369   commands like "login on" , "vbell off", ... affect the default for
370   windows to be created. But commands like "set login off" affect
371   the actual setting of this window. and not the default.
372   such commands may be bound to keys. example: 
373   bind 'O' set login off
374   is valid in your .screenrc as well as typed at the ':' prompt.
375   a bonus is ":set all" which is synonym to ":help".
376   At the Colon prompt also KeyNames can be entered, alothough that makes
377   not always sense.
379 ^A x uses a builtin lockprg, if 
380   a) we don't find our lockprg, or
381   b) user supplies us with the environmet variable LOCKPRG set to "builtin"
382   the builtin locks until your login password is typed. on systems using
383   "shadow password files" you are prompted for a password.
385 markroutine can append joined.
387 screen removes the "controlling tty" from utmp while ptys are attached.
389 markroutine performs CR+NL when '\n' is pressed
391 screen may die quietly, when no TERMCAP entry for "screen" is
392 found, and screen is run under X-windows
394 _SEQUENT_ marks sequent386_ptx
396 screen runs now under SunOS4.1.1 (we need setsid()!).
398 bug in SetForeWindow fixed.
400 rare markroutine bug fixed.
402 we dont open every file the attacher tells us.
404 we have now our wonderful "Wuff, Wuff" visual_bell
406 we have now the interprocess-communication-buffer. secure version.
408 '^A =' removes the interprocess-communication-buffer.
410 markroutine as in 2.1
412 markroutine: 'a' toggles append mode,
413              '>' like ' ', but immediately WriteFile(DUMP_EXCHANGE) then.
414              'A' like ' ', but first switch to append mode.
416 .screenrc understands "screen 2:faui09 rlogin faui09 -l jnweiger"
417                   and "password none"
418                   and "vbell [on|off]"
420 '^A :' allows .screenrc commands "online".
422 screen now receives new $TERM from attacher, when it is reattached 
424 MakeClientSocket() fifo version does now test for access.
426 .screenrc learns "hardstatus {on|off}"
428 termcap's VB is used for vbell if available.
430 Attach() code rewritten:
431         screen now lists socket directory, if it does not find a suitable socket
432         screen -d [host.tty] detaches a running screen. 
434 screen -[ls|list]
435         list all sockets that we find in our sockdir
437 when the socket has been removed, send a SIGCHLD to the poor SCREEN 
438 process and it will try to recover. then try a 'screen -r' again.
439 all the socket stuff lives now in an extra file.
441 Major changes in version 2.4:
442 =============================
444 *  Test version that presents the erlangen extensions from 2.0 in a 2.3
445    screen.
447 *  window resize support
449 *  screen locking C-a x
451 *  support for SYSV
453 *  password protection
455 *  copy & paste across screens
457 *  remote detach and power detach
459 Major changes in version 2.3:
461 *  Terminal emulation has been significantly enhanced and bugfixed.
463 *  We now fully update the last character on the screen for true auto-
464    margin terminals, though there may be some delay before the character
465    can be safely added to the screen.  If your terminal has character
466    insert it will be used to shorten the delay.
468 *  Added the "termcap" .screenrc command to tweak your terminal's termcap
469    entry AND to customize the termcap generated for the virtual terminals.
470    See also the -L and -O command-line options, and the SCREENCAP environ-
471    ment variable.
473 *  Fixed screen's character handling when detached or suspended to NOT block
474    the child processes in their windows -- output continues to be processed
475    in the background.
477 *  Added a.k.a.s (window-name aliases) that allow you to customize the
478    window-information line, including being able to change the name on-
479    the-fly to reflect what's currently running in the window (see the
480    -k option, shellaka command, and ALSO KNOWN AS discussion in the doc).
482 *  Added the ability to log the output of a window to a file (see the
483    "C-a H" (log) command).
485 *  Flow-control can now be set for each window and switched interactively
486    (see the "flow" command, -f option, and FLOW CONTROL discussion).
488 *  Individual windows can be included or excluded from mention in the
489    /etc/utmp file (see the "login" command and -l option).
491 *  Added an activity monitor, which allows you to have a window watched for
492    the start of any output and alert you when it occurs (see the "C-a M"
493    (monitor) command).
495 *  Enhanced the information in the window-information line to keep track of
496    windows that have: logging turned on '(L)'; beeped in the background '!';
497    became active while being monitored '@' (see the "C-a w" (windows) command).
499 *  Added an on-line help display that lists all the commands and their
500    key bindings (see the "C-a ?" (help) command).
502 *  Extended handling of the beep message (and also the new activity message)
503    to allow '~' to specify a literal beep (see the "beep" and "activity"
504    .screenrc commands).
506 *  You can now set the default action on receipt of a hangup signal:  detach
507    or terminate (see the "autodetach" .screenrc command).
509 *  Routing of characters to their virtual terminals has been enhanced to
510    not drop characters nor (in rare circumstances) hang up screen.
512 *  The NFS compatibility has been enhanced.
514 Major changes in version 2.0a:
516 *  Screen allows you to `detach' the "screen" session from the physical
517    terminal and resume it at a later point in time (possibly on a
518    different terminal or in a different login session).
520   To get an impression of this functionality do the following:
522      - call "screen" and create a couple of windows
523      - type Control-A Control-D (screen terminates; you are back
524        in the shell)
525      - call "screen -r" to resume the detached screen
527 *  Screen supports multiple character sets and the ISO 2022 control
528    functions to designate and switch between character sets.
529    This allows you, for instance, to make use of the VT100 graphics
530    character set or national character sets.