Commit Graph

819 Commits (78da5a3756a9f51f8e49d2975f74a1ea800b58b6)

Author SHA1 Message Date
nicm 15253448af Tweak text to mention initial size, from John Hood. 2017-05-29 07:46:32 +00:00
nicm b519551153 Expand formats in option names and add -F flag to do so in option values as well. 2017-05-10 13:05:41 +00:00
nicm 5fee4638e0 Add a format for the name of the pane's mode, lets it be used as a
conditional for key bindings.
2017-05-07 22:27:57 +00:00
nicm 2fef10b9ac Add some formats to look at the session window stack, suggested by Scott
ROCHFORD.
2017-05-05 11:59:47 +00:00
nicm d98d316903 Some new notifications, mainly for active pane and current window and
session:

    pane-mode-changed
    window-pane-changed
    client-session-changed
    session-window-changed

From Joshua Brot.
2017-05-04 07:16:43 +00:00
nicm ca6a121e63 Add a format for the last search string in copy mode and fix the prompt
so it can work when in -I, suggested by Suraj N Kurapati.
2017-05-03 05:53:34 +00:00
nicm c12711affd Default for xterm-keys was wrong, stop documenting it. 2017-04-28 13:39:59 +00:00
nicm 59ff9b8128 Typo in example. 2017-04-22 06:15:22 +00:00
nicm 0b44ad99b5 If a #() command doesn't exit, use its most recent line of output (it
must be a full line). Don't let it redraw the status line more than once
a second.

Requested by someone about 10 years ago...
2017-04-20 09:20:22 +00:00
nicm fa6deb5866 When the data we have buffered to write to a terminal grows beyond a
reasonable amount (currently width * height * 8 bytes), discard all
output to the terminal and start trying to redraw periodically
instead. Continue with this until the amount of data we are trying to
write falls to a low level again.

This helps to prevent tmux sitting on a huge buffer of data when there
are processes with fast output running inside tmux but the outside
terminal is slow.

A new client_discarded format holds the amount of data that has been
discarded due to this mechanism.

The three variables (when to start this, when to stop, and how often to
redraw) are basically "works for me" at the moment, this is going in to
see how it goes and if it causes problems for anyone else.
2017-04-19 06:52:27 +00:00
nicm fb3c5efa50 Add a format for number of bytes writtent to client, useful for debugging. 2017-04-18 15:44:17 +00:00
nicm 9b28200578 Give each client a name. This defaults to the tty name as before but
falls back to an alternative if the tty name is not available. This is
clearer than overloading the client ttyname member and allows us to
remove the path stored in the tty struct, it should always be the same
as the client.
2017-04-05 10:49:46 +00:00
nicm df3ab87964 Add support for the strikethrough attribute (SGR 9), using the new smxx
terminfo capability. This means there are now nine attribute bits, so
anything above 0xff uses an extended cell.
2017-03-22 07:16:54 +00:00
nicm 640d9e54b7 "status bar" -> "status line" for consistency, from Benjamin Dopplinger. 2017-02-15 08:47:55 +00:00
nicm d22c15107b Don't use a bufferevent for the tty, so we can keep better track of what
is being written and when.

Also a manpage typo fix from jmc@.
2017-02-10 12:59:18 +00:00
nicm c6a3446398 Instead of numbering session groups, give them a name which may be given
to -t instead of a target session. Also allow them to contain only one
session.
2017-02-09 15:04:53 +00:00
nicm 8de4c15dfa Document refresh-client -C. 2017-02-09 14:49:00 +00:00
nicm b7ddfb39f3 Don't lie about the default size in the man page. 2017-02-09 12:00:42 +00:00
nicm dd0c814779 Implement "all event" (1003) mouse mode but in a way that works. The
main issue is that if we have two panes, A with 1002 and B with 1003, we
need to set 1003 outside tmux in order to get all the mouse events, but
then we need to suppress the ones that pane A doesn't want. This is easy
in SGR mouse mode, because buttons == 3 is only used for movement events
(for other events the trailing m/M marks a release instead), but in
normal mouse mode we can't tell so easily. So for that, look at the
previous event instead - if it is drag+release as well, then the current
event is a movement event.
2017-02-01 09:55:07 +00:00
nicm b6099f31ea Add -n to break-pane. 2017-01-29 22:10:55 +00:00
nicm 0a63ab4f0f If xterm-keys is on, use xterm(1) style keys for Home and End as well as
modified keys.
2017-01-25 14:24:54 +00:00
nicm 4b2821ff98 Make update-environment an array as well. 2017-01-24 20:15:32 +00:00
nicm b77dd75b57 Convert terminal-overrides to an array option. 2017-01-24 20:05:15 +00:00
nicm 16e43d6a42 Remove some lies about terminal-overrides from tmux.1. 2017-01-24 20:01:34 +00:00
nicm 85338bb75f Add support for custom command aliases, this is an array option which
contains items of the form "alias=command". This is consulted when an
unknown command is parsed.
2017-01-24 19:53:37 +00:00
nicm 95950bf668 Add -E to detach-client to exec a command to replace the client instead
of exiting it, useful if tmux wasn't exec'd itself. From Jenna Magius.
2017-01-13 10:12:12 +00:00
nicm bf6a5c056d Add a format for terminal type. 2017-01-11 16:09:57 +00:00
nicm e78142232f Some manpage fixes: rephrase a convoluted sentence, make the names of
some keys more standard, and use Ql instead of Dq.
2017-01-10 10:08:59 +00:00
jmc 40fddfbdd6 avoid unneccessary markup; tweaked and ok nicm 2017-01-10 07:55:48 +00:00
nicm d2d984647e Add %if/%endif for conditionals when parsing configuration files, the
argument is a format (the new == and != are useful).
2017-01-09 21:28:56 +00:00
nicm 844f2eacf4 Add simple comparisons in formats: #{==:a,b} and #{!=:a,b} ("a" and "b"
are expanded so can compare formats). And expand the condition to
#{?a,b,c} (the "a" part) if it doesn't work as a simple lookup.

Also add FORMAT_NOJOBS flag to disable jobs in a format.
2017-01-09 21:03:25 +00:00
nicm 5330a2a85d Run the source-file pattern through glob(3). 2017-01-09 19:27:00 +00:00
nicm c05002b0f2 Add note about ccc and initc so people who want it can see it is
possible.
2017-01-07 15:40:23 +00:00
nicm 461217d0f0 Incremental search in copy mode (on for emacs keys by default) - much
the same as normal searching but updates the cursor position and marked
search terms as you type. C-r and C-s in the prompt repeat the search,
once finished searching (with Enter), N and n work as before.
2017-01-06 11:57:03 +00:00
nicm 6b46c62bb4 Make send -N work for all keys, not just in copy mode. From Artem Fokin. 2016-11-29 12:54:46 +00:00
nicm 7e6c2cb238 Make the selection able to exist independent of the cursor position, so
that it is not affected by scrolling. If MouseDragEnd1Pane is bound to
the new "stop-selection" command:

    bind -Tcopy-mode MouseDragEnd1Pane stop-selection

A selection made with the mouse will stay as it is after button 1 is
released. (It also works bound to a key.)

