mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	is turned on when the key is bound with the -r flag to bind-key. next/previous- window no longer repeat by default as it turned out to annoy me.
		
			
				
	
	
		
			1161 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1161 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
28 March 2009
 | 
						|
 | 
						|
* Key repeating is now a property of the key binding not of the command.
 | 
						|
  Repeat is turned on when the key is bound with the -r flag to bind-key.
 | 
						|
  next/previous-window no longer repeat by default as it turned out to annoy
 | 
						|
  me.
 | 
						|
 | 
						|
27 March 2009
 | 
						|
 | 
						|
* Clear using ED when redrawing the screen. I foolishly assumed using spaces
 | 
						|
  would be equivalent and terminals would pick up on this, but apparently not.
 | 
						|
  This fixes copy and paste in xterm/rxvt.
 | 
						|
* Sockets in /tmp are now created in a subdirectory named, tmux-UID, eg
 | 
						|
  tmux-1000. The default socket is thus /tmp/tmux-UID/default. To start a
 | 
						|
  separate server, the new -L command line option should be used: this creates
 | 
						|
  a socket in the same directory with a different name ("-L main" will create
 | 
						|
  socket called "main"). -S should only be used to place the socket outside
 | 
						|
  /tmp. This makes sockets a little more secure and a bit more convenient to
 | 
						|
  use multiple servers.
 | 
						|
 | 
						|
21 March 2009
 | 
						|
 | 
						|
* New session flag "set-remain-on-exit" to set remain-on-exit flag for new
 | 
						|
  windows created in that session (like "remain-by-default" used to do). Not
 | 
						|
  perfectly happy about this, but until I can think of a good way to introduce
 | 
						|
  it generically (maybe a set of options in the session) this will do. Fixes
 | 
						|
  SF request 2527847.
 | 
						|
 | 
						|
07 March 2009
 | 
						|
 | 
						|
* Support for 88 colour terminals.
 | 
						|
* break-pane command to create a new window using an existing pane.
 | 
						|
 | 
						|
02 March 2009
 | 
						|
 | 
						|
* Make escape key timer work properly so escape+key can be used without
 | 
						|
  lightning fast key presses.
 | 
						|
 | 
						|
13 February 2009
 | 
						|
 | 
						|
* Redo mode keys slightly more cleanly and apply them to command prompt
 | 
						|
  editing. vi or emacs mode is controlled by the session option status-keys.
 | 
						|
 | 
						|
12 February 2009
 | 
						|
 | 
						|
* Looking up argv[0] is expensive, so just use p_comm for the window name which
 | 
						|
  is good enough. Also increase name update time to 500 ms.
 | 
						|
 | 
						|
11 February 2009
 | 
						|
 | 
						|
* Only use ri when actually at the top of the screen; just move the cursor up
 | 
						|
  otherwise.
 | 
						|
* FreeBSD's console wraps lines at $COLUMNS - 1 rather than $COLUMNS (the
 | 
						|
  cursor can never be beyond $COLUMNS - 1) and does not appear to support
 | 
						|
  changing this behaviour, or any of the obvious possibilities (turning off
 | 
						|
  right margin wrapping, insert mode). This is irritating, most notably because
 | 
						|
  it impossible to write to the very bottom-right of the screen without
 | 
						|
  scrolling. To work around this, if built on FreeBSD and run with a "cons"
 | 
						|
  $TERM, the bottom-right cell on the screen is omitted.
 | 
						|
* Emulate scroll regions (slowly) to support the few terminals which don't have
 | 
						|
  it (some of which don't really have any excuse).
 | 
						|
 | 
						|
10 February 2009
 | 
						|
 | 
						|
* No longer redraw the status line every status-interval unless it has actually
 | 
						|
  changed.
 | 
						|
 | 
						|
08 February 2009
 | 
						|
 | 
						|
* Don't treat empty arguments ("") differently when parsing configuration
 | 
						|
  file/command prompt rather than command line.
 | 
						|
* tmux 0.7 released.
 | 
						|
 | 
						|
03 February 2009
 | 
						|
 | 
						|
* New command, copy-buffer (alias copyb), to copy a session paste buffer to
 | 
						|
  another session.
 | 
						|
 | 
						|
01 February 2009
 | 
						|
 | 
						|
* The character pair #(command) may now contain (escaped) right parenthesis.
 | 
						|
 | 
						|
30 January 2009
 | 
						|
 | 
						|
* . now bound to "command-prompt 'move-window %%'" by default, from joshe.
 | 
						|
 | 
						|
29 January 2009
 | 
						|
 | 
						|
* Window options to set status line fg, bg and attributes for a single
 | 
						|
  window. Options are: window-status-fg, window-status-bg,
 | 
						|
  window-status-attr. Set to "default" to use the session status colours.
 | 
						|
 | 
						|
  This allows quite neat things like:
 | 
						|
 | 
						|
	$ cat ~/bin/xssh
 | 
						|
	#!/bin/sh
 | 
						|
 | 
						|
	if [ ! -z "$TMUX" ]; then
 | 
						|
	case "$1" in
 | 
						|
    	natalya)
 | 
						|
	        tmux setw window-status-fg red >/dev/null
 | 
						|
		;;
 | 
						|
	natasha)
 | 
						|
        	tmux setw window-status-fg yellow >/dev/null
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
	fi
 | 
						|
	ssh "$@"
 | 
						|
	[ ! -z "$TMUX" ] && tmux setw -u window-status-fg >/dev/null
 | 
						|
	$ alias ssh="~/bin/xssh"
 | 
						|
 | 
						|
* Support #(command) in status-left, and status-right, which is displayed as
 | 
						|
  the first line of command's output (e.g. set -g status-right
 | 
						|
  "#(whoami)@#(hostname -s)"). Commands with )s aren't supported.
 | 
						|
 | 
						|
28 January 2009
 | 
						|
 | 
						|
* Support mouse in copy mode to move cursor. Can't do anything else at the
 | 
						|
  moment until other mouse modes are handled.
 | 
						|
* Better support for at least the most common variant of mouse input: parse it
 | 
						|
  and adjust for different panes. Also support mouse in window/session choice
 | 
						|
  mode.
 | 
						|
 | 
						|
27 January 2009
 | 
						|
 | 
						|
* Bring back the fancy window titles with session/window names: it is easy to
 | 
						|
  work around problems with elinks (see FAQ).
 | 
						|
* -u flag to scroll-mode and copy-mode to start scrolled one page
 | 
						|
  up. scroll-mode -u is bound to prefix,page-up (ppage) by default.
 | 
						|
* Allow status, mode and message attributes to be changed by three new options:
 | 
						|
  status-attr, mode-attr, message-attr. A comma-separataed list is accepted
 | 
						|
  containing: bright, dim, underscore, blink, reverse, hidden, italics, for
 | 
						|
  example:
 | 
						|
 | 
						|
	set -g status-attr bright,blink
 | 
						|
 | 
						|
  From Josh Elsasser, thanks!
 | 
						|
 | 
						|
26 January 2009
 | 
						|
 | 
						|
* Be more clever about picking the right process to create the window name.
 | 
						|
* Don't balls up the terminal on UTF-8 combined characters. Don't support them
 | 
						|
  properly either - they are just discarded for the moment.
 | 
						|
 | 
						|
25 January 2009
 | 
						|
 | 
						|
* load-buffer command
 | 
						|
 | 
						|
23 January 2009
 | 
						|
 | 
						|
* Use reverse colours rather than swapping fg and bg for message, mode and
 | 
						|
  status line. This makes these usable on black and white terminals.
 | 
						|
