1271 Commits

Author SHA1 Message Date
757eb060cd Merge branch 'obsd-master' 2017-06-03 20:01:10 +01:00
3442066054 Make set-clipboard a three-state option so tmux itself can ignore the
sequencess.
2017-06-03 17:43:01 +00:00
f17ecaa495 Merge branch 'obsd-master'
Conflicts:
	Makefile.am
	cfg.c
	server-client.c
2017-05-31 15:56:13 +01:00
aad4e4ddb1 Rewrite of choose mode, both to simplify and tidy the code and to add
some modern features.

Now the common code is in mode-tree.c, which provides an API used by the
three modes now separated into window-{buffer,client,tree}.c. Buffer
mode shows buffers, client mode clients and tree mode a tree of
sessions, windows and panes.

Each mode has a common set of key bindings plus a few that are specific
to the mode. Other changes are:

- each mode has a preview pane: for buffers this is the buffer content
  (very useful), for others it is a preview of the pane;

- items may be sorted in different ways ('O' key);

- multiple items may be tagged and an operation applied to all of them
  (for example, to delete multiple buffers at once);

- in tree mode a command may be run on the selected item (session,
  window, pane) or on tagged items (key ':');

- displayed items may be filtered in tree mode by using a format (this
  is used to implement find-window) (key 'f');

- the custom format (-F) for the display is no longer available;

- shortcut keys change from 0-9, a-z, A-Z which was always a bit weird
  with keys used for other uses to 0-9, M-a to M-z.

Now that the code is simpler, other improvements will come later.

Primary key bindings for each mode are documented under the commands in
the man page (choose-buffer, choose-client, choose-tree).

Parts written by Thomas Adam.
2017-05-30 21:44:59 +00:00
5bc5fe5e7e Merge branch 'obsd-master' 2017-05-29 20:01:12 +01:00
a2ace9da24 Add ||, && format operators and C: to search pane content. 2017-05-29 18:06:34 +00:00
d3959a2118 Merge branch 'obsd-master' 2017-05-29 18:01:14 +01:00
1257501499 Add m: for fnmatch(3) format matching. 2017-05-29 15:43:48 +00:00
bfd7209053 Merge branch 'obsd-master' 2017-05-29 10:01:15 +01:00
15253448af Tweak text to mention initial size, from John Hood. 2017-05-29 07:46:32 +00:00
0868512bbc Merge branch 'obsd-master' 2017-05-10 16:01:10 +01:00
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
a651b08a2f Merge branch 'obsd-master'
Conflicts:
	format.c
2017-05-09 15:44:13 +01:00
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
2fef10b9ac Add some formats to look at the session window stack, suggested by Scott
ROCHFORD.
2017-05-05 11:59:47 +00:00
f3221941f2 Merge branch 'obsd-master' 2017-05-04 10:01:12 +01:00
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
97ecb4f9d8 Merge branch 'obsd-master' 2017-05-03 08:01:14 +01:00
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
99b0f48b2e Merge branch 'obsd-master' 2017-04-28 16:01:12 +01:00
c12711affd Default for xterm-keys was wrong, stop documenting it. 2017-04-28 13:39:59 +00:00
d8398af770 Merge branch 'obsd-master' 2017-04-22 08:01:54 +01:00
59ff9b8128 Typo in example. 2017-04-22 06:15:22 +00:00
48371216df Merge branch 'obsd-master' 2017-04-20 12:01:14 +01:00
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
85af9c9c9d Merge branch 'obsd-master' 2017-04-19 10:01:12 +01:00
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
a54309147d Merge branch 'obsd-master' 2017-04-18 18:01:17 +01:00
fb3c5efa50 Add a format for number of bytes writtent to client, useful for debugging. 2017-04-18 15:44:17 +00:00
5f662d91db Merge branch 'obsd-master'
Conflicts:
	server-client.c
	tmux.1
2017-04-06 11:10:17 +01:00
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
843e605b89 Merge branch 'obsd-master' 2017-03-22 08:01:17 +00:00
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
631a89954f Merge branch 'obsd-master' 2017-02-15 10:01:17 +00:00
640d9e54b7 "status bar" -> "status line" for consistency, from Benjamin Dopplinger. 2017-02-15 08:47:55 +00:00
02e04477de Merge branch 'obsd-master'
Conflicts:
	server.c
2017-02-14 13:55:16 +00:00
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
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
8de4c15dfa Document refresh-client -C. 2017-02-09 14:49:00 +00:00
96ad1d7779 Merge branch 'obsd-master' 2017-02-09 14:01:18 +00:00
b7ddfb39f3 Don't lie about the default size in the man page. 2017-02-09 12:00:42 +00:00
9b1f620aa0 Merge branch 'obsd-master' 2017-02-01 12:01:18 +00:00
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
9094f01c6b Merge branch 'obsd-master' 2017-01-30 00:01:13 +00:00
b6099f31ea Add -n to break-pane. 2017-01-29 22:10:55 +00:00
21d8f77a0d Merge branch 'obsd-master' 2017-01-25 16:01:13 +00:00
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
418ab1a553 Merge branch 'obsd-master' 2017-01-24 22:01:13 +00:00
4b2821ff98 Make update-environment an array as well. 2017-01-24 20:15:32 +00:00
b77dd75b57 Convert terminal-overrides to an array option. 2017-01-24 20:05:15 +00:00