summaryrefslogtreecommitdiffstats
path: root/CHANGES
blob: 7f308674537641becd2d6a798f62cc76309877da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
23 November 2007

* 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 remaming, 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.81 2007-11-23 12:48:20 nicm Exp $