* Better error messages when creating a session or window fails.
 | 
						|
* Oops. Return non-zero on error. Reported by Will Maier.
 | 
						|
 | 
						|
21 January 2009
 | 
						|
 | 
						|
* Handle SIGTERM (and kill-server which uses it), a bit more neatly - tidy
 | 
						|
  up properly and print a nicer message. Same effect though :-).
 | 
						|
* new-window now supports -k to kill target window if it exists.
 | 
						|
* Bring back split-window -p and -l options to specify the height a percentage
 | 
						|
  or as a number of lines.
 | 
						|
* Make window and session choice modes allow you to choose items in vi keys
 | 
						|
  mode (doh!). As a side-effect, this makes enter copy selection (as well
 | 
						|
  as C-w/M-w) when using emacs keys in copy mode. Reported by merdely.
 | 
						|
 | 
						|
20 January 2009
 | 
						|
 | 
						|
* Darwin support for automatic-rename from joshe; Darwin doesn't seem to have
 | 
						|
  a sane method of getting argv[0] and searching for the precise insane way
 | 
						|
  is too frustrating, so this just uses the executable name.
 | 
						|
* Try to change the window title to match the command running it in. This is
 | 
						|
  done by reading argv[0] from the process group leader of the group that owns
 | 
						|
  the tty (tcgetpgrp()). This can't be done portably so some OS-dependent code
 | 
						|
  is introduced (ugh); OpenBSD, FreeBSD and Linux are supported at the moment.
 | 
						|
 | 
						|
  A new window flag, automatic-rename, is available: if this is set to off, the
 | 
						|
  window name is not changed. Specifying a name with the new-window,
 | 
						|
  new-session or rename-window commands will automatically set this flag to off
 | 
						|
  for the window in question. To disable it entirely set the option to off
 | 
						|
  globally (setw -g automatic-rename off).
 | 
						|
 | 
						|
19 January 2009
 | 
						|
 | 
						|
* Fix various stupid issues when the status line is turned off. Grr.
 | 
						|
* Use reverse attributes for clock and cursor, otherwise they do not
 | 
						|
  appear on black and white terminals.
 | 
						|
* An error in a command sequence now stops execution of that sequence.
 | 
						|
  Internally, each command code now passes a return code back rather than
 | 
						|
  talking to the calling client (if any) directly.
 | 
						|
* attach-session now tries to start the server if it isn't already started - if
 | 
						|
  no sessions are created in .tmux.conf this will cause an error.
 | 
						|
* Clean up starting server by making initial client get a special socketpair.
 | 
						|
 | 
						|
18 January 2009
 | 
						|
 | 
						|
* Unbreak UTF-8.
 | 
						|
* -a flag to next-window and previous-window to select the next or previous 
 | 
						|
  window with activity or bell. Bound to M-n and M-p.
 | 
						|
* find-window command to search window names, titles and visible content (but
 | 
						|
  not history) for a string. If only one is found, the window is selected
 | 
						|
  otherwise a choice list is shown. This (as with the other choice commands)
 | 
						|
  only works from a key. Bound to "f" by default.
 | 
						|
* Cleaned up command printing code, also enclose arguments with spaces in "s.
 | 
						|
* Added command sequences. These are entered by separating each argument by a ;
 | 
						|
  argument (spaces on both sides), for example:
 | 
						|
 | 
						|
	lsk ; lsc
 | 
						|
 | 
						|
  To use a literal ; as the argument prefix it with \, for example:
 | 
						|
 | 
						|
	bind x lsk \; lsc
 | 
						|
 | 
						|
  Commands are executed from left to right. Also note that command sequences do
 | 
						|
  not support repeat-time repetition unless all commands making up the sequence
 | 
						|
  support it.
 | 
						|
* suspend-client command to suspend a client. Don't try to background it
 | 
						|
  though...
 | 
						|
* Mark attached sessions in sessions lists. Suggested by Simon Kuhnle.
 | 
						|
 | 
						|
17 January 2009
 | 
						|
 | 
						|
* tmux 0.6 released.
 | 
						|
 | 
						|
15 January 2009
 | 
						|
 | 
						|
* Support #H for hostname and #S for session name in status-left/right.
 | 
						|
* Two new commands, choose-window and choose-session which work only when bound
 | 
						|
  to a key and allow the window or session to be selected from a list. These
 | 
						|
  are now bound to "w" and "s" instead of the list commands.
 | 
						|
 | 
						|
14 January 2009
 | 
						|
 | 
						|
* Rework the prefix-time stuff. The option is now called repeat-time and
 | 
						|
  defaults to 500 ms. It only applies to a small subset of commands, currently:
 | 
						|
  up-pane, down-pane, next-window, previous-window, resize-pane-up,
 | 
						|
  resize-pane-down. These are the commands for which it is obviously useful,
 | 
						|
  having it for everything else was just bloody annoying.
 | 
						|
* The alt-up and alt-down keys now resize a pane by five lines at a time.
 | 
						|
* switch-pane is now select-pane and requires -p to select a pane. The
 | 
						|
  "o" key binding is changed to down-pane.
 | 
						|
* up-pane and down-pane commands, bound to arrow up and down by default.
 | 
						|
* Multiple vertical window splitting. Minimum pane size is four lines, an
 | 
						|
  (unhelpful) error will be shown if attempting to split a window with less
 | 
						|
  that eight lines. If the window is resized, as many panes are shown as can
 | 
						|
  fit without reducing them below four lines. There is (currently!) not a way
 | 
						|
  to show a hidden pane without making the window larger.
 | 
						|
 | 
						|
  Note the -p and -l options to split-window are now gone, these may reappear
 | 
						|
  once I think them through again.
 | 
						|
* Server locking on inactivity (lock-after-time) is now disabled by default.
 | 
						|
 | 
						|
13 January 2009
 | 
						|
 | 
						|
* kill-pane command.
 | 
						|
 | 
						|
12 January 2009
 | 
						|
 | 
						|
* command-prompt now accepts a single argument, a template string. Any
 | 
						|
  occurrences of %% in this string are replaced by whatever is entered at the
 | 
						|
  prompt and the result is executed as a command. This allows things like (now
 | 
						|
  bound by default):
 | 
						|
 | 
						|
  	 bind , command-prompt "rename-window %%"
 | 
						|
 | 
						|
  Or my favourite:
 | 
						|
 | 
						|
         bind x command-prompt "split-window 'man %%'"
 | 
						|
 | 
						|
* Option to set prefix time, allowing multiple commands to be entered without
 | 
						|
  pressing the prefix key again, so long as they each typed within this time of
 | 
						|
  each other.
 | 
						|
* Yet more hacks for key handling. Think it is just about working now.
 | 
						|
* Two commands, resize-pane-up and resize-pane-down to resize a pane.
 | 
						|
* Make the window pane code handle panes of different sizes, and add a -l
 | 
						|
  and -p arguments to split-window to specify the new window size in lines
 | 
						|
  or as a percentage.
 | 
						|
 | 
						|
11 January 2009
 | 
						|
 | 
						|
