Commit Graph

4 Commits

Author SHA1 Message Date
christos a0353c2e8a CHANGES FROM 1.9 to 1.9a 22 February 2014
NOTE:  This is a bug-fix release to address some important bugs which just
missed the 1.9 deadline, but were found afterwards.

Normal Changes
==============

* Fix crash due to uninitialized lastwp member of layout_cell
* Fix -fg/-bg/-style with 256 colour terminals.

CHANGES FROM 1.8 to 1.9, 20 February 2014

NOTE:  This release has bumped the tmux protocol version.  It is therefore
advised that the prior tmux server is restarted when this version of tmux is
installed, to avoid protocol mismatch errors for newer clients trying to
talk to an older running tmux server.

Incompatible Changes
====================

* 88 colour support has been removed.
* 'default-path' has been removed.  The new-window command accepts '-c' to
  cater for this.  The previous value of "." can be replaced with: 'neww -c
  $PWD', the previous value of '' which meant current path of the pane can
  be specified as:  'neww -c "#{pane_current_path}"'

Deprecated Changes
==================

* The single format specifiers:  #A -> #Z (where defined) have been
  deprecated and replaced with longer-named equivalents, as listed in the
  FORMATS section of the tmux manpage.
* The various foo-{fg,bg,attr} commands have been deprecated and replaced
  with equivalent foo-style option instead.  Currently this is still
  backwards-compatible, but will be removed over time.

Normal Changes
==============

* A new environment variable TMUX_TMPDIR is now honoured, allowing the
  socket directory to be set outside of TMPDIR (/tmp/ if not set).
* If -s not given to swap-pane the current pane is assumed.
* A #{pane_syncronized} format specifier has been added to be a conditional
  format if a pane is in a syncronised mode (c.f. syncronize-panes)
* Tmux now runs under Cygwin natively.
* Formats can now be nested within each other and expanded accordingly.
* Added 'automatic-rename-format' option to allow the automatic rename
  mechanism to use something other than the default of
  #{pane_current_command}.
* new-session learnt '-c' to specify the starting directory for that session
  and all subsequent windows therein.
* The session name is now shown in the message printed to the terminal when
  a session is detached.
* Lots more format specifiers have been added.
* Server race conditions have been fixed; in particular commands are not run
  until after the configuration file is read completely.
* Case insensitive searching in tmux's copy-mode is now possible.
* attach-session and switch-client learnt the '-t' option to accept a window
  and/or a pane to use.
* Copy-mode is only exited if no selection is in progress.
* Paste key in copy-mode is now possible to enter text from the clipboard.
* status-interval set to '0' now works as intended.
* tmux now supports 256 colours running under fbterm.
* Many bug fixes!

CHANGES FROM 1.7 to 1.8, 26 March 2013

Incompatible Changes
====================

* layout redo/undo has been removed.

Normal Changes
==============

* Add halfpage up/down bindings to copy mode.
* Session choosing fixed to work with unattached sessions.
* New window options window-status-last-{attr,bg,fg} to denote the last
  window which was active.
* Scrolling in copy-mode now scrolls the region without moving the mouse
  cursor.
* run-shell learnt '-t' to specify the pane to use when displaying output.
* Support for middle-click pasting.
* choose-tree learns '-u' to start uncollapsed.
* select-window learnt '-T' to toggle to the last window if it's already
  current.
* New session option 'assume-paste-time' for pasting text versus key-binding
  actions.
* choose-* commands now work outside of an attached client.
* Aliases are now shown for list-commands command.
* Status learns about formats.
* Free-form options can be set with set-option if prepended with an '@'
  sign.
* capture-pane learnt '-p' to send to stdout, and '-e' for capturing escape
  sequences, and '-a' to capture the alternate screen, and '-P' to dump
  pending output.
* Many new formats added (client_session, client_last_session, etc.)
* Control mode, which is a way for a client to send tmux commands.
  Currently more useful to users of iterm2.
* resize-pane learnt '-x' and '-y' for absolute pane sizing.
* Config file loading now reports errors from all files which are loaded via
  the 'source-file' command.