From Artem Fokin.
2016-11-24 13:38:44 +00:00
nicm 9fe43d6acb Add copy-pipe-and-cancel, from Artem Fokin. 2016-11-15 09:53:23 +00:00
nicm 8084a2c9e6 Add %%% to substitute with quotes escaped (convert " to \"). Use this
for the prompts in copy mode. Fixes problems with jumping to ' reported
by Theo Buehler.
2016-10-21 13:51:59 +00:00
nicm fb109ae97d xterm-keys was in the wrong place in the list; Dilyan Palauzov. 2016-10-18 19:25:26 +00:00
nicm 41e633acf5 Use the notify name string instead of going via an enum and change
existing hooks to use notifys instead.
2016-10-16 22:06:40 +00:00
nicm d15d54c2c8 Add hook_session and hook_window formats to get information on the
affected session or window when a hook fires. Enable session-created and
session-closed hooks now that that is available.
2016-10-16 19:55:52 +00:00
nicm ddc4512d2e Rewrite command queue handling. Each client still has a command queue,
but there is also now a global command queue. Instead of command queues
being dispatched on demand from wherever the command happens to be
added, they are now all dispatched from the top level server
loop. Command queues may now also include callbacks as well as commands,
and items may be inserted after the current command as well as at the end.

This all makes command queues significantly more predictable and easier
to use, and avoids the complex multiple nested command queues used by
source-file, if-shell and friends.

A mass rename of struct cmdq to a better name (cmdq_item probably) is
coming.
2016-10-16 17:55:14 +00:00
jmc 4fbf564292 zap double .Pp; 2016-10-15 12:34:02 +00:00
nicm 63b2547a02 Fire hooks on the simple notifys (window-renamed and session-renamed),
the complicated ones get no hooks for now (more to come).
2016-10-15 00:09:30 +00:00
nicm 0ec18e537d Missing flags in capture-pane, and tweak choose-tree text. From Dilyan Palauzov. 2016-10-14 17:40:47 +00:00
nicm 4289a1ebfa Trying to do hooks generically is way too complicated and unreliable and
confusing, particularly trying to automatically figure out what target
hooks should be using. So simplify it:

- drop before hooks entirely, they don't seem to be very useful;

- commands with special requirements now fire their own after hook (for
  example, if they change session or window, or if they have -t and -s
  and need to choose which one the hook uses as current target);

- commands with no special requirements can have the CMD_AFTERHOOK flag
  added and they will use the -t state.

At the moment new-session, new-window, split-window fire their own hook,
and display-message uses the flag. The remaining commands still need to
be looked at.
2016-10-13 22:48:51 +00:00
nicm 7a1a01feef Remove the set-remain-on-exit option, it was always a hack and can now
be done with hooks instead.
2016-10-13 21:37:03 +00:00
nicm 1bd08f903b Remove mention of key tables than no longer exist. 2016-10-13 20:09:19 +00:00
nicm 05dac2e42c -f missed from splitw usage, from Felix Rosencrantz. 2016-10-13 09:06:48 +00:00
nicm 40253048ca bind-key -c has gone, remove from man page, and unused table declarations. 2016-10-12 15:26:37 +00:00
nicm c484c5a2a1 Drop the edit mode key tables and just use fixed key bindings for the
command prompt.
2016-10-12 14:50:14 +00:00
nicm 68bebe1fb7 The repeat prompt in both emacs and vi (and the old one in tmux) doesn't
support line editing and instead executes a command as soon as a
non-number key is pressed. Add a -N flag to command-prompt for the same
in copy mode. Reported by Theo Buehler.
2016-10-12 13:03:27 +00:00
nicm 85d7afaefc Support double and triple clicks (they are cumulative, so double is
fired then triple), and use for select-word and select-line in copy
mode. Inspired by a different solution from Omar Sandoval.
2016-10-11 09:30:36 +00:00
nicm 76d6d3641f Fundamental change to how copy mode key bindings work:
The vi-copy and emacs-copy mode key tables are gone, and instead copy
mode commands are bound in one of two normal key tables ("copy-mode" or
"copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So:

    bind -temacs-copy C-Up scroll-up
    bind -temacs-copy -R5 WheelUpPane scroll-up

Becomes:

    bind -Tcopy-mode C-Up send -X scroll-up
    bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up

This allows the full command parser and command set to be used - for
example, we can use the normal command prompt for searching, jumping,
and so on instead of a custom one:

    bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'"

command-prompt also gets a -1 option to only require on key press, which
is needed for jumping.

The plan is to get rid of mode keys entirely, so more to come eventually.
2016-10-11 07:23:34 +00:00
nicm 305c832a97 Document set-hook -u. 2016-10-03 20:58:39 +00:00
nicm 2e5584c2b4 Allow repeat count to be specified in mode key tables with bind-key -R,
and set the default repeat count to 5 for WheelUp and WheelDown in
copy-mode.
2016-09-12 15:40:58 +00:00
nicm fed1e384ad Add support for performing a full width split (with splitw -f), rather
than splitting the current cell. From Stephen Kent.
2016-09-04 17:37:06 +00:00
nicm 43f292b2e0 Two minor fixes from dilyan palauzov. 2016-08-22 20:07:58 +00:00
nicm f811127bb6 We only replace the first %%, not multiple (use %2 for second). 2016-08-03 09:08:40 +00:00
nicm 325cbe90d9 Allow a command to be specified to display-panes, similar to
command-prompt, rather than always just selecting the pane.
2016-06-16 10:55:47 +00:00
nicm 0c7ddae2ab Add missing buffer_name format, from Awal Garg. 2016-06-15 14:43:06 +00:00
nicm 068b8b03ad Add -F to list-commands. 2016-06-15 08:54:11 +00:00
tim fdd368a294 - Rework load_cfg() error handling a little.
- Add -q to source-file to suppress errors about nonexistent files.

Input and OK nicm@
2016-05-12 16:05:33 +00:00
nicm 87be2da4e1 Missing format (window_activity_flag) and a missing Ta. 2016-05-01 11:46:12 +00:00
jmc 0c7895076e tweak previous; 2016-04-29 20:57:10 +00:00
nicm eb8e76d433 Compact a small table into text. 2016-04-29 15:58:52 +00:00
nicm 0509be0740 Add option to include status text in the pane borders. If
pane-border-status is set to "top" or "bottom" (rather than "off"),
every pane has a permanent top or bottom border containing the text from
pane-border-format.

Based on a diff sent long ago by Jonathan Slenders, mostly rewritten and
simplified by me.
2016-04-29 15:00:48 +00:00
nicm 0d84fdd953 Final parts of command hooks, add before- and after- hooks to each command. 2016-04-29 14:05:24 +00:00
nicm 1cedf78284 Add next/previous paragraph, from J Raynor. 2016-04-27 09:39:09 +00:00
nicm fa97b0a95b Instead of reusing MouseUp at the finish of a drag, add a new key
MouseDragEnd. It can be useful to bind them separately in copy mode.
2016-03-18 07:28:27 +00:00
nicm c7851e0ee7 Fix break-pane synopsis and some other tmux.1 bits. 2016-03-01 11:58:45 +00:00
nicm 8028560f82 Support negative trim values (#{=-10:pane_title}) to trim from the end,
suggested by Kevin Brubeck Unhammer.
2016-01-31 09:54:46 +00:00
nicm 427b820426 Support for RGB colour, using the extended cell mechanism to avoid
wasting unnecessary space. The 'Tc' flag must be set in the external
TERM entry (using terminal-overrides or a custom terminfo entry), if not
tmux will map to the closest of the 256 or 16 colour palettes.

Mostly from Suraj N Kurapati, based on a diff originally by someone else.
2016-01-29 11:13:56 +00:00
nicm 995af0e2b7 I no longer use my SourceForge address so replace it. 2016-01-19 15:59:12 +00:00
nicm c9815307eb Add hooks for alerts (bell, silence, activity), from Thomas Adam. 2016-01-16 00:36:53 +00:00
nicm 021c64310d Add infrastructure to work out the best target given a pane or window
alone and use it to add pane_died and pane_exited hooks.
2015-12-16 21:50:37 +00:00
nicm 5ed17e84fa Add key-table option to set the default key table for a session, allows
different key bindings for different sessions and a few other things.
2015-12-12 18:32:24 +00:00
nicm 39cf9c9d31 Allow prefix and prefix2 to be set to None to disable (useful if you
would rather bind the prefix in the root table).
2015-12-12 18:19:00 +00:00
nicm f2be3ad46f Mention {src,dst}-{window,pane} where we define target-{window,pane}. 2015-12-11 16:27:01 +00:00
nicm 01831da5f5 Add cmdq as an argument to format_create and add a format for the
command name (will also be used for more later).
2015-12-11 12:27:36 +00:00
jmc 1f94274b92 Ed was meant to be El; 2015-12-08 06:42:07 +00:00
nicm d2fb0efcd1 Add hooks infrastructure, basic commands (set-hook, show-hooks) and a
couple of not very useful client hooks. This will eventually let
commands be run at various points and on notifications. Joint work with
Thomas Adam.
2015-12-08 01:10:31 +00:00
guenther 1d331c7e62 Delete a duplicated line
ok jmc@
2015-11-29 17:06:59 +00:00
nicm 62d3af17f9 Make environ_set va_args and use it to tidy up some calls. Also add a
missing word in manpage (from jmc).
2015-11-24 23:46:15 +00:00
nicm c18fbefe93 Document socket_path format. 2015-11-24 22:27:59 +00:00
nicm 1e2df2d464 Remove the -I part of show-messages which isn't really that useful; the
server start time can now be accessed with a new start_time format (use:
tmux display -p '#{t:start_time}')
2015-11-24 21:52:06 +00:00
nicm 4ec61bef46 Fix usage of detach-client. 2015-11-24 20:40:51 +00:00
tim 4fcc02ee9d If display-time is set to 0, show status messages until a key is pressed;
OK nicm@
2015-11-22 18:28:01 +00:00
nicm 5a5b950e8b Add s/foo/bar/: prefix for formats to substitute bar for foo. 2015-11-18 14:13:55 +00:00
nicm 531869bd92 Add window_visible_layout which ignores zoomed panes and use it for
control mode (which needs to know all panes), from George Nachman.
2015-11-13 10:00:26 +00:00
jmc 1da7475d0e tweak previous; ok nicm 2015-11-12 12:36:34 +00:00
nicm 1b86f520ea Nuke the utf8 and status-utf8 options and make tmux only a UTF-8
terminal. We still support non-UTF-8 terminals outside tmux, but inside
it is always UTF-8 (as when the utf8 and status-utf8 options were on).
2015-11-12 11:09:11 +00:00
nicm a0f3999ce7 Remove the mouse_utf8_flag format as well. 2015-11-12 11:07:10 +00:00
nicm 00c34df186 Drop mouse-utf8 option and always turn on UTF-8 mouse if the client says
it supports UTF-8.
2015-11-11 23:23:33 +00:00
nicm 67c3a014b9 No more TMPDIR. 2015-10-27 14:51:35 +00:00
jmc c582f7d177 space before punctuation; 2015-10-26 00:15:37 +00:00
nicm e65306d8e7 Extend the modifiers allowed before formats: as well as the existing
#{=10:...}  length limit, add #{t:...} to convert a time_t format to a
string, #{b:...} for basename and #{d:...} for dirname. Remove all the
foo_string time formats as they can now be replaced by "t:", for example
#{window_activity_string} becomes #{t:window_activity}.
2015-10-25 22:29:17 +00:00
nicm 14da999408 Format for scroll position, from Jorge Morante. 2015-10-23 16:02:21 +00:00
nicm 60ca29df64 client_key_table was missing. 2015-10-21 13:14:36 +00:00
nicm 901c2eb20a Add copy-mode -e to exit copy mode when scrolling off the bottom, useful
for quick view of history, from Cam Hutchison.
2015-09-13 13:31:40 +00:00
nicm cfabe30bec Add session_last_attached time and format, from Sina Siadat. 2015-09-10 08:58:14 +00:00
nicm 675def0396 Remove the lock-server option which is a bit redundant, it isn't that
different without it.
2015-08-28 12:31:55 +00:00
nicm 13b7fd82c1 Rename left/right/up/down relative to active pane to add -of suffix
(left-of/right-of/etc) to remove conflict with left/right meaning
leftmost or rightmost pane. From Ben Boeckel.
2015-08-12 08:55:20 +00:00
nicm d33adc4fd0 Make -q suppress ambiguous option warnings too, from Cam Hutchison. 2015-07-27 08:45:45 +00:00
nicm 92af3766ec Add an option (history-file) for a file to save/restore command prompt
history, from Olof-Joachim Frahm.
2015-07-20 15:50:04 +00:00
nicm d4ce210713 Correct the tsl/fsl sequence to ]0 not ]2 (from Marcel Korpel). While
here, Xr xterm and remove some advice about elinks that is better
elsewhere.
2015-07-20 10:34:11 +00:00
nicm 81069f66f9 Add a format to show if client is a control client. From Bruno Sutic. 2015-07-13 15:37:26 +00:00
nicm 6308c48efd Add a -s flag to show-environment to output Bourne shell commands a la
ssh-agent. Mostly from Cam Hutchison with some changes by me.
2015-07-13 13:36:29 +00:00
nicm 164ba041c9 Remove a stray : and tweak paragraph. 2015-06-18 23:53:56 +00:00
nicm 85120b37ea Change break-pane to take target and source panes (-t and -s) in line
with other commands, from Thomas Adam.
2015-06-17 19:56:08 +00:00
nicm 0ff335961e Move the shuffle code from new-window -a into a function and add a -a
flag for move-window too. From Thomas Adam.
2015-06-17 16:50:28 +00:00
nicm d96ab34019 Add window_activity format, from Thomas Adam based on a diff originally
from propos6 at gmail dot com.
2015-06-15 10:58:01 +00:00
nicm 29c29e7717 Add a format for client PID (client_pid) and server PID (pid). Diff for
client_pid from Thomas Adam.
2015-06-14 10:07:44 +00:00
nicm c4e811e519 Add -E flag when attaching or switching client to bypass
update-environment, from Steven Lu.
2015-06-07 21:39:39 +00:00
nicm 4219939c10 Make it so that if a window or session target is prefixed with an =,
only an exact name or index match is accepted, no special character,
prefix match, or fnmatch.
2015-06-05 08:14:16 +00:00
jmc dc0d34e137 tweak SYNOPSIS and usage(); 2015-06-04 20:34:22 +00:00
nicm 4a6c06d6a9 Make unsetting a global option restore it to the default. Diff lying
around for a while, I have forgotten who suggested it :-/.
2015-06-04 14:29:33 +00:00
nicm a863834574 Add support for a single "marked pane". There is one marked pane in the
server at a time; it may be toggled or cleared with select-pane -m and
-M (the border is highlighted). A new target '~' or '{marked}' specifies
the marked pane to commands and it is the default target for the
swap-pane and join-pane -s flag (this makes them much simpler to use -
mark the source pane and then change to the target pane to run swapp or
joinp).
2015-06-04 11:43:51 +00:00
nicm 379400cfa6 Move the jobs output cache into the formats code so that #() work more
generally (for example, again working in set-titles-string).
2015-05-27 13:28:04 +00:00
nicm ec34439f9c Add a session_alerts format which is a list of all the alerts in the
current session in symbolic form (something like "0!,4~,5!"). Use this
in the default set-titles-string. Prompted by a request from Jan ONDREJ.
2015-05-12 15:29:29 +00:00
nicm e958db09a7 Add bell-action "other" to pass through bells in all windows except the
current, suggested by Jan ONDREJ.
2015-05-12 15:27:46 +00:00
nicm 44364d7112 Remove the c0-* options which never really worked satisfactorily. Going
to try something else...
2015-05-11 10:10:16 +00:00
nicm c4a4bd6ac5 Move input parser structs into input.c (removing fairly useless
saved_cursor_[xy] formats as a side-effect).
2015-05-08 16:18:04 +00:00
nicm 31b1ab4852 Add a format window_linked which is 1 if a window has been linked
multiple times, also remove the default space in window_flags and use a
conditional to add it in window-status-format (this means additional
flags can be added in the option without extra spaces). From Thomas Adam
with tweaks by me.
2015-05-06 08:35:39 +00:00
nicm 7382ba82c5 If default-terminal is set to "screen" or "screen-*", emulate screen's
historical (incorrect) behaviour for SGR 3 and send smso
(standout). Previously, we would send sitm (italics) if the terminal
outside had it and smso otherwise. This was acceptably until recently
because xterm's terminfo entry lacked sitm, so most users got smso.

People who want italics should set default-terminal to the forthcoming
"tmux" entry (and be prepared to deal with it being missing on older
hosts).

As a side-effect this changes default-terminal to be a server rather
than a session option.

suggested by and ok naddy
2015-04-29 15:59:08 +00:00
nicm 771744426e Add select-layout -o to undo the last layout change (apply the previously
set layout).
2015-04-28 10:43:13 +00:00
nicm 95195f5258 Rewrite of the target resolution internals to be simpler and more
consistent but with much less duplication, but keeping the same internal
API. Also adds more readable aliases for some of the special tokens used
in targets (eg "{start}" instead of "^"). Some behaviours may have
changed, for example prefix matches now happen before fnmatch.
2015-04-27 16:25:57 +00:00
nicm 93b2871cab Do not die on USR1 if any of the socket parent directories are
missing. Reported by Robin Powell.
2015-04-21 22:32:40 +00:00
nicm bded743706 Support for multiple key tables to commands to be bound to sequences of
keys. The default key bindings become the "prefix" table and -n the
"root" table. Keys may be bound in new tables with bind -T and
switch-client -T used to specify the table in which the next key should
be looked up. Based on a diff from Keith Amling.
2015-04-20 15:34:56 +00:00
jmc 8101f1ef16 tweak previous; 2015-04-19 22:10:30 +00:00
nicm bf635e7741 Rewrite of tmux mouse support which was a mess. Instead of having
options for "mouse-this" and "mouse-that", mouse events may be bound as
keys and there is one option "mouse" that turns on mouse support
entirely (set -g mouse on).

See the new MOUSE SUPPORT section of the man page for description of the
key names and new flags (-t= to specify the pane or window under mouse
as a target, and send-keys -M to pass through a mouse event).

The default builtin bindings for the mouse are:

    bind -n   MouseDown1Pane select-pane -t=; send-keys -M
    bind -n MouseDown1Status select-window -t=
    bind -n   MouseDrag1Pane copy-mode -M
    bind -n MouseDrag1Border resize-pane -M

To get the effect of turning mode-mouse off, do:

    unbind -n MouseDrag1Pane
    unbind -temacs-copy MouseDrag1Pane

The old mouse options are now gone, set-option -q may be used to
suppress warnings if mixing configuration files.
2015-04-19 21:34:21 +00:00
nicm ee123c2489 Support setting the default window and pane background colours (window
and active pane via window-style and window-active-style options, an
individual pane by a new select-pane -P flag). From J Raynor.
2015-04-19 21:05:27 +00:00
nicm 0cd55eb1e7 Add a -x flag to copy-selection, append-selection and start-named-buffer
to prevent it exiting copy mode after copying. From J Raynor with a few
tweaks by me.
2015-04-10 16:00:08 +00:00
nicm 009a5e4213 in the case -> in this case. 2015-04-10 07:23:14 +00:00
nicm 3aa72b42b2 Add a helper function to convert time, and add session_activity formats
(the latter from Takatoshi Matsumoto).
2015-03-31 17:58:36 +00:00
nicm cd9ccbc1e9 set-titles-string now uses formats, not the status bits (so no #() for
now). Reported by landry.
2015-03-11 08:17:37 +00:00
nicm 83a8e1fd20 Move pane border options to window options rather than session, from Marc Finet. 2015-02-06 15:09:34 +00:00
nicm be0ad01b7c Add missing default bindings, from Theo Buehler. 2015-01-06 09:12:02 +00:00
nicm 7a0c94b28a Add pane_dead_status for exit status of dead panes. 2014-12-09 19:23:35 +00:00
nicm 54ca7b230d Add -F to if-shell to allow it to be used to check for format or option
values rather than executing a command.
2014-12-02 23:39:02 +00:00
nicm 575fd1e322 Permit option values to be used in formats. 2014-12-02 23:19:45 +00:00
nicm d37f266524 Add -b to splitw like joinw, from Felix Rosencrantz. 2014-11-12 22:57:06 +00:00
nicm 3c12b477d3 V should be vi not emacs, also sort. From Theo Buehler. 2014-11-07 12:28:28 +00:00
nicm e4bf1e5128 Add V for select line with vi(1) keys. From Juho Pohjala. 2014-11-06 09:17:25 +00:00
nicm d24c9d7d3e Do not put a space between status-left/status-right and the window list,
instead move the space into the defaults for the options (so status-left
now defaults to "[#S] ". From Balazs Kezes.
2014-11-05 23:15:11 +00:00
nicm 428b51e031 Add pane_input_off format, from Anish R Athalye. 2014-10-25 08:47:04 +00:00
nicm f0b69c7711 Fix description of Ss and Se. 2014-10-18 20:28:19 +00:00
nicm 6610e89689 Top function key is F12 now. 2014-10-02 14:21:06 +00:00
nicm 304f86cdbb Support ! for last pane. 2014-09-25 12:45:35 +00:00
nicm 9bda7e881a Add window_last_flag and window_zoomed_flag. From John Morrissey. 2014-09-08 14:29:05 +00:00
nicm 8a473b5757 Fix typo (paneas -> panes). 2014-09-01 22:00:42 +00:00
nicm f518a077b1 Add flags to selectp to enable and disable input to a pane, from Anish
Athalye.
2014-08-11 22:14:30 +00:00
nicm c8efffb4db Make -S- and -E- mean the start and end to capture-pane to avoid having
to faff around with huge numbers to get everything.
2014-06-20 10:46:59 +00:00
nicm 7160b8c2d5 Add some formats for pane bounds. 2014-05-27 12:49:36 +00:00
nicm 191f695bad Change key-table to mode-table to allow for some future work. From Keith
Amling.
2014-05-14 06:45:35 +00:00
nicm b3e8d440ed If multiple arguments are given to new-session, new-window,
split-window, respawn-window or respawn-pane, pass them directly to
execvp() to help avoid quoting problems. One argument still goes to "sh
-c" like before. Requested by many over the years. Patch from J Raynor.
2014-05-13 08:08:32 +00:00
nicm b1a06ef22e Add a copy mode key binding to copy to a named buffer. From J Raynor. 2014-05-13 07:54:20 +00:00
nicm 3dbacbb62b Add support for named buffers. If you don't name a buffer, things work
much as before - buffers are automatically named "buffer0000",
"buffer0001" and so on and ordered as a stack. Buffers can be named
explicitly when creating ("loadb -b foo" etc) or renamed ("setb -b
buffer0000 -n foo"). If buffers are named explicitly, they are not
deleted when buffer-limit is reached. Diff from J Raynor.
2014-05-13 07:34:35 +00:00
nicm 64613b9d41 #nnT went away a while ago, remove a leftover from the manpage. 2014-04-17 15:48:02 +00:00
nicm 2740490e27 Remove the "info" message mechanism, this was only used for about five
mostly useless and annoying messages. Change those commands to silence
on success like all the others. Still accept the -q command line flag
and "quiet" server option for now.
2014-04-17 07:55:43 +00:00
nicm 877bdb46ed Extend the -q flag to set-option to suppress errors about unknown
options - this will allow options to be removed more easily.
2014-04-17 07:51:38 +00:00
nicm 992ef70fb6 Remove the monitor-content option and associated bits and bobs. It's
never worked very well. If there is a big demand for it to return, will
consider better ways to do it.
2014-04-17 07:36:45 +00:00
nicm 14a96df9ee Remove the choose-list command to prepare for some later choose-* work. 2014-04-16 21:02:41 +00:00
nicm 252a7373d6 Support UTF-8 with choose-buffer, from Kosuke ASAMI. Also make
buffer_sample bigger to let it trim at window right edge.
2014-04-02 18:12:18 +00:00
nicm b52b40b2bc pane_start_path has gone away. 2014-04-02 07:55:09 +00:00
nicm dca7d1c0fd Make message-limit a server option. 2014-03-31 21:41:35 +00:00
nicm 0e4d1d8493 Add setb -a to append and a copy mode append command, from J Raynor with
minor changes.
2014-03-31 21:39:31 +00:00
nicm b11de5adc7 Make session_attached a count and add session_many_attached flag. 2014-03-31 21:37:55 +00:00
nicm f1828921df Change terminal-overrides to a server option (now that we have them), it
doesn't make much sense as a session option.
2014-02-23 00:53:06 +00:00
nicm 81db6bab91 Leftovers from removing 88 colour support, from Theo Buehler. 2014-02-16 12:45:17 +00:00
jmc 973de5a704 fix some minor formatting glitches; 2014-02-02 08:48:48 +00:00
nicm 945339b443 Allow replacing each of the many sets of separate foo-{fg,bg,attr}
options with a single foo-style option. For example:

    set -g status-fg yellow
    set -g status-bg red
    set -g status-attr blink

Becomes:

    set -g status-style fg=yellow,bg=red,blink

The -a flag to set can be used to add to rather than replace a style. So:

    set -g status-bg red

Becomes:

    set -ag status-style bg=red

Currently this is fully backwards compatible (all *-{fg,bg,attr} options
remain) but the plan is to deprecate them over time.

From Tiago Cunha.
2014-01-28 23:07:09 +00:00
nicm d23561f381 Merge server-info into show-messages and remove some not useful output. 2014-01-22 14:43:42 +00:00
nicm 1286c56188 Replace ## by # in format. 2013-11-24 11:29:09 +00:00
nicm 7fa55b0419 Key to swap to other end of selection (bound to o with vi keys), from J
Raynor.
2013-10-23 11:31:03 +00:00
nicm 17ec688ced Bracket in the wrong place in description of c0-change-trigger. 2013-10-10 23:31:28 +00:00
nicm d0566a474a Remove the KERN_PROC_CWD the proc_current_path format (which is the only
thing that uses it now).
2013-10-10 12:39:24 +00:00
nicm 282c5f9644 Alter how tmux handles the working directory to internally use file
descriptors rather than strings.

- Each session still has a current working directory.

- New sessions still get their working directory from the client that
  created them or its attached session if any.

- New windows are created by default in the session working directory.

- The -c flag to new, neww, splitw allows the working directory to be
  overridden.

- The -c flag to attach let's the session working directory be changed.

- The default-path option has been removed.

To get the equivalent to default-path '.', do:

        bind c neww -c $PWD

To get the equivalent of default-path '~', do:

        bind c neww -c ~

This also changes the client identify protocol to be a set of messages rather
than one as well as some other changes that should make it easier to make
backwards-compatible protocol changes in future.
2013-10-10 12:26:34 +00:00
nicm b822d24b15 Support -c for new-session, based on code from J Raynor. 2013-10-10 12:07:36 +00:00
nicm 40811eb8d4 Add length limit operator for formats. 2013-10-10 11:50:20 +00:00
nicm d75dd2ab1c Add formats for window flags. 2013-10-10 11:47:52 +00:00
nicm 7c71c3e27d Change the default for the default-path option to ~. This is a quick
change to turn off the KERN_PROC_CWD code which is unpredictable. Later
it will go away and there may be other changes to how this works.
2013-10-05 13:56:48 +00:00
schwarze 304ea079d2 use .Mt for email addresses; from Jan Stary <hans at stare dot cz>; ok jmc@ 2013-07-16 00:07:52 +00:00
Nicholas Marriott f5b041e394 Add pane_synchronized format, from Romain Francoise. 2013-07-05 15:27:14 +00:00
Nicholas Marriott 3977dba761 Focus events can cause trouble if left on and they can't be turned off
during idle periods (like the other states are) because we'd miss
events. So add a server option to control them. Defaults to off.
2013-06-23 13:10:46 +00:00
Jason McIntyre ddb52a2b15 escape "Ss", becuase groff thinks it has found a macro; 2013-06-02 14:40:17 +00:00
Nicholas Marriott 13441e8cb8 The actual terminfo entries we ended up with for cursor changes are Cs,
Ce, Ss and Se (not Cc, Ce, Cs, Csr). So use and document these instead
of the ones we were using earlier.
2013-06-02 07:52:15 +00:00
Nicholas Marriott c231381aa3 Demote the old single-character replacement variables (#S and friends)
to aliases of formats. From Tiago Cunha.
2013-05-31 19:56:05 +00:00
Nicholas Marriott c30d60f7ae Add host_short format, from Tiago Cunha. 2013-05-31 19:46:42 +00:00
Nicholas Marriott 2555ac58cc .Op Fl b not .Fl b for run-shell synopsis, from Ben Boeckel. 2013-04-24 10:15:47 +00:00
Nicholas Marriott 20f0d917be Missed -o from set-window-option, from Ben Boeckel. 2013-04-10 12:07:18 +00:00
Nicholas Marriott 7f63658709 Add TMUX_TMPDIR variable to put the socket directory outside
TMPDIR. From Ben Boeckel.
2013-03-27 11:24:18 +00:00
Nicholas Marriott e44bd9f750 Revert the command-prefix change which breaks sequences of commands. 2013-03-25 15:59:57 +00:00
Nicholas Marriott 4119c476aa b comes before t. 2013-03-25 11:46:28 +00:00
Nicholas Marriott 6fee3e9e4b Rename session idx to session id throughout and add $ prefix to targets
to use it, extended from a diff from George Nachman.
2013-03-25 10:11:45 +00:00
Nicholas Marriott 748acdc77c Add wait-for -L and -U for lock and unlock, from Thiago Padilha. 2013-03-25 10:09:35 +00:00
Nicholas Marriott 14fad6a5cc Add -A flag to new-session to make it behave like attach-session if the
session exists. If -A is used, -D behaves like -d to attach-session.
2013-03-24 09:58:40 +00:00
Nicholas Marriott a05b8c4143 Add a -o option to set-option to prevent setting an option already set,
from Thiago Padilha.
2013-03-24 09:55:02 +00:00
Nicholas Marriott 66edb3392b Expand format variables in the run-shell and if-shell shell commands,
from Thiago Padilha.
2013-03-24 09:33:35 +00:00
Nicholas Marriott ac1fe83596 Couple of fixes pointed out by jmc. 2013-03-22 18:45:36 +00:00
Nicholas Marriott 702ab8bab0 Add a load of miscellaneous pane formats, from George Nachman. 2013-03-22 16:03:35 +00:00
Nicholas Marriott 8478895eeb Add -e flag to capture-pane to include embedded ANSI SGR escape
sequences, from George Nachman.
2013-03-22 15:51:54 +00:00
Nicholas Marriott f0efa576e0 Add resize-pane -x and -y for absolute pane size (much requested). 2013-03-22 10:37:39 +00:00
Nicholas Marriott ad760b3bf7 Add client_session and client_last_session formats. 2013-03-22 10:32:36 +00:00
Nicholas Marriott 78543cce30 Support capture-pane -p to send to stdout. 2013-03-21 18:43:34 +00:00
Jason McIntyre 55bf2ecc68 tweak previous; ok nicm 2013-03-21 17:42:36 +00:00
Nicholas Marriott 4920306486 Clarify choose-tree entry in man page. 2013-03-21 16:23:46 +00:00
Nicholas Marriott 180faf73af Allow choose commands to be used outside tmux, so long as at least one
client is attached.
2013-03-21 16:09:59 +00:00
Nicholas Marriott e33ba57c13 Remove the layout undo/redo code which never really worked. 2013-01-17 00:11:22 +00:00
Nicholas Marriott bc2e4a36df If timing between keys is less than (by default) 1 millisecond, assume
the text is being pasted. assume-paste-time option changes the value (0
disables). Based on a diff from Marcin Kulik.
2013-01-15 22:55:29 +00:00
Nicholas Marriott 854e8ae04d Add ^ and $ special command targets to select lowest and highest
numbered windows, from Raghavendra D Prabhu.
2012-12-24 12:38:57 +00:00
Nicholas Marriott 4aa4e9fb26 Allow cmd-run-shell to accept -t to specify the pane to display the
output, requested by Alexander Tsepkov.
2012-11-27 15:09:35 +00:00
Nicholas Marriott 93224260ae Add window-status-last-* options, from Boris Faure. 2012-11-27 13:52:23 +00:00
Nicholas Marriott 9a7e5bd1d3 Clarify some points about config files, notably that they are only read
at server start. From Thomas Adam.
2012-11-19 10:50:24 +00:00
Nicholas Marriott 589b4b8c6a Fix typo bell->bells from Thomas Adam. 2012-10-25 11:11:58 +00:00
Nicholas Marriott ea289bc457 Remove some out of date text from man page, from Thomas Adam. 2012-10-02 08:02:21 +00:00
Nicholas Marriott 7263fa36eb add cmd-choose-list to allow arbitrary options to be selected. From
Thomas Adam.
2012-09-03 09:57:57 +00:00
Nicholas Marriott cf2e65c0e2 Another missing format from sam at sltosis.org. 2012-08-11 07:10:01 +00:00
Nicholas Marriott ff4097e02c Add some missing formats from Samuel Le Thiec. 2012-08-11 05:55:12 +00:00
Nicholas Marriott 89a96b05fa Document pane_index variable, from sam at sltosis dot org. 2012-07-15 06:51:57 +00:00
Jason McIntyre b0f4f94b5b remove extraneous line; 2012-07-08 17:24:29 +00:00
Nicholas Marriott f20c6fe009 Add choose-tree command to show windows and sessions in the same
list. Change choose-window and -session to use the same code. From
Thomas Adam.
2012-07-08 16:04:38 +00:00
Nicholas Marriott 2113115cdd Add -a for kill-session, from Thomas Adam. 2012-06-18 09:16:15 +00:00
Nicholas Marriott 038e8b770d Add -a flag for detach-client, from Thomas Adam. 2012-06-18 09:15:22 +00:00
Nicholas Marriott 04ac61ecd7 Simplify references to alerts in the man page, from Thomas Adam. 2012-06-18 09:13:12 +00:00
Nicholas Marriott ebf94bc9cb Switch all of the various choose- and list- commands over to the format
infrastructure, from Thomas Adam.
2012-05-22 11:35:37 +00:00
Nicholas Marriott ac7e2f13e9 Ignore line continuation when escaped as \\, from Simon Nicolussi. 2012-05-17 21:21:31 +00:00
Nicholas Marriott cc979bda0f default-path has the same possibilities as new-window -c now. 2012-05-02 19:29:13 +00:00
Nicholas Marriott a6c22d650b Add a flag to move-window to renumber the windows in a session (closing
any gaps) and add an option to do this automatically each time a window
is killed. From Thomas Adam.
2012-04-29 17:20:01 +00:00
Nicholas Marriott e02d1bce98 Add window-status-separator option, from Thomas Adam. 2012-04-23 22:23:14 +00:00
Nicholas Marriott ed58b2d353 Add -a flag to kill-window, from Thomas Adam. 2012-04-23 22:10:45 +00:00
Nicholas Marriott 85f5485cb5 Add a layout history which can be stepped through with select-layout -u
and -U commands (bound to 'u' and 'U' by default).
2012-04-01 13:18:38 +00:00
Nicholas Marriott b831f86354 Add pane_current_path format, suggested by Mikolaj Kucharski. 2012-04-01 10:42:39 +00:00
Nicholas Marriott c0cfbe12e4 Accept an argument to show-environment to show one variable, based on a
diff from Kazuhiko Sakaguchi.
2012-03-22 11:11:57 +00:00
Nicholas Marriott 90bf560fe4 Add -C -N -T flags to find-window to find in content, name, title. From
Jonathan Daugherty.
2012-03-20 17:09:48 +00:00
Nicholas Marriott 01f2b5d64b 50 is a too low trigger default on larger terminals, bump to 250. 2012-03-20 11:23:12 +00:00
Nicholas Marriott f59971276a 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 50/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.

This makes tmux much more responsive under very fast output (for example
yes(1) or accidentally cat'ing a large file) but may not be perfect on
all terminals and connections - feedback very welcome, particularly
where this change has a negative rather than positive effect (making it
off by default is a possibility).

After much experimentation based originally on a request Robin Lee
Powell (which ended with a completely different solution), this idea
from discussion with Ailin Nemui.
2012-03-20 11:01:00 +00:00
Nicholas Marriott 95f48a219a Add a wrap-search option to turn off wrapping of searches in copy
mode. From Jacobo de Vera.
2012-03-17 21:40:53 +00:00
Nicholas Marriott f152379e5a Add -q option to set-option to turn off info message, from marcel partap. 2012-03-17 21:33:33 +00:00
Nicholas Marriott 4e05a2c0ae Add -P/-F flags to break-pane too, from George Nachman. 2012-03-12 13:31:09 +00:00
Nicholas Marriott 03dca66ae2 Add -F format to new-window and split-window to use with the -P flag,
from George Nachman.
2012-03-04 20:50:53 +00:00
Nicholas Marriott f4fdddc930 Support "bracketed paste" mode. This adds a -p flag to paste-buffer - if
this is used and the application has requested bracketed pastes, then
tmux surrounds the pasted text by \033[200~ and \033[201~. Applications
like vim can (apparently) use this to avoid, for example, indenting the
text. From Ailin Nemui.
2012-03-03 09:43:22 +00:00
Nicholas Marriott 07ac16807f Add move-pane command (like join-pane but allows the same window). Also
-b flag to join-pane and move-pane to place the pane to the left or
above. From George Nachman.
2012-03-03 08:31:18 +00:00
Nicholas Marriott 4e7de210e4 Allow a single option to be specified to show-options to show just that
option.
2012-02-25 12:57:42 +00:00
Nicholas Marriott aaf0bfccf4 Use format for display-message, based on a diff from George Nachman. 2012-02-23 22:40:58 +00:00
Nicholas Marriott fe7cf0ba90 Document option values, particularly that omitting on|off for a flag is
a toggle.
2012-02-02 22:33:05 +00:00
Nicholas Marriott efb639e1d2 Add -l flag to send-keys to send input literally (without translating
key names). From Frank Terbeck.
2012-02-02 00:15:28 +00:00
Nicholas Marriott 908a22e41c 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.

Based on a diff from sthen. ok sthen
2012-01-31 15:52:21 +00:00
Jason McIntyre 677ed3e5f0 id -> ID; ok nicm 2012-01-30 20:48:28 +00:00
Nicholas Marriott 0e59bc75fd Give each window a unique id, like panes but prefixed with @. Based on
work from George Nachman.
2012-01-30 09:39:34 +00:00
Nicholas Marriott 230d0fbc9e Add an option to move the status line to the top of the screen,
requested by many.
2012-01-29 09:37:02 +00:00
Nicholas Marriott e870a3f3ec it's -> its. 2012-01-21 20:40:28 +00:00
Nicholas Marriott 535286c05a Drop the ability to have a list of keys in the prefix in favour of two
separate options, prefix and prefix2. This simplifies the code and gets
rid the data options type which was only used for this one option.

Also add a -2 flag to send-prefix to send the secondary prefix key,
fixing a cause of minor irritation.

People who want three prefix keys are out of luck :-).
2012-01-21 08:40:09 +00:00
Nicholas Marriott 7f24020cbe Add strings to allow the aixterm bright colours to be used when
configuring colours, requested by Elliott Cable a few months ago.
2012-01-21 08:23:12 +00:00
Nicholas Marriott 66f04514cf Add a -R flag to send-keys to reset the terminal. Written ages ago and
Suggested by someone, I forget who.
2012-01-21 08:10:21 +00:00
Nicholas Marriott 8cf19ab770 Add some trivial additional status line attributes from jwcxz at users
dot sourceforge dot net.
2012-01-20 19:51:28 +00:00
Nicholas Marriott 199d148740 Remove trailing spaces. 2012-01-20 19:16:16 +00:00
Nicholas Marriott dcad13155b Add an option to disable the window rename escape sequence, from Romain
Francoise.
2012-01-20 19:15:40 +00:00
Nicholas Marriott eeaf92ad06 Add a man page section on window names and pane titles, from Felix
Rosencrantz.
2011-12-31 03:40:15 +00:00
Stuart Henderson 16f9667620 Show how to set default-path to revert to tmux's old behaviour of opening
new windows in the current working directory at the time tmux was started,
it's not obvious. naddy@ agrees this is a useful inclusion.
2011-12-30 14:59:13 +00:00
Stefan Sperling fdd1d0b72e Allow $HOME as default-path in tmux.conf so the same config file can be used
on different machines regardless of where the user's home directory is.
ok nicm
2011-12-27 14:07:20 +00:00
Jason McIntyre da145e7c20 formatting errors, found using freebsd's "igor"; 2011-12-24 08:46:48 +00:00
Nicholas Marriott f308ba93aa Change the way the working directory for new processes is discovered. If
default-path isn't empty, it is used. Otherwise:

1) If tmux neww is run from the command line, the working directory of the
   client is used.

2) Otherwise sysctl KERN_PROC_CWD is used to retrieve the current
   working directory of the process in the active pane.

3) If that fails, the directory where the session was created is used.

Support code by Romain Francois, OpenBSD specific bits by me.

Note this requires a recent userland and kernel with KERN_PROC_CWD.
2011-12-09 16:28:18 +00:00
Nicholas Marriott e04d13f6a6 Support "jump to" like vi in copy mode using t and T keys. Also add x
and X for delete in edit mode.

From Ben Boeckel, thanks.
2011-12-04 16:18:01 +00:00
Nicholas Marriott fd25d35868 Move word-separators to be a session rather than window option, from Ben
Boeckel.
2011-11-15 23:24:04 +00:00
Nicholas Marriott 6c1c304fc3 Missing bits for new keys and buffer indexes, from Tiago Cunha 2011-11-05 09:13:00 +00:00
Nicholas Marriott e5bf63cb59 Option to change status line (message) background when using vi keys and
in command mode. From Ben Boeckel.
2011-11-05 09:06:31 +00:00
Jason McIntyre e5d6df8979 minor formatting fix; 2011-10-27 23:33:35 +00:00
Nicholas Marriott 5ed3daf28b Didn't really think the else behaviour through - requiring argv to
contain "else" is silly so just omit that, also some manpage
tweaks. From Tiago Cunha.
2011-10-27 22:40:15 +00:00
Nicholas Marriott 16d75a6bf2 Add client formats, from Ben Boeckel. 2011-10-23 01:12:46 +00:00
Nicholas Marriott 49ef0b4af3 Add a few more formats for panes (tty, pid, start cmd/cwd). 2011-10-02 06:55:48 +00:00
Nicholas Marriott b1ed2d5bd9 Add -S option to refresh-client to redraw status line, from Marco Beck. 2011-09-28 20:11:21 +00:00
Nicholas Marriott f14da260c8 Tweaks to the format parts, from Tiago Cunha. 2011-09-23 18:33:43 +00:00
Jason McIntyre 2888843a18 tweak previous; 2011-08-26 13:07:49 +00:00
Nicholas Marriott 4a5dff3f11 Add initial 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.

Later this will be used for status_replace and list-keys and other
places.
2011-08-26 10:53:16 +00:00
Nicholas Marriott 0588168a64 Support \ for line continuation in the configuration file, from Julius
Plenz.
2011-08-24 10:46:01 +00:00
Nicholas Marriott f01b7191a3 Add pane-base-index option, from Ben Barbour. 2011-08-24 10:29:57 +00:00
Nicholas Marriott 88e9079870 Add a -r flag to switch-client to toggle the client read-only flag. From
Johan Commelin.
2011-08-16 10:00:52 +00:00
Jason McIntyre cf90f2a29c fix error in previous; 2011-07-30 18:27:57 +00:00
Nicholas Marriott cc5bcbfb59 Extend the mode-mouse option to add a third choice which means the mouse
does not enter copy mode. Patch from SF bug 3374493.

In future the mode-mouse option is likely to die and be broken into
several smaller options.
2011-07-30 18:01:26 +00:00
Nicholas Marriott 0252796a57 Sort options alphabetically, from Tiago Cunha. 2011-07-25 09:57:28 +00:00
Nicholas Marriott 2de9b1e005 Make confirm-before prompt customizable with -p option like
command-prompt. Also move responsibility for calling status_replace into
status_prompt_{set,update} and add #W and #P to the default kill-window
and kill-pane prompts. By Tiago Cunha.
2011-07-08 06:37:57 +00:00
Nicholas Marriott f12158bc25 Add an option to trigger the terminal bell when there is an alert, from
Marco Beck.
2011-07-03 19:07:54 +00:00
Nicholas Marriott 94f86edfee Include the existing window and session name in the prompt when renaming
and add a new key binding ($) for rename session. From Tiago Cunha.
2011-07-03 18:18:15 +00:00
Nicholas Marriott ad60a2c952 Allow the initial context on prompts to be set with the new -I option to
command-prompt. From Tiago Cunha.
2011-07-02 21:05:44 +00:00
Nicholas Marriott 65177b82be Add a respawn-pane command, from Marcel Partap. 2011-06-05 11:19:03 +00:00
Nicholas Marriott f537870909 Fix a typo, spotted by Michal Mazurek.. 2011-05-30 21:02:28 +00:00
Jason McIntyre 240cae4c92 tweak the TERMINFO section; ok nicm 2011-05-21 10:04:17 +00:00
Nicholas Marriott 1af2021de6 Pass prompts through status_replace so that they can be more helpful
(such as showing the previous session name when renaming). From Tiago
Cunha.
2011-05-20 19:29:13 +00:00
Nicholas Marriott 3ea5e06bfb Support DECSCUSR sequence to set the cursor style with two new
terminfo(5) extensions, Cs and Csr. Written by Ailin Nemui.
2011-05-20 19:17:39 +00:00
Nicholas Marriott 944b5e6fa0 Support xterm(1) cursor colour change sequences through terminfo(5) Cc
(set) and Cr (reset) extensions. Originally by Sean Estabrooks, tweaked
by me and Ailin Nemui.
2011-05-20 19:03:58 +00:00
Nicholas Marriott 96e7f33da3 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).

Written by and much discussed Ailin Nemui, guidance on
xterm/termcap/terminfo from Thomas Dickey.
2011-05-18 20:24:29 +00:00
Nicholas Marriott 58908fd8c5 Add three new copy-mode commands - select-line, copy-line,
copy-end-of-line. From Dave Disser and Randy Stauner a while back.
2011-05-18 18:06:36 +00:00
Nicholas Marriott f3741f0653 Add a new option, mouse-resize-pane. When on, panes may be resized by
dragging their borders. From hsim at gmx.li.
2011-05-08 20:34:12 +00:00
Nicholas Marriott 295ace6820 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). From hsim at
gmx.li.
2011-05-08 19:53:06 +00:00
Nicholas Marriott eb288aae32 Provide #h for short hostname (no domain) from Michal Mazurek. 2011-04-24 21:32:07 +00:00
Nicholas Marriott 8738141913 When mode-mouse is on (it is off by default), 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. Discussed
with and written by hsim at gmx dot li.
2011-04-19 21:31:33 +00:00
Nicholas Marriott 0bb2119781 Add an option (mouse-select-window) which allows the mouse to be used by
clicking on the status line, written by hsim at gmx dot li.
2011-04-18 19:49:05 +00:00
Jason McIntyre 4e75e82cc3 new sentence, new line; 2011-04-17 20:39:44 +00:00
Nicholas Marriott f4432030ee Add -t to list-clients, based on a diff from Zac Sprackett. 2011-04-17 19:28:09 +00:00
Nicholas Marriott 3dc7b805d3 -s comes before -t and also add -s to command syntax. Prompted by jmc. 2011-04-11 16:44:36 +00:00
Nicholas Marriott 735f87bc66 Add -s option to detach all clients attached to a session, from Zac
Sprackett.
2011-04-11 06:44:39 +00:00
Nicholas Marriott 5d519ba526 Add a flag to cmd_find_session so that attach-session can prefer
unattached sessions when choosing the most recently used (if -t is not
given). Suggested by claudio@.
2011-04-05 19:37:01 +00:00
Nicholas Marriott f8a218882a "or" should be on a line on its own here so it is not emphasised as
well.
2011-04-01 16:59:11 +00:00
Nicholas Marriott d88c20e718 Change -t on display-message to be target-pane for the #[A-Z]
replacements and add -c as target-client.
2011-03-29 19:30:16 +00:00
Nicholas Marriott f19a4bf9d1 Add -a and -s options to lsp to list all panes in the server or session
respectively. Likewise add -s to lsw. From Ben Boeckel.
2011-03-28 23:13:00 +00:00
Nicholas Marriott 82e0165c49 Allow a start and end line to be specified for capture-pane which may be
negative to capture part of the history. Prompted by request from Victor
J Orlikowski.
2011-03-28 20:17:39 +00:00
Nicholas Marriott 808502ac3d 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. Suggested by and with testing and tweaks from Ben Boeckel.
2011-03-27 20:27:26 +00:00
Nicholas Marriott 7954126dcd Add a -P option to detach to HUP the client's parent process (usually
causing it to exit as well).
2011-03-03 08:51:47 +00:00
Nicholas Marriott 4f34e25dd8 Support -x and -y for new-session to specify the initial size of the
window if created detached with -d.
2011-01-14 23:49:23 +00:00
Nicholas Marriott fa4a75cdab Clarify alternate-screen description a little. 2011-01-13 09:50:11 +00:00
Nicholas Marriott b3438c86bf Use TMPDIR if set, from Han Boetes. 2011-01-12 22:23:58 +00:00
Nicholas Marriott 17f1cd5be8 Remove a bit of text that makes exit-unattached description unclear. 2011-01-09 18:46:46 +00:00
Nicholas Marriott c3041eb9f0 Add missing arguments to some options. 2011-01-09 18:42:19 +00:00
Nicholas Marriott 703160b5d6 Accept colours of the hex form #ffffff and translate to the nearest from
the xterm(1) 256-colour set.
2011-01-08 00:48:54 +00:00
Nicholas Marriott 96c37fa80a Now that parsing is common, merge some of the small, related commands
together to use the same code.