* Vertical window splitting. Currently can only split a window into two panes.
 | 
						|
  New split-window command splits (bound to ") and switch-pane command (bound to
 | 
						|
  o) switches between panes. 
 | 
						|
 | 
						|
  close-pane, swap-pane commands are to follow. Also to come are pane resizing,
 | 
						|
  >2 panes, the ability to break a pane out to a full window and vice versa and
 | 
						|
  possibly horizontal splitting.
 | 
						|
 | 
						|
  Panes are subelements of windows rather than being windows in their own
 | 
						|
  right. I tried to make them windows (so the splitting was at the session or
 | 
						|
  client level) but this rapidly became very complex and invasive. So in the
 | 
						|
  interests of having something working, I just made it so each window can have
 | 
						|
  two child processes instead of one (and it still took me 12 hours straight
 | 
						|
  coding). Now the concept is proven and much of the support code is there,
 | 
						|
  this may change in future if more flexibility is needed.
 | 
						|
* save-buffer command, from Tiago Cunha.
 | 
						|
 | 
						|
10 January 2009
 | 
						|
 | 
						|
* New option, lock-after-time. If there is no activity in the period specified
 | 
						|
  by this option (in seconds), tmux will lock the server. Default is 1800 (30
 | 
						|
  minutes), set to 0 to disable. 
 | 
						|
* Server locking. Two new commands: set-password to set a password (a
 | 
						|
  preencrypted password may be specified with -c); and lock-server to lock the
 | 
						|
  server until the password is entered. Also an additional command line flag,
 | 
						|
  -U, to unlock from the shell. The default password is blank (any password
 | 
						|
  accepted). If specifying an encrypted password from encrypt(1) in .tmux.conf
 | 
						|
  with -c, don't forget to enclose it in single-quotes (') to prevent shell
 | 
						|
  variable expansion.
 | 
						|
* If a window is created from the command line, tmux will now use the same
 | 
						|
  current working directory for the new process. A new default-path option to
 | 
						|
  sets the working directory for processes created from keys or interactively
 | 
						|
  from the prompt.
 | 
						|
* New mode to display a large clock. Entered with clock-mode command (bound to
 | 
						|
  C-b t by default); two window options: clock-mode-colour and clock-mode-style
 | 
						|
  (12 or 24). This will probably be used as the basis for window locking.
 | 
						|
* New command, server-info, to show some server information and terminal
 | 
						|
  details.
 | 
						|
 | 
						|
09 January 2009
 | 
						|
 | 
						|
* Stop using ncurses variables and instead build a table of the codes we want
 | 
						|
  into an array for each terminal type. This makes the code a little more
 | 
						|
  untidy in places but gets rid of the awful global variables and calling
 | 
						|
  setterm all the time, and shoves all the ncurses-dependent mess into a single
 | 
						|
  file, tty-term.c. It also allows overriding single terminal codes, this is
 | 
						|
  used to fix rxvt on some platforms (where it is missing dch) and in future
 | 
						|
  may allow user customisation a la vim.
 | 
						|
* Update key handling code. Simplify, support ctrl properly and add a new
 | 
						|
  window option (xterm-keys) to output xterm key codes including ctrl and,
 | 
						|
  if available, alt and shift.
 | 
						|
 | 
						|
08 January 2009
 | 
						|
 | 
						|
* If built without DEBUG (the release versions), don't cause a fatal error if
 | 
						|
  the grid functions notice an input error, just log and ignore the
 | 
						|
  request. This might mean me getting shouted at less often when bugs kill
 | 
						|
  long-running sessions, at least in release versions.
 | 
						|
* Hopefully fix cursor out-of-bounds checking when writing to grid. When I
 | 
						|
  wrote the code I must have forgotten that the cursor can be one cell off the
 | 
						|
  right of the screen (yes, I know), so there were number of out-of-bounds/
 | 
						|
  overflow problems.
 | 
						|
 | 
						|
07 January 2009
 | 
						|
 | 
						|
* New flag to set and setw, -u, to unset an option (allowing it to inherit from)
 | 
						|
  the global options again.
 | 
						|
* Added more info messages for options changes.
 | 
						|
* A bit of tidying and reorganisation of options code.
 | 
						|
 | 
						|
06 January 2009
 | 
						|
 | 
						|
* Don't crash when backspacing if cursor is off the right of the screen,
 | 
						|
  reported by David Chisnall.
 | 
						|
* Complete words at any point inside command in prompt, also use option name
 | 
						|
  as well as command names.
 | 
						|
* Per-client prompt history of up to 100 items.
 | 
						|
* Use a splay tree for key bindings instead of an array. As a side-effect this
 | 
						|
  sorts them when listed.
 | 
						|
 | 
						|
22 December 2008
 | 
						|
 | 
						|
* Use the right keys for home and end.
 | 
						|
 | 
						|
20 December 2008
 | 
						|
 | 
						|
* Add vim mode for tmux configuration file to examples/, from Tiago Cunha.
 | 
						|
 | 
						|
15 December 2008
 | 
						|
 | 
						|
* New command, source-file (alias source), to load a configuration
 | 
						|
  file. Written by Tiago Cunha, many thanks.
 | 
						|
 | 
						|
13 December 2008
 | 
						|
 | 
						|
* Work around lack of dch. On Linux, the rxvt termcap doesn't have it (it is
 | 
						|
  lying, but we can't really start disbelieving termcaps...). This is a bit
 | 
						|
  horrible - I can see no way to do it without pretty much redrawing the whole
 | 
						|
  line, but it works...
 | 
						|
 | 
						|
10 December 2008
 | 
						|
 | 
						|
* glibc's getopt(3) is useless: it is not POSIX compliant without jumping
 | 
						|
  through non-portable hoops, and the method of resetting it is unclear (the
 | 
						|
  man page on my system says set optind to 1, but other sources say 0). So,
 | 
						|
  import OpenBSD's getopt_long.c into compat/ for use on Linux and use the
 | 
						|
  clearly documented optreset = optind = 1 method. This fixes some strange
 | 
						|
  issues with command parsing (getting the syntax wrong would prevent any
 | 
						|
  further commands being parsed).
 | 
						|
 | 
						|
06 December 2008
 | 
						|
 | 
						|
* Bring set/setw/show/showw into line with other commands. This means that by
 | 
						|
  default they now affect the current window (if any); the new -g flag must be
 | 
						|
  passed to set the global options. This changes the behaviour of set/show and
 | 
						|
  WILL BREAK CURRENT CONFIGURATIONS.
 | 
						|
 | 
						|
  In summary, whether in the configuration file, the command prompt, or a key
 | 
						|
  binding, use -g to set a global option, use -t to specify a particular window
 | 
						|
  or session, or omit both to try and use the current window or session.
 | 
						|
 | 
						|
  This makes set/show a bit of a pain but is the correct behaviour for
 | 
						|
  setw/showw and is the same as every other command, so we can put up with a
 | 
						|
  bit of pain for consistency.
 | 
						|