* 'copy-pipe' mode command to copy selection and pipe the selection to a
  command.
* Panes can now emit focus notifications for certain applications
  which use those.
* run-shell and if-shell now accept formats.
* resize-pane learnt '-Z' for zooming a pane temporarily.
* new-session learnt '-A' to make it behave like attach-session.
* set-option learnt '-o' to prevent setting an option which is already set.
* capture-pane and show-options learns '-q' to silence errors.
* New command 'wait-for' which blocks a client until woken up again.
* Resizing panes will now reflow the text inside them.
* Lots and lots of bug fixes, fixing memory-leaks, etc.
* Various manpage improvements.

CHANGES FROM 1.6 to 1.7, 13 October 2012

* tmux configuration files now support line-continuation with a "\" at the
  end of a line.
* New option status-position to move the status line to the top or bottom of
  the screen.
* Enforce history-limit option when clearing the screen.
* Give each window a unique id, like panes but prefixed with @.
* Add pane id to each pane in layout description (while still accepting
  the old form).
* Provide defined ways to set the various default-path possibilities: ~
  for home directory, . for server start directory, - for session start
  directory and empty for the pane's working directory (the default). All
  can also be used as part of a relative path (eg -/foo). Also provide -c
  flags to neww and splitw to override default-path setting.
* Add -l flag to send-keys to send input literally (without translating
  key names).
* Allow a single option to be specified to show-options to show just that
  option.
* New command "move-pane" (like join-pane but allows the same window).
* join-pane and move-pane commands learn "-b" option to place the pane to
  the left or above.
* Support for bracketed-paste mode.
* Allow send-keys command to accept hex values.
* Add locking around "start-server" to avoid race-conditions.
* break-pane learns -P/-F arguments for display formatting.
* set-option learns "-q" to make it quiet, and not print out anything.
* copy mode learns "wrap-search" option.
* Add a simple form of output rate limiting by counting the number of
  certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
  exceeds a threshold (current default 250/millisecond), start to redraw
  the pane every 100 milliseconds instead of making each change as it
  comes. Two configuration options - c0-change-trigger and
  c0-change-interval.
* find-window learns new flags:  "-C", "-N", "-T" to match against either or
  all of a window's content, name, or title.  Defaults to all three options
  if none specified.
* find-window automatically selects the appropriate pane for the found
  matches.
* show-environment can now accept one option to show that environment value.
* Exit mouse mode when end-of-screen reached when scrolling with the mouse
  wheel.
* select-layout learns -u and -U for layout history stacks.
* kill-window, detach-client, kill-session all  learn "-a" option for
  killing all but the current thing specified.
* move-window learns "-r" option to renumber window sequentially in a
  session.
* New session option "renumber-windows" to automatically renumber windows in
  a session when a window is closed.  (see "move-window -r").
* Only enter copy-mode on scroll up.
* choose-* and list-* commands all use "-F" for format specifiers.
* When spawning external commands, the value from the "default-shell" option
  is now used, rather than assuming /bin/sh.
* New choose-tree command to render window/sessions as a tree for selection.
* display-message learns new format options.
* For linked-windows across sessions, all flags for that window are now
  cleared across sessions.
* Lots and lots of bug fixes, fixing memory-leaks, etc.
* Various manpage improvements.

CHANGES FROM 1.5 TO 1.6, 23 January 2012

* Extend the mode-mouse option to add a third choice which means the mouse
  does not enter copy mode.