Also add some arguments (such as -n and -p) to some commands to match
existing commands.
2011-01-04 02:03:41 +00:00
Nicholas Marriott ac3b78a841 Support for UTF-8 mouse input (\033[1005h). This was added in xterm 262
and supports larger terminals than the older way.

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.

With help and based on code from hsim at gmx.li.
2011-01-03 23:35:21 +00:00
Nicholas Marriott a4515ce138 suspend-client has used -t for the client target (like everything else)
for ages, fix the usage string and man page and trim some leftover code.
2011-01-01 11:24:45 +00:00
Nicholas Marriott b6950ed8aa 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).
2011-01-01 01:33:07 +00:00
Jason McIntyre 1a1efd5bc9 fix trailing whitespace; 2010-12-31 00:41:11 +00:00
Nicholas Marriott 2b3c2fd852 Fix BUFFERS section now they are global. 2010-12-30 23:17:41 +00:00
Nicholas Marriott cc42614fa9 Change from a per-session stack of buffers to one global stack which is
much more convenient and also simplifies lot of code. This renders
copy-buffer useless and makes buffer-limit now a server option.

By Tiago Cunha.
2010-12-30 23:16:18 +00:00
Jason McIntyre efa8c93664 tweak previous; 2010-12-27 19:57:31 +00:00
Nicholas Marriott 3e0bc052e1 Add a missing .Pp and sort options alphabetically, from Tiago Cunha. 2010-12-27 18:22:25 +00:00
Nicholas Marriott c198664d15 Add other-pane-height and other-pane-width options, allowing the width
or height of the smaller panes in the main-horizontal and main-vertical
layouts to be set. Mostly from David Goodlad.
2010-12-19 18:35:08 +00:00
Nicholas Marriott 51487ed22f Track the last session for a client and add a flag to switch-client and
a key binding (L) to move a client back to its last session.
2010-12-11 18:39:25 +00:00
Nicholas Marriott 6be32c89c5 Rephrase a confusing sentence. 2010-12-10 21:01:38 +00:00
Nicholas Marriott e26a351865 Add an option to alert (monitor) for silence (lack of activity) in a
window. From Thomas Adam.
2010-12-06 22:51:02 +00:00
Nicholas Marriott ebd0eb4fb4 If VISUAL or EDITOR contains "vi", configure mode-keys and status-keys
to vi.