* Redo window options. They now work in the same way to session options with a
 | 
						|
  global options set. showw/setw commands now have similar syntax to show/set
 | 
						|
  (including the ability to use abbreviations).
 | 
						|
 | 
						|
  PLEASE NOTE this includes the following configuration-breaking changes:
 | 
						|
 | 
						|
  - remain-by-default is now GONE, use "setw -g remain-on-exit" to apply the
 | 
						|
    global window option instead;
 | 
						|
  - mode-keys is now a window option rather than session - use "setw [-g]
 | 
						|
    mode-keys" instead of set.
 | 
						|
 | 
						|
  There are also some additions:
 | 
						|
 | 
						|
  - message-fg and message-bg session options to control status line message
 | 
						|
    colours;
 | 
						|
  - mode-fg and mode-bg window options to set colours in window modes such as
 | 
						|
    copy mode.
 | 
						|
 | 
						|
  The options code still a mess and now there is twice as much of it :-(.
 | 
						|
 | 
						|
02 December 2008
 | 
						|
 | 
						|
* Add support for including the window title in status-left or status-right
 | 
						|
  strings by including the character pair "#T". This may be prefixed with
 | 
						|
  a number to specify a maximum length, for example "#24T" to use at most
 | 
						|
  24 characters of the title.
 | 
						|
* Introduce two new options, status-left-length and status-right-length,
 | 
						|
  control the maximum length of left and right components of the status bar.
 | 
						|
* elinks (and possibly others) bypass the terminal and talk directly to X to
 | 
						|
  restore the window title when exiting. tmux can't know about this particular
 | 
						|
  bit of stupidity so the title ends up strange - the prefix isn't terribly
 | 
						|
  important and elinks is quite useful so just get rid of it.
 | 
						|
 | 
						|
27 November 2008
 | 
						|
 | 
						|
* Tweaks to support Dragonfly.
 | 
						|
 | 
						|
17 November 2008
 | 
						|
 | 
						|
* tmux 0.5 released.
 | 
						|
 | 
						|
16 November 2008
 | 
						|
 | 
						|
* New window option: "utf8"; this must be on (it is off by default) for UTF-8
 | 
						|
  to be parsed. The global/session option "utf8-default" controls the setting
 | 
						|
  for new windows.
 | 
						|
 | 
						|
  This means that by default tmux does not handle UTF-8. To use UTF-8 by
 | 
						|
  default it is necessary to a) "set utf8-default on" in .tmux.conf b) start
 | 
						|
  tmux with -u on any terminal which support UTF-8.
 | 
						|
 | 
						|
  It seems a bit unnecessary for this to be a per-window option but that is
 | 
						|
  the easiest way to do it, and it can't do any harm...
 | 
						|
* Enable default colours if op contains \033[39;49m, based on a report from
 | 
						|
  fulvio ciriaco.
 | 
						|
 | 
						|
12 November 2008
 | 
						|
 | 
						|
* Keep stack of last windows rather than just most recent; based on a diff from
 | 
						|
  joshe.
 | 
						|
 | 
						|
04 November 2008
 | 
						|
 | 
						|
* Don't try to redraw status line when showing a prompt or message; if it does,
 | 
						|
  the status timer is never reset so it redraws on every loop. Spotted by
 | 
						|
  joshe.
 | 
						|
 | 
						|
09 October 2008
 | 
						|
 | 
						|
* Translate 256 colours into 16 if 256 is not available, same as screen does.
 | 
						|
* Better support for OSC command (only to set window title now), and also
 | 
						|
  support using APC for the same purpose (some Linux default shell profiles do
 | 
						|
  this).
 | 
						|
 | 
						|
25 September 2008
 | 
						|
 | 
						|
* Large internal rewrite to better support 256 colours and UTF-8. Screen data
 | 
						|
  is now stored as single two-way array of structures rather than as multiple
 | 
						|
  separate arrays. Also simplified a lot of code.
 | 
						|
 | 
						|
  Only external changes are three new flags, -2, -d and -u, which force tmux to
 | 
						|
  assume the terminal supports 256 colours, default colours (useful for
 | 
						|
  xterm-256color which lacks the AX flag), or UTF-8 respectively.
 | 
						|
 | 
						|
10 September 2008
 | 
						|
 | 
						|
* Split off colour conversion code from screen code.
 | 
						|
 | 
						|
09 September 2008
 | 
						|
 | 
						|
* Initial UTF-8 support. A bit ugly and with a limit of 4096 UTF-8
 | 
						|
  characters per window.
 | 
						|
 | 
						|
08 September 2008
 | 
						|
 | 
						|
* 256 colour support. tmux attempts to autodetect the terminal by looking
 | 
						|
  both at what ncurses reports (usually wrong for xterm) and checking if
 | 
						|
  the TERM contains "256col". For xterm TERM=xterm-256color is needed (as
 | 
						|
  well as a build that support 256 colours); this seems to work for rxvt
 | 
						|
  as well. On non-256 colour terminals, high colours are translated to white
 | 
						|
  foreground and black background.
 | 
						|
 | 
						|
28 August 2008
 | 
						|
 | 
						|
* Support OS X/Darwin thanks to bsd-poll.c from OpenSSH. Also convert
 | 
						|
  from clock_gettime(2) to gettimeofday(2) as OS X doesn't support the
 | 
						|
  former; microsecond accuracy will have to be sufficient ;-).
 | 
						|
 | 
						|
07 August 2008
 | 
						|
 | 
						|
* Lose some unused/useless wrapper functions.
 | 
						|
 | 
						|
25 July 2008
 | 
						|
 | 
						|
* Shell variables may now be defined and used in configuration file. Define
 | 
						|
  variables with:
 | 
						|
 | 
						|
	VAR=1
 | 
						|
 | 
						|
  And use with:
 | 
						|
 | 
						|
        renamew ${VAR}
 | 
						|
	renamew "x${VAR}x"
 | 
						|
 | 
						|
 Also some other fixes to make, for example, "abc""abc" work similarly to
 | 
						|
 the shell.
 | 
						|
 | 
						|
24 July 2008
 | 
						|
 | 
						|
* Finally lose inconsistently-used SCREEN_DEF* defines.
 | 
						|
* If cursor mode is on, switch the arrow keys from \033[A to \033OA.
 | 
						|
* Support the numeric keypad in both application and numbers mode. This is
 | 
						|
  different from screen which always keeps it in application mode.
 | 
						|
 | 
						|
19 July 2008
 | 
						|
 | 
						|
* Unbreak "set status" - tmux thought it was ambiguous, reported by rivo nurges.
 | 
						|
 | 
						|
02 July 2008
 | 
						|
 | 
						|
* Split vi and emacs mode keys into two tables and add an option (mode-keys)
 | 
						|
  to select between them. Default is emacs, use,
 | 
						|
 | 
						|
     tmux set mode-keys vi
 | 
						|
 | 
						|
  to change to vi.
 | 
						|
 | 
						|
  vi mode uses space to start selection, enter to copy selection and escape
 | 
						|
  to clear selection.
 | 
						|
 | 
						|
01 July 2008
 | 
						|
 | 
						|
* Protocol versioning. Clients which identify as a different version from the
 | 
						|
  server will be rejected.
 | 
						|
* tmux 0.4 released.
 | 
						|
 | 
						|
29 June 2008
 | 
						|
 | 
						|
* Zombie windows. These are not closed when the child process dies. May be
 | 
						|
  set for a window with the new "remain-on-exit" option; the default setting
 | 
						|
  of this flag for new windows may be set with the "remain-by-default" session
 | 
						|
  option.
 | 
						|
 | 
						|
  A window may be restarted with the respawn-window command:
 | 
						|
 | 
						|
  	respawn-window [-k] [command]
 | 
						|
 | 
						|
  If -k is given, any existing process running in the window is killed;
 | 
						|
  if command is omitted, the same command as when the window was first
 | 
						|
  created is used.
 | 
						|
 | 
						|
27 June 2008
 | 
						|
 | 
						|
* Handle nonexistent session or client to -t properly.
 | 
						|
 | 
						|
25 June 2008
 | 
						|
 | 
						|
* select-prompt command to allow a window to be selected at a prompt. Only
 | 
						|
  windows in the current session may be selected. Bound to ' by default.
 | 
						|
  Suggested by merdely.
 | 
						|
* move-window command. Requested by merdely.
 | 
						|
* Support binding alt keys (prefixed with M-). Change default to use
 | 
						|
  C- for ctrl keys (^ is still accepted as an alternative).
 | 
						|
* Slim down default key bindings: support lowercase only.
 | 
						|
* Handle escaped keys properly (parse eg \033b into a single key code) and
 | 
						|
  use this to change copy mode next/previous work to M-f and M-b to match
 | 
						|
  emacs.
 | 
						|
 | 
						|
24 June 2008
 | 
						|
 | 
						|
* Next word (C-n/w) and previous word (C-b/b) in copy mode.
 | 
						|
 | 
						|
23 June 2008
 | 
						|
 | 
						|
* list-commands command (alias lscm).
 | 
						|
* Split information about options into a table and use it to parse options
 | 
						|
  on input (allowing abbreviations) and to print them with show-options
 | 
						|
  (meaning that bell-action gets a proper string). This turned out a bit ugly
 | 
						|
  though :-/.
 | 
						|
 | 
						|
22 June 2008
 | 
						|
 | 
						|
* Do not translate black and white into default if the terminal supports
 | 
						|
  default colours. This was nice to force programs which didn't use default
 | 
						|
  colours to be properly transparent in rxvt/aterm windows with a background
 | 
						|
  image, but it causes trouble if someone redefines the default foreground and
 | 
						|
  background (to have black on white or something).
 | 
						|
 | 
						|
21 June 2008
 | 
						|
 | 
						|
* Naive tab completion in the command prompt. This only completes command
 | 
						|
  names if a) they are at the start of the text b) the cursor is at
 | 
						|
  the end of the text c) the text contains no spaces.
 | 
						|
