diff options
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 2144 |
1 files changed, 2144 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES new file mode 100644 index 00000000..d7fd9b8f --- /dev/null +++ b/CHANGES @@ -0,0 +1,2144 @@ +CHANGES FROM 2.3 to 2.4 20 April 2017 + +Incompatible Changes +==================== + +* Key tables have undergone major changes. Mode key tables are no longer + separate from the main key tables. All mode key tables have been removed, + together with the -t flag to bind-key and unbind-key. + + The emacs-edit, vi-edit, emacs-choose and vi-choose tables have been replaced + by fixed key bindings in the command prompt and choose modes. The mode-keys + and status-keys options remain. + + The emacs-copy and vi-copy tables have been replaced by the copy-mode and + copy-mode-vi tables. Commands are sent using the -X and -N flags to + send-keys. So the following: + + bind -temacs-copy C-Up scroll-up + bind -temacs-copy -R5 WheelUpPane scroll-up + + Becomes: + + bind -Tcopy-mode C-Up send -X scroll-up + bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up + + These changes allows the full command parser (including command sequences) and + command set to be used - for example, the normal command prompt with editing + and history is now used for searching, jumping, and so on instead of a custom + one. The default C-r binding is now: + + bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward-incremental '%%'" + + There are also some new commmands available with send -X, such as + copy-pipe-and-cancel. +* set-remain-on-exit has gone -- can be achieved with hooks instead. +* Hooks: before hooks have been removed and only a selection of commands now + have after hooks (they are no longer automatic). Additional hooks have been + added. +* The xterm-keys option now defaults to on. + +Normal Changes +============== + +* Support for mouse double and triple clicks. +* BCE (Background Colour Erase) is now supported. +* All occurrences of a search string in copy mode are now highlighted; + additionally, the number of search results is displayed. The highlighting + updates interactively with the default emacs key bindings (incremental + search). +* source-file now understands glob patterns. +* Formats now have simple comparisons: + + #{==:a,b} + #{!=:a,b} + +* There are the following new formats: + + - #{version} -- the tmux server version; + - #{client_termtype} -- the terminal type of the client; + - #{client_name} -- the name of a client; + - #{client_written} -- the number of bytes written to the client. + +* The configuration file now accepts %if/%endif conditional blocks which are + processed when it is parsed; the argument is a format string (useful with the + new format comparison options). +* detach-client now has -E to execute a command replacing the client instead of + exiting. +* Add support for custom command aliases, this is an array option which + contains items of the form "alias=command". This is consulted when an + unknown command is parsed. +* break-pane now has -n to specify the new window name. +* OSC 52 support has been added for programs inside tmux to set a tmux buffer. +* The mouse "all event" mode (1003) is now supported. +* Palette setting is now possible (OSC 4 and 104). +* Strikethrough support (a recent terminfo is required). +* Grouped sessions can now be named (new -t). +* terminal-overrides and update-environment are now array options (the previous + set -ag syntax should work without change). +* There have been substantial performance improvements. + +CHANGES FROM 2.2 to 2.3 29 September 2016 + +Incompatible Changes +==================== + +None. + +Normal Changes +============== + +* New option 'pane-border-status' to add text in the pane borders. +* Support for hooks on commands: 'after' and 'before' hooks. +* 'source-file' understands '-q' to suppress errors for nonexistent files. +* Lots of UTF8 improvements, especially on MacOS. +* 'window-status-separator' understands #[] expansions. +* 'split-window' understands '-f' for performing a full-width split. +* Allow report count to be specified when using 'bind-key -R'. +* 'set -a' for appending to user options (@foo) is now supported. +* 'display-panes' can now accept a command to run, rather than always + selecting the pane. + +CHANGES FROM 2.1 to 2.2 10 April 2016 + +Incompatible Changes +==================== + +* The format strings which referenced time have been removed. Instead: + + #{t:window_activity} + +can be used. + +* Support for TMPDIR has been removed. Use TMUX_TMPDIR instead. +* UTF8 detection now happens automatically if the client supports it, hence + the: + + mouse-utf8 + utf8 + + options has been removed. +* The: + + mouse_utf8_flag + + format string has been removed. +* The -I option to show-messages has been removed. See: + + #{t:start_time} + + format option instead. + +Normal Changes +============== + +* Panes are unzoomed with selectp -LRUD +* New formats added: + + #{scroll_position} + #{socket_path} + #{=10:...} -- limit to N characters (from the start) + #{=-10:...} -- limit to N characters (from the end) + #{t:...} -- used to format time-based formats + #{b:...} -- used to ascertain basename from string + #{d:...} -- used to ascertain dirname from string + #{s:...} -- used to perform substitutions on a string + +* Job output is run via the format system, so formats work again +* If display-time is set to 0, then the indicators wait for a key to be + pressed. +* list-keys and list-commands can be run without starting the tmux server. +* kill-session learns -C to clear all alerts in all windows of the session. +* Support for hooks (internal for now), but hooks for the following have been + implemented: + + alert-bell + alert-silence + alert-activity + client-attached + client-detached + client-resized + pane-died + pane-exited + +* RGB (24bit) colour support. The 'Tc' flag must be set in the external TERM + entry (using terminal-overrides or a custom terminfo entry). + + +CHANGES FROM 2.0 to 2.1 18 October 2015 + +Incompatible Changes +==================== + +* Mouse-mode has been rewritten. There's now no longer options for: + - mouse-resize-pane + - mouse-select-pane + - mouse-select-window + - mode-mouse + + Instead there is just one option: 'mouse' which turns on mouse support + entirely. +* 'default-terminal' is now a session option. Furthermore, if this is set + to 'screen-*' then emulate what screen does. If italics are wanted, this + can be set to 'tmux' but this is still new and not necessarily supported + on all platforms with older ncurses installs. +* The c0-* options for rate-limiting have been removed. Instead, a backoff + approach is used. + +Normal Changes +============== + +* New formats: + - session_activity + - window_linked + - window_activity_format + - session_alerts + - session_last_attached + - client_pid + - pid +* 'copy-selection', 'append-selection', 'start-named-buffer' now understand + an '-x' flag to prevent it exiting copying mode. +* 'select-pane' now understands '-P' to set window/pane background colours. +* 'renumber-windows' now understands windows which are unlinked. +* 'bind' now understands multiple key tables. Allows for key-chaining. +* 'select-layout' understands '-o' to undo the last layout change. +* The environment is updated when switching sessions as well as attaching. +* 'select-pane' now understands '-M' for marking a pane. This marked pane + can then be used with commands which understand src-pane specifiers + automatically. +* If a session/window target is prefixed with '=' then only an exact match + is considered. +* 'move-window' understands '-a'. +* 'update-environment' understands '-E' when attach-session is used on an + already attached client. +* 'show-environment' understands '-s' to output Bourne-compatible commands. +* New option: 'history-file' to save/restore command prompt history. +* Copy mode is exited if the history is cleared whilst in copy-mode. +* 'copy-mode' learned '-e' to exit copy-mode when scrolling to end. + +CHANGES FROM 1.9a to 2.0 6 March 2015 + +Incompatible Changes +==================== + +* The choose-list command has been removed. +* 'terminal-overrides' is now a server option, not a session option. +* 'message-limit' is now a server option, not a session option. +* 'monitor-content' option has been removed. +* 'pane_start_path' option has been removed. +* The "info" mechanism which used to (for some commands) provide feedback + has been removed, and like other commands, they now produce nothing on + success. + +Normal Changes +============== + +* tmux can now write an entry to utmp if the library 'utempter' is present + at compile time. +* set-buffer learned append mode (-a), and a corresponding + 'append-selection' command has been added to copy-mode. +* choose-mode now has the following commands which can be bound: + - start-of-list + - end-of-list + - top-line + - bottom-line + +* choose-buffer now understands UTF-8. +* Pane navigation has changed: + - The old way of always using the top or left if the choice is ambiguous. + - The new way of remembering the last used pane is annoying if the + layout is balanced and the leftmost is obvious to the user (because + clearly if we go right from the top-left in a tiled set of four we want + to end up in top-right, even if we were last using the bottom-right). + + So instead, use a combination of both: if there is only one possible + pane alongside the current pane, move to it, otherwise choose the most + recently used of the choice. +* 'set-buffer' can now be told to give names to buffers. +* The 'new-session', 'new-window', 'split-window', and 'respawn-pane' commands + now understand multiple arguments and handle quoting problems correctly. +* 'capture-pane' understands '-S-' to mean the start of the pane, and '-E-' to + mean the end of the pane. +* Support for function keys beyond F12 has changed. The following explains: + - F13-F24 are S-F1 to S-F12 + - F25-F36 are C-F1 to C-F12 + - F37-F48 are C-S-F1 to C-S-F12 + - F49-F60 are M-F1 to M-F12 + - F61-F63 are M-S-F1 to M-S-F3 + + Therefore, F13 becomes a binding of S-F1, etc. +* Support using pane id as part of session or window specifier (so % means + session-of-%1 or window-of-%1) and window id as part of session + (so @1 means session-of-@1). +* 'copy-pipe' command now understands formats via -F +* 'if-shell' command now understands formats via -F +* 'split-window' and 'join-window' understand -b to create the pane to the left + or above the target pane. + +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_synchronized} format specifier has been added to be a conditional + format if a pane is in a synchronised mode (c.f. synchronize-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. + +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. + +CHANGES FROM 1.3 TO 1.4, 27 December 2010 + +* Window bell reporting fixed. +* Show which pane is active in the list-panes output. +* Backoff reworked. +* Prevent the server from dying when switching into copy mode when already + in a different mode. +* Reset running jobs when the status line is enabled or disabled. +* Simplify xterm modifier detection. +* Avoid crashing in copy mode if the screen size is too small for the + indicator. +* Flags -n and -p added to switch-client. +* Use UTF-8 line drawing characters on UTF-8 terminals, thus fixing some + terminals (eg putty) which disable the vt100 ACS mode switching sequences + in UTF-8 mode. On terminals without ACS, use ASCII equivalents. +* New server option exit-unattached added. +* New session option destroy-unattached added. +* Fall back on normal session choice method if $TMUX exists but is invalid + rather than rejecting. +* Mark repeating keys with "(repeat)" in the key list. +* When removing a pane, don't change the active pane unless the active pane + is actually the one being removed. +* New command last-pane added. +* AIX fixes. +* Flag -a added to unbind-key. +* Add XAUTHORITY to update-environment. +* More info regarding window and pane flags is now shown in list-*. +* If VISUAL or EDITOR contains "vi" configure mode-keys and status-key to vi. +* New window option monitor-silence and session option visual-silence added. +* In the built-in layouts distribute the panes more evenly. +* Set the default value of main-pane-width to 80 instead of 81. +* Command-line flag -V added. +* Instead of keeping a per-client prompt history make it global. +* Fix rectangle copy to behave like emacs (the cursor is not part of the + selection on the right edge but on the left it is). +* Flag -l added to switch-client. +* Retrieve environment variables from the global environment rather than + getenv(3), thus allowing them to be updated during the configuration file. +* New window options other-pane-{height,width} added. +* More minor bugs fixed and manpage improvements. + +CHANGES FROM 1.2 TO 1.3, 18 July 2010 + +* New input parser. +* Flags to move through panes -UDLR added to select-pane. +* Commands up-pane, and down-pane removed, since equivalent behaviour is now + available through the target flag (-t:+ and -t:-). +* Jump-forward/backward in copy move (based on vi's F, and f commands). +* Make paste-buffer accept a pane as a target. +* Flag -a added to new-window to insert a window after an existing one, moving + windows up if necessary. +* Merge more mode into copy mode. +* Run job commands explicitly in the global environment (which can be modified + with setenv -g), rather than with the environment tmux started with. +* Use the machine's hostname as the default title, instead of an empty string. +* Prevent double free if the window option remain-on-exit is set. +* Key string conversions rewritten. +* Mark zombie windows as dead in the choose-window list. +* Tiled layout added. +* Signal handling reworked. +* Reset SIGCHLD after fork to fix problems with some shells. +* Select-prompt command removed. Therefore, bound ' to command-prompt -p index + "select-window -t:%%" by default. +* Catch SIGHUP and terminate if running as a client, thus avoiding clients from + being left hanging around when, for instance, a SSH session is disconnected. +* Solaris 9 fixes (such as adding compat {get,set}env(3) code). +* Accept none instead of default for attributes. +* Window options window-status-alert-{alert,bg,fg} added. +* Flag -s added to the paste-buffer command to specify a custom separator. +* Allow dragging to make a selection in copy mode if the mode-mouse option is + set. +* Support the mouse scroll wheel. +* Make pipe-pane accept special character sequences (eg #I). +* Fix problems with window sizing when starting tmux from .xinitrc. +* Give tmux sockets (but not the containing folder) group permissions. +* Extend the target flags (ie -t) to accept an offset (for example -t:+2), and + make it wrap windows, and panes. +* New command choose-buffer added. +* New server option detach-on-destroy to set what happens to a client when the + session it is attached to is destroyed. If on (default), the client is + detached. Otherwise, the client is switched to the most recently active of + the remaining sessions. +* The commands load-buffer, and save-buffer now accept a dash (-) as the file + to read from stdin, or write to stdout. +* Custom layouts added. +* Additional code reduction, bug fixes, and manpage enhancements. + +CHANGES FROM 1.1 TO 1.2, 10 March 2010 + +* Switch to libevent. +* Emulate the ri (reverse index) capability, ergo allowing tmux to at least + start on Sun consoles (TERM=sun, or sun-color). +* Assign each entry a number, or lowercase letter in choose mode, and accept + that as a shortcut key. +* Permit top-bit-set characters to be entered in the status line. +* Mark no-prefix keys with (no prefix), rather than [] in list-keys. +* New command show-messages (alias showmsgs), and new session option + message-limit, to show a per-client log of status lines messages up to the + number defined by message-limit. +* Do not interpret #() for display-message to avoid leaking commands. +* New window options window-status-format, and window-status-current-format to + control the format of each window in the status line. +* Add a -p flag to display-message to print the output, instead of displaying + it in the status line. +* Emulate il1, dl1, ich1 to run with vt100 feature set. +* New command capture-pane (alias capturep) to copy the entire pane contents + to a paste buffer. +* Avoid duplicating code by adding a -w flag to set-option, and show-options to + set, and show window options. The commands set-window-option, and + show-window-options are now aliases. +* Panes can now be referred to as top, bottom, top-left, etc. +* Add server-wide options, which can be set with set-option -s, and shown with + show-options -s. +* New server option quiet (like -q from the command line). +* New server option escape-time to set the timeout used to detect if escapes + are alone, part of a function key, or meta sequence. +* New session options pane-active-border-bg, pane-active-border-fg, + pane-border-bg, and pane-border-fg to set pane colours. +* Make split-window accept a pane target, instead of a window. +* New command join-pane (alias joinp) to split, and move an existing pane into + the space (the opposite of break-pane), thus simplifying calls to + split-window, followed by move-window. +* Permit S- prefix on keys for shift when the terminal/terminfo supports them. +* Window targets (-t flag) can now refer to the last window (!), next (+), and + previous (-) window by number. +* Mode keys to jump to the bottom/top of history, end of the next word, scroll + up/down, and reverse search in copy mode. +* New session option display-panes-active-colour to display the active pane in + a different colour with the display-panes command. +* Read the socket path from $TMUX if it's present, and -L, and -S are not + given. +* Vi-style mode keys B, W, and E to navigate between words in copy mode. +* Start in more mode when configuration file errors are detected. +* Rectangle copy support added. +* If attach-session was specified with the -r flag, make the client read-only. +* Per-window alternate-screen option. +* Make load-buffer work with FIFOs. +* New window option word-separators to set the characters considered as word + separators in copy mode. +* Permit keys in copy mode to be prefixed by a repeat count, entered with [1-9] + in vi mode, or M-[1-9] in emacs mode. +* utf8 improvements. +* As usual, additional code reduction, bug fixes, and manpage enhancements. + +CHANGES FROM 1.0 TO 1.1, 05 November 2009 + +* New run-shell (alias run) command to run an external command without a + window, capture it's stdout, and send it to output mode. +* Ability to define multiple prefix keys. +* Internal locking mechanism removed. Instead, detach each client and run the + external command specified in the new session option lock-command (by default + lock -np), thus allowing the system password to be used. +* set-password command, and -U command line flag removed per the above change. +* Add support for -c command line flag to execute a shell command. +* New lock-client (alias lockc), and lock-session (alias locks) commands to + lock a particular client, or all clients attached to a session. +* Support C-n/C-p/C-v/M-v with emacs keys in choice mode. +* Use : for goto line rather than g in vi mode. +* Try to guess which client to use when no target client was specified. Finds + the current session, and if only one client is present, use it. Otherwise, + return the most recently used client. +* Make C-Down/C-Up in copy mode scroll the screen down/up one line without + moving the cursor. +* Scroll mode superseded by copy mode. +* New synchronize-panes window option to send all input to all other panes in + the same window. +* New lock-server session option to lock, when off (on by default), each + session when it has been idle for the lock-after-time setting. When on, the + entire server locks when all sessions have been idle for their individual + lock-after-time setting. +* Add support for grouped sessions which have independent name, options, + current window, but where the linked windows are synchronized (ie creating, + killing windows are mirrored between the sessions). A grouped session may be + created by passing -t to new-session. +* New mouse-select-pane session option to select the current pane with the + mouse. +* Queue, and run commands in the background for if-shell, status-left, + status-right, and #() by starting each once every status-interval. Adds the + capability to call some programs which would previously cause the server to + hang (eg sleep/tmux). It also avoids running commands excessively (ie if used + multiple times, it will be run only once). +* When a window is zombified and automatic-rename is on, append [dead] to the + name. +* Split list-panes (alias lsp) off from list-windows. +* New pipe-pane (alias pipep) to redirect a pane output to an external command. +* Support for automatic-renames for Solaris. +* Permit attributes to be turned off in #[] by prefixing with no (eg nobright). +* Add H/M/L in vi mode, and M-R/M-r in emacs to move the cursor to the top, + middle, and bottom of the screen. +* -a option added to kill-pane to kill all except current pane. +* The -d command line flag is now gone (can be replaced by terminal-overrides). + Just use op/AX to detect default colours. +* input/tty/utf8 improvements. +* xterm-keys rewrite. +* Additional code reduction, and bug fixes. + +CHANGES FROM 0.9 TO 1.0, 20 Sept 2009 + +* Option to alter the format of the window title set by tmux. +* Backoff for a while after multiple incorrect password attempts. +* Quick display of pane numbers (C-b q). +* Better choose-window, choose-session commands and a new choose-client command. +* Option to request multiple responses when using command-prompt. +* Improved environment handling. +* Combine wrapped lines when pasting. +* Option to override terminal settings (terminal-overrides). +* Use the full range of ACS characters for drawing pane separator lines. +* Customisable mode keys. +* Status line colour options, with embedded colours in status-left/right, and + an option to centre the window list. +* Much improved layouts, including both horizontal and vertical splitting. +* Optional visual bell, activity and content indications. +* Set the utf8 and status-utf8 options when the server is started with -u. +* display-message command to show a message in the status line, by default some + information about the current window. +* Improved current process detection on NetBSD. +* unlink-window -k is now the same as kill-window. +* attach-session now works from inside tmux. +* A system-wide configuration file, /etc/tmux.conf. +* A number of new commands in copy mode, including searching. +* Panes are now specified using the target (-t) notation. +* -t now accepts fnmatch(3) patterns and looks for prefixes. +* Translate \r into \n when pasting. +* Support for binding commands to keys without the prefix key +* Support for alternate screen (terminfo smcup/rmcup). +* Maintain data that goes off screen after reducing the window size, so it can + be restored when the size is increased again. +* New if-shell command to test a shell command before running a tmux command. +* tmux now works as the shell. +* Man page reorganisation. +* Many minor additions, much code tidying and several bug fixes. + +CHANGES FROM 0.8 TO 0.9, 01 July 2009 + +* Major changes to build infrastructure: cleanup of makefiles and addition + of a configure script. +* monitor-content window option to monitor a window for a specific fnmatch(3) + pattern. The find-window command also now accepts fnmatch(3) patterns. +* previous-layout and select-layout commands, and a main-horizontal layout. +* Recreate the server socket on SIGUSR1. +* clear-history command. +* Use ACS line drawing characters for pane separator lines. +* UTF-8 improvements, and code to detect UTF-8 support by looking at + environment variables. +* The resize-pane-up and resize-pane-down commands are now merged together + into a new resize-pane command with -U and -D flags. +* confirm-before command to request a yes/no answer before executing dangerous + commands. +* Status line bug fixes, support for UTF-8 (status-utf8 option), and a key to + paste from the paste buffer. +* Support for some additional escape sequences and terminal features, including + better support for insert mode and tab stops. +* Improved window resizing behaviour, modelled after xterm. +* Some code reduction and a number of miscellaneous bug fixes. + +================================================================================ + +On 01 June 2009, tmux was imported into the OpenBSD base system. From this date +onward changes are logged as part of the normal CVS commit message to either +OpenBSD or SourceForge CVS. This file will be updated to contain a summary of +major changes with each release, and to mention important configuration or +command syntax changes during development. + +The list of older changes is below. + +================================================================================ + +21 May 2009 + +* stat(2) files before trying to load them to avoid problems, for example + with "source-file /dev/zero". + |