Commit graph

10 commits

Author SHA1 Message Date
hasso
33a61b8a0f Update to 1.1. Amongst other things fixes long standing and well known bug
which broke copy&paste wrapped shell lines.

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.
2009-11-07 17:25:08 +00:00
hasso
44518b929a Fix build on NetBSD (from fulvio ciriaco). 2009-09-25 16:38:22 +00:00
hasso
36e084abba Update to 1.0.
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.
2009-09-21 10:55:35 +00:00
hasso
1899a7137a Update to 0.9, thanks to Adrian Portelli. Changes since 0.8:
* 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.
2009-07-08 20:59:11 +00:00
hasso
26eb597f67 Add license info. 2009-06-08 19:26:29 +00:00
minskim
acc1e673d6 Make misc/tmux build on SunOS. 2009-06-04 21:49:18 +00:00
minskim
84798b44d5 Use BSD_INSTALL_* so that a non-root user can install misc/tmux. 2009-06-03 06:09:11 +00:00
minskim
157ef1578b Make misc/tmux compile on Darwin. 2009-05-27 06:11:23 +00:00
hasso
aa2cc38fd9 Update to 0.8. From Fulvio Ciriaco via private mail.
Upstream changes since 0.7:

* Remove the right number of characters from the buffer when escape then
  a cursor key (or other key prefixed by \033) is pressed. Reported by
  Stuart Henderson.
* rotate-window command. -U flag (default) for up, -D flag for down.
* Change scroll/pane redraws to only redraw the single pane affected rather
  than the entire window.
* If redrawing the region would mean redrawing > half the pane, just schedule
  to redraw the entire window. Also add a flag to skip updating the window any
  further if it is scheduled to be redrawn. This has the effect of batching
  multiple redraws together.
* Basic horizontal splitting and layout management. Still some redraw and other
  issues - particularly, don't mix with manual pane resizing, be careful when
  viewing from multiple clients and don't expect shell windows to redraw very
  well after the layout is changed; generally cycling the layout a few times
  will fix most problems. Getting this in for testing while I think about how
  to deal with manual mode.
  Split window as normal and cycle the layouts with C-b space. Some of the
  layouts will work better when swap-pane comes along.
* AIX port, thanks to cmihai for access to a box. Only tested on 6.1 with xlc
  10.1 (make sure CC is set). Needs GNU make and probably ncurses (didn't try
  plain curses). Also won't build with DEBUG, so comment the FDEBUG=1 line in
  GNUmakefile.
* Draw a vertical line on the right when the window size is less than the
  terminal size. This is partly to shake out any horizontal limit bugs on the
  way to horizontal splitting/pane tiling. Currently a bit slow since it has to
  do a lot of redrawing but hopefully that will improve as I get some better
  ideas for how to do it.
* Fix remaining problems with copy and paste and UTF-8.
* Better UTF-8 support, including combined characters. Unicode data is now
  stored as UTF-8 in a separate array, the code does a lookup into this every
  time it gets to a UTF-8 cell. Zero width characters are just appended onto
  the UTF-8 data for the previous cell. This also means that almost no bytes
  extra are wasted non-Unicode data (yay).
  Still some oddities, such as copy mode skips over wide characters in a
  strange way, and the code could do with some tidying.
* 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.
* 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.
* 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.
* Support for 88 colour terminals.
* break-pane command to create a new window using an existing pane.
* Make escape key timer work properly so escape+key can be used without
  lightning fast key presses.
* 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.
* 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.
* 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).
* No longer redraw the status line every status-interval unless it has actually
  changed.
2009-05-02 10:50:57 +00:00
hasso
22c5cd6724 Tmux is a "terminal multiplexer", it enables a number of terminals
(or windows) to be accessed and controlled from a single terminal.
Tmux is intended to be a simple, modern, BSD-licensed alternative
to programs such as GNU screen.

Brought in from pkgsrc-wip (PR 40497) where it was maintained by
Fulvio Ciriaco.
2009-03-06 12:16:17 +00:00