* Only attempt to set the title where TERM looks like an xterm (contains
 | 
						|
  "xterm", "rxvt" or is "screen"). I hate this but I don't see a better way:
 | 
						|
  setting the title actually kills some other terminals pretty much dead.
 | 
						|
* Strip padding out of terminfo(5) strings. Currently the padding is just
 | 
						|
  ignored, this may need to be altered if there are any software terminals
 | 
						|
  out there that actually need it.
 | 
						|
 | 
						|
20 June 2008
 | 
						|
 | 
						|
* buffer-limit option to set maximum size of buffer stack. Default is 9.
 | 
						|
* Initial buffer improvements. Each session has a stack of buffers and each
 | 
						|
  buffer command takes a -b option to manipulate items on the stack. If -b
 | 
						|
  is omitted, the top entry is used. The following commands are currently
 | 
						|
  available:
 | 
						|
 | 
						|
	set-buffer [-b index] [-t target-session] string
 | 
						|
	paste-buffer [-d] [-b index] [-t target-window]
 | 
						|
	delete-buffer [-b index] [-t target-session]
 | 
						|
	show-buffers [-t target-session]
 | 
						|
	show-buffer [-b index] [-t target-session]
 | 
						|
 | 
						|
  -d to paste-buffer deletes the buffer after pasting it.
 | 
						|
* New option, display-time, sets the time status line messages stay on screen
 | 
						|
  (unless a key is pressed). Set in milliseconds, default is 750 (0.75 seconds).
 | 
						|
  The timer is only checked every 100 ms or so.
 | 
						|
 | 
						|
19 June 2008
 | 
						|
 | 
						|
* Use "status" consistently for status line option, and prefix for "prefix" key
 | 
						|
  option.
 | 
						|
* Allow commands to be entered at a prompt. This is triggered with the
 | 
						|
  command-prompt command, bound to : by default.
 | 
						|
* Show status messages properly, without blocking the server.
 | 
						|
 | 
						|
18 June 2008
 | 
						|
 | 
						|
* New option, set-titles. On by default, this attempts to set the window title
 | 
						|
  using the \e]2;...\007 xterm code.
 | 
						|
 | 
						|
  Note that elinks requires the STY environment variable (used by screen) to be
 | 
						|
  set before it will set the window title. So, if you want window titles set by
 | 
						|
  elinks, set STY before running it (any value will do). I can't do this for all
 | 
						|
  windows since setting it to an invalid value breaks screen.
 | 
						|
* Show arrows at either end of status line when scrolled if more windows
 | 
						|
  exist. Highlight the arrow if a hidden window has activity or bell.
 | 
						|
* Scroll the status line to show the current window if necessary. Also handle
 | 
						|
  windows smaller than needed better (show a blank status line instead of
 | 
						|
  hanging or crashing).
 | 
						|
 | 
						|
17 June 2008
 | 
						|
 | 
						|
* tmux 0.3 released.
 | 
						|
 | 
						|
16 June 2008
 | 
						|
 | 
						|
* Add some information messages when window options are changed, suggested by
 | 
						|
  Mike Erdely. Also add a -q command-line option to suppress them.
 | 
						|
* show-window-options (showw) command.
 | 
						|
 | 
						|
15 June 2008
 | 
						|
 | 
						|
* show-options (show) command to show one or all options.
 | 
						|
 | 
						|
14 June 2008
 | 
						|
 | 
						|
* New window options: force-width and force-height. This will force a window
 | 
						|
  to an arbitrary width and height (0 for the default unlimited). This is
 | 
						|
  neat for emacs which doesn't have a sensible way to force hard wrapping at 80
 | 
						|
  columns. Also, don't try to be clever and use clr_eol when redrawing the
 | 
						|
  whole screen, it causes trouble since the redraw functions are used to draw
 | 
						|
  the blank areas too.
 | 
						|
* Clear the blank area below windows properly when they are smaller than client,
 | 
						|
  also add an indicator line to show the vertical limit.
 | 
						|
* Don't die on empty strings in config file, reported by Will Maier.
 | 
						|
 | 
						|
08 June 2008
 | 
						|
 | 
						|
* Set socket mode +x if any sessions are attached and -x if not.
 | 
						|
 | 
						|
07 June 2008
 | 
						|
 | 
						|
* Make status-interval actually changeable.
 | 
						|
 | 
						|
06 June 2008
 | 
						|
 | 
						|
* New window option: aggressive-resize. Normally, windows are resized to the
 | 
						|
  size of the smallest attached session to which they are linked. This means a
 | 
						|
  window only changes size when sessions are detached or attached, or they are
 | 
						|
  linked or unlinked from a session. This flag changes a window to be the size
 | 
						|
  of the smallest attached session for which it is the current window - it is
 | 
						|
  resized every time a session changes to it or away from it. This is nice for
 | 
						|
  things that handle SIGWINCH well (like irssi) and bad for things like shells.
 | 
						|
* The server now exits when no sessions remain.
 | 
						|
* Fix bug with inserting characters with TERM=xterm-color.
 | 
						|
 | 
						|
05 June 2008
 | 
						|
 | 
						|
