123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977 |
- 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_syncronized} format specifier has been added to be a conditional
- format if a pane is in a syncronised mode (c.f. syncronize-panes)
- * Tmux now runs under Cygwin natively.
- * Formats can now be nested within each other and expanded accordingly.
- * Added 'automatic-rename-format' option to allow the automatic rename
- mechanism to use something other than the default of
- #{pane_current_command}.
- * new-session learnt '-c' to specify the starting directory for that session
- and all subsequent windows therein.
- * The session name is now shown in the message printed to the terminal when
- a session is detached.
- * Lots more format specifiers have been added.
- * Server race conditions have been fixed; in particular commands are not run
- until after the configuration file is read completely.
- * Case insensitive searching in tmux's copy-mode is now possible.
- * attach-session and switch-client learnt the '-t' option to accept a window
- and/or a pane to use.
- * Copy-mode is only exited if no selection is in progress.
- * Paste key in copy-mode is now possible to enter text from the clipboard.
- * status-interval set to '0' now works as intended.
- * tmux now supports 256 colours running under fbterm.
- * Many bug fixes!
- CHANGES FROM 1.7 to 1.8, 26 March 2013
- Incompatible Changes
- ====================
- * layout redo/undo has been removed.
- Normal Changes
- ==============
- * Add halfpage up/down bindings to copy mode.
- * Session choosing fixed to work with unattached sessions.
- * New window options window-status-last-{attr,bg,fg} to denote the last
- window which was active.
- * Scrolling in copy-mode now scrolls the region without moving the mouse
- cursor.
- * run-shell learnt '-t' to specify the pane to use when displaying output.
- * Support for middle-click pasting.
- * choose-tree learns '-u' to start uncollapsed.
- * select-window learnt '-T' to toggle to the last window if it's already
- current.
- * New session option 'assume-paste-time' for pasting text versus key-binding
- actions.
- * choose-* commands now work outside of an attached client.
- * Aliases are now shown for list-commands command.
- * Status learns about formats.
- * Free-form options can be set with set-option if prepended with an '@'
- sign.
- * capture-pane learnt '-p' to send to stdout, and '-e' for capturing escape
- sequences, and '-a' to capture the alternate screen, and '-P' to dump
- pending output.
- * Many new formats added (client_session, client_last_session, etc.)
- * Control mode, which is a way for a client to send tmux commands.
- Currently more useful to users of iterm2.
- * resize-pane learnt '-x' and '-y' for absolute pane sizing.
- * Config file loading now reports errors from all files which are loaded via
- the 'source-file' command.
- * 'copy-pipe' mode command to copy selection and pipe the selection to a
- command.
- * Panes can now emit focus notifications for certain applications
- which use those.
- * run-shell and if-shell now accept formats.
- * resize-pane learnt '-Z' for zooming a pane temporarily.
- * new-session learnt '-A' to make it behave like attach-session.
- * set-option learnt '-o' to prevent setting an option which is already set.
- * capture-pane and show-options learns '-q' to silence errors.
- * New command 'wait-for' which blocks a client until woken up again.
- * Resizing panes will now reflow the text inside them.
- * Lots and lots of bug fixes, fixing memory-leaks, etc.
- * Various manpage improvements.
- CHANGES FROM 1.6 to 1.7, 13 October 2012
- * tmux configuration files now support line-continuation with a "\" at the
- end of a line.
- * New option status-position to move the status line to the top or bottom of
- the screen.
- * Enforce history-limit option when clearing the screen.
- * Give each window a unique id, like panes but prefixed with @.
- * Add pane id to each pane in layout description (while still accepting
- the old form).
- * Provide defined ways to set the various default-path possibilities: ~
- for home directory, . for server start directory, - for session start
- directory and empty for the pane's working directory (the default). All
- can also be used as part of a relative path (eg -/foo). Also provide -c
- flags to neww and splitw to override default-path setting.
- * Add -l flag to send-keys to send input literally (without translating
- key names).
- * Allow a single option to be specified to show-options to show just that
- option.
- * New command "move-pane" (like join-pane but allows the same window).
- * join-pane and move-pane commands learn "-b" option to place the pane to
- the left or above.
- * Support for bracketed-paste mode.
- * Allow send-keys command to accept hex values.
- * Add locking around "start-server" to avoid race-conditions.
- * break-pane learns -P/-F arguments for display formatting.
- * set-option learns "-q" to make it quiet, and not print out anything.
- * copy mode learns "wrap-search" option.
- * Add a simple form of output rate limiting by counting the number of
- certain C0 sequences (linefeeds, backspaces, carriage returns) and if it
- exceeds a threshold (current default 250/millisecond), start to redraw
- the pane every 100 milliseconds instead of making each change as it
- comes. Two configuration options - c0-change-trigger and
- c0-change-interval.
- * find-window learns new flags: "-C", "-N", "-T" to match against either or
- all of a window's content, name, or title. Defaults to all three options
- if none specified.
- * find-window automatically selects the appropriate pane for the found
- matches.
- * show-environment can now accept one option to show that environment value.
- * Exit mouse mode when end-of-screen reached when scrolling with the mouse
- wheel.
- * select-layout learns -u and -U for layout history stacks.
- * kill-window, detach-client, kill-session all learn "-a" option for
- killing all but the current thing specified.
- * move-window learns "-r" option to renumber window sequentially in a
- session.
- * New session option "renumber-windows" to automatically renumber windows in
- a session when a window is closed. (see "move-window -r").
- * Only enter copy-mode on scroll up.
- * choose-* and list-* commands all use "-F" for format specifiers.
- * When spawning external commands, the value from the "default-shell" option
- is now used, rather than assuming /bin/sh.
- * New choose-tree command to render window/sessions as a tree for selection.
- * display-message learns new format options.
- * For linked-windows across sessions, all flags for that window are now
- cleared across sessions.
- * Lots and lots of bug fixes, fixing memory-leaks, etc.
- * Various manpage improvements.
- CHANGES FROM 1.5 TO 1.6, 23 January 2012
- * Extend the mode-mouse option to add a third choice which means the mouse
- does not enter copy mode.
- * Add a -r flag to switch-client to toggle the client read-only flag.
- * Add pane-base-index option.
- * Support \ for line continuation in the configuration file.
- * Framework for more powerful formatting of command output and use it for
- list-{panes,windows,sessions}. This allows more descriptive replacements
- (such as #{session_name}) and conditionals.
- * Mark dead panes with some text saying they are dead.
- * Reject $SHELL if it is not a full path.
- * Add -S option to refresh-client to redraw status line.
- * Add an else clause for if-shell.
- * Try to resolve relative paths for loadb and saveb (first, using client
- working directory, if any, then default-path or session working directory).
- * Support for \e[3J to clear the history and send the corresponding
- terminfo code (E3) before locking.
- * When in copy mode, make repeat count indicate buffer to replace, if used.
- * Add screen*:XT to terminal-overrides for tmux-in-tmux.
- * Status-line message attributes added.
- * Move word-separators to be a session rather than window option.
- * Change the way the working directory for new processes is discovered. If
- default-path isn't empty, it is used. Otherwise, if a new window is created
- from the command-line, the working directory of the client is used. If not,
- platform specific code is used to retrieve the current working directory
- of the process in the active pane. If that fails, the directory where the
- session was created is used, instead.
- * Do not change the current pane if both mouse-select-{pane,window} are
- enabled.
- * Add \033[s and \033[u to save and restore cursor position.
- * Allow $HOME to be used as default-path.
- * Add CNL and CPL escape sequences.
- * Calculate last position correctly for UTF-8 wide characters.
- * Add an option allow-rename to disable the window rename escape sequence.
- * Attributes for each type of status-line alert (ie bell, content and
- activity) added. Therefore, remove the superfluous options
- window-status-alert-{attr,bg,fg}.
- * Add a -R flag to send-keys to reset the terminal.
- * Add strings to allow the aixterm bright colours to be used when
- configuring colours.
- * Drop the ability to have a list of keys in the prefix in favour of two
- separate options, prefix and prefix2.
- * Flag -2 added to send-prefix to send the secondary prefix key.
- * Show pane size in top right of display panes mode.
- * Some memory leaks plugged.
- * More command-prompt editing improvements.
- * Various manpage improvements.
- * More Vi mode improvements.
- 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".
- 19 May 2009
- * Try to guess if the window is UTF-8 by outputting a three-byte UTF-8 wide
- character and seeing how much the cursor moves. Currently tries to figure out
- if this works by some stupid checks on the terminal, these need to be
- rethought. Also might be better using a width 1 character rather than width 2.
- * If LANG contains "UTF-8", assume the terminal supports UTF-8, on the grounds
- that anyone who configures it probably wants UTF-8. Not certain if this is
- a perfect idea but let's see if it causes any problems.
- * New window option: monitor-content. Searches for a string in a window and if
- it matches, highlight the status line.
- 18 May 2009
- * main-horizontal layout and main-pane-height option to match vertical.
- * New window option main-pane-width to set the width of the large left pane with
- main-vertical (was left-vertical) layout.
- * Lots of layout cleanup. manual layout is now manual-vertical.
- 16 May 2009
- * select-layout command and a few default key bindings (M-0, M-1, M-2, M-9) to
- select layouts.
- * Recreate server socket on SIGUSR1, per SF feature request 2792533.
- 14 May 2009
- * Keys in status line (p in vi mode, M-y in emacs) to paste the first line
- of the upper paste buffer. Suggested by Dan Colish.
- * clear-history command to clear a pane's history.
- * Don't force wrapping with \n when asked, let the cursor code figure it out.
- Should fix terminals which use this to detect line breaks.
- * Major cleanup and restructuring of build infrastructure. Still separate files
- for GNU and BSD make, but they are now hugely simplified at the expense of
- adding a configure script which must be run before make. Now build and
- install with:
- $ ./configure && make && sudo make install
- 04 May 2009
- * Use ACS line drawing characters for pane separator lines.
- 30 April 2009
- * Support command sequences without a space before the semicolon, for example
- "neww; neww" now works as well as "neww ; neww". "neww;neww" is still an
- error.
- * previous-layout command.
- * Display the layout name in window lists.
- * Merge resize-pane-up and resize-pane-down into resize-pane with -U and -D
- flags.
- 29 April 2009
- * Get rid of compat/vis.* - only one function was used which is easily
- replaced,and less compat code == good.
- 27 April 2009
- * Avoid using the prompt history when the server is locked, and prevent any
- input entered from being added to the client's prompt history.
- * New command, confirm-before (alias confirm), which asks for confirmation
- before executing a command. Bound "&" and "x" by default to confirm-before
- "kill-window" and confirm-before "kill-pane", respectively.
- 23 April 2009
- * Support NEL, yet another way of making newline. Fixes the output from some
- Gentoo packaging thing. Reported by someone on SF then logs that allowed a
- fix sent by tcunha.
- * Use the xenl terminfo flag to detect early-wrap terminals like the FreeBSD
- console. Many thanks for a very informative email from Christian Weisgerber.
- 21 April 2009
- * tmux 0.8 released.
- 17 April 2009
- * 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.
- 03 April 2009
- * rotate-window command. -U flag (default) for up, -D flag for down.
- 02 April 2009
- * 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.
- 01 April 2009
- * 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.
- 31 March 2009
- * 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.
- 28 March 2009
- * 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.
- 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.
|