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
8b804fb589
Support UTF-8 entry into the command prompt.
2016-10-11 07:11:40 +00:00
nicm
a81685bfac
Add static in cmd-* and fix a few other nits.
2016-10-10 21:51:39 +00:00
nicm
c426e485e5
Loads more static, except for cmd-*.c and window-*.c.
2016-10-10 21:29:23 +00:00
nicm
66b5477cc1
Do not allow the opposite pane to resize when dragging with the mouse
...
because it is not possible to keep the mouse on the border when the
minimum size is reached.
2016-10-10 17:28:30 +00:00
nicm
7d4b416fe6
Some more static.
2016-10-10 13:54:47 +00:00
nicm
b8f2dd8237
Make the CLIENT_STATUS flag imply that pane status lines are redrawn if
...
they are enabled and break the actual screen generation code into a
separate function. Fixes problems reported by Romain Francoise.
2016-10-09 16:24:34 +00:00
nicm
1db6d6fea6
Pass file/line to new command for if-shell so that errors appear
...
sensibly.
2016-10-09 08:06:51 +00:00
nicm
48dd250af1
Handle NULL window or session for user options.
2016-10-09 07:58:35 +00:00
nicm
44449b305b
Use xsnprintf not snprintf for the prompt in window_copy_write_line
...
because we don't care if it is truncated to the screen width, we don't
want it to be fatal.
2016-10-09 07:30:28 +00:00
nicm
30086e504c
screen_write_copy tried to be clever and clear the line if it reached
...
the end of the source, but it was wrong and causes problems that are
only showing up now we are more aggressive about skipping redundant
screen updates. Remove the optimization entirely as more trouble than it
is worth to fix (and it'll have to go when BCE is done anyway).
2016-10-05 22:00:29 +00:00
nicm
f55c991a1b
Wrap some long lines in screen-write.c.
2016-10-05 12:36:36 +00:00
nicm
4117a7ed19
Keep buffer creation time and add accessors for it and the order number.
2016-10-05 12:34:05 +00:00
nicm
b4f95c43fc
Allow cmd_mouse_at return arguments to be NULL.
2016-10-05 12:32:13 +00:00
nicm
1b31d148c9
Remove some dead code in cmd-move-window.c and make a load of local
...
functions static.
2016-10-03 22:52:11 +00:00
nicm
305c832a97
Document set-hook -u.
2016-10-03 20:58:39 +00:00
nicm
61dfbe702e
Remove some redundant checks and make ich/dch consistent.
2016-10-03 19:19:18 +00:00
nicm
cf7f3a436a
Check padding when writing any character with width > 1, in case they
...
overlap after the first character (for example with cells xy and ab, y
is replacing a).
2016-09-29 08:50:43 +00:00
nicm
bb5798aa0e
Couple of vasprintf -> xvasprintf.
2016-09-28 14:40:07 +00:00
nicm
acacb718e5
Rate limit TIOCSWINSZ on a timer to avoid programs getting hammered with
...
SIGWINCH when the size changes rapidly. To help a problem reported by
Rui Pinheiro.
2016-09-28 08:30:44 +00:00
nicm
69e980602b
Support set -a (append) with user options, suggested by Xandor Schiefer.
2016-09-26 09:02:34 +00:00
nicm
eb50e7a2c8
Swap watermarks from high (4096) to low (128) when we get full buffers
...
into the read callback several times in succession; swap back when we
see empty buffers several times. This hopefully limits how much programs
that print a lot for a long period can monopolize tmux (like large, fast
compiling), without penalizing programs that print a lot briefly (like
most curses applications). Helps a lot for me, the actual numbers may
need tweaking later.
2016-09-16 13:43:41 +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
2627ab322e
Remember the number of lines scrolled into the history (versus cleared
...
into the history) and when resizing only use scrolled lines and not
cleared lines (which are probably not intended to reappear). From
Chaoren Lin.
2016-09-02 20:57:20 +00:00
nicm
537964b92d
Kill empty window after moving pane and updating current window, so that
...
index is still valid before renumber-windows happens. Fixes issue
reported by Eric Pruitt.
2016-08-27 23:35:00 +00:00
nicm
6bf033beae
Do not crash if display-message used without a client, issue reported by
...
Serge Aleynikov, fix from Thomas Adam.
2016-08-25 09:33:14 +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
f8cc48a43f
Fix minimum size when pane status line is enabled, reported by Y Petremann.
2016-08-03 09:07:02 +00:00
nicm
9436a31603
Tweak output of environment logging.
2016-07-15 09:52:34 +00:00
nicm
1718420c48
Log environment to new panes.
2016-07-15 09:28:32 +00:00
nicm
68b1fd0cc6
Wrap some long lines and apply some static.
2016-07-15 09:27:35 +00:00
nicm
0f73af876f
Don't update cells in each block of data read from a pane immediately,
...
instead track them as change (dirty) and update them once at the end,
saves much time if repeatedly writing the same cell. Also fix comparison
of cells being equal in a few places (memcmp is not enough).
2016-07-15 00:49:08 +00:00
nicm
1fd6ca2260
Instead of representing colours in several different forms with various
...
cell flags, convert to use an int with flags marking 256 or RGB colours
in the top byte (except in cells, which we don't want to make any
bigger). From Brad Town.
2016-07-15 00:42:56 +00:00
semarie
fc118e13a9
tmux: only consider ACCESSPERMS for setting mode on socket_path.
...
it explicitly removes any S_ISUID|S_ISGID|S_ISTXT bits, instead of letting
pledge(2) silenciously remove them.
ok nicm@ beck@ deraadt@
2016-07-07 09:24:09 +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
bee3e3e28d
Copy mode needs to keep the original grid intact so it can copy from it
...
if needed, so it disables reading from the pane. This can be problem
with some programs. So make tmux automatically exit all modes after 180
seconds of inactivity and if there is pending output.
2016-06-15 09:13:46 +00:00
nicm
068b8b03ad
Add -F to list-commands.
2016-06-15 08:54:11 +00:00
nicm
17e4744459
Spelling error (incrased -> increased), from Josh Soref.
2016-06-10 11:46:15 +00:00
nicm
d9450bfccd
Much faster (and smaller) method of mapping RGB colour to an xterm(1)
...
colour, from Avi Halachmi.
2016-06-06 10:12:58 +00:00
nicm
aba4438013
Cache selected state so that cells going from selected to unselected are not
...
skipped, reported by Omar Sandoval.
2016-06-06 07:28:52 +00:00
nicm
00cf5fbde6
Insert new panes after the pane being split in the list rather than
...
always after the active pane. This is more sensible when doing it with
commands rather than keys.
2016-06-06 07:24:31 +00:00
nicm
3c10df4f87
Allow #[] in window-status-separator.
2016-06-06 07:23:36 +00:00
nicm
1921fac814
Cache the window styles and do not look up the window-style options
...
unless they have changed.
2016-05-30 09:50:20 +00:00
nicm
36ab4c7c49
Do not draw character to screen if it has not changed, and do not save
...
last character if it won't be used. This (and last few commits) prompted
by a report from Hubert depesz Lubaczewski.
2016-05-30 09:32:24 +00:00
nicm
7d105738b6
Send two cub1 instead of using cub for moving the cursor two left. This
...
is normally better because using cub1 will be ^H^H (so two bytes) but
cub would be ^[[2D (four).
2016-05-30 09:26:49 +00:00
nicm
344a6a6202
Padding cell is always the same so use a static.
2016-05-27 23:06:12 +00:00