* Completely reorganise command parsing. Much more common code in cmd-generic.c
 | 
						|
  and a new way of specifying windows, clients or sessions. Now, most commands
 | 
						|
  take a -t argument, which specifies a client, a session, or a window target.
 | 
						|
  Clients and sessions are given alone (sessions are fnmatch(3)d and
 | 
						|
  clients currently not), windows are give by (client|session):index. For
 | 
						|
  example, if a user is in session "1" window 0 on /dev/ttypi, these should all
 | 
						|
  be equivalent:
 | 
						|
 | 
						|
	tmux renamew newname			(current session and window)
 | 
						|
	tmux renamew -t: newname		(current session and window)
 | 
						|
	tmux renamew -t:0 newname		(current session, window 0)
 | 
						|
	tmux renamew -t0 newname		(current session, window 0)
 | 
						|
	tmux renamew -t1:0 newname		(session 1, window 0)
 | 
						|
	tmux renamew -t1: newname		(session 1's current window)
 | 
						|
	tmux renamew -t/dev/ttypi newname	(client /dev/ttypi's current
 | 
						|
						 session and window)
 | 
						|
	tmux renamew -t/dev/ttypi: newname	(client /dev/ttypi's current
 | 
						|
						 session and window)
 | 
						|
	tmux renamew -t/dev/ttypi:0 newname	(client /dev/ttypi's current
 | 
						|
						 session, window 0)
 | 
						|
 | 
						|
  This does have some downsides, for example, having to use -t on selectw,
 | 
						|
 | 
						|
	tmux selectw -t7
 | 
						|
 | 
						|
  is annoying. But then using non-flagged arguments would mean renaming the
 | 
						|
  current window would need to be something like:
 | 
						|
 | 
						|
	tmux renamew : newname
 | 
						|
 | 
						|
  It might be better not to try and be so consistent; comments to the usual
 | 
						|
  address ;-).
 | 
						|
* Infrastructure for printing arguments in list-keys output. Easy ones only for
 | 
						|
  now.
 | 
						|
 | 
						|
04 June 2008
 | 
						|
 | 
						|
* Add some vi(1) key bindings in copy mode, and support binding ^[, ^\, ^]
 | 
						|
  ^^ and ^_. Both from/prompted by Will Maier.
 | 
						|
* setw monitor-activity and set status without arguments now toggle the current
 | 
						|
  value; suggested by merdely.
 | 
						|
* New command set-window-option (alias setw) to set the single current window
 | 
						|
  option: monitor-activity to determine whether window activity is shown in
 | 
						|
  the status bar for that window (default off).
 | 
						|
* Change so active/bell windows are inverted in status line.
 | 
						|
* Activity monitoring - window with activity are marked in status line. No
 | 
						|
  way to disable this/filter windows yet.
 | 
						|
* Brought select-window command into line with everything else; it now uses
 | 
						|
  -i for the window index.
 | 
						|
* Strings to display on the left and right of the status bar may now be set
 | 
						|
  with the status-left and status-right options. These are passed through
 | 
						|
  strftime(3) before being displayed. The status bar is automatically updated
 | 
						|
  at an interval set by the status-interval option. The default is to display
 | 
						|
  nothing on the left and the date and time on the left; the default update
 | 
						|
  interval is 15 seconds.
 | 
						|
 | 
						|
03 June 2008
 | 
						|
 | 
						|
* Per session options. Setting options without specifying a session sets the
 | 
						|
  global options as normal (global options are inherited by all sessions);
 | 
						|
  passing -c or -s will set the option only for that session.
 | 
						|
* Because a client has a session attached, any command needing a session can
 | 
						|
  take a client and use its session. So, anything that used to accept -s now
 | 
						|
  accepts -c as well.
 | 
						|
* -s to specify session name now supports fnmatch(3) wildcards; if multiple
 | 
						|
  sessions are found, or if no -s is specified, the most newly created is used.
 | 
						|
* If no command is specified, assume new-session. As a byproduct, clean up
 | 
						|
  command default values into separate init functions.
 | 
						|
* kill-server command.
 | 
						|
 | 
						|
02 June 2008
 | 
						|
 | 
						|
* New command, start-server (alias "start"), to start the tmux server and do
 | 
						|
  nothing else. This is good if you have a configuration file which creates
 | 
						|
  windows or sessions (like me): in that case, starting the server the first
 | 
						|
  time tmux new is run is bad since it creates a new session and window (as
 | 
						|
  it is supposed to - starting the server is a side-effect).
 | 
						|
 | 
						|
  Instead, I have a little script which does the equivalent of:
 | 
						|
 | 
						|
  	tmux has -s0 2>/dev/null || tmux start
 | 
						|
  	tmux attach -d -s0
 | 
						|
 | 
						|
  And I use it to start the server if necessary and attach to my primary
 | 
						|
  session.
 | 
						|
* Basic configuration file in ~/.tmux.conf or specified with -f. This is file
 | 
						|
  contains a set of tmux commands that are run the first time the server is
 | 
						|
  started. The configuration commands are executed before any others, so
 | 
						|
  if you have a configuration file that contains:
 | 
						|
 | 
						|
	new -d
 | 
						|
	neww -s0
 | 
						|
 | 
						|
  And you do the following without an existing server running:
 | 
						|
 | 
						|
	tmux new
 | 
						|
 | 
						|
  You will end up with two sessions, session 0 with two windows (created by
 | 
						|
  the configuration file) and your client attached to session 1 with one
 | 
						|
  window (created by the command-line command). I'm not completely happy with
 | 
						|
  this, it seems a little non-obvious, but I haven't yet decided what to do
 | 
						|
  about it.
 | 
						|
 | 
						|
  There is no environment variable handling or other special stuff yet.
 | 
						|
 | 
						|
  In the future, it might be nice to be able to have per-session configuration
 | 
						|
  settings, probably by having conditionals in the file (so you could, for
 | 
						|
  example, have commands to define a particular window layout that would only
 | 
						|
  be invoked if you called tmux new -smysession and mysession did not already
 | 
						|
  exist).
 | 
						|
* BIG CHANGE: -s and -c to specify session name and client name are now passed
 | 
						|
  after the command rather than before it. So, for example:
 | 
						|
 | 
						|
	tmux -s0 neww
 | 
						|
 | 
						|
  Becomes:
 | 
						|
 | 
						|
	tmux neww -s0
 | 
						|
 | 
						|
  This is to allow them to be used in the (forthcoming) configuration file
 | 
						|
  THIS WILL BREAK ANY CURRENT SCRIPTS OR ALIASES USING -s OR -c.
 | 
						|
 | 
						|
01 June 2008
 | 
						|
 | 
						|
* Bug fix: don't die if -k passed to link-window and the destination doesn't
 | 
						|
  exist.
 | 
						|
* New command, send-keys, will send a set of keys to a window.
 | 
						|
 | 
						|
31 May 2008
 | 
						|
 | 
						|
* Fix so tmux doesn't hang if the initial window fails for some reason. This
 | 
						|
  was highlighted by problems on Darwin, thanks to Elias Pipping for the report
 | 
						|
  and access to a test account. (tmux still won't work on Darwin since its
 | 
						|
  poll(2) is broken.)
 | 
						|
 | 
						|
02 January 2008
 | 
						|
 | 
						|
* Don't attempt to reset the tty on exit if it has been closed externally.
 | 
						|
 | 
						|
06 December 2007
 | 
						|
 | 
						|
* Restore checks for required termcap entries and add a few more obvious
 | 
						|
  emulations.
 | 
						|
* Another major reorganisation, this time of screen handling. A new set of
 | 
						|
  functions, screen_write_*, are now used to write to a screen and a tty
 | 
						|
  simultaneously. These are used by the input parser to update the base
 | 
						|
  window screen and also by the different modes which now interpose their own
 | 
						|
  screen.
 | 
						|
 | 
						|
30 November 2007
 | 
						|
 | 
						|
* Support \ek...\e\ to set window name.
 | 
						|
 | 
						|
27 November 2007
 | 
						|
 | 
						|
* Enable/disable mouse when asked, if terminal claims to support it. Mouse
 | 
						|
  sequences are just passed through unaltered for the moment.
 | 
						|
* Big internal reorganisation. Rather than leaving control of the tty solely in
 | 
						|
  the client and piping all data through a socket to it, change so that the
 | 
						|
  server opens the tty again and reads and writes to it directly. This avoids
 | 
						|
  a lot of buffering and copying. Also reorganise the redrawing stuff so that
 | 
						|
  everything goes through screen_draw_* - this makes the code simpler, but
 | 
						|
  still needs broken up more, and all the ways of writing to screens should be
 | 
						|
  more consistent.
 | 
						|
 | 
						|
26 November 2007
 | 
						|
 | 
						|
* Rather than shifting up one line at a time once the history is full,
 | 
						|
  shift by 10% of the history each time. This is faster.
 | 
						|
* Add ^A and ^E to copy mode to move to start-of-line/end-of-line.
 | 
						|
 | 
						|
24 November 2007
 | 
						|
 | 
						|
* Support for alt charset mode (VT100 graphics characters).
 | 
						|
 | 
						|
23 November 2007
 | 
						|
 | 
						|
* Mostly complete copy & paste. Copy mode entered with C-b [ (copy-mode
 | 
						|
  command). In copy mode, arrow keys/page up/page down/hjkl/C-u/C-f navigate,
 | 
						|
  space or C-space starts selection, and enter or C-w copies and (important!)
 | 
						|
  exits copy mode. C-b ] (paste-buffer) pastes into current window. No
 | 
						|
  extra utility keys (bol/eol/clear selection/etc), only one single buffer,
 | 
						|
  and no buffer manipulation commands (clear/view/etc) yet. The code is also
 | 
						|
  fugly :-(.
 | 
						|
* history-limit option to set maximum history. Does not apply retroactively to
 | 
						|
  existing windows! Lines take up a variable amount of space, but a reasonable
 | 
						|
  guess for an 80-column terminal is 250 KB per 1000 lines (of history used,
 | 
						|
  an empty history takes no space).
 | 
						|
 | 
						|
21 November 2007
 | 
						|
 | 
						|
* Create every line as zero length and only expand it as data is written,
 | 
						|
  rather than creating at full size immediately.
 | 
						|
* Make command output (eg list-keys) go to a scrollable window similar to
 | 
						|
  scroll mode.
 | 
						|
* Redo screen redrawing so it is a) readable b) split into utility functions
 | 
						|
  that can be used outside screen.c. Use these to make scroll mode only
 | 
						|
  redraw what it has to which gets rid of irritating flickering status box and
 | 
						|
  makes it much faster.
 | 
						|
* Full line width memory and horizontal scrolling in history.
 | 
						|
* Initial support for scroll history. = to enter scrolling mode, and then
 | 
						|
  vi keys or up/down/pgup/pgdown to navigate. Q to exit. No horizontal history
 | 
						|
  yet (need per-line sizes) and a few kinks to be worked out (resizing while in
 | 
						|
  history mode will probably cause trouble).
 | 
						|
 | 
						|
20 November 2007
 | 
						|
 | 
						|
* Fix format string error with "must specify a client" message. Also
 | 
						|
  sprinkle some printflike tags.
 | 
						|
* tmux 0.1 released.
 | 
						|
 | 
						|
17 November 2007
 | 
						|
 | 
						|
* (nicm) Add -k option to link-window to kill target window if it exists.
 | 
						|
 | 
						|
16 November 2007
 | 
						|
 | 
						|
* (nicm) Split in-client display into two columns. This is a hack but not a lot
 | 
						|
  more so than that bit is already and it helps with lots of keys.
 | 
						|
* (nicm) switch-client command to switch client between different sessions. This
 | 
						|
  is pretty cool:
 | 
						|
 | 
						|
	$ tmux bind q switch 0
 | 
						|
	$ tmux bind w switch 1
 | 
						|
 | 
						|
  Then you can switch between sessions 0 and 1 with a key :-).
 | 
						|
* (nicm) Accept "-c client-tty" on command line to allow client manipulation
 | 
						|
  commands, and change detach-/refresh-session to detach-/refresh-client (this
 | 
						|
  loses the -a behaviour, but at some point -session versions may return, and
 | 
						|
  -c will allow fnmatch(3)).
 | 
						|
* (nicm) List available commands on ambiguous command.
 | 
						|
 | 
						|
12 November 2007
 | 
						|
 | 
						|
* (nicm) If the terminal supports default colours (AX present), force black
 | 
						|
  background and white foreground to default. This is useful on transparent
 | 
						|
  *terms for programs which don't do it themselves (like most(1)).
 | 
						|
* (nicm) Fill in the rest of the man page.
 | 
						|
* (nicm) kill-session command.
 | 
						|
 | 
						|
09 November 2007
 | 
						|
 | 
						|
* (nicm) C-space is now "^ " not "^@".
 | 
						|
* (nicm) Support tab (\011).
 | 
						|
* (nicm) Initial man page outline.
 | 
						|
* (nicm) -V to show version.
 | 
						|
* (nicm) rename-session command.
 | 
						|
 | 
						|
08 November 2007
 | 
						|
 | 
						|
* (nicm) Check for required terminal capabilities on start.
 | 
						|
 | 
						|
31 October 2007
 | 
						|
 | 
						|
* (nicm) Linux port.
 | 
						|
 | 
						|
30 October 2007
 | 
						|
 | 
						|
* (nicm) swap-window command. Same as link-window but swaps windows.
 | 
						|
 | 
						|
26 October 2007
 | 
						|
 | 
						|
* (nicm) Saving scroll region on \e7 causes problems with ncmpc so I guess
 | 
						|
  it is not required.
 | 
						|
* (nicm) unlink-window command.
 | 
						|
* (nicm) link-window command to link an existing window into another session
 | 
						|
  (or another index in the same session). Syntax:
 | 
						|
 | 
						|
	tmux -s dstname link-window [-i dstidx] srcname srcidx
 | 
						|
 | 
						|
* (nicm) Redo window data structures. The global array remains, but each per-
 | 
						|
  session list is now a RB tree of winlink structures. This disassociates the
 | 
						|
  window index from the array size (allowing arbitrary indexes) which still
 | 
						|
  allowing windows to have multiple indexes.
 | 
						|
 | 
						|
25 October 2007
 | 
						|
 | 
						|
* (nicm) has-session command: checks if session exists.
 | 
						|
 | 
						|
24 October 2007
 | 
						|
 | 
						|
* (nicm) Support for \e6n to request cursor position. resize(1) now works.
 | 
						|
* (nicm) Support for \e7, \e8 save/restore cursor and attribute sequences.
 | 
						|
  Currently don't save mode (probably should). Also change some cases where
 | 
						|
  out-of-bound values are ignored to limit them to within range (there are
 | 
						|
  others than need to be checked too).
 | 
						|
 | 
						|
23 October 2007
 | 
						|
 | 
						|
* (nicm) Lift limit on session name passed with -s.
 | 
						|
* (nicm) Show size in session/window lists.
 | 
						|
* (nicm) Pass tty up to server when client identifies and add a list-clients
 | 
						|
  command to list connected clients.
 | 
						|
 | 
						|
20 October 2007
 | 
						|
 | 
						|
* (nicm) Add default-command option and change default to be $SHELL rather than
 | 
						|
  $SHELL -l. Also try to read shell from passwd db if $SHELL isn't present.
 | 
						|
 | 
						|
19 October 2007
 | 
						|
 | 
						|
* (nicm) -n on new-session is now -s, and -n is now the initial window name.
 | 
						|
  This was documented but not implemented :-/.
 | 
						|
* (nicm) kill-window command, bound to & by default (because it should be hard
 | 
						|
  to hit accidently).
 | 
						|
* (nicm) bell-style option with three choices: "none" completely ignore bell;
 | 
						|
  "any" pass through a bell in any window to current; "current" ignore bells
 | 
						|
  except in current window. This applies only to the bell terminal signal,
 | 
						|
  the status bar always reflects any bells.
 | 
						|
* (nicm) Refresh session command.
 | 
						|
 | 
						|
12 October 2007
 | 
						|
 | 
						|
* (nicm) Add a warning if $TMUX exists on new/attach.
 | 
						|
* (nicm) send-prefix command. Bound to C-b by default.
 | 
						|
* (nicm) set status, status-fg, status-bg commands. fg and bg are as a number
 | 
						|
  from 0 to 8 or a string ("red", "blue", etc). status may be 1/0, on/off,
 | 
						|
  yes/no.
 | 
						|
* (nicm) Make status line mark window in yellow on bell.
 | 
						|
 | 
						|
04 October 2007
 | 
						|
 | 
						|
* (nicm) -d option to attach to detach all other clients on the same session.
 | 
						|
* (nicm) Partial resizing support. Still buggy. A C-b S and back sometimes fixes
 | 
						|
  it when it goes wonky.
 | 
						|
* (mxey) Added my tmux start script as an example (examples/start-tmux.sh).
 | 
						|
* (mxey) New sessions can now be given a command for their first window.
 | 
						|
* (mxey) Fixed usage statement for new-window.
 | 
						|
* (nicm) attach-session (can't believe I forgot it until now!) and list-windows
 | 
						|
  commands.
 | 
						|
* (nicm) rename-window and select-window commands.
 | 
						|
* (nicm) set-option command (alias set): "tmux set-option prefix ^A".
 | 
						|
* (nicm) Key binding and unbinding is back.
 | 
						|
 | 
						|
03 October 2007
 | 
						|
 | 
						|
* (nicm) {new,next,last,previous}-window.
 | 
						|
* (nicm) Rewrite command handling so commands are much more generic and the
 | 
						|
  same commands are used for command line and keys (although most will probably
 | 
						|
  need to check how they are called). Currently incomplete (only new/detach/ls
 | 
						|
  implemented). Change: -s is now passed before command again!
 | 
						|
* (nicm) String number arguments. So you can do: tmux bind ^Q create "blah".
 | 
						|
* (nicm) Key binding. tmux bind key command [argument] and tmux unbind key.
 | 
						|
  Key names are in a table in key-string.c, plus A is A, ^A is ctrl-A.
 | 
						|
  Possible commands are in cmd.c (look at cmd_bind_table).
 | 
						|
* (nicm) Move command parsing into the client. Also rename some messages and
 | 
						|
  tidy up a few bits. Lots more tidying up needed :-/.
 | 
						|
 | 
						|
02 October 2007
 | 
						|
 | 
						|
* (nicm) Redraw client status lines on rename.
 | 
						|
* (nicm) Error on ambiguous command.
 | 
						|
 | 
						|
01 October 2007
 | 
						|
 | 
						|
* (nicm) Restore window title handling.
 | 
						|
* (nicm) Simple uncustomisable status line with window list.
 | 
						|
 | 
						|
30 September 2007
 | 
						|
 | 
						|
* (nicm) Window info command for debugging, C-b I.
 | 
						|
 | 
						|
29 September 2007
 | 
						|
 | 
						|
* (nicm) Deleting/inserting lines should follow scrolling region. Fix.
 | 
						|
* (nicm) Allow creation of detached sessions: "tmux new-session -d".
 | 
						|
* (nicm) Permit error messages to be passed back for transient clients like
 | 
						|
  rename. Also make rename -i work.
 | 
						|
* (nicm) Pass through bell in any window to current.
 | 
						|
 | 
						|
28 September 2007
 | 
						|
 | 
						|
* (nicm) Major rewrite of input parser:
 | 
						|
	- Lose the old weirdness in favour of a state machine.
 | 
						|
	- Merge in parsing from screen.c.
 | 
						|
	- Split key parsing off into a separate file.
 | 
						|
  This is step one towards hopefully allowing a status line. It requires
 | 
						|
  that we output data as if the terminal had one line less than it really does -
 | 
						|
  a serious problem when it comes to things like scrolling. This change
 | 
						|
  consolidates all the range checking and limiting together which should make
 | 
						|
  it easier.
 | 
						|
* (mxey) Added window renaming, like "tmux rename [-s session] [-i index] name"
 | 
						|
 | 
						|
27 September 2007
 | 
						|
 | 
						|
* Split "tmux list" into "tmux list-sessions" (ls) and "list-windows" (lsw).
 | 
						|
* New command session selection:
 | 
						|
	- if name is specified, look for it and use it if it exists, otherwise
 | 
						|
	  error
 | 
						|
	- if no name specified, try the current session from $TMUX
 | 
						|
	- if $TMUX doesn't exist, and there is only one session, use it,
 | 
						|
	  otherwise error
 | 
						|
 | 
						|
26 September 2007
 | 
						|
 | 
						|
* Add command aliases, so "ls" is an alias for "list".
 | 
						|
* Rename some commands and alter syntax to take options after a la CVS. Also
 | 
						|
  change some flags. So:
 | 
						|
 | 
						|
	tmux -s/socket -nabc new
 | 
						|
 | 
						|
  Becomes:
 | 
						|
 | 
						|
	tmux -S/socket new -sabc
 | 
						|
 | 
						|
* Major tidy and split of client/server code.
 | 
						|
 | 
						|
22 September 2007
 | 
						|
 | 
						|
* Window list command (C-b W). Started by Maximilian Gass, finished by me.
 | 
						|
 | 
						|
20 September 2007
 | 
						|
 | 
						|
* Specify meta via environment variable (META).
 | 
						|
* Record last window and ^L key to switch to it. Largely from Maximilian Gass.
 | 
						|
* Reset ignored signals in child after forkpty, makes ^C work.
 | 
						|
* Wrap on next/previous. From Maximilian Gass.
 | 
						|
 | 
						|
19 September 2007
 | 
						|
 | 
						|
* Don't renumber windows on close.
 | 
						|
 | 
						|
28 August 2007
 | 
						|
 | 
						|
* Scrolling region (\e[r) support.
 | 
						|
 | 
						|
27 August 2007
 | 
						|
 | 
						|
* Change screen.c to work more logically and hopefully fix heap corruption.
 | 
						|
 | 
						|
09 July 2007
 | 
						|
 | 
						|
* Initial import to CVS. Basic functions are working, albeit with a couple of
 | 
						|
  showstopper memory bugs and many missing features. Detaching, reattaching,
 | 
						|
  creating new sessions, listing sessions work acceptably for using with shells.
 | 
						|
  Simple curses programs (top, systat, tetris) and more complicated ones (mutt,
 | 
						|
  emacs) that don't require scrolling regions (ESC[r) mostly work fine
 | 
						|
  (including mutt, emacs). No status bar yet and no key remapping or other
 | 
						|
  customisation.
 | 
						|
 | 
						|
$Id: CHANGES,v 1.262 2009-03-28 14:08:09 nicm Exp $
 | 
						|
 | 
						|
 LocalWords:  showw utf UTF fulvio ciriaco joshe OSC APC gettime abc DEF OA clr
 | 
						|
 LocalWords:  rivo nurges lscm Erdely eol smysession mysession ek dstname RB ms
 | 
						|
 LocalWords:  dstidx srcname srcidx winlink lsw nabc sabc Exp Tiago Cunha dch
 | 
						|
 LocalWords:  setw Chisnall renamew merdely eg Maier newname selectw neww Gass
 |