* Add a -r flag to switch-client to toggle the client read-only flag.
* Add pane-base-index option.
* Support \ for line continuation in the configuration file.
* Framework for more powerful formatting of command output and use it for
  list-{panes,windows,sessions}. This allows more descriptive replacements
  (such as #{session_name}) and conditionals.
* Mark dead panes with some text saying they are dead.
* Reject $SHELL if it is not a full path.
* Add -S option to refresh-client to redraw status line.
* Add an else clause for if-shell.
* Try to resolve relative paths for loadb and saveb (first, using client
  working directory, if any, then default-path or session working directory).
* Support for \e[3J to clear the history and send the corresponding
  terminfo code (E3) before locking.
* When in copy mode, make repeat count indicate buffer to replace, if used.
* Add screen*:XT to terminal-overrides for tmux-in-tmux.
* Status-line message attributes added.
* Move word-separators to be a session rather than window option.
* Change the way the working directory for new processes is discovered. If
  default-path isn't empty, it is used. Otherwise, if a new window is created
  from the command-line, the working directory of the client is used. If not,
  platform specific code is used to retrieve the current working directory
  of the process in the active pane. If that fails, the directory where the
  session was created is used, instead.
* Do not change the current pane if both mouse-select-{pane,window} are
  enabled.
* Add \033[s and \033[u to save and restore cursor position.
* Allow $HOME to be used as default-path.
* Add CNL and CPL escape sequences.
* Calculate last position correctly for UTF-8 wide characters.
* Add an option allow-rename to disable the window rename escape sequence.
* Attributes for each type of status-line alert (ie bell, content and
  activity) added. Therefore, remove the superfluous options
  window-status-alert-{attr,bg,fg}.
* Add a -R flag to send-keys to reset the terminal.
* Add strings to allow the aixterm bright colours to be used when
  configuring colours.
* Drop the ability to have a list of keys in the prefix in favour of two
  separate options, prefix and prefix2.
* Flag -2 added to send-prefix to send the secondary prefix key.
* Show pane size in top right of display panes mode.
* Some memory leaks plugged.
* More command-prompt editing improvements.
* Various manpage improvements.
* More Vi mode improvements.
2014-07-24 14:28:54 +00:00
christos 928fc49505 CHANGES FROM 1.9 to 1.9a 22 February 2014
NOTE:  This is a bug-fix release to address some important bugs which just
missed the 1.9 deadline, but were found afterwards.

Normal Changes
==============

* Fix crash due to uninitialized lastwp member of layout_cell
* Fix -fg/-bg/-style with 256 colour terminals.

CHANGES FROM 1.8 to 1.9, 20 February 2014

NOTE:  This release has bumped the tmux protocol version.  It is therefore
advised that the prior tmux server is restarted when this version of tmux is
installed, to avoid protocol mismatch errors for newer clients trying to
talk to an older running tmux server.

Incompatible Changes
====================

* 88 colour support has been removed.
* 'default-path' has been removed.  The new-window command accepts '-c' to
  cater for this.  The previous value of "." can be replaced with: 'neww -c
  $PWD', the previous value of '' which meant current path of the pane can
  be specified as:  'neww -c "#{pane_current_path}"'

Deprecated Changes
==================

* The single format specifiers:  #A -> #Z (where defined) have been
  deprecated and replaced with longer-named equivalents, as listed in the
  FORMATS section of the tmux manpage.
* The various foo-{fg,bg,attr} commands have been deprecated and replaced
  with equivalent foo-style option instead.  Currently this is still
  backwards-compatible, but will be removed over time.

Normal Changes
==============

* A new environment variable TMUX_TMPDIR is now honoured, allowing the
  socket directory to be set outside of TMPDIR (/tmp/ if not set).
* If -s not given to swap-pane the current pane is assumed.
* A #{pane_syncronized} format specifier has been added to be a conditional
  format if a pane is in a syncronised mode (c.f. syncronize-panes)
* Tmux now runs under Cygwin natively.
* Formats can now be nested within each other and expanded accordingly.
* Added 'automatic-rename-format' option to allow the automatic rename
  mechanism to use something other than the default of
  #{pane_current_command}.
* new-session learnt '-c' to specify the starting directory for that session
  and all subsequent windows therein.
* The session name is now shown in the message printed to the terminal when
  a session is detached.
* Lots more format specifiers have been added.
* Server race conditions have been fixed; in particular commands are not run
  until after the configuration file is read completely.
* Case insensitive searching in tmux's copy-mode is now possible.
* attach-session and switch-client learnt the '-t' option to accept a window
  and/or a pane to use.
* Copy-mode is only exited if no selection is in progress.
* Paste key in copy-mode is now possible to enter text from the clipboard.
* status-interval set to '0' now works as intended.
* tmux now supports 256 colours running under fbterm.
* Many bug fixes!

CHANGES FROM 1.7 to 1.8, 26 March 2013

Incompatible Changes
====================

* layout redo/undo has been removed.

Normal Changes
==============

* Add halfpage up/down bindings to copy mode.
* Session choosing fixed to work with unattached sessions.
* New window options window-status-last-{attr,bg,fg} to denote the last
  window which was active.
* Scrolling in copy-mode now scrolls the region without moving the mouse
  cursor.
* run-shell learnt '-t' to specify the pane to use when displaying output.
* Support for middle-click pasting.
* choose-tree learns '-u' to start uncollapsed.
* select-window learnt '-T' to toggle to the last window if it's already
  current.
* New session option 'assume-paste-time' for pasting text versus key-binding
  actions.
* choose-* commands now work outside of an attached client.
* Aliases are now shown for list-commands command.
* Status learns about formats.
* Free-form options can be set with set-option if prepended with an '@'
  sign.
* capture-pane learnt '-p' to send to stdout, and '-e' for capturing escape
  sequences, and '-a' to capture the alternate screen, and '-P' to dump
  pending output.
* Many new formats added (client_session, client_last_session, etc.)
* Control mode, which is a way for a client to send tmux commands.
  Currently more useful to users of iterm2.
* resize-pane learnt '-x' and '-y' for absolute pane sizing.
* Config file loading now reports errors from all files which are loaded via
  the 'source-file' command.
* 'copy-pipe' mode command to copy selection and pipe the selection to a
  command.
* Panes can now emit focus notifications for certain applications
  which use those.
* run-shell and if-shell now accept formats.
* resize-pane learnt '-Z' for zooming a pane temporarily.
* new-session learnt '-A' to make it behave like attach-session.
* set-option learnt '-o' to prevent setting an option which is already set.
* capture-pane and show-options learns '-q' to silence errors.
* New command 'wait-for' which blocks a client until woken up again.
* Resizing panes will now reflow the text inside them.
* Lots and lots of bug fixes, fixing memory-leaks, etc.
* Various manpage improvements.

CHANGES FROM 1.6 to 1.7, 13 October 2012

* tmux configuration files now support line-continuation with a "\" at the
  end of a line.
* New option status-position to move the status line to the top or bottom of
  the screen.
* Enforce history-limit option when clearing the screen.
* Give each window a unique id, like panes but prefixed with @.
* Add pane id to each pane in layout description (while still accepting
  the old form).
* Provide defined ways to set the various default-path possibilities: ~
  for home directory, . for server start directory, - for session start
  directory and empty for the pane's working directory (the default). All
  can also be used as part of a relative path (eg -/foo). Also provide -c
  flags to neww and splitw to override default-path setting.
* Add -l flag to send-keys to send input literally (without translating
  key names).
* Allow a single option to be specified to show-options to show just that
  option.
* New command "move-pane" (like join-pane but allows the same window).
* join-pane and move-pane commands learn "-b" option to place the pane to
  the left or above.
* Support for bracketed-paste mode.
* Allow send-keys command to accept hex values.
* Add locking around "start-server" to avoid race-conditions.
* break-pane learns -P/-F arguments for display formatting.
* set-option learns "-q" to make it quiet, and not print out anything.
* copy mode learns "wrap-search" option.
* Add a simple form of output rate limiting by counting the number of
  certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
  exceeds a threshold (current default 250/millisecond), start to redraw
  the pane every 100 milliseconds instead of making each change as it
  comes. Two configuration options - c0-change-trigger and
  c0-change-interval.
* find-window learns new flags:  "-C", "-N", "-T" to match against either or
  all of a window's content, name, or title.  Defaults to all three options
  if none specified.
* find-window automatically selects the appropriate pane for the found
  matches.
* show-environment can now accept one option to show that environment value.
* Exit mouse mode when end-of-screen reached when scrolling with the mouse
  wheel.
* select-layout learns -u and -U for layout history stacks.
* kill-window, detach-client, kill-session all  learn "-a" option for
  killing all but the current thing specified.
* move-window learns "-r" option to renumber window sequentially in a
  session.
* New session option "renumber-windows" to automatically renumber windows in
  a session when a window is closed.  (see "move-window -r").
* Only enter copy-mode on scroll up.
* choose-* and list-* commands all use "-F" for format specifiers.
* When spawning external commands, the value from the "default-shell" option
  is now used, rather than assuming /bin/sh.
* New choose-tree command to render window/sessions as a tree for selection.
* display-message learns new format options.
* For linked-windows across sessions, all flags for that window are now
  cleared across sessions.
* Lots and lots of bug fixes, fixing memory-leaks, etc.
* Various manpage improvements.

CHANGES FROM 1.5 TO 1.6, 23 January 2012

* Extend the mode-mouse option to add a third choice which means the mouse
  does not enter copy mode.
* Add a -r flag to switch-client to toggle the client read-only flag.
* Add pane-base-index option.
* Support \ for line continuation in the configuration file.
* Framework for more powerful formatting of command output and use it for
  list-{panes,windows,sessions}. This allows more descriptive replacements
  (such as #{session_name}) and conditionals.
* Mark dead panes with some text saying they are dead.
* Reject $SHELL if it is not a full path.
* Add -S option to refresh-client to redraw status line.
* Add an else clause for if-shell.
* Try to resolve relative paths for loadb and saveb (first, using client
  working directory, if any, then default-path or session working directory).
* Support for \e[3J to clear the history and send the corresponding
  terminfo code (E3) before locking.
* When in copy mode, make repeat count indicate buffer to replace, if used.
* Add screen*:XT to terminal-overrides for tmux-in-tmux.
* Status-line message attributes added.
* Move word-separators to be a session rather than window option.
* Change the way the working directory for new processes is discovered. If
  default-path isn't empty, it is used. Otherwise, if a new window is created
  from the command-line, the working directory of the client is used. If not,
  platform specific code is used to retrieve the current working directory
  of the process in the active pane. If that fails, the directory where the
  session was created is used, instead.
* Do not change the current pane if both mouse-select-{pane,window} are
  enabled.
* Add \033[s and \033[u to save and restore cursor position.
* Allow $HOME to be used as default-path.
* Add CNL and CPL escape sequences.
* Calculate last position correctly for UTF-8 wide characters.
* Add an option allow-rename to disable the window rename escape sequence.
* Attributes for each type of status-line alert (ie bell, content and
  activity) added. Therefore, remove the superfluous options
  window-status-alert-{attr,bg,fg}.
* Add a -R flag to send-keys to reset the terminal.
* Add strings to allow the aixterm bright colours to be used when
  configuring colours.
* Drop the ability to have a list of keys in the prefix in favour of two
  separate options, prefix and prefix2.
* Flag -2 added to send-prefix to send the secondary prefix key.
* Show pane size in top right of display panes mode.
* Some memory leaks plugged.
* More command-prompt editing improvements.
* Various manpage improvements.
* More Vi mode improvements.
2014-07-24 14:22:49 +00:00
jmmv d530c4d0ae Import tmux 1.5:
CHANGES FROM 1.4 TO 1.5, 09 July 2011

* Support xterm mouse modes 1002 and 1003.
* Change from a per-session stack of buffers to one global stack. This renders
  copy-buffer useless and makes buffer-limit now a server option.
* Fix most-recently-used choice by avoiding reset the activity timer for
  unattached sessions every second.
* Add a -P option to new-window and split-window to print the new window or
  pane index in target form (useful to pass it into other commands).
* Handle a # at the end of a replacement string (such as status-left)
  correctly.
* Support for UTF-8 mouse input (\033[1005h) which was added in xterm 262.
  If the new mouse-utf8 option is on, UTF-8 mouse input is enabled for all
  UTF-8 terminals. The option defaults to on if LANG etc are set in the same
  manner as the utf8 option.
* Support for HP-UX.
* Accept colours of the hex form #ffffff and translate to the nearest from the
  xterm(1) 256-colour set.
* Clear the non-blocking IO flag (O_NONBLOCK) on the stdio file descriptors
  before closing them (fixes things like "tmux ls && cat").
* Use TMPDIR if set.
* Fix next and previous session functions to actually work.
* Support -x and -y for new-session to specify the initial size of the window
  if created detached with -d.
* Make bind-key accept characters with the top-bit-set and print them as octal.
* Set $TMUX without the session when background jobs are run.
* Simplify the way jobs work and drop the persist type, so all jobs are
  fire-and-forget.
* Accept tcgetattr/tcsetattr(3) failure, fixes problems with fatal() if the
  terminal disappears while locked.
* Add a -P option to detach to HUP the client's parent process (usually causing
  it to exit as well).
* Support passing through escape sequences to the underlying terminal by using
  DCS with a "tmux;" prefix.
* Prevent tiled producing a corrupt layout when only one column is needed.
* Give each pane created in a tmux server a unique id (starting from 0), put it
  in the TMUX_PANE environment variable and accept it as a target.
* Allow a start and end line to be specified for capture-pane which may be
  negative to capture part of the history.
* Add -a and -s options to lsp to list all panes in the server or session
  respectively. Likewise add -s to lsw.
* Change -t on display-message to be target-pane for the #[A-Z] replacements
  and add -c as target-client.
* The attach-session command now prefers the most recently used unattached
  session.
* Add -s option to detach-client to detach all clients attached to a session.
* Add -t to list-clients.
* Change window with mouse wheel over status line if mouse-select-window is on.
* When mode-mouse is on, automatically enter copy mode when the mouse is
  dragged or the mouse wheel is used. Also exit copy mode when the mouse wheel
  is scrolled off the bottom.
* Provide #h character pair for short hostname (no domain).
* Don't use strnvis(3) for the title as it breaks UTF-8.
* Use the tsl and fsl terminfo(5) capabilities to update terminal title and
  automatically fill them in on terminals with the XT capability (which means
  their title setting is xterm-compatible).
* Add a new option, mouse-resize-pane. When on, panes may be resized by
  dragging their borders.
* Fix crash by resetting last pane on {break,swap}-pane across windows.
* Add three new copy-mode commands - select-line, copy-line, copy-end-of-line.
* Support setting the xterm clipboard when copying from copy mode using the
  xterm escape sequence for the purpose (if xterm is configured to allow it).
* Support xterm(1) cursor colour change sequences through terminfo(5) Cc
  (set) and Cr (reset) extensions.
* Support DECSCUSR sequence to set the cursor style with two new terminfo(5)
  extensions, Cs and Csr.
* Make the command-prompt custom prompts recognize the status-left option
  character pairs.
* Add a respawn-pane command.
* Add a couple of extra xterm-style keys that gnome terminal provides.
* Allow the initial context on prompts to be set with the new -I option to
  command-prompt. Include the current window and session name in the prompt
  when renaming and add a new key binding ($) for rename session.
* Option bell-on-alert added to trigger the terminal bell when there is an
  alert.
* Change the list-keys format so that it shows the keys using actual tmux
  commands which should be able to be directly copied into the config file.
* Show full targets for lsp/lsw -a.
* Make confirm-before prompt customizable with -p option like command-prompt
  and add the character pairs #W and #P to the default kill-{pane,window}
  prompts.
* Avoid sending data to suspended/locked clients.
* Small memory leaks in error paths plugged.
* Vi mode improvements.
2011-08-17 18:40:03 +00:00
jmmv 698d5317f6 Initial import of tmux-1.4:
tmux is a "terminal multiplexer".  It enables a number of terminals (or
windows) to be accessed and controlled from a single terminal.  tmux is
intended to be a simple, modern, BSD-licensed alternative to programs
such as GNU screen.

The import of tmux is intended to replace window(1) in the not-too-distant
future.  For reference, tmux is also present in the base system of FreeBSD
and OpenBSD.

Approved by core@.
2011-03-10 09:15:36 +00:00