Annotation of embedaddon/tmux/CHANGES, revision 1.1
1.1 ! misho 1: CHANGES FROM 2.3 to 2.4 20 April 2017
! 2:
! 3: Incompatible Changes
! 4: ====================
! 5:
! 6: * Key tables have undergone major changes. Mode key tables are no longer
! 7: separate from the main key tables. All mode key tables have been removed,
! 8: together with the -t flag to bind-key and unbind-key.
! 9:
! 10: The emacs-edit, vi-edit, emacs-choose and vi-choose tables have been replaced
! 11: by fixed key bindings in the command prompt and choose modes. The mode-keys
! 12: and status-keys options remain.
! 13:
! 14: The emacs-copy and vi-copy tables have been replaced by the copy-mode and
! 15: copy-mode-vi tables. Commands are sent using the -X and -N flags to
! 16: send-keys. So the following:
! 17:
! 18: bind -temacs-copy C-Up scroll-up
! 19: bind -temacs-copy -R5 WheelUpPane scroll-up
! 20:
! 21: Becomes:
! 22:
! 23: bind -Tcopy-mode C-Up send -X scroll-up
! 24: bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up
! 25:
! 26: This changes allows the full command parser (including command sequences) and
! 27: command set to be used - for example, the normal command prompt with editing
! 28: and history is now used for searching, jumping, and so on instead of a custom
! 29: one. The default C-r binding is now:
! 30:
! 31: bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'"
! 32:
! 33: There are also some new commmands available with send -X, such as
! 34: copy-pipe-and-cancel.
! 35: * set-remain-on-exit has gone -- can be achieved with hooks instead.
! 36: * Hooks: before hooks have been removed and only a selection of commands now
! 37: have after hooks (they are no longer automatic). Additional hooks have been
! 38: added.
! 39: * The xterm-keys option now defaults to on.
! 40:
! 41: Normal Changes
! 42: ==============
! 43:
! 44: * Support for mouse double and triple clicks.
! 45: * BCE (Background Colour Erase) is now supported.
! 46: * All occurrences of a search string in copy mode are now highlighted;
! 47: additionally, the number of search results is displayed. The highlighting
! 48: updates interactively with the default emacs key bindings (incremental
! 49: search).
! 50: * source-file now understands glob patterns.
! 51: * Formats now have simple comparisons:
! 52:
! 53: #{==:a,b}
! 54: #{!=:a,b}
! 55:
! 56: * There are the following new formats:
! 57:
! 58: - #{version} -- the tmux server version;
! 59: - #{client_termtype} -- the terminal type of the client;
! 60: - #{client_name} -- the name of a client;
! 61: - #{client_written} -- the number of bytes written to the client.
! 62:
! 63: * The configuration file now accepts %if/%endif conditional blocks which are
! 64: processed when it is parsed; the argument is a format string (useful with the
! 65: new format comparison options).
! 66: * detach-client now has -E to execute a command replacing the client instead of
! 67: exiting.
! 68: * Add support for custom command aliases, this is an array option which
! 69: contains items of the form "alias=command". This is consulted when an
! 70: unknown command is parsed.
! 71: * break-pane now has -n to specify the new window name.
! 72: * OSC 52 support has been added for programs inside tmux to set a tmux buffer.
! 73: * The mouse "all event" mode (1003) is now supported.
! 74: * Palette setting is now possible (OSC 4 and 104).
! 75: * Strikethrough support (a recent terminfo is required).
! 76: * Grouped sessions can now be named (new -t).
! 77: * terminal-overrides and update-environment are now array options (the previous
! 78: set -ag syntax should work without change).
! 79: * There have been substantial performance improvements.
! 80:
! 81: CHANGES FROM 2.2 to 2.3 29 September 2016
! 82:
! 83: Incompatible Changes
! 84: ====================
! 85:
! 86: None.
! 87:
! 88: Normal Changes
! 89: ==============
! 90:
! 91: * New option 'pane-border-status' to add text in the pane borders.
! 92: * Support for hooks on commands: 'after' and 'before' hooks.
! 93: * 'source-file' understands '-q' to suppress errors for nonexistent files.
! 94: * Lots of UTF8 improvements, especially on MacOS.
! 95: * 'window-status-separator' understands #[] expansions.
! 96: * 'split-window' understands '-f' for performing a full-width split.
! 97: * Allow report count to be specified when using 'bind-key -R'.
! 98: * 'set -a' for appending to user options (@foo) is now supported.
! 99: * 'display-panes' can now accept a command to run, rather than always
! 100: selecting the pane.
! 101:
! 102: CHANGES FROM 2.1 to 2.2 10 April 2016
! 103:
! 104: Incompatible Changes
! 105: ====================
! 106:
! 107: * The format strings which referenced time have been removed. Instead:
! 108:
! 109: #{t:window_activity}
! 110:
! 111: can be used.
! 112:
! 113: * Support for TMPDIR has been removed. Use TMUX_TMPDIR instead.
! 114: * UTF8 detection now happens automatically if the client supports it, hence
! 115: the:
! 116:
! 117: mouse-utf8
! 118: utf8
! 119:
! 120: options has been removed.
! 121: * The:
! 122:
! 123: mouse_utf8_flag
! 124:
! 125: format string has been removed.
! 126: * The -I option to show-messages has been removed. See:
! 127:
! 128: #{t:start_time}
! 129:
! 130: format option instead.
! 131:
! 132: Normal Changes
! 133: ==============
! 134:
! 135: * Panes are unzoomed with selectp -LRUD
! 136: * New formats added:
! 137:
! 138: #{scroll_position}
! 139: #{socket_path}
! 140: #{=10:...} -- limit to N characters (from the start)
! 141: #{=-10:...} -- limit to N characters (from the end)
! 142: #{t:...} -- used to format time-based formats
! 143: #{b:...} -- used to ascertain basename from string
! 144: #{d:...} -- used to ascertain dirname from string
! 145: #{s:...} -- used to perform substitutions on a string
! 146:
! 147: * Job output is run via the format system, so formats work again
! 148: * If display-time is set to 0, then the indicators wait for a key to be
! 149: pressed.
! 150: * list-keys and list-commands can be run without starting the tmux server.
! 151: * kill-session learns -C to clear all alerts in all windows of the session.
! 152: * Support for hooks (internal for now), but hooks for the following have been
! 153: implemented:
! 154:
! 155: alert-bell
! 156: alert-silence
! 157: alert-activity
! 158: client-attached
! 159: client-detached
! 160: client-resized
! 161: pane-died
! 162: pane-exited
! 163:
! 164: * RGB (24bit) colour support. The 'Tc' flag must be set in the external TERM
! 165: entry (using terminal-overrides or a custom terminfo entry).
! 166:
! 167:
! 168: CHANGES FROM 2.0 to 2.1 18 October 2015
! 169:
! 170: Incompatible Changes
! 171: ====================
! 172:
! 173: * Mouse-mode has been rewritten. There's now no longer options for:
! 174: - mouse-resize-pane
! 175: - mouse-select-pane
! 176: - mouse-select-window
! 177: - mode-mouse
! 178:
! 179: Instead there is just one option: 'mouse' which turns on mouse support
! 180: entirely.
! 181: * 'default-terminal' is now a session option. Furthermore, if this is set
! 182: to 'screen-*' then emulate what screen does. If italics are wanted, this
! 183: can be set to 'tmux' but this is still new and not necessarily supported
! 184: on all platforms with older ncurses installs.
! 185: * The c0-* options for rate-limiting have been removed. Instead, a backoff
! 186: approach is used.
! 187:
! 188: Normal Changes
! 189: ==============
! 190:
! 191: * New formats:
! 192: - session_activity
! 193: - window_linked
! 194: - window_activity_format
! 195: - session_alerts
! 196: - session_last_attached
! 197: - client_pid
! 198: - pid
! 199: * 'copy-selection', 'append-selection', 'start-named-buffer' now understand
! 200: an '-x' flag to prevent it exiting copying mode.
! 201: * 'select-pane' now understands '-P' to set window/pane background colours.
! 202: * 'renumber-windows' now understands windows which are unlinked.
! 203: * 'bind' now understands multiple key tables. Allows for key-chaining.
! 204: * 'select-layout' understands '-o' to undo the last layout change.
! 205: * The environment is updated when switching sessions as well as attaching.
! 206: * 'select-pane' now understands '-M' for marking a pane. This marked pane
! 207: can then be used with commands which understand src-pane specifiers
! 208: automatically.
! 209: * If a session/window target is prefixed with '=' then only an exact match
! 210: is considered.
! 211: * 'move-window' understands '-a'.
! 212: * 'update-environment' understands '-E' when attach-session is used on an
! 213: already attached client.
! 214: * 'show-environment' understands '-s' to output Bourne-compatible commands.
! 215: * New option: 'history-file' to save/restore command prompt history.
! 216: * Copy mode is exited if the history is cleared whilst in copy-mode.
! 217: * 'copy-mode' learned '-e' to exit copy-mode when scrolling to end.
! 218:
! 219: CHANGES FROM 1.9a to 2.0 6 March 2015
! 220:
! 221: Incompatible Changes
! 222: ====================
! 223:
! 224: * The choose-list command has been removed.
! 225: * 'terminal-overrides' is now a server option, not a session option.
! 226: * 'message-limit' is now a server option, not a session option.
! 227: * 'monitor-content' option has been removed.
! 228: * 'pane_start_path' option has been removed.
! 229: * The "info" mechanism which used to (for some commands) provide feedback
! 230: has been removed, and like other commands, they now produce nothing on
! 231: success.
! 232:
! 233: Normal Changes
! 234: ==============
! 235:
! 236: * tmux can now write an entry to utmp if the library 'utempter' is present
! 237: at compile time.
! 238: * set-buffer learned append mode (-a), and a corresponding
! 239: 'append-selection' command has been added to copy-mode.
! 240: * choose-mode now has the following commands which can be bound:
! 241: - start-of-list
! 242: - end-of-list
! 243: - top-line
! 244: - bottom-line
! 245:
! 246: * choose-buffer now understands UTF-8.
! 247: * Pane navigation has changed:
! 248: - The old way of always using the top or left if the choice is ambiguous.
! 249: - The new way of remembering the last used pane is annoying if the
! 250: layout is balanced and the leftmost is obvious to the user (because
! 251: clearly if we go right from the top-left in a tiled set of four we want
! 252: to end up in top-right, even if we were last using the bottom-right).
! 253:
! 254: So instead, use a combination of both: if there is only one possible
! 255: pane alongside the current pane, move to it, otherwise choose the most
! 256: recently used of the choice.
! 257: * 'set-buffer' can now be told to give names to buffers.
! 258: * The 'new-session', 'new-window', 'split-window', and 'respawn-pane' commands
! 259: now understand multiple arguments and handle quoting problems correctly.
! 260: * 'capture-pane' understands '-S-' to mean the start of the pane, and '-E-' to
! 261: mean the end of the pane.
! 262: * Support for function keys beyond F12 has changed. The following explains:
! 263: - F13-F24 are S-F1 to S-F12
! 264: - F25-F36 are C-F1 to C-F12
! 265: - F37-F48 are C-S-F1 to C-S-F12
! 266: - F49-F60 are M-F1 to M-F12
! 267: - F61-F63 are M-S-F1 to M-S-F3
! 268:
! 269: Therefore, F13 becomes a binding of S-F1, etc.
! 270: * Support using pane id as part of session or window specifier (so % means
! 271: session-of-%1 or window-of-%1) and window id as part of session
! 272: (so @1 means session-of-@1).
! 273: * 'copy-pipe' command now understands formats via -F
! 274: * 'if-shell' command now understands formats via -F
! 275: * 'split-window' and 'join-window' understand -b to create the pane to the left
! 276: or above the target pane.
! 277:
! 278: CHANGES FROM 1.9 to 1.9a 22 February 2014
! 279:
! 280: NOTE: This is a bug-fix release to address some important bugs which just
! 281: missed the 1.9 deadline, but were found afterwards.
! 282:
! 283: Normal Changes
! 284: ==============
! 285:
! 286: * Fix crash due to uninitialized lastwp member of layout_cell
! 287: * Fix -fg/-bg/-style with 256 colour terminals.
! 288:
! 289: CHANGES FROM 1.8 to 1.9, 20 February 2014
! 290:
! 291: NOTE: This release has bumped the tmux protocol version. It is therefore
! 292: advised that the prior tmux server is restarted when this version of tmux is
! 293: installed, to avoid protocol mismatch errors for newer clients trying to
! 294: talk to an older running tmux server.
! 295:
! 296: Incompatible Changes
! 297: ====================
! 298:
! 299: * 88 colour support has been removed.
! 300: * 'default-path' has been removed. The new-window command accepts '-c' to
! 301: cater for this. The previous value of "." can be replaced with: 'neww -c
! 302: $PWD', the previous value of '' which meant current path of the pane can
! 303: be specified as: 'neww -c "#{pane_current_path}"'
! 304:
! 305: Deprecated Changes
! 306: ==================
! 307:
! 308: * The single format specifiers: #A -> #Z (where defined) have been
! 309: deprecated and replaced with longer-named equivalents, as listed in the
! 310: FORMATS section of the tmux manpage.
! 311: * The various foo-{fg,bg,attr} commands have been deprecated and replaced
! 312: with equivalent foo-style option instead. Currently this is still
! 313: backwards-compatible, but will be removed over time.
! 314:
! 315: Normal Changes
! 316: ==============
! 317:
! 318: * A new environment variable TMUX_TMPDIR is now honoured, allowing the
! 319: socket directory to be set outside of TMPDIR (/tmp/ if not set).
! 320: * If -s not given to swap-pane the current pane is assumed.
! 321: * A #{pane_synchronized} format specifier has been added to be a conditional
! 322: format if a pane is in a synchronised mode (c.f. synchronize-panes)
! 323: * Tmux now runs under Cygwin natively.
! 324: * Formats can now be nested within each other and expanded accordingly.
! 325: * Added 'automatic-rename-format' option to allow the automatic rename
! 326: mechanism to use something other than the default of
! 327: #{pane_current_command}.
! 328: * new-session learnt '-c' to specify the starting directory for that session
! 329: and all subsequent windows therein.
! 330: * The session name is now shown in the message printed to the terminal when
! 331: a session is detached.
! 332: * Lots more format specifiers have been added.
! 333: * Server race conditions have been fixed; in particular commands are not run
! 334: until after the configuration file is read completely.
! 335: * Case insensitive searching in tmux's copy-mode is now possible.
! 336: * attach-session and switch-client learnt the '-t' option to accept a window
! 337: and/or a pane to use.
! 338: * Copy-mode is only exited if no selection is in progress.
! 339: * Paste key in copy-mode is now possible to enter text from the clipboard.
! 340: * status-interval set to '0' now works as intended.
! 341: * tmux now supports 256 colours running under fbterm.
! 342: * Many bug fixes!
! 343:
! 344: CHANGES FROM 1.7 to 1.8, 26 March 2013
! 345:
! 346: Incompatible Changes
! 347: ====================
! 348:
! 349: * layout redo/undo has been removed.
! 350:
! 351: Normal Changes
! 352: ==============
! 353:
! 354: * Add halfpage up/down bindings to copy mode.
! 355: * Session choosing fixed to work with unattached sessions.
! 356: * New window options window-status-last-{attr,bg,fg} to denote the last
! 357: window which was active.
! 358: * Scrolling in copy-mode now scrolls the region without moving the mouse
! 359: cursor.
! 360: * run-shell learnt '-t' to specify the pane to use when displaying output.
! 361: * Support for middle-click pasting.
! 362: * choose-tree learns '-u' to start uncollapsed.
! 363: * select-window learnt '-T' to toggle to the last window if it's already
! 364: current.
! 365: * New session option 'assume-paste-time' for pasting text versus key-binding
! 366: actions.
! 367: * choose-* commands now work outside of an attached client.
! 368: * Aliases are now shown for list-commands command.
! 369: * Status learns about formats.
! 370: * Free-form options can be set with set-option if prepended with an '@'
! 371: sign.
! 372: * capture-pane learnt '-p' to send to stdout, and '-e' for capturing escape
! 373: sequences, and '-a' to capture the alternate screen, and '-P' to dump
! 374: pending output.
! 375: * Many new formats added (client_session, client_last_session, etc.)
! 376: * Control mode, which is a way for a client to send tmux commands.
! 377: Currently more useful to users of iterm2.
! 378: * resize-pane learnt '-x' and '-y' for absolute pane sizing.
! 379: * Config file loading now reports errors from all files which are loaded via
! 380: the 'source-file' command.
! 381: * 'copy-pipe' mode command to copy selection and pipe the selection to a
! 382: command.
! 383: * Panes can now emit focus notifications for certain applications
! 384: which use those.
! 385: * run-shell and if-shell now accept formats.
! 386: * resize-pane learnt '-Z' for zooming a pane temporarily.
! 387: * new-session learnt '-A' to make it behave like attach-session.
! 388: * set-option learnt '-o' to prevent setting an option which is already set.
! 389: * capture-pane and show-options learns '-q' to silence errors.
! 390: * New command 'wait-for' which blocks a client until woken up again.
! 391: * Resizing panes will now reflow the text inside them.
! 392: * Lots and lots of bug fixes, fixing memory-leaks, etc.
! 393: * Various manpage improvements.
! 394:
! 395: CHANGES FROM 1.6 to 1.7, 13 October 2012
! 396:
! 397: * tmux configuration files now support line-continuation with a "\" at the
! 398: end of a line.
! 399: * New option status-position to move the status line to the top or bottom of
! 400: the screen.
! 401: * Enforce history-limit option when clearing the screen.
! 402: * Give each window a unique id, like panes but prefixed with @.
! 403: * Add pane id to each pane in layout description (while still accepting
! 404: the old form).
! 405: * Provide defined ways to set the various default-path possibilities: ~
! 406: for home directory, . for server start directory, - for session start
! 407: directory and empty for the pane's working directory (the default). All
! 408: can also be used as part of a relative path (eg -/foo). Also provide -c
! 409: flags to neww and splitw to override default-path setting.
! 410: * Add -l flag to send-keys to send input literally (without translating
! 411: key names).
! 412: * Allow a single option to be specified to show-options to show just that
! 413: option.
! 414: * New command "move-pane" (like join-pane but allows the same window).
! 415: * join-pane and move-pane commands learn "-b" option to place the pane to
! 416: the left or above.
! 417: * Support for bracketed-paste mode.
! 418: * Allow send-keys command to accept hex values.
! 419: * Add locking around "start-server" to avoid race-conditions.
! 420: * break-pane learns -P/-F arguments for display formatting.
! 421: * set-option learns "-q" to make it quiet, and not print out anything.
! 422: * copy mode learns "wrap-search" option.
! 423: * Add a simple form of output rate limiting by counting the number of
! 424: certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
! 425: exceeds a threshold (current default 250/millisecond), start to redraw
! 426: the pane every 100 milliseconds instead of making each change as it
! 427: comes. Two configuration options - c0-change-trigger and
! 428: c0-change-interval.
! 429: * find-window learns new flags: "-C", "-N", "-T" to match against either or
! 430: all of a window's content, name, or title. Defaults to all three options
! 431: if none specified.
! 432: * find-window automatically selects the appropriate pane for the found
! 433: matches.
! 434: * show-environment can now accept one option to show that environment value.
! 435: * Exit mouse mode when end-of-screen reached when scrolling with the mouse
! 436: wheel.
! 437: * select-layout learns -u and -U for layout history stacks.
! 438: * kill-window, detach-client, kill-session all learn "-a" option for
! 439: killing all but the current thing specified.
! 440: * move-window learns "-r" option to renumber window sequentially in a
! 441: session.
! 442: * New session option "renumber-windows" to automatically renumber windows in
! 443: a session when a window is closed. (see "move-window -r").
! 444: * Only enter copy-mode on scroll up.
! 445: * choose-* and list-* commands all use "-F" for format specifiers.
! 446: * When spawning external commands, the value from the "default-shell" option
! 447: is now used, rather than assuming /bin/sh.
! 448: * New choose-tree command to render window/sessions as a tree for selection.
! 449: * display-message learns new format options.
! 450: * For linked-windows across sessions, all flags for that window are now
! 451: cleared across sessions.
! 452: * Lots and lots of bug fixes, fixing memory-leaks, etc.
! 453: * Various manpage improvements.
! 454:
! 455: CHANGES FROM 1.5 TO 1.6, 23 January 2012
! 456:
! 457: * Extend the mode-mouse option to add a third choice which means the mouse
! 458: does not enter copy mode.
! 459: * Add a -r flag to switch-client to toggle the client read-only flag.
! 460: * Add pane-base-index option.
! 461: * Support \ for line continuation in the configuration file.
! 462: * Framework for more powerful formatting of command output and use it for
! 463: list-{panes,windows,sessions}. This allows more descriptive replacements
! 464: (such as #{session_name}) and conditionals.
! 465: * Mark dead panes with some text saying they are dead.
! 466: * Reject $SHELL if it is not a full path.
! 467: * Add -S option to refresh-client to redraw status line.
! 468: * Add an else clause for if-shell.
! 469: * Try to resolve relative paths for loadb and saveb (first, using client
! 470: working directory, if any, then default-path or session working directory).
! 471: * Support for \e[3J to clear the history and send the corresponding
! 472: terminfo code (E3) before locking.
! 473: * When in copy mode, make repeat count indicate buffer to replace, if used.
! 474: * Add screen*:XT to terminal-overrides for tmux-in-tmux.
! 475: * Status-line message attributes added.
! 476: * Move word-separators to be a session rather than window option.
! 477: * Change the way the working directory for new processes is discovered. If
! 478: default-path isn't empty, it is used. Otherwise, if a new window is created
! 479: from the command-line, the working directory of the client is used. If not,
! 480: platform specific code is used to retrieve the current working directory
! 481: of the process in the active pane. If that fails, the directory where the
! 482: session was created is used, instead.
! 483: * Do not change the current pane if both mouse-select-{pane,window} are
! 484: enabled.
! 485: * Add \033[s and \033[u to save and restore cursor position.
! 486: * Allow $HOME to be used as default-path.
! 487: * Add CNL and CPL escape sequences.
! 488: * Calculate last position correctly for UTF-8 wide characters.
! 489: * Add an option allow-rename to disable the window rename escape sequence.
! 490: * Attributes for each type of status-line alert (ie bell, content and
! 491: activity) added. Therefore, remove the superfluous options
! 492: window-status-alert-{attr,bg,fg}.
! 493: * Add a -R flag to send-keys to reset the terminal.
! 494: * Add strings to allow the aixterm bright colours to be used when
! 495: configuring colours.
! 496: * Drop the ability to have a list of keys in the prefix in favour of two
! 497: separate options, prefix and prefix2.
! 498: * Flag -2 added to send-prefix to send the secondary prefix key.
! 499: * Show pane size in top right of display panes mode.
! 500: * Some memory leaks plugged.
! 501: * More command-prompt editing improvements.
! 502: * Various manpage improvements.
! 503: * More Vi mode improvements.
! 504:
! 505: CHANGES FROM 1.4 TO 1.5, 09 July 2011
! 506:
! 507: * Support xterm mouse modes 1002 and 1003.
! 508: * Change from a per-session stack of buffers to one global stack. This renders
! 509: copy-buffer useless and makes buffer-limit now a server option.
! 510: * Fix most-recently-used choice by avoiding reset the activity timer for
! 511: unattached sessions every second.
! 512: * Add a -P option to new-window and split-window to print the new window or
! 513: pane index in target form (useful to pass it into other commands).
! 514: * Handle a # at the end of a replacement string (such as status-left)
! 515: correctly.
! 516: * Support for UTF-8 mouse input (\033[1005h) which was added in xterm 262.
! 517: If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all
! 518: UTF-8 terminals. The option defaults to on if LANG etc are set in the same
! 519: manner as the utf8 option.
! 520: * Support for HP-UX.
! 521: * Accept colours of the hex form #ffffff and translate to the nearest from the
! 522: xterm(1) 256-colour set.
! 523: * Clear the non-blocking IO flag (O_NONBLOCK) on the stdio file descriptors
! 524: before closing them (fixes things like "tmux ls && cat").
! 525: * Use TMPDIR if set.
! 526: * Fix next and previous session functions to actually work.
! 527: * Support -x and -y for new-session to specify the initial size of the window
! 528: if created detached with -d.
! 529: * Make bind-key accept characters with the top-bit-set and print them as octal.
! 530: * Set $TMUX without the session when background jobs are run.
! 531: * Simplify the way jobs work and drop the persist type, so all jobs are
! 532: fire-and-forget.
! 533: * Accept tcgetattr/tcsetattr(3) failure, fixes problems with fatal() if the
! 534: terminal disappears while locked.
! 535: * Add a -P option to detach to HUP the client's parent process (usually causing
! 536: it to exit as well).
! 537: * Support passing through escape sequences to the underlying terminal by using
! 538: DCS with a "tmux;" prefix.
! 539: * Prevent tiled producing a corrupt layout when only one column is needed.
! 540: * Give each pane created in a tmux server a unique id (starting from 0), put it
! 541: in the TMUX_PANE environment variable and accept it as a target.
! 542: * Allow a start and end line to be specified for capture-pane which may be
! 543: negative to capture part of the history.
! 544: * Add -a and -s options to lsp to list all panes in the server or session
! 545: respectively. Likewise add -s to lsw.
! 546: * Change -t on display-message to be target-pane for the #[A-Z] replacements
! 547: and add -c as target-client.
! 548: * The attach-session command now prefers the most recently used unattached
! 549: session.
! 550: * Add -s option to detach-client to detach all clients attached to a session.
! 551: * Add -t to list-clients.
! 552: * Change window with mouse wheel over status line if mouse-select-window is on.
! 553: * When mode-mouse is on, automatically enter copy mode when the mouse is
! 554: dragged or the mouse wheel is used. Also exit copy mode when the mouse wheel
! 555: is scrolled off the bottom.
! 556: * Provide #h character pair for short hostname (no domain).
! 557: * Don't use strnvis(3) for the title as it breaks UTF-8.
! 558: * Use the tsl and fsl terminfo(5) capabilities to update terminal title and
! 559: automatically fill them in on terminals with the XT capability (which means
! 560: their title setting is xterm-compatible).
! 561: * Add a new option, mouse-resize-pane. When on, panes may be resized by
! 562: dragging their borders.
! 563: * Fix crash by resetting last pane on {break,swap}-pane across windows.
! 564: * Add three new copy-mode commands - select-line, copy-line, copy-end-of-line.
! 565: * Support setting the xterm clipboard when copying from copy mode using the
! 566: xterm escape sequence for the purpose (if xterm is configured to allow it).
! 567: * Support xterm(1) cursor colour change sequences through terminfo(5) Cc
! 568: (set) and Cr (reset) extensions.
! 569: * Support DECSCUSR sequence to set the cursor style with two new terminfo(5)
! 570: extensions, Cs and Csr.
! 571: * Make the command-prompt custom prompts recognize the status-left option
! 572: character pairs.
! 573: * Add a respawn-pane command.
! 574: * Add a couple of extra xterm-style keys that gnome terminal provides.
! 575: * Allow the initial context on prompts to be set with the new -I option to
! 576: command-prompt. Include the current window and session name in the prompt
! 577: when renaming and add a new key binding ($) for rename session.
! 578: * Option bell-on-alert added to trigger the terminal bell when there is an
! 579: alert.
! 580: * Change the list-keys format so that it shows the keys using actual tmux
! 581: commands which should be able to be directly copied into the config file.
! 582: * Show full targets for lsp/lsw -a.
! 583: * Make confirm-before prompt customizable with -p option like command-prompt
! 584: and add the character pairs #W and #P to the default kill-{pane,window}
! 585: prompts.
! 586: * Avoid sending data to suspended/locked clients.
! 587: * Small memory leaks in error paths plugged.
! 588: * Vi mode improvements.
! 589:
! 590: CHANGES FROM 1.3 TO 1.4, 27 December 2010
! 591:
! 592: * Window bell reporting fixed.
! 593: * Show which pane is active in the list-panes output.
! 594: * Backoff reworked.
! 595: * Prevent the server from dying when switching into copy mode when already
! 596: in a different mode.
! 597: * Reset running jobs when the status line is enabled or disabled.
! 598: * Simplify xterm modifier detection.
! 599: * Avoid crashing in copy mode if the screen size is too small for the
! 600: indicator.
! 601: * Flags -n and -p added to switch-client.
! 602: * Use UTF-8 line drawing characters on UTF-8 terminals, thus fixing some
! 603: terminals (eg putty) which disable the vt100 ACS mode switching sequences
! 604: in UTF-8 mode. On terminals without ACS, use ASCII equivalents.
! 605: * New server option exit-unattached added.
! 606: * New session option destroy-unattached added.
! 607: * Fall back on normal session choice method if $TMUX exists but is invalid
! 608: rather than rejecting.
! 609: * Mark repeating keys with "(repeat)" in the key list.
! 610: * When removing a pane, don't change the active pane unless the active pane
! 611: is actually the one being removed.
! 612: * New command last-pane added.
! 613: * AIX fixes.
! 614: * Flag -a added to unbind-key.
! 615: * Add XAUTHORITY to update-environment.
! 616: * More info regarding window and pane flags is now shown in list-*.
! 617: * If VISUAL or EDITOR contains "vi" configure mode-keys and status-key to vi.
! 618: * New window option monitor-silence and session option visual-silence added.
! 619: * In the built-in layouts distribute the panes more evenly.
! 620: * Set the default value of main-pane-width to 80 instead of 81.
! 621: * Command-line flag -V added.
! 622: * Instead of keeping a per-client prompt history make it global.
! 623: * Fix rectangle copy to behave like emacs (the cursor is not part of the
! 624: selection on the right edge but on the left it is).
! 625: * Flag -l added to switch-client.
! 626: * Retrieve environment variables from the global environment rather than
! 627: getenv(3), thus allowing them to be updated during the configuration file.
! 628: * New window options other-pane-{height,width} added.
! 629: * More minor bugs fixed and manpage improvements.
! 630:
! 631: CHANGES FROM 1.2 TO 1.3, 18 July 2010
! 632:
! 633: * New input parser.
! 634: * Flags to move through panes -UDLR added to select-pane.
! 635: * Commands up-pane, and down-pane removed, since equivalent behaviour is now
! 636: available through the target flag (-t:+ and -t:-).
! 637: * Jump-forward/backward in copy move (based on vi's F, and f commands).
! 638: * Make paste-buffer accept a pane as a target.
! 639: * Flag -a added to new-window to insert a window after an existing one, moving
! 640: windows up if necessary.
! 641: * Merge more mode into copy mode.
! 642: * Run job commands explicitly in the global environment (which can be modified
! 643: with setenv -g), rather than with the environment tmux started with.
! 644: * Use the machine's hostname as the default title, instead of an empty string.
! 645: * Prevent double free if the window option remain-on-exit is set.
! 646: * Key string conversions rewritten.
! 647: * Mark zombie windows as dead in the choose-window list.
! 648: * Tiled layout added.
! 649: * Signal handling reworked.
! 650: * Reset SIGCHLD after fork to fix problems with some shells.
! 651: * Select-prompt command removed. Therefore, bound ' to command-prompt -p index
! 652: "select-window -t:%%" by default.
! 653: * Catch SIGHUP and terminate if running as a client, thus avoiding clients from
! 654: being left hanging around when, for instance, a SSH session is disconnected.
! 655: * Solaris 9 fixes (such as adding compat {get,set}env(3) code).
! 656: * Accept none instead of default for attributes.
! 657: * Window options window-status-alert-{alert,bg,fg} added.
! 658: * Flag -s added to the paste-buffer command to specify a custom separator.
! 659: * Allow dragging to make a selection in copy mode if the mode-mouse option is
! 660: set.
! 661: * Support the mouse scroll wheel.
! 662: * Make pipe-pane accept special character sequences (eg #I).
! 663: * Fix problems with window sizing when starting tmux from .xinitrc.
! 664: * Give tmux sockets (but not the containing folder) group permissions.
! 665: * Extend the target flags (ie -t) to accept an offset (for example -t:+2), and
! 666: make it wrap windows, and panes.
! 667: * New command choose-buffer added.
! 668: * New server option detach-on-destroy to set what happens to a client when the
! 669: session it is attached to is destroyed. If on (default), the client is
! 670: detached. Otherwise, the client is switched to the most recently active of
! 671: the remaining sessions.
! 672: * The commands load-buffer, and save-buffer now accept a dash (-) as the file
! 673: to read from stdin, or write to stdout.
! 674: * Custom layouts added.
! 675: * Additional code reduction, bug fixes, and manpage enhancements.
! 676:
! 677: CHANGES FROM 1.1 TO 1.2, 10 March 2010
! 678:
! 679: * Switch to libevent.
! 680: * Emulate the ri (reverse index) capability, ergo allowing tmux to at least
! 681: start on Sun consoles (TERM=sun, or sun-color).
! 682: * Assign each entry a number, or lowercase letter in choose mode, and accept
! 683: that as a shortcut key.
! 684: * Permit top-bit-set characters to be entered in the status line.
! 685: * Mark no-prefix keys with (no prefix), rather than [] in list-keys.
! 686: * New command show-messages (alias showmsgs), and new session option
! 687: message-limit, to show a per-client log of status lines messages up to the
! 688: number defined by message-limit.
! 689: * Do not interpret #() for display-message to avoid leaking commands.
! 690: * New window options window-status-format, and window-status-current-format to
! 691: control the format of each window in the status line.
! 692: * Add a -p flag to display-message to print the output, instead of displaying
! 693: it in the status line.
! 694: * Emulate il1, dl1, ich1 to run with vt100 feature set.
! 695: * New command capture-pane (alias capturep) to copy the entire pane contents
! 696: to a paste buffer.
! 697: * Avoid duplicating code by adding a -w flag to set-option, and show-options to
! 698: set, and show window options. The commands set-window-option, and
! 699: show-window-options are now aliases.
! 700: * Panes can now be referred to as top, bottom, top-left, etc.
! 701: * Add server-wide options, which can be set with set-option -s, and shown with
! 702: show-options -s.
! 703: * New server option quiet (like -q from the command line).
! 704: * New server option escape-time to set the timeout used to detect if escapes
! 705: are alone, part of a function key, or meta sequence.
! 706: * New session options pane-active-border-bg, pane-active-border-fg,
! 707: pane-border-bg, and pane-border-fg to set pane colours.
! 708: * Make split-window accept a pane target, instead of a window.
! 709: * New command join-pane (alias joinp) to split, and move an existing pane into
! 710: the space (the opposite of break-pane), thus simplifying calls to
! 711: split-window, followed by move-window.
! 712: * Permit S- prefix on keys for shift when the terminal/terminfo supports them.
! 713: * Window targets (-t flag) can now refer to the last window (!), next (+), and
! 714: previous (-) window by number.
! 715: * Mode keys to jump to the bottom/top of history, end of the next word, scroll
! 716: up/down, and reverse search in copy mode.
! 717: * New session option display-panes-active-colour to display the active pane in
! 718: a different colour with the display-panes command.
! 719: * Read the socket path from $TMUX if it's present, and -L, and -S are not
! 720: given.
! 721: * Vi-style mode keys B, W, and E to navigate between words in copy mode.
! 722: * Start in more mode when configuration file errors are detected.
! 723: * Rectangle copy support added.
! 724: * If attach-session was specified with the -r flag, make the client read-only.
! 725: * Per-window alternate-screen option.
! 726: * Make load-buffer work with FIFOs.
! 727: * New window option word-separators to set the characters considered as word
! 728: separators in copy mode.
! 729: * Permit keys in copy mode to be prefixed by a repeat count, entered with [1-9]
! 730: in vi mode, or M-[1-9] in emacs mode.
! 731: * utf8 improvements.
! 732: * As usual, additional code reduction, bug fixes, and manpage enhancements.
! 733:
! 734: CHANGES FROM 1.0 TO 1.1, 05 November 2009
! 735:
! 736: * New run-shell (alias run) command to run an external command without a
! 737: window, capture it's stdout, and send it to output mode.
! 738: * Ability to define multiple prefix keys.
! 739: * Internal locking mechanism removed. Instead, detach each client and run the
! 740: external command specified in the new session option lock-command (by default
! 741: lock -np), thus allowing the system password to be used.
! 742: * set-password command, and -U command line flag removed per the above change.
! 743: * Add support for -c command line flag to execute a shell command.
! 744: * New lock-client (alias lockc), and lock-session (alias locks) commands to
! 745: lock a particular client, or all clients attached to a session.
! 746: * Support C-n/C-p/C-v/M-v with emacs keys in choice mode.
! 747: * Use : for goto line rather than g in vi mode.
! 748: * Try to guess which client to use when no target client was specified. Finds
! 749: the current session, and if only one client is present, use it. Otherwise,
! 750: return the most recently used client.
! 751: * Make C-Down/C-Up in copy mode scroll the screen down/up one line without
! 752: moving the cursor.
! 753: * Scroll mode superseded by copy mode.
! 754: * New synchronize-panes window option to send all input to all other panes in
! 755: the same window.
! 756: * New lock-server session option to lock, when off (on by default), each
! 757: session when it has been idle for the lock-after-time setting. When on, the
! 758: entire server locks when all sessions have been idle for their individual
! 759: lock-after-time setting.
! 760: * Add support for grouped sessions which have independent name, options,
! 761: current window, but where the linked windows are synchronized (ie creating,
! 762: killing windows are mirrored between the sessions). A grouped session may be
! 763: created by passing -t to new-session.
! 764: * New mouse-select-pane session option to select the current pane with the
! 765: mouse.
! 766: * Queue, and run commands in the background for if-shell, status-left,
! 767: status-right, and #() by starting each once every status-interval. Adds the
! 768: capability to call some programs which would previously cause the server to
! 769: hang (eg sleep/tmux). It also avoids running commands excessively (ie if used
! 770: multiple times, it will be run only once).
! 771: * When a window is zombified and automatic-rename is on, append [dead] to the
! 772: name.
! 773: * Split list-panes (alias lsp) off from list-windows.
! 774: * New pipe-pane (alias pipep) to redirect a pane output to an external command.
! 775: * Support for automatic-renames for Solaris.
! 776: * Permit attributes to be turned off in #[] by prefixing with no (eg nobright).
! 777: * Add H/M/L in vi mode, and M-R/M-r in emacs to move the cursor to the top,
! 778: middle, and bottom of the screen.
! 779: * -a option added to kill-pane to kill all except current pane.
! 780: * The -d command line flag is now gone (can be replaced by terminal-overrides).
! 781: Just use op/AX to detect default colours.
! 782: * input/tty/utf8 improvements.
! 783: * xterm-keys rewrite.
! 784: * Additional code reduction, and bug fixes.
! 785:
! 786: CHANGES FROM 0.9 TO 1.0, 20 Sept 2009
! 787:
! 788: * Option to alter the format of the window title set by tmux.
! 789: * Backoff for a while after multiple incorrect password attempts.
! 790: * Quick display of pane numbers (C-b q).
! 791: * Better choose-window, choose-session commands and a new choose-client command.
! 792: * Option to request multiple responses when using command-prompt.
! 793: * Improved environment handling.
! 794: * Combine wrapped lines when pasting.
! 795: * Option to override terminal settings (terminal-overrides).
! 796: * Use the full range of ACS characters for drawing pane separator lines.
! 797: * Customisable mode keys.
! 798: * Status line colour options, with embedded colours in status-left/right, and
! 799: an option to centre the window list.
! 800: * Much improved layouts, including both horizontal and vertical splitting.
! 801: * Optional visual bell, activity and content indications.
! 802: * Set the utf8 and status-utf8 options when the server is started with -u.
! 803: * display-message command to show a message in the status line, by default some
! 804: information about the current window.
! 805: * Improved current process detection on NetBSD.
! 806: * unlink-window -k is now the same as kill-window.
! 807: * attach-session now works from inside tmux.
! 808: * A system-wide configuration file, /etc/tmux.conf.
! 809: * A number of new commands in copy mode, including searching.
! 810: * Panes are now specified using the target (-t) notation.
! 811: * -t now accepts fnmatch(3) patterns and looks for prefixes.
! 812: * Translate \r into \n when pasting.
! 813: * Support for binding commands to keys without the prefix key
! 814: * Support for alternate screen (terminfo smcup/rmcup).
! 815: * Maintain data that goes off screen after reducing the window size, so it can
! 816: be restored when the size is increased again.
! 817: * New if-shell command to test a shell command before running a tmux command.
! 818: * tmux now works as the shell.
! 819: * Man page reorganisation.
! 820: * Many minor additions, much code tidying and several bug fixes.
! 821:
! 822: CHANGES FROM 0.8 TO 0.9, 01 July 2009
! 823:
! 824: * Major changes to build infrastructure: cleanup of makefiles and addition
! 825: of a configure script.
! 826: * monitor-content window option to monitor a window for a specific fnmatch(3)
! 827: pattern. The find-window command also now accepts fnmatch(3) patterns.
! 828: * previous-layout and select-layout commands, and a main-horizontal layout.
! 829: * Recreate the server socket on SIGUSR1.
! 830: * clear-history command.
! 831: * Use ACS line drawing characters for pane separator lines.
! 832: * UTF-8 improvements, and code to detect UTF-8 support by looking at
! 833: environment variables.
! 834: * The resize-pane-up and resize-pane-down commands are now merged together
! 835: into a new resize-pane command with -U and -D flags.
! 836: * confirm-before command to request a yes/no answer before executing dangerous
! 837: commands.
! 838: * Status line bug fixes, support for UTF-8 (status-utf8 option), and a key to
! 839: paste from the paste buffer.
! 840: * Support for some additional escape sequences and terminal features, including
! 841: better support for insert mode and tab stops.
! 842: * Improved window resizing behaviour, modelled after xterm.
! 843: * Some code reduction and a number of miscellaneous bug fixes.
! 844:
! 845: ================================================================================
! 846:
! 847: On 01 June 2009, tmux was imported into the OpenBSD base system. From this date
! 848: onward changes are logged as part of the normal CVS commit message to either
! 849: OpenBSD or SourceForge CVS. This file will be updated to contain a summary of
! 850: major changes with each release, and to mention important configuration or
! 851: command syntax changes during development.
! 852:
! 853: The list of older changes is below.
! 854:
! 855: ================================================================================
! 856:
! 857: 21 May 2009
! 858:
! 859: * stat(2) files before trying to load them to avoid problems, for example
! 860: with "source-file /dev/zero".
! 861:
! 862: 19 May 2009
! 863:
! 864: * Try to guess if the window is UTF-8 by outputting a three-byte UTF-8 wide
! 865: character and seeing how much the cursor moves. Currently tries to figure out
! 866: if this works by some stupid checks on the terminal, these need to be
! 867: rethought. Also might be better using a width 1 character rather than width 2.
! 868: * If LANG contains "UTF-8", assume the terminal supports UTF-8, on the grounds
! 869: that anyone who configures it probably wants UTF-8. Not certain if this is
! 870: a perfect idea but let's see if it causes any problems.
! 871: * New window option: monitor-content. Searches for a string in a window and if
! 872: it matches, highlight the status line.
! 873:
! 874: 18 May 2009
! 875:
! 876: * main-horizontal layout and main-pane-height option to match vertical.
! 877: * New window option main-pane-width to set the width of the large left pane with
! 878: main-vertical (was left-vertical) layout.
! 879: * Lots of layout cleanup. manual layout is now manual-vertical.
! 880:
! 881: 16 May 2009
! 882:
! 883: * select-layout command and a few default key bindings (M-0, M-1, M-2, M-9) to
! 884: select layouts.
! 885: * Recreate server socket on SIGUSR1, per SF feature request 2792533.
! 886:
! 887: 14 May 2009
! 888:
! 889: * Keys in status line (p in vi mode, M-y in emacs) to paste the first line
! 890: of the upper paste buffer. Suggested by Dan Colish.
! 891: * clear-history command to clear a pane's history.
! 892: * Don't force wrapping with \n when asked, let the cursor code figure it out.
! 893: Should fix terminals which use this to detect line breaks.
! 894: * Major cleanup and restructuring of build infrastructure. Still separate files
! 895: for GNU and BSD make, but they are now hugely simplified at the expense of
! 896: adding a configure script which must be run before make. Now build and
! 897: install with:
! 898:
! 899: $ ./configure && make && sudo make install
! 900:
! 901: 04 May 2009
! 902:
! 903: * Use ACS line drawing characters for pane separator lines.
! 904:
! 905: 30 April 2009
! 906:
! 907: * Support command sequences without a space before the semicolon, for example
! 908: "neww; neww" now works as well as "neww ; neww". "neww;neww" is still an
! 909: error.
! 910: * previous-layout command.
! 911: * Display the layout name in window lists.
! 912: * Merge resize-pane-up and resize-pane-down into resize-pane with -U and -D
! 913: flags.
! 914:
! 915: 29 April 2009
! 916:
! 917: * Get rid of compat/vis.* - only one function was used which is easily
! 918: replaced,and less compat code == good.
! 919:
! 920: 27 April 2009
! 921:
! 922: * Avoid using the prompt history when the server is locked, and prevent any
! 923: input entered from being added to the client's prompt history.
! 924: * New command, confirm-before (alias confirm), which asks for confirmation
! 925: before executing a command. Bound "&" and "x" by default to confirm-before
! 926: "kill-window" and confirm-before "kill-pane", respectively.
! 927:
! 928: 23 April 2009
! 929:
! 930: * Support NEL, yet another way of making newline. Fixes the output from some
! 931: Gentoo packaging thing. Reported by someone on SF then logs that allowed a
! 932: fix sent by tcunha.
! 933: * Use the xenl terminfo flag to detect early-wrap terminals like the FreeBSD
! 934: console. Many thanks for a very informative email from Christian Weisgerber.
! 935:
! 936: 21 April 2009
! 937:
! 938: * tmux 0.8 released.
! 939:
! 940: 17 April 2009
! 941:
! 942: * Remove the right number of characters from the buffer when escape then
! 943: a cursor key (or other key prefixed by \033) is pressed. Reported by
! 944: Stuart Henderson.
! 945:
! 946: 03 April 2009
! 947:
! 948: * rotate-window command. -U flag (default) for up, -D flag for down.
! 949:
! 950: 02 April 2009
! 951:
! 952: * Change scroll/pane redraws to only redraw the single pane affected rather
! 953: than the entire window.
! 954: * If redrawing the region would mean redrawing > half the pane, just schedule
! 955: to redraw the entire window. Also add a flag to skip updating the window any
! 956: further if it is scheduled to be redrawn. This has the effect of batching
! 957: multiple redraws together.
! 958:
! 959: 01 April 2009
! 960:
! 961: * Basic horizontal splitting and layout management. Still some redraw and other
! 962: issues - particularly, don't mix with manual pane resizing, be careful when
! 963: viewing from multiple clients and don't expect shell windows to redraw very
! 964: well after the layout is changed; generally cycling the layout a few times
! 965: will fix most problems. Getting this in for testing while I think about how
! 966: to deal with manual mode.
! 967:
! 968: Split window as normal and cycle the layouts with C-b space. Some of the
! 969: layouts will work better when swap-pane comes along.
! 970:
! 971: 31 March 2009
! 972:
! 973: * AIX port, thanks to cmihai for access to a box. Only tested on 6.1 with xlc
! 974: 10.1 (make sure CC is set). Needs GNU make and probably ncurses (didn't try
! 975: plain curses). Also won't build with DEBUG, so comment the FDEBUG=1 line in
! 976: GNUmakefile.
! 977: * Draw a vertical line on the right when the window size is less than the
! 978: terminal size. This is partly to shake out any horizontal limit bugs on the
! 979: way to horizontal splitting/pane tiling. Currently a bit slow since it has to
! 980: do a lot of redrawing but hopefully that will improve as I get some better
! 981: ideas for how to do it.
! 982: * Fix remaining problems with copy and paste and UTF-8.
! 983:
! 984: 28 March 2009
! 985:
! 986: * Better UTF-8 support, including combined characters. Unicode data is now
! 987: stored as UTF-8 in a separate array, the code does a lookup into this every
! 988: time it gets to a UTF-8 cell. Zero width characters are just appended onto
! 989: the UTF-8 data for the previous cell. This also means that almost no bytes
! 990: extra are wasted non-Unicode data (yay).
! 991:
! 992: Still some oddities, such as copy mode skips over wide characters in a
! 993: strange way, and the code could do with some tidying.
! 994: * Key repeating is now a property of the key binding not of the command.
! 995: Repeat is turned on when the key is bound with the -r flag to bind-key.
! 996: next/previous-window no longer repeat by default as it turned out to annoy
! 997: me.
! 998:
! 999: 27 March 2009
! 1000:
! 1001: * Clear using ED when redrawing the screen. I foolishly assumed using spaces
! 1002: would be equivalent and terminals would pick up on this, but apparently not.
! 1003: This fixes copy and paste in xterm/rxvt.
! 1004: * Sockets in /tmp are now created in a subdirectory named, tmux-UID, eg
! 1005: tmux-1000. The default socket is thus /tmp/tmux-UID/default. To start a
! 1006: separate server, the new -L command line option should be used: this creates
! 1007: a socket in the same directory with a different name ("-L main" will create
! 1008: socket called "main"). -S should only be used to place the socket outside
! 1009: /tmp. This makes sockets a little more secure and a bit more convenient to
! 1010: use multiple servers.
! 1011:
! 1012: 21 March 2009
! 1013:
! 1014: * New session flag "set-remain-on-exit" to set remain-on-exit flag for new
! 1015: windows created in that session (like "remain-by-default" used to do). Not
! 1016: perfectly happy about this, but until I can think of a good way to introduce
! 1017: it generically (maybe a set of options in the session) this will do. Fixes
! 1018: SF request 2527847.
! 1019:
! 1020: 07 March 2009
! 1021:
! 1022: * Support for 88 colour terminals.
! 1023: * break-pane command to create a new window using an existing pane.
! 1024:
! 1025: 02 March 2009
! 1026:
! 1027: * Make escape key timer work properly so escape+key can be used without
! 1028: lightning fast key presses.
! 1029:
! 1030: 13 February 2009
! 1031:
! 1032: * Redo mode keys slightly more cleanly and apply them to command prompt
! 1033: editing. vi or emacs mode is controlled by the session option status-keys.
! 1034:
! 1035: 12 February 2009
! 1036:
! 1037: * Looking up argv[0] is expensive, so just use p_comm for the window name which
! 1038: is good enough. Also increase name update time to 500 ms.
! 1039:
! 1040: 11 February 2009
! 1041:
! 1042: * Only use ri when actually at the top of the screen; just move the cursor up
! 1043: otherwise.
! 1044: * FreeBSD's console wraps lines at $COLUMNS - 1 rather than $COLUMNS (the
! 1045: cursor can never be beyond $COLUMNS - 1) and does not appear to support
! 1046: changing this behaviour, or any of the obvious possibilities (turning off
! 1047: right margin wrapping, insert mode). This is irritating, most notably because
! 1048: it impossible to write to the very bottom-right of the screen without
! 1049: scrolling. To work around this, if built on FreeBSD and run with a "cons"
! 1050: $TERM, the bottom-right cell on the screen is omitted.
! 1051: * Emulate scroll regions (slowly) to support the few terminals which don't have
! 1052: it (some of which don't really have any excuse).
! 1053:
! 1054: 10 February 2009
! 1055:
! 1056: * No longer redraw the status line every status-interval unless it has actually
! 1057: changed.
! 1058:
! 1059: 08 February 2009
! 1060:
! 1061: * Don't treat empty arguments ("") differently when parsing configuration
! 1062: file/command prompt rather than command line.
! 1063: * tmux 0.7 released.
! 1064:
! 1065: 03 February 2009
! 1066:
! 1067: * New command, copy-buffer (alias copyb), to copy a session paste buffer to
! 1068: another session.
! 1069:
! 1070: 01 February 2009
! 1071:
! 1072: * The character pair #(command) may now contain (escaped) right parenthesis.
! 1073:
! 1074: 30 January 2009
! 1075:
! 1076: * . now bound to "command-prompt 'move-window %%'" by default, from joshe.
! 1077:
! 1078: 29 January 2009
! 1079:
! 1080: * Window options to set status line fg, bg and attributes for a single
! 1081: window. Options are: window-status-fg, window-status-bg,
! 1082: window-status-attr. Set to "default" to use the session status colours.
! 1083:
! 1084: This allows quite neat things like:
! 1085:
! 1086: $ cat ~/bin/xssh
! 1087: #!/bin/sh
! 1088:
! 1089: if [ ! -z "$TMUX" ]; then
! 1090: case "$1" in
! 1091: natalya)
! 1092: tmux setw window-status-fg red >/dev/null
! 1093: ;;
! 1094: natasha)
! 1095: tmux setw window-status-fg yellow >/dev/null
! 1096: ;;
! 1097: esac
! 1098: fi
! 1099: ssh "$@"
! 1100: [ ! -z "$TMUX" ] && tmux setw -u window-status-fg >/dev/null
! 1101: $ alias ssh="~/bin/xssh"
! 1102:
! 1103: * Support #(command) in status-left, and status-right, which is displayed as
! 1104: the first line of command's output (e.g. set -g status-right
! 1105: "#(whoami)@#(hostname -s)"). Commands with )s aren't supported.
! 1106:
! 1107: 28 January 2009
! 1108:
! 1109: * Support mouse in copy mode to move cursor. Can't do anything else at the
! 1110: moment until other mouse modes are handled.
! 1111: * Better support for at least the most common variant of mouse input: parse it
! 1112: and adjust for different panes. Also support mouse in window/session choice
! 1113: mode.
! 1114:
! 1115: 27 January 2009
! 1116:
! 1117: * Bring back the fancy window titles with session/window names: it is easy to
! 1118: work around problems with elinks (see FAQ).
! 1119: * -u flag to scroll-mode and copy-mode to start scrolled one page
! 1120: up. scroll-mode -u is bound to prefix,page-up (ppage) by default.
! 1121: * Allow status, mode and message attributes to be changed by three new options:
! 1122: status-attr, mode-attr, message-attr. A comma-separated list is accepted
! 1123: containing: bright, dim, underscore, blink, reverse, hidden, italics, for
! 1124: example:
! 1125:
! 1126: set -g status-attr bright,blink
! 1127:
! 1128: From Josh Elsasser, thanks!
! 1129:
! 1130: 26 January 2009
! 1131:
! 1132: * Be more clever about picking the right process to create the window name.
! 1133: * Don't balls up the terminal on UTF-8 combined characters. Don't support them
! 1134: properly either - they are just discarded for the moment.
! 1135:
! 1136: 25 January 2009
! 1137:
! 1138: * load-buffer command
! 1139:
! 1140: 23 January 2009
! 1141:
! 1142: * Use reverse colours rather than swapping fg and bg for message, mode and
! 1143: status line. This makes these usable on black and white terminals.
! 1144: * Better error messages when creating a session or window fails.
! 1145: * Oops. Return non-zero on error. Reported by Will Maier.
! 1146:
! 1147: 21 January 2009
! 1148:
! 1149: * Handle SIGTERM (and kill-server which uses it), a bit more neatly - tidy
! 1150: up properly and print a nicer message. Same effect though :-).
! 1151: * new-window now supports -k to kill target window if it exists.
! 1152: * Bring back split-window -p and -l options to specify the height a percentage
! 1153: or as a number of lines.
! 1154: * Make window and session choice modes allow you to choose items in vi keys
! 1155: mode (doh!). As a side-effect, this makes enter copy selection (as well
! 1156: as C-w/M-w) when using emacs keys in copy mode. Reported by merdely.
! 1157:
! 1158: 20 January 2009
! 1159:
! 1160: * Darwin support for automatic-rename from joshe; Darwin doesn't seem to have
! 1161: a sane method of getting argv[0] and searching for the precise insane way
! 1162: is too frustrating, so this just uses the executable name.
! 1163: * Try to change the window title to match the command running it in. This is
! 1164: done by reading argv[0] from the process group leader of the group that owns
! 1165: the tty (tcgetpgrp()). This can't be done portably so some OS-dependent code
! 1166: is introduced (ugh); OpenBSD, FreeBSD and Linux are supported at the moment.
! 1167:
! 1168: A new window flag, automatic-rename, is available: if this is set to off, the
! 1169: window name is not changed. Specifying a name with the new-window,
! 1170: new-session or rename-window commands will automatically set this flag to off
! 1171: for the window in question. To disable it entirely set the option to off
! 1172: globally (setw -g automatic-rename off).
! 1173:
! 1174: 19 January 2009
! 1175:
! 1176: * Fix various stupid issues when the status line is turned off. Grr.
! 1177: * Use reverse attributes for clock and cursor, otherwise they do not
! 1178: appear on black and white terminals.
! 1179: * An error in a command sequence now stops execution of that sequence.
! 1180: Internally, each command code now passes a return code back rather than
! 1181: talking to the calling client (if any) directly.
! 1182: * attach-session now tries to start the server if it isn't already started - if
! 1183: no sessions are created in .tmux.conf this will cause an error.
! 1184: * Clean up starting server by making initial client get a special socketpair.
! 1185:
! 1186: 18 January 2009
! 1187:
! 1188: * Unbreak UTF-8.
! 1189: * -a flag to next-window and previous-window to select the next or previous
! 1190: window with activity or bell. Bound to M-n and M-p.
! 1191: * find-window command to search window names, titles and visible content (but
! 1192: not history) for a string. If only one is found, the window is selected
! 1193: otherwise a choice list is shown. This (as with the other choice commands)
! 1194: only works from a key. Bound to "f" by default.
! 1195: * Cleaned up command printing code, also enclose arguments with spaces in "s.
! 1196: * Added command sequences. These are entered by separating each argument by a ;
! 1197: argument (spaces on both sides), for example:
! 1198:
! 1199: lsk ; lsc
! 1200:
! 1201: To use a literal ; as the argument prefix it with \, for example:
! 1202:
! 1203: bind x lsk \; lsc
! 1204:
! 1205: Commands are executed from left to right. Also note that command sequences do
! 1206: not support repeat-time repetition unless all commands making up the sequence
! 1207: support it.
! 1208: * suspend-client command to suspend a client. Don't try to background it
! 1209: though...
! 1210: * Mark attached sessions in sessions lists. Suggested by Simon Kuhnle.
! 1211:
! 1212: 17 January 2009
! 1213:
! 1214: * tmux 0.6 released.
! 1215:
! 1216: 15 January 2009
! 1217:
! 1218: * Support #H for hostname and #S for session name in status-left/right.
! 1219: * Two new commands, choose-window and choose-session which work only when bound
! 1220: to a key and allow the window or session to be selected from a list. These
! 1221: are now bound to "w" and "s" instead of the list commands.
! 1222:
! 1223: 14 January 2009
! 1224:
! 1225: * Rework the prefix-time stuff. The option is now called repeat-time and
! 1226: defaults to 500 ms. It only applies to a small subset of commands, currently:
! 1227: up-pane, down-pane, next-window, previous-window, resize-pane-up,
! 1228: resize-pane-down. These are the commands for which it is obviously useful,
! 1229: having it for everything else was just bloody annoying.
! 1230: * The alt-up and alt-down keys now resize a pane by five lines at a time.
! 1231: * switch-pane is now select-pane and requires -p to select a pane. The
! 1232: "o" key binding is changed to down-pane.
! 1233: * up-pane and down-pane commands, bound to arrow up and down by default.
! 1234: * Multiple vertical window splitting. Minimum pane size is four lines, an
! 1235: (unhelpful) error will be shown if attempting to split a window with less
! 1236: that eight lines. If the window is resized, as many panes are shown as can
! 1237: fit without reducing them below four lines. There is (currently!) not a way
! 1238: to show a hidden pane without making the window larger.
! 1239:
! 1240: Note the -p and -l options to split-window are now gone, these may reappear
! 1241: once I think them through again.
! 1242: * Server locking on inactivity (lock-after-time) is now disabled by default.
! 1243:
! 1244: 13 January 2009
! 1245:
! 1246: * kill-pane command.
! 1247:
! 1248: 12 January 2009
! 1249:
! 1250: * command-prompt now accepts a single argument, a template string. Any
! 1251: occurrences of %% in this string are replaced by whatever is entered at the
! 1252: prompt and the result is executed as a command. This allows things like (now
! 1253: bound by default):
! 1254:
! 1255: bind , command-prompt "rename-window %%"
! 1256:
! 1257: Or my favourite:
! 1258:
! 1259: bind x command-prompt "split-window 'man %%'"
! 1260:
! 1261: * Option to set prefix time, allowing multiple commands to be entered without
! 1262: pressing the prefix key again, so long as they each typed within this time of
! 1263: each other.
! 1264: * Yet more hacks for key handling. Think it is just about working now.
! 1265: * Two commands, resize-pane-up and resize-pane-down to resize a pane.
! 1266: * Make the window pane code handle panes of different sizes, and add a -l
! 1267: and -p arguments to split-window to specify the new window size in lines
! 1268: or as a percentage.
! 1269:
! 1270: 11 January 2009
! 1271:
! 1272: * Vertical window splitting. Currently can only split a window into two panes.
! 1273: New split-window command splits (bound to ") and switch-pane command (bound to
! 1274: o) switches between panes.
! 1275:
! 1276: close-pane, swap-pane commands are to follow. Also to come are pane resizing,
! 1277: >2 panes, the ability to break a pane out to a full window and vice versa and
! 1278: possibly horizontal splitting.
! 1279:
! 1280: Panes are subelements of windows rather than being windows in their own
! 1281: right. I tried to make them windows (so the splitting was at the session or
! 1282: client level) but this rapidly became very complex and invasive. So in the
! 1283: interests of having something working, I just made it so each window can have
! 1284: two child processes instead of one (and it still took me 12 hours straight
! 1285: coding). Now the concept is proven and much of the support code is there,
! 1286: this may change in future if more flexibility is needed.
! 1287: * save-buffer command, from Tiago Cunha.
! 1288:
! 1289: 10 January 2009
! 1290:
! 1291: * New option, lock-after-time. If there is no activity in the period specified
! 1292: by this option (in seconds), tmux will lock the server. Default is 1800 (30
! 1293: minutes), set to 0 to disable.
! 1294: * Server locking. Two new commands: set-password to set a password (a
! 1295: preencrypted password may be specified with -c); and lock-server to lock the
! 1296: server until the password is entered. Also an additional command line flag,
! 1297: -U, to unlock from the shell. The default password is blank (any password
! 1298: accepted). If specifying an encrypted password from encrypt(1) in .tmux.conf
! 1299: with -c, don't forget to enclose it in single-quotes (') to prevent shell
! 1300: variable expansion.
! 1301: * If a window is created from the command line, tmux will now use the same
! 1302: current working directory for the new process. A new default-path option to
! 1303: sets the working directory for processes created from keys or interactively
! 1304: from the prompt.
! 1305: * New mode to display a large clock. Entered with clock-mode command (bound to
! 1306: C-b t by default); two window options: clock-mode-colour and clock-mode-style
! 1307: (12 or 24). This will probably be used as the basis for window locking.
! 1308: * New command, server-info, to show some server information and terminal
! 1309: details.
! 1310:
! 1311: 09 January 2009
! 1312:
! 1313: * Stop using ncurses variables and instead build a table of the codes we want
! 1314: into an array for each terminal type. This makes the code a little more
! 1315: untidy in places but gets rid of the awful global variables and calling
! 1316: setterm all the time, and shoves all the ncurses-dependent mess into a single
! 1317: file, tty-term.c. It also allows overriding single terminal codes, this is
! 1318: used to fix rxvt on some platforms (where it is missing dch) and in future
! 1319: may allow user customisation a la vim.
! 1320: * Update key handling code. Simplify, support ctrl properly and add a new
! 1321: window option (xterm-keys) to output xterm key codes including ctrl and,
! 1322: if available, alt and shift.
! 1323:
! 1324: 08 January 2009
! 1325:
! 1326: * If built without DEBUG (the release versions), don't cause a fatal error if
! 1327: the grid functions notice an input error, just log and ignore the
! 1328: request. This might mean me getting shouted at less often when bugs kill
! 1329: long-running sessions, at least in release versions.
! 1330: * Hopefully fix cursor out-of-bounds checking when writing to grid. When I
! 1331: wrote the code I must have forgotten that the cursor can be one cell off the
! 1332: right of the screen (yes, I know), so there were number of out-of-bounds/
! 1333: overflow problems.
! 1334:
! 1335: 07 January 2009
! 1336:
! 1337: * New flag to set and setw, -u, to unset an option (allowing it to inherit from)
! 1338: the global options again.
! 1339: * Added more info messages for options changes.
! 1340: * A bit of tidying and reorganisation of options code.
! 1341:
! 1342: 06 January 2009
! 1343:
! 1344: * Don't crash when backspacing if cursor is off the right of the screen,
! 1345: reported by David Chisnall.
! 1346: * Complete words at any point inside command in prompt, also use option name
! 1347: as well as command names.
! 1348: * Per-client prompt history of up to 100 items.
! 1349: * Use a splay tree for key bindings instead of an array. As a side-effect this
! 1350: sorts them when listed.
! 1351:
! 1352: 22 December 2008
! 1353:
! 1354: * Use the right keys for home and end.
! 1355:
! 1356: 20 December 2008
! 1357:
! 1358: * Add vim mode for tmux configuration file to examples/, from Tiago Cunha.
! 1359:
! 1360: 15 December 2008
! 1361:
! 1362: * New command, source-file (alias source), to load a configuration
! 1363: file. Written by Tiago Cunha, many thanks.
! 1364:
! 1365: 13 December 2008
! 1366:
! 1367: * Work around lack of dch. On Linux, the rxvt termcap doesn't have it (it is
! 1368: lying, but we can't really start disbelieving termcaps...). This is a bit
! 1369: horrible - I can see no way to do it without pretty much redrawing the whole
! 1370: line, but it works...
! 1371:
! 1372: 10 December 2008
! 1373:
! 1374: * glibc's getopt(3) is useless: it is not POSIX compliant without jumping
! 1375: through non-portable hoops, and the method of resetting it is unclear (the
! 1376: man page on my system says set optind to 1, but other sources say 0). So,
! 1377: import OpenBSD's getopt_long.c into compat/ for use on Linux and use the
! 1378: clearly documented optreset = optind = 1 method. This fixes some strange
! 1379: issues with command parsing (getting the syntax wrong would prevent any
! 1380: further commands being parsed).
! 1381:
! 1382: 06 December 2008
! 1383:
! 1384: * Bring set/setw/show/showw into line with other commands. This means that by
! 1385: default they now affect the current window (if any); the new -g flag must be
! 1386: passed to set the global options. This changes the behaviour of set/show and
! 1387: WILL BREAK CURRENT CONFIGURATIONS.
! 1388:
! 1389: In summary, whether in the configuration file, the command prompt, or a key
! 1390: binding, use -g to set a global option, use -t to specify a particular window
! 1391: or session, or omit both to try and use the current window or session.
! 1392:
! 1393: This makes set/show a bit of a pain but is the correct behaviour for
! 1394: setw/showw and is the same as every other command, so we can put up with a
! 1395: bit of pain for consistency.
! 1396: * Redo window options. They now work in the same way to session options with a
! 1397: global options set. showw/setw commands now have similar syntax to show/set
! 1398: (including the ability to use abbreviations).
! 1399:
! 1400: PLEASE NOTE this includes the following configuration-breaking changes:
! 1401:
! 1402: - remain-by-default is now GONE, use "setw -g remain-on-exit" to apply the
! 1403: global window option instead;
! 1404: - mode-keys is now a window option rather than session - use "setw [-g]
! 1405: mode-keys" instead of set.
! 1406:
! 1407: There are also some additions:
! 1408:
! 1409: - message-fg and message-bg session options to control status line message
! 1410: colours;
! 1411: - mode-fg and mode-bg window options to set colours in window modes such as
! 1412: copy mode.
! 1413:
! 1414: The options code still a mess and now there is twice as much of it :-(.
! 1415:
! 1416: 02 December 2008
! 1417:
! 1418: * Add support for including the window title in status-left or status-right
! 1419: strings by including the character pair "#T". This may be prefixed with
! 1420: a number to specify a maximum length, for example "#24T" to use at most
! 1421: 24 characters of the title.
! 1422: * Introduce two new options, status-left-length and status-right-length,
! 1423: control the maximum length of left and right components of the status bar.
! 1424: * elinks (and possibly others) bypass the terminal and talk directly to X to
! 1425: restore the window title when exiting. tmux can't know about this particular
! 1426: bit of stupidity so the title ends up strange - the prefix isn't terribly
! 1427: important and elinks is quite useful so just get rid of it.
! 1428:
! 1429: 27 November 2008
! 1430:
! 1431: * Tweaks to support Dragonfly.
! 1432:
! 1433: 17 November 2008
! 1434:
! 1435: * tmux 0.5 released.
! 1436:
! 1437: 16 November 2008
! 1438:
! 1439: * New window option: "utf8"; this must be on (it is off by default) for UTF-8
! 1440: to be parsed. The global/session option "utf8-default" controls the setting
! 1441: for new windows.
! 1442:
! 1443: This means that by default tmux does not handle UTF-8. To use UTF-8 by
! 1444: default it is necessary to a) "set utf8-default on" in .tmux.conf b) start
! 1445: tmux with -u on any terminal which support UTF-8.
! 1446:
! 1447: It seems a bit unnecessary for this to be a per-window option but that is
! 1448: the easiest way to do it, and it can't do any harm...
! 1449: * Enable default colours if op contains \033[39;49m, based on a report from
! 1450: fulvio ciriaco.
! 1451:
! 1452: 12 November 2008
! 1453:
! 1454: * Keep stack of last windows rather than just most recent; based on a diff from
! 1455: joshe.
! 1456:
! 1457: 04 November 2008
! 1458:
! 1459: * Don't try to redraw status line when showing a prompt or message; if it does,
! 1460: the status timer is never reset so it redraws on every loop. Spotted by
! 1461: joshe.
! 1462:
! 1463: 09 October 2008
! 1464:
! 1465: * Translate 256 colours into 16 if 256 is not available, same as screen does.
! 1466: * Better support for OSC command (only to set window title now), and also
! 1467: support using APC for the same purpose (some Linux default shell profiles do
! 1468: this).
! 1469:
! 1470: 25 September 2008
! 1471:
! 1472: * Large internal rewrite to better support 256 colours and UTF-8. Screen data
! 1473: is now stored as single two-way array of structures rather than as multiple
! 1474: separate arrays. Also simplified a lot of code.
! 1475:
! 1476: Only external changes are three new flags, -2, -d and -u, which force tmux to
! 1477: assume the terminal supports 256 colours, default colours (useful for
! 1478: xterm-256color which lacks the AX flag), or UTF-8 respectively.
! 1479:
! 1480: 10 September 2008
! 1481:
! 1482: * Split off colour conversion code from screen code.
! 1483:
! 1484: 09 September 2008
! 1485:
! 1486: * Initial UTF-8 support. A bit ugly and with a limit of 4096 UTF-8
! 1487: characters per window.
! 1488:
! 1489: 08 September 2008
! 1490:
! 1491: * 256 colour support. tmux attempts to autodetect the terminal by looking
! 1492: both at what ncurses reports (usually wrong for xterm) and checking if
! 1493: the TERM contains "256col". For xterm TERM=xterm-256color is needed (as
! 1494: well as a build that support 256 colours); this seems to work for rxvt
! 1495: as well. On non-256 colour terminals, high colours are translated to white
! 1496: foreground and black background.
! 1497:
! 1498: 28 August 2008
! 1499:
! 1500: * Support OS X/Darwin thanks to bsd-poll.c from OpenSSH. Also convert
! 1501: from clock_gettime(2) to gettimeofday(2) as OS X doesn't support the
! 1502: former; microsecond accuracy will have to be sufficient ;-).
! 1503:
! 1504: 07 August 2008
! 1505:
! 1506: * Lose some unused/useless wrapper functions.
! 1507:
! 1508: 25 July 2008
! 1509:
! 1510: * Shell variables may now be defined and used in configuration file. Define
! 1511: variables with:
! 1512:
! 1513: VAR=1
! 1514:
! 1515: And use with:
! 1516:
! 1517: renamew ${VAR}
! 1518: renamew "x${VAR}x"
! 1519:
! 1520: Also some other fixes to make, for example, "abc""abc" work similarly to
! 1521: the shell.
! 1522:
! 1523: 24 July 2008
! 1524:
! 1525: * Finally lose inconsistently-used SCREEN_DEF* defines.
! 1526: * If cursor mode is on, switch the arrow keys from \033[A to \033OA.
! 1527: * Support the numeric keypad in both application and numbers mode. This is
! 1528: different from screen which always keeps it in application mode.
! 1529:
! 1530: 19 July 2008
! 1531:
! 1532: * Unbreak "set status" - tmux thought it was ambiguous, reported by rivo nurges.
! 1533:
! 1534: 02 July 2008
! 1535:
! 1536: * Split vi and emacs mode keys into two tables and add an option (mode-keys)
! 1537: to select between them. Default is emacs, use,
! 1538:
! 1539: tmux set mode-keys vi
! 1540:
! 1541: to change to vi.
! 1542:
! 1543: vi mode uses space to start selection, enter to copy selection and escape
! 1544: to clear selection.
! 1545:
! 1546: 01 July 2008
! 1547:
! 1548: * Protocol versioning. Clients which identify as a different version from the
! 1549: server will be rejected.
! 1550: * tmux 0.4 released.
! 1551:
! 1552: 29 June 2008
! 1553:
! 1554: * Zombie windows. These are not closed when the child process dies. May be
! 1555: set for a window with the new "remain-on-exit" option; the default setting
! 1556: of this flag for new windows may be set with the "remain-by-default" session
! 1557: option.
! 1558:
! 1559: A window may be restarted with the respawn-window command:
! 1560:
! 1561: respawn-window [-k] [command]
! 1562:
! 1563: If -k is given, any existing process running in the window is killed;
! 1564: if command is omitted, the same command as when the window was first
! 1565: created is used.
! 1566:
! 1567: 27 June 2008
! 1568:
! 1569: * Handle nonexistent session or client to -t properly.
! 1570:
! 1571: 25 June 2008
! 1572:
! 1573: * select-prompt command to allow a window to be selected at a prompt. Only
! 1574: windows in the current session may be selected. Bound to ' by default.
! 1575: Suggested by merdely.
! 1576: * move-window command. Requested by merdely.
! 1577: * Support binding alt keys (prefixed with M-). Change default to use
! 1578: C- for ctrl keys (^ is still accepted as an alternative).
! 1579: * Slim down default key bindings: support lowercase only.
! 1580: * Handle escaped keys properly (parse eg \033b into a single key code) and
! 1581: use this to change copy mode next/previous work to M-f and M-b to match
! 1582: emacs.
! 1583:
! 1584: 24 June 2008
! 1585:
! 1586: * Next word (C-n/w) and previous word (C-b/b) in copy mode.
! 1587:
! 1588: 23 June 2008
! 1589:
! 1590: * list-commands command (alias lscm).
! 1591: * Split information about options into a table and use it to parse options
! 1592: on input (allowing abbreviations) and to print them with show-options
! 1593: (meaning that bell-action gets a proper string). This turned out a bit ugly
! 1594: though :-/.
! 1595:
! 1596: 22 June 2008
! 1597:
! 1598: * Do not translate black and white into default if the terminal supports
! 1599: default colours. This was nice to force programs which didn't use default
! 1600: colours to be properly transparent in rxvt/aterm windows with a background
! 1601: image, but it causes trouble if someone redefines the default foreground and
! 1602: background (to have black on white or something).
! 1603:
! 1604: 21 June 2008
! 1605:
! 1606: * Naive tab completion in the command prompt. This only completes command
! 1607: names if a) they are at the start of the text b) the cursor is at
! 1608: the end of the text c) the text contains no spaces.
! 1609: * Only attempt to set the title where TERM looks like an xterm (contains
! 1610: "xterm", "rxvt" or is "screen"). I hate this but I don't see a better way:
! 1611: setting the title actually kills some other terminals pretty much dead.
! 1612: * Strip padding out of terminfo(5) strings. Currently the padding is just
! 1613: ignored, this may need to be altered if there are any software terminals
! 1614: out there that actually need it.
! 1615:
! 1616: 20 June 2008
! 1617:
! 1618: * buffer-limit option to set maximum size of buffer stack. Default is 9.
! 1619: * Initial buffer improvements. Each session has a stack of buffers and each
! 1620: buffer command takes a -b option to manipulate items on the stack. If -b
! 1621: is omitted, the top entry is used. The following commands are currently
! 1622: available:
! 1623:
! 1624: set-buffer [-b index] [-t target-session] string
! 1625: paste-buffer [-d] [-b index] [-t target-window]
! 1626: delete-buffer [-b index] [-t target-session]
! 1627: show-buffers [-t target-session]
! 1628: show-buffer [-b index] [-t target-session]
! 1629:
! 1630: -d to paste-buffer deletes the buffer after pasting it.
! 1631: * New option, display-time, sets the time status line messages stay on screen
! 1632: (unless a key is pressed). Set in milliseconds, default is 750 (0.75 seconds).
! 1633: The timer is only checked every 100 ms or so.
! 1634:
! 1635: 19 June 2008
! 1636:
! 1637: * Use "status" consistently for status line option, and prefix for "prefix" key
! 1638: option.
! 1639: * Allow commands to be entered at a prompt. This is triggered with the
! 1640: command-prompt command, bound to : by default.
! 1641: * Show status messages properly, without blocking the server.
! 1642:
! 1643: 18 June 2008
! 1644:
! 1645: * New option, set-titles. On by default, this attempts to set the window title
! 1646: using the \e]2;...\007 xterm code.
! 1647:
! 1648: Note that elinks requires the STY environment variable (used by screen) to be
! 1649: set before it will set the window title. So, if you want window titles set by
! 1650: elinks, set STY before running it (any value will do). I can't do this for all
! 1651: windows since setting it to an invalid value breaks screen.
! 1652: * Show arrows at either end of status line when scrolled if more windows
! 1653: exist. Highlight the arrow if a hidden window has activity or bell.
! 1654: * Scroll the status line to show the current window if necessary. Also handle
! 1655: windows smaller than needed better (show a blank status line instead of
! 1656: hanging or crashing).
! 1657:
! 1658: 17 June 2008
! 1659:
! 1660: * tmux 0.3 released.
! 1661:
! 1662: 16 June 2008
! 1663:
! 1664: * Add some information messages when window options are changed, suggested by
! 1665: Mike Erdely. Also add a -q command-line option to suppress them.
! 1666: * show-window-options (showw) command.
! 1667:
! 1668: 15 June 2008
! 1669:
! 1670: * show-options (show) command to show one or all options.
! 1671:
! 1672: 14 June 2008
! 1673:
! 1674: * New window options: force-width and force-height. This will force a window
! 1675: to an arbitrary width and height (0 for the default unlimited). This is
! 1676: neat for emacs which doesn't have a sensible way to force hard wrapping at 80
! 1677: columns. Also, don't try to be clever and use clr_eol when redrawing the
! 1678: whole screen, it causes trouble since the redraw functions are used to draw
! 1679: the blank areas too.
! 1680: * Clear the blank area below windows properly when they are smaller than client,
! 1681: also add an indicator line to show the vertical limit.
! 1682: * Don't die on empty strings in config file, reported by Will Maier.
! 1683:
! 1684: 08 June 2008
! 1685:
! 1686: * Set socket mode +x if any sessions are attached and -x if not.
! 1687:
! 1688: 07 June 2008
! 1689:
! 1690: * Make status-interval actually changeable.
! 1691:
! 1692: 06 June 2008
! 1693:
! 1694: * New window option: aggressive-resize. Normally, windows are resized to the
! 1695: size of the smallest attached session to which they are linked. This means a
! 1696: window only changes size when sessions are detached or attached, or they are
! 1697: linked or unlinked from a session. This flag changes a window to be the size
! 1698: of the smallest attached session for which it is the current window - it is
! 1699: resized every time a session changes to it or away from it. This is nice for
! 1700: things that handle SIGWINCH well (like irssi) and bad for things like shells.
! 1701: * The server now exits when no sessions remain.
! 1702: * Fix bug with inserting characters with TERM=xterm-color.
! 1703:
! 1704: 05 June 2008
! 1705:
! 1706: * Completely reorganise command parsing. Much more common code in cmd-generic.c
! 1707: and a new way of specifying windows, clients or sessions. Now, most commands
! 1708: take a -t argument, which specifies a client, a session, or a window target.
! 1709: Clients and sessions are given alone (sessions are fnmatch(3)d and
! 1710: clients currently not), windows are give by (client|session):index. For
! 1711: example, if a user is in session "1" window 0 on /dev/ttypi, these should all
! 1712: be equivalent:
! 1713:
! 1714: tmux renamew newname (current session and window)
! 1715: tmux renamew -t: newname (current session and window)
! 1716: tmux renamew -t:0 newname (current session, window 0)
! 1717: tmux renamew -t0 newname (current session, window 0)
! 1718: tmux renamew -t1:0 newname (session 1, window 0)
! 1719: tmux renamew -t1: newname (session 1's current window)
! 1720: tmux renamew -t/dev/ttypi newname (client /dev/ttypi's current
! 1721: session and window)
! 1722: tmux renamew -t/dev/ttypi: newname (client /dev/ttypi's current
! 1723: session and window)
! 1724: tmux renamew -t/dev/ttypi:0 newname (client /dev/ttypi's current
! 1725: session, window 0)
! 1726:
! 1727: This does have some downsides, for example, having to use -t on selectw,
! 1728:
! 1729: tmux selectw -t7
! 1730:
! 1731: is annoying. But then using non-flagged arguments would mean renaming the
! 1732: current window would need to be something like:
! 1733:
! 1734: tmux renamew : newname
! 1735:
! 1736: It might be better not to try and be so consistent; comments to the usual
! 1737: address ;-).
! 1738: * Infrastructure for printing arguments in list-keys output. Easy ones only for
! 1739: now.
! 1740:
! 1741: 04 June 2008
! 1742:
! 1743: * Add some vi(1) key bindings in copy mode, and support binding ^[, ^\, ^]
! 1744: ^^ and ^_. Both from/prompted by Will Maier.
! 1745: * setw monitor-activity and set status without arguments now toggle the current
! 1746: value; suggested by merdely.
! 1747: * New command set-window-option (alias setw) to set the single current window
! 1748: option: monitor-activity to determine whether window activity is shown in
! 1749: the status bar for that window (default off).
! 1750: * Change so active/bell windows are inverted in status line.
! 1751: * Activity monitoring - window with activity are marked in status line. No
! 1752: way to disable this/filter windows yet.
! 1753: * Brought select-window command into line with everything else; it now uses
! 1754: -i for the window index.
! 1755: * Strings to display on the left and right of the status bar may now be set
! 1756: with the status-left and status-right options. These are passed through
! 1757: strftime(3) before being displayed. The status bar is automatically updated
! 1758: at an interval set by the status-interval option. The default is to display
! 1759: nothing on the left and the date and time on the left; the default update
! 1760: interval is 15 seconds.
! 1761:
! 1762: 03 June 2008
! 1763:
! 1764: * Per session options. Setting options without specifying a session sets the
! 1765: global options as normal (global options are inherited by all sessions);
! 1766: passing -c or -s will set the option only for that session.
! 1767: * Because a client has a session attached, any command needing a session can
! 1768: take a client and use its session. So, anything that used to accept -s now
! 1769: accepts -c as well.
! 1770: * -s to specify session name now supports fnmatch(3) wildcards; if multiple
! 1771: sessions are found, or if no -s is specified, the most newly created is used.
! 1772: * If no command is specified, assume new-session. As a byproduct, clean up
! 1773: command default values into separate init functions.
! 1774: * kill-server command.
! 1775:
! 1776: 02 June 2008
! 1777:
! 1778: * New command, start-server (alias "start"), to start the tmux server and do
! 1779: nothing else. This is good if you have a configuration file which creates
! 1780: windows or sessions (like me): in that case, starting the server the first
! 1781: time tmux new is run is bad since it creates a new session and window (as
! 1782: it is supposed to - starting the server is a side-effect).
! 1783:
! 1784: Instead, I have a little script which does the equivalent of:
! 1785:
! 1786: tmux has -s0 2>/dev/null || tmux start
! 1787: tmux attach -d -s0
! 1788:
! 1789: And I use it to start the server if necessary and attach to my primary
! 1790: session.
! 1791: * Basic configuration file in ~/.tmux.conf or specified with -f. This is file
! 1792: contains a set of tmux commands that are run the first time the server is
! 1793: started. The configuration commands are executed before any others, so
! 1794: if you have a configuration file that contains:
! 1795:
! 1796: new -d
! 1797: neww -s0
! 1798:
! 1799: And you do the following without an existing server running:
! 1800:
! 1801: tmux new
! 1802:
! 1803: You will end up with two sessions, session 0 with two windows (created by
! 1804: the configuration file) and your client attached to session 1 with one
! 1805: window (created by the command-line command). I'm not completely happy with
! 1806: this, it seems a little non-obvious, but I haven't yet decided what to do
! 1807: about it.
! 1808:
! 1809: There is no environment variable handling or other special stuff yet.
! 1810:
! 1811: In the future, it might be nice to be able to have per-session configuration
! 1812: settings, probably by having conditionals in the file (so you could, for
! 1813: example, have commands to define a particular window layout that would only
! 1814: be invoked if you called tmux new -smysession and mysession did not already
! 1815: exist).
! 1816: * BIG CHANGE: -s and -c to specify session name and client name are now passed
! 1817: after the command rather than before it. So, for example:
! 1818:
! 1819: tmux -s0 neww
! 1820:
! 1821: Becomes:
! 1822:
! 1823: tmux neww -s0
! 1824:
! 1825: This is to allow them to be used in the (forthcoming) configuration file
! 1826: THIS WILL BREAK ANY CURRENT SCRIPTS OR ALIASES USING -s OR -c.
! 1827:
! 1828: 01 June 2008
! 1829:
! 1830: * Bug fix: don't die if -k passed to link-window and the destination doesn't
! 1831: exist.
! 1832: * New command, send-keys, will send a set of keys to a window.
! 1833:
! 1834: 31 May 2008
! 1835:
! 1836: * Fix so tmux doesn't hang if the initial window fails for some reason. This
! 1837: was highlighted by problems on Darwin, thanks to Elias Pipping for the report
! 1838: and access to a test account. (tmux still won't work on Darwin since its
! 1839: poll(2) is broken.)
! 1840:
! 1841: 02 January 2008
! 1842:
! 1843: * Don't attempt to reset the tty on exit if it has been closed externally.
! 1844:
! 1845: 06 December 2007
! 1846:
! 1847: * Restore checks for required termcap entries and add a few more obvious
! 1848: emulations.
! 1849: * Another major reorganisation, this time of screen handling. A new set of
! 1850: functions, screen_write_*, are now used to write to a screen and a tty
! 1851: simultaneously. These are used by the input parser to update the base
! 1852: window screen and also by the different modes which now interpose their own
! 1853: screen.
! 1854:
! 1855: 30 November 2007
! 1856:
! 1857: * Support \ek...\e\ to set window name.
! 1858:
! 1859: 27 November 2007
! 1860:
! 1861: * Enable/disable mouse when asked, if terminal claims to support it. Mouse
! 1862: sequences are just passed through unaltered for the moment.
! 1863: * Big internal reorganisation. Rather than leaving control of the tty solely in
! 1864: the client and piping all data through a socket to it, change so that the
! 1865: server opens the tty again and reads and writes to it directly. This avoids
! 1866: a lot of buffering and copying. Also reorganise the redrawing stuff so that
! 1867: everything goes through screen_draw_* - this makes the code simpler, but
! 1868: still needs broken up more, and all the ways of writing to screens should be
! 1869: more consistent.
! 1870:
! 1871: 26 November 2007
! 1872:
! 1873: * Rather than shifting up one line at a time once the history is full,
! 1874: shift by 10% of the history each time. This is faster.
! 1875: * Add ^A and ^E to copy mode to move to start-of-line/end-of-line.
! 1876:
! 1877: 24 November 2007
! 1878:
! 1879: * Support for alt charset mode (VT100 graphics characters).
! 1880:
! 1881: 23 November 2007
! 1882:
! 1883: * Mostly complete copy & paste. Copy mode entered with C-b [ (copy-mode
! 1884: command). In copy mode, arrow keys/page up/page down/hjkl/C-u/C-f navigate,
! 1885: space or C-space starts selection, and enter or C-w copies and (important!)
! 1886: exits copy mode. C-b ] (paste-buffer) pastes into current window. No
! 1887: extra utility keys (bol/eol/clear selection/etc), only one single buffer,
! 1888: and no buffer manipulation commands (clear/view/etc) yet. The code is also
! 1889: fugly :-(.
! 1890: * history-limit option to set maximum history. Does not apply retroactively to
! 1891: existing windows! Lines take up a variable amount of space, but a reasonable
! 1892: guess for an 80-column terminal is 250 KB per 1000 lines (of history used,
! 1893: an empty history takes no space).
! 1894:
! 1895: 21 November 2007
! 1896:
! 1897: * Create every line as zero length and only expand it as data is written,
! 1898: rather than creating at full size immediately.
! 1899: * Make command output (eg list-keys) go to a scrollable window similar to
! 1900: scroll mode.
! 1901: * Redo screen redrawing so it is a) readable b) split into utility functions
! 1902: that can be used outside screen.c. Use these to make scroll mode only
! 1903: redraw what it has to which gets rid of irritating flickering status box and
! 1904: makes it much faster.
! 1905: * Full line width memory and horizontal scrolling in history.
! 1906: * Initial support for scroll history. = to enter scrolling mode, and then
! 1907: vi keys or up/down/pgup/pgdown to navigate. Q to exit. No horizontal history
! 1908: yet (need per-line sizes) and a few kinks to be worked out (resizing while in
! 1909: history mode will probably cause trouble).
! 1910:
! 1911: 20 November 2007
! 1912:
! 1913: * Fix format string error with "must specify a client" message. Also
! 1914: sprinkle some printflike tags.
! 1915: * tmux 0.1 released.
! 1916:
! 1917: 17 November 2007
! 1918:
! 1919: * (nicm) Add -k option to link-window to kill target window if it exists.
! 1920:
! 1921: 16 November 2007
! 1922:
! 1923: * (nicm) Split in-client display into two columns. This is a hack but not a lot
! 1924: more so than that bit is already and it helps with lots of keys.
! 1925: * (nicm) switch-client command to switch client between different sessions. This
! 1926: is pretty cool:
! 1927:
! 1928: $ tmux bind q switch 0
! 1929: $ tmux bind w switch 1
! 1930:
! 1931: Then you can switch between sessions 0 and 1 with a key :-).
! 1932: * (nicm) Accept "-c client-tty" on command line to allow client manipulation
! 1933: commands, and change detach-/refresh-session to detach-/refresh-client (this
! 1934: loses the -a behaviour, but at some point -session versions may return, and
! 1935: -c will allow fnmatch(3)).
! 1936: * (nicm) List available commands on ambiguous command.
! 1937:
! 1938: 12 November 2007
! 1939:
! 1940: * (nicm) If the terminal supports default colours (AX present), force black
! 1941: background and white foreground to default. This is useful on transparent
! 1942: *terms for programs which don't do it themselves (like most(1)).
! 1943: * (nicm) Fill in the rest of the man page.
! 1944: * (nicm) kill-session command.
! 1945:
! 1946: 09 November 2007
! 1947:
! 1948: * (nicm) C-space is now "^ " not "^@".
! 1949: * (nicm) Support tab (\011).
! 1950: * (nicm) Initial man page outline.
! 1951: * (nicm) -V to show version.
! 1952: * (nicm) rename-session command.
! 1953:
! 1954: 08 November 2007
! 1955:
! 1956: * (nicm) Check for required terminal capabilities on start.
! 1957:
! 1958: 31 October 2007
! 1959:
! 1960: * (nicm) Linux port.
! 1961:
! 1962: 30 October 2007
! 1963:
! 1964: * (nicm) swap-window command. Same as link-window but swaps windows.
! 1965:
! 1966: 26 October 2007
! 1967:
! 1968: * (nicm) Saving scroll region on \e7 causes problems with ncmpc so I guess
! 1969: it is not required.
! 1970: * (nicm) unlink-window command.
! 1971: * (nicm) link-window command to link an existing window into another session
! 1972: (or another index in the same session). Syntax:
! 1973:
! 1974: tmux -s dstname link-window [-i dstidx] srcname srcidx
! 1975:
! 1976: * (nicm) Redo window data structures. The global array remains, but each per-
! 1977: session list is now a RB tree of winlink structures. This disassociates the
! 1978: window index from the array size (allowing arbitrary indexes) which still
! 1979: allowing windows to have multiple indexes.
! 1980:
! 1981: 25 October 2007
! 1982:
! 1983: * (nicm) has-session command: checks if session exists.
! 1984:
! 1985: 24 October 2007
! 1986:
! 1987: * (nicm) Support for \e6n to request cursor position. resize(1) now works.
! 1988: * (nicm) Support for \e7, \e8 save/restore cursor and attribute sequences.
! 1989: Currently don't save mode (probably should). Also change some cases where
! 1990: out-of-bound values are ignored to limit them to within range (there are
! 1991: others than need to be checked too).
! 1992:
! 1993: 23 October 2007
! 1994:
! 1995: * (nicm) Lift limit on session name passed with -s.
! 1996: * (nicm) Show size in session/window lists.
! 1997: * (nicm) Pass tty up to server when client identifies and add a list-clients
! 1998: command to list connected clients.
! 1999:
! 2000: 20 October 2007
! 2001:
! 2002: * (nicm) Add default-command option and change default to be $SHELL rather than
! 2003: $SHELL -l. Also try to read shell from passwd db if $SHELL isn't present.
! 2004:
! 2005: 19 October 2007
! 2006:
! 2007: * (nicm) -n on new-session is now -s, and -n is now the initial window name.
! 2008: This was documented but not implemented :-/.
! 2009: * (nicm) kill-window command, bound to & by default (because it should be hard
! 2010: to hit accidently).
! 2011: * (nicm) bell-style option with three choices: "none" completely ignore bell;
! 2012: "any" pass through a bell in any window to current; "current" ignore bells
! 2013: except in current window. This applies only to the bell terminal signal,
! 2014: the status bar always reflects any bells.
! 2015: * (nicm) Refresh session command.
! 2016:
! 2017: 12 October 2007
! 2018:
! 2019: * (nicm) Add a warning if $TMUX exists on new/attach.
! 2020: * (nicm) send-prefix command. Bound to C-b by default.
! 2021: * (nicm) set status, status-fg, status-bg commands. fg and bg are as a number
! 2022: from 0 to 8 or a string ("red", "blue", etc). status may be 1/0, on/off,
! 2023: yes/no.
! 2024: * (nicm) Make status line mark window in yellow on bell.
! 2025:
! 2026: 04 October 2007
! 2027:
! 2028: * (nicm) -d option to attach to detach all other clients on the same session.
! 2029: * (nicm) Partial resizing support. Still buggy. A C-b S and back sometimes fixes
! 2030: it when it goes wonky.
! 2031: * (mxey) Added my tmux start script as an example (examples/start-tmux.sh).
! 2032: * (mxey) New sessions can now be given a command for their first window.
! 2033: * (mxey) Fixed usage statement for new-window.
! 2034: * (nicm) attach-session (can't believe I forgot it until now!) and list-windows
! 2035: commands.
! 2036: * (nicm) rename-window and select-window commands.
! 2037: * (nicm) set-option command (alias set): "tmux set-option prefix ^A".
! 2038: * (nicm) Key binding and unbinding is back.
! 2039:
! 2040: 03 October 2007
! 2041:
! 2042: * (nicm) {new,next,last,previous}-window.
! 2043: * (nicm) Rewrite command handling so commands are much more generic and the
! 2044: same commands are used for command line and keys (although most will probably
! 2045: need to check how they are called). Currently incomplete (only new/detach/ls
! 2046: implemented). Change: -s is now passed before command again!
! 2047: * (nicm) String number arguments. So you can do: tmux bind ^Q create "blah".
! 2048: * (nicm) Key binding. tmux bind key command [argument] and tmux unbind key.
! 2049: Key names are in a table in key-string.c, plus A is A, ^A is ctrl-A.
! 2050: Possible commands are in cmd.c (look at cmd_bind_table).
! 2051: * (nicm) Move command parsing into the client. Also rename some messages and
! 2052: tidy up a few bits. Lots more tidying up needed :-/.
! 2053:
! 2054: 02 October 2007
! 2055:
! 2056: * (nicm) Redraw client status lines on rename.
! 2057: * (nicm) Error on ambiguous command.
! 2058:
! 2059: 01 October 2007
! 2060:
! 2061: * (nicm) Restore window title handling.
! 2062: * (nicm) Simple uncustomisable status line with window list.
! 2063:
! 2064: 30 September 2007
! 2065:
! 2066: * (nicm) Window info command for debugging, C-b I.
! 2067:
! 2068: 29 September 2007
! 2069:
! 2070: * (nicm) Deleting/inserting lines should follow scrolling region. Fix.
! 2071: * (nicm) Allow creation of detached sessions: "tmux new-session -d".
! 2072: * (nicm) Permit error messages to be passed back for transient clients like
! 2073: rename. Also make rename -i work.
! 2074: * (nicm) Pass through bell in any window to current.
! 2075:
! 2076: 28 September 2007
! 2077:
! 2078: * (nicm) Major rewrite of input parser:
! 2079: - Lose the old weirdness in favour of a state machine.
! 2080: - Merge in parsing from screen.c.
! 2081: - Split key parsing off into a separate file.
! 2082: This is step one towards hopefully allowing a status line. It requires
! 2083: that we output data as if the terminal had one line less than it really does -
! 2084: a serious problem when it comes to things like scrolling. This change
! 2085: consolidates all the range checking and limiting together which should make
! 2086: it easier.
! 2087: * (mxey) Added window renaming, like "tmux rename [-s session] [-i index] name"
! 2088:
! 2089: 27 September 2007
! 2090:
! 2091: * Split "tmux list" into "tmux list-sessions" (ls) and "list-windows" (lsw).
! 2092: * New command session selection:
! 2093: - if name is specified, look for it and use it if it exists, otherwise
! 2094: error
! 2095: - if no name specified, try the current session from $TMUX
! 2096: - if $TMUX doesn't exist, and there is only one session, use it,
! 2097: otherwise error
! 2098:
! 2099: 26 September 2007
! 2100:
! 2101: * Add command aliases, so "ls" is an alias for "list".
! 2102: * Rename some commands and alter syntax to take options after a la CVS. Also
! 2103: change some flags. So:
! 2104:
! 2105: tmux -s/socket -nabc new
! 2106:
! 2107: Becomes:
! 2108:
! 2109: tmux -S/socket new -sabc
! 2110:
! 2111: * Major tidy and split of client/server code.
! 2112:
! 2113: 22 September 2007
! 2114:
! 2115: * Window list command (C-b W). Started by Maximilian Gass, finished by me.
! 2116:
! 2117: 20 September 2007
! 2118:
! 2119: * Specify meta via environment variable (META).
! 2120: * Record last window and ^L key to switch to it. Largely from Maximilian Gass.
! 2121: * Reset ignored signals in child after forkpty, makes ^C work.
! 2122: * Wrap on next/previous. From Maximilian Gass.
! 2123:
! 2124: 19 September 2007
! 2125:
! 2126: * Don't renumber windows on close.
! 2127:
! 2128: 28 August 2007
! 2129:
! 2130: * Scrolling region (\e[r) support.
! 2131:
! 2132: 27 August 2007
! 2133:
! 2134: * Change screen.c to work more logically and hopefully fix heap corruption.
! 2135:
! 2136: 09 July 2007
! 2137:
! 2138: * Initial import to CVS. Basic functions are working, albeit with a couple of
! 2139: showstopper memory bugs and many missing features. Detaching, reattaching,
! 2140: creating new sessions, listing sessions work acceptably for using with shells.
! 2141: Simple curses programs (top, systat, tetris) and more complicated ones (mutt,
! 2142: emacs) that don't require scrolling regions (ESC[r) mostly work fine
! 2143: (including mutt, emacs). No status bar yet and no key remapping or other
! 2144: customisation.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>