Add support for mouse tracking.
[screen-lua.git] / src / ChangeLog
blob713a038129f84a68791ebdb52b225142fbc175c2
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/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   * 'group' for moving window(s) into a group.
20   * 'defmousetrack' and 'mousetrack', to turn on/off mouse-tracking for
21     displays. It's turned off by default. With mouse-tracking turned on, it's
22     possible to switch to a region ('focus') using mouse clicks. Additional
23     features might be to allow clicking on window-titles in the caption to
24     switch to that window.
26   Changed Commands:
27   * '-v' parameter to 'split' command for vertical splits.
28   * 'sorendition' deprecated in favour of 'rendition so'.
29   * 'digraph' can take a second parameter to specify custom digraphs. For
30     example,
31         'digraph >= ≥' or 'digraph >= U+2265'
32     Using '0' as the second parameter will remove the digraph.
33   * 'stuff' will prompt for input if there's nothing to stuff.
34   * The argument to ":number" can be prefixed with '+' or '-' to use it as a
35     relative argument.
36   * '-g' parameter to 'windowlist' to show nested list of windows.
37   * '//group' parameter to 'screen' to create a grouped window.
39   .screenrc:
40   * $PID expands to the PID of the screen session.
41   * $STY expands to the session name.
42   * Tilde-expansion in pathnames (e.g. for the 'source' command)
43   * C-style escapes can be used (e.g. "\n" to get a newline with 'stuff')
44   * '%p' in caption/hardstatus string expands to the PID of the backend, and
45     '%+p' expands to the PID of the frontend (display).
46   * '%S' in caption/hardstatus string expands to the session name.
48   Window List:
49   * Nested views when there are window groups (with 'windowlist -g').
50   * Press 'm' to toggle the most-recent view.
51   * Press 'g' to toggle nestedness.
52   * Press 'a' to view all windows in the list.
54   Others:
55   * Start using 'ChangeLog' for logging changes again.
56   * Terminfo update for 256-color support.
57   * Multiple input history (partially from Romain Francoise).
58   * vi-like fFtT;, searching in copy mode.
59   * In copy mode, search in reverse direction when 'N' is pressed.
60   * Tab-completion for command input.
61   * Some more readline-like bindings in input mode (e.g. ^W, ^D, ^P, ^N etc.)
63   In-Progress:
64   * Scripting support (thanks to Google Summer of Code 2009 project by Rui Guo)
66   Developers:
67   * Juergen Weigert <jw@suse.de>
68   * Michael Schroeder <mls@suse.de>
69   * Micah Cowan <micah@cowan.name>
70   * Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
72   Contributors:
73   * Dick <dick@mrns.nl>
74   * Gabriel <g2p.code@gmail.com>
75   * Benjamin Andresen <bandresen@gmail.com>
76   * Maarten Billemont <lhunath@gmail.com>
77   * Curtis Brown <mrbrown8@juno.com>
78   * Cyril Brulebois <kibi@debian.org>
79   * Trent W Buck <trentbuck@gmail.com>
80   * Stephane Chazelas <stephane_chazelas@yahoo.fr>
81   * Thomas Dickey <tom@invisible-island.net>
82   * Christian Ebert <blacktrash@gmx.net>
83   * Geraint Edwards <gedge-lists-screen@yadn.org>
84   * Romain Francoise <romain@orebokech.com>
85   * Emanuele Giaquinta <e.giaquinta@glauco.it>
86   * Steve Kemp <steve@steve.org.uk>
87   * William Pursell <bill.pursell@gmail.com>
88   * Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
89   * Peter Teichman <peter@teichman.org>
91 30.10.94
93 This is a quick overview of screen's life story. But it is not up
94 to date.  You'll find more details about the revision history in
95 patchlevel.h and newer changes are only documented there. 
97 31.7.93 -- 3.5.1
98 ================
100 * writelock, number, paste with arg, at, zombie and wall commands added.
102 * Access Control Lists and more multi-user support added.
104 * select and setenv commands enhanced.
106 * socket.c: motorola bugfix.
108 * configure.in: --srcdir support.
110 * configure.in: recognize alpha and SUNOS3 correctly.
112 * doc/screen.texinfo: Documentation by Jason Merrill.
114 13.05.93 -- 3.3.3
115 =================
117 * defautonuke, silence commands added.
119 * exec command added.
121 * hardcopydir, logdir commands added.
123 * Made a superb configure script.
125 * BROKEN_PIPE, SOCK_NOT_IN_FS added for braindamaged systems.
127 * multi display, multi user support.
129 * process command. CS, CE switch cursorkeycap in application mode.
131 * lockprg pow_detaches on SIGHUP
133 * ins_reg copy_reg commands.
135 * new screenrc syntax.
137 * split up screen.c and ansi.c
139 21.10.92 -- 3.2.9
140 ================
142 * ChangeLog: replaces CHANGES and is in GNUish format.
144 * Makefile (CFLAGS, M_CFLAGS, LIBS, OPTIONS): moved user config here, 
145         merged all Makefiles, GNUified
147 * socket.c (FindSocket): ignoring bad files in $SCREENDIR
149 * config/config.linux: ported.
151 * utmp.c, exec.c, loadav.c: split apart from screen.c/fileio.c
153 15.07.92 -- 3.2.8
154 =================
156 * ansi.c (WriteString): automatic character set switching for 8bit support
158 3.2.3-3.2.7
159 ===========
161 * concept changes: Display structure, Multi attacher 
165 3.2.2
166 =====
168 * screen.c (main): -m option, "_M_ake always new session", ignore $STY
170 * screen.c (main):  -Ssessionname 
171 * fileio.c (RcLine): ^A:sessionname give your session a nicer name.
173 * screen.c (main): supporting detached startup via screen -d -m -Ssockname
175 * fileio.c (stripdev): moved, could not compile
177 * overlay.h: "stackable overlay concept"
179 * search.c: vi-like / and ? search AND emacs-like ^S and ^R incremental search
180         in scrollback
182 * mark.c: I meant BSDI not BSD
184 * concept change: struct display and struct newwin introduced.
186 * screen.c (main): -v option prints version.
188 * screen.c (MakeWindow): ^A:screen /dev/ttya opens a character device 
189         instead of forking ShellProg with a pty pair.
191 3.2.0
192 =====
194 Ultrix port
196 Irix 3.3 SGI port
198 shadow password suite supported
200 data loss on stdin overflow fixed
202 "refresh off" keyword added.
204 3.1.1
205 ------
207 Screen is now under the GNU copyleft license. See file COPYING.
209 command line option -A. $LINES, $COLUMNS improved.
211 C-A : vbellwait <sec>
213 XENIX support (Ronald Khoo)
215 SYSV has uname() instead of gethostname().
217 hpux has setresuid.
219 ClearScreen now saves image to scrollback buffer.
221 mips has setenv.
223 numerous bugfixes.
225 3.1 finally released version.
226 =============================
228 3.0.99: last minute changes:
229 ----------------------------
231 MIPS support (J{rvinen Markku)
233 SVR4 support (Marc Boucher)
235 secopen() secfopen() calls replace stat/access/open.
236 C-a : echo improved.
237 'register int'
239 Changes up to Screen 3.0 Patchlevel 7
240 =====================================
242 Better terminfo support: Screen now checks if a termcap/info
243 entry which the name "screen.$TERM" does exist. Look in the
244 "VIRTUAL TERMINAL" section of the manual for more details.
246 Many security improvements.
248 ScrollRegion() bug fixed which caused slow scrolling if AL
249 or DL was used.
251 Pyramid and Ultrix support added. (Tim and Larry)
252   
253 ENVIRONMENT support.
254   /local/etc/screenrc checks for $SYSSCREENRC
255   $HOME/.screenrc checks for $ISCREENRC and $SCREENRC
256   /local/screens checks for $ISCREENDIR and $SCREENDIR
257   .screenrc understands ${VAR} and $VAR .
259 screen 3.0 Patchlevel 6
260 =======================
262 .screenrc:
263   screen now only opens the windows you explicitly ask for. if you 
264   specify none, you still get one window, of course.
266 screen 3.0. Patchlevel 5
267 ========================
269 Ansi prototyping by Christos.
271 copy mode: CTRL-U / CTRL-D exchanged. code cleanup.
273 changes to screen 3.0 patchlevel 4
274 ==================================
276 markkeys "string"
277   allows to rebind the keys used in copy/history mode.
278   string is made up of pairs "<oldchar>=<newchar>" which are separated
279   by a colon. Oldchar and newchar are either single ascii characters, 
280   or the two character sequence ^x, where x is an ascii character, or
281   a 3 digit octal value prepended with '\'. the string "\040=.:^M=q"
282   rebinds '.' to set marks, and the return rey will abort copy mode.
284 set scrollback 100
285   resizes the scrollback history buffer to 100 lines. a default of 50
286   is installed. 
288 A Howard Chu like scrollback history is installed. Many vi-like keys
289   are added to the copy mode. The '?' key reports on cursor position.
291 screen 3.0 Patchlevel 3
292 =======================
294 WriteString fixed, it did kill the display variable.
296 Yet another LP bugfix.
298 non vt100 semi-graphics character support.
300 waynes patch fixed
302 screen 3.0 Patchlevel 2
303 =======================
305 wayne patches cursor motion outside scrollregions.
307 .screenrc 
308   monitor on|off
310 changes in Screen 3.0 Patchlevel 1
311 ==================================
313 screen -wipe
315 ^A : set vbell_msg "Wuff Wuff"
317 Thousand enhancements: help resizible, copy'n'paste in main
318   socket loop, and no more '\0' hackin'. :WS=\E8;%d;%dt:
320 screen can now resize windows under sunview.
322 ^A : set crlf on|off
323   effects markroutine join.
325 screen learned about sized windows under X
327 screen -ls (-d) -q
328   quiet option. We count the number of detached (attached) sessions and set
329   a return value of 10+n. The -q option inhibits all startup
330   warnings/messages. i.e. screen -R -q may return with code 12 or higher
331   or start a new/old session.
333 pow_detach_msg "text string"
334   new command, allows messages, terminal reset, etc. on logout caused
335   by pow_detach.
337 ^A : learned a new keyword "set":
338   commands like "login on" , "vbell off", ... affect the default for
339   windows to be created. But commands like "set login off" affect
340   the actual setting of this window. and not the default.
341   such commands may be bound to keys. example: 
342   bind 'O' set login off
343   is valid in your .screenrc as well as typed at the ':' prompt.
344   a bonus is ":set all" which is synonym to ":help".
345   At the Colon prompt also KeyNames can be entered, alothough that makes
346   not always sense.
348 ^A x uses a builtin lockprg, if 
349   a) we don't find our lockprg, or
350   b) user supplies us with the environmet variable LOCKPRG set to "builtin"
351   the builtin locks until your login password is typed. on systems using
352   "shadow password files" you are prompted for a password.
354 markroutine can append joined.
356 screen removes the "controlling tty" from utmp while ptys are attached.
358 markroutine performs CR+NL when '\n' is pressed
360 screen may die quietly, when no TERMCAP entry for "screen" is
361 found, and screen is run under X-windows
363 _SEQUENT_ marks sequent386_ptx
365 screen runs now under SunOS4.1.1 (we need setsid()!).
367 bug in SetForeWindow fixed.
369 rare markroutine bug fixed.
371 we dont open every file the attacher tells us.
373 we have now our wonderful "Wuff, Wuff" visual_bell
375 we have now the interprocess-communication-buffer. secure version.
377 '^A =' removes the interprocess-communication-buffer.
379 markroutine as in 2.1
381 markroutine: 'a' toggles append mode,
382              '>' like ' ', but immediately WriteFile(DUMP_EXCHANGE) then.
383              'A' like ' ', but first switch to append mode.
385 .screenrc understands "screen 2:faui09 rlogin faui09 -l jnweiger"
386                   and "password none"
387                   and "vbell [on|off]"
389 '^A :' allows .screenrc commands "online".
391 screen now receives new $TERM from attacher, when it is reattached 
393 MakeClientSocket() fifo version does now test for access.
395 .screenrc learns "hardstatus {on|off}"
397 termcap's VB is used for vbell if available.
399 Attach() code rewritten:
400         screen now lists socket directory, if it does not find a suitable socket
401         screen -d [host.tty] detaches a running screen. 
403 screen -[ls|list]
404         list all sockets that we find in our sockdir
406 when the socket has been removed, send a SIGCHLD to the poor SCREEN 
407 process and it will try to recover. then try a 'screen -r' again.
408 all the socket stuff lives now in an extra file.
410 Major changes in version 2.4:
411 =============================
413 *  Test version that presents the erlangen extensions from 2.0 in a 2.3
414    screen.
416 *  window resize support
418 *  screen locking C-a x
420 *  support for SYSV
422 *  password protection
424 *  copy & paste across screens
426 *  remote detach and power detach
428 Major changes in version 2.3:
430 *  Terminal emulation has been significantly enhanced and bugfixed.
432 *  We now fully update the last character on the screen for true auto-
433    margin terminals, though there may be some delay before the character
434    can be safely added to the screen.  If your terminal has character
435    insert it will be used to shorten the delay.
437 *  Added the "termcap" .screenrc command to tweak your terminal's termcap
438    entry AND to customize the termcap generated for the virtual terminals.
439    See also the -L and -O command-line options, and the SCREENCAP environ-
440    ment variable.
442 *  Fixed screen's character handling when detached or suspended to NOT block
443    the child processes in their windows -- output continues to be processed
444    in the background.
446 *  Added a.k.a.s (window-name aliases) that allow you to customize the
447    window-information line, including being able to change the name on-
448    the-fly to reflect what's currently running in the window (see the
449    -k option, shellaka command, and ALSO KNOWN AS discussion in the doc).
451 *  Added the ability to log the output of a window to a file (see the
452    "C-a H" (log) command).
454 *  Flow-control can now be set for each window and switched interactively
455    (see the "flow" command, -f option, and FLOW CONTROL discussion).
457 *  Individual windows can be included or excluded from mention in the
458    /etc/utmp file (see the "login" command and -l option).
460 *  Added an activity monitor, which allows you to have a window watched for
461    the start of any output and alert you when it occurs (see the "C-a M"
462    (monitor) command).
464 *  Enhanced the information in the window-information line to keep track of
465    windows that have: logging turned on '(L)'; beeped in the background '!';
466    became active while being monitored '@' (see the "C-a w" (windows) command).
468 *  Added an on-line help display that lists all the commands and their
469    key bindings (see the "C-a ?" (help) command).
471 *  Extended handling of the beep message (and also the new activity message)
472    to allow '~' to specify a literal beep (see the "beep" and "activity"
473    .screenrc commands).
475 *  You can now set the default action on receipt of a hangup signal:  detach
476    or terminate (see the "autodetach" .screenrc command).
478 *  Routing of characters to their virtual terminals has been enhanced to
479    not drop characters nor (in rare circumstances) hang up screen.
481 *  The NFS compatibility has been enhanced.
483 Major changes in version 2.0a:
485 *  Screen allows you to `detach' the "screen" session from the physical
486    terminal and resume it at a later point in time (possibly on a
487    different terminal or in a different login session).
489   To get an impression of this functionality do the following:
491      - call "screen" and create a couple of windows
492      - type Control-A Control-D (screen terminates; you are back
493        in the shell)
494      - call "screen -r" to resume the detached screen
496 *  Screen supports multiple character sets and the ISO 2022 control
497    functions to designate and switch between character sets.
498    This allows you, for instance, to make use of the VT100 graphics
499    character set or national character sets.