Based on a diff from martynas@, previously requested by a couple of
other people.
2010-11-29 19:45:58 +00:00
Nicholas Marriott 7e542d119b Update man page for update-environment. 2010-11-14 09:04:22 +00:00
Nicholas Marriott 17b56562c4 Flag to flush all key bindings from Rob Paisley. 2010-11-11 20:54:06 +00:00
Nicholas Marriott 023137a891 Typo, from Rob Paisley. 2010-11-01 20:59:45 +00:00
Nicholas Marriott 5de84eca3d Add a last-pane command (bound to ; by default). Requested ages ago by
somebody whose name I have forgotten.
2010-10-23 13:04:34 +00:00
Nicholas Marriott 1580afdfdf Put "or" on new line from command with .Ic. 2010-10-14 00:30:03 +00:00
Nicholas Marriott 9a7cde0c9b Two new options:
- server option "exit-unattached" makes the server exit when no clients
  are attached, even if sessions are present;

- session option "destroy-unattached" destroys a session once no clients
  are attached to it.

These are useful for preventing tmux remaining in the background where
it is undesirable and when using tmux as a login shell to keep a limit
on new sessions.
2010-09-26 20:43:30 +00:00
Nicholas Marriott 2772557d15 detach-on-destroy is a session option, not server. 2010-09-25 20:35:52 +00:00
Nicholas Marriott a22a6deda5 Add -n and -p flags to switch-client to move to the next and previous
session (yes, it doesn't match window/pane, but so what, nor does
switch-client).

Based on a diff long ago from "edsouza".
2010-09-08 22:02:28 +00:00
Jason McIntyre a471b5de9c some escapes i missed; 2010-07-15 21:54:20 +00:00
Nicholas Marriott 552c9cd83f Custom layouts. list-windows command displays the layout as a string (such as
"bb62,159x48,0,0{79x48,0,0,79x48,80,0}") and it can be applied to another
window (with the same number of panes or fewer) using select-layout.
2010-06-29 03:30:13 +00:00
Nicholas Marriott 07a71fd432 Store the current working directory in the session, change the default-path
option to default to empty and make that mean that the stored session CWD is
used.
2010-06-27 02:56:59 +00:00
Nicholas Marriott 26524c99f6 New option, detach-on-destroy, to set what happens to a client when the session
it is attached to is destroyed. If on (the default), it is detached; if off, it
is switched to the most recently active session.
2010-06-27 00:22:22 +00:00
Nicholas Marriott ef7293379f Add a choose-buffer command for easier use of the paste buffer stack. 2010-06-21 21:44:09 +00:00
Nicholas Marriott 386849edc1 Extend the -t:+ and -t:- window targets for next and previous window to
accept an offset such as -t:+2. From Tiago Cunha.
2010-06-21 01:46:36 +00:00
Nicholas Marriott 1484eb8a51 Add a missing command and some missing Ic, from Tiago Cunha. 2010-06-14 23:04:44 +00:00
Nicholas Marriott 4e3bed2035 Couple of missing command aliases/flags, from Tiago Cunha. 2010-06-05 16:54:24 +00:00
Nicholas Marriott ceed5cc9a9 Support the status_replace # replacement sequences in the pipe-pane
command, thanks to Andrea Barisani.
2010-06-05 16:34:30 +00:00
Nicholas Marriott 43fa9a9ba6 When the mode-mouse option is on, support dragging to make a selection
in copy mode.

Also support the scroll wheel, although xterm strangely does not ignore
it in application mouse mode, causing redraw artifacts when scrolling up
(other terminals appear to be better behaved).
2010-05-31 19:51:29 +00:00
Nicholas Marriott e1e120de1c Better to say "command key bindings" since we've just called them
command keys.
2010-05-30 19:19:42 +00:00
Nicholas Marriott 7b7397241f There is no real reason not to list all the key bindings here rather
than just a selection.
2010-05-30 19:09:50 +00:00
Nicholas Marriott 0ed727a012 Enhance paste-buffer to allow lines to be separated by any string, from
Andrea Barisani.
2010-05-19 22:28:14 +00:00