nicm
7d3e2c83d4
Store copy mode search string in pane so search-again command works even
...
if you exit and reenter copy mode (it doesn't remember the position,
just the search string), suggested by espie@.
2017-05-12 10:45:38 +00:00
Thomas Adam
f3221941f2
Merge branch 'obsd-master'
2017-05-04 10:01:12 +01: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
Thomas Adam
3a8e56b282
Merge branch 'obsd-master'
2017-04-28 22:01:18 +01:00
nicm
0f2f783584
Log what is happening with window and session reference counts much more
...
obviously.
2017-04-28 19:13:55 +00:00
nicm
bcd6b41674
Remove a reference from the right window when removing from a winlink's
...
list.
2017-04-28 19:12:15 +00:00
Thomas Adam
22e594fcea
Merge branch 'obsd-master'
...
Conflicts:
Makefile.am
pty.c
2017-04-21 09:25:07 +01:00
nicm
87997efe8d
Use fdforkpty() instead of our own unwrapped versions.
2017-04-20 17:49:26 +00:00
Thomas Adam
48371216df
Merge branch 'obsd-master'
2017-04-20 12:01:14 +01:00
nicm
21993105e5
Now that struct winlink has a session pointer, can remove some arguments.
2017-04-20 09:43:45 +00:00
nicm
0f25ad3ca3
There is no real need for window_printable_flags to allocate, make it
...
return a buffer from the stack.
2017-04-20 09:39:07 +00:00
Thomas Adam
57b4d3d593
Merge branch 'obsd-master'
2017-03-21 12:01:14 +00:00
nicm
c916feaf29
Fix pane movement by direction (up, down, left, right) when
...
pane-border-status is set, from KOIE Hidetaka.
2017-03-21 09:49:10 +00:00
Thomas Adam
cc6c6edb6f
Merge branch 'obsd-master'
2017-03-13 18:01:13 +00:00
nicm
8e9b10062b
Log where panes are created.
2017-03-13 17:20:11 +00:00
Thomas Adam
48a3dba6b9
Merge branch 'obsd-master'
2017-02-27 14:01:20 +00:00
nicm
e741a0bcd7
If splitw -b is used, insert the new pane before the current one in the
...
pane list. This means the numbering is in order (for example for
display-panes) and fixes a problem with redrawing the active pane
borders.
2017-02-27 13:07:57 +00:00
Thomas Adam
14dc2acc25
Merge branch 'obsd-master'
2017-02-22 10:01:12 +00:00
nicm
0414b1fc78
Minor bits: fix an array size, add comment, make grid_cell_entry static.
2017-02-22 09:01:32 +00:00
Thomas Adam
a9a0039be4
Merge branch 'obsd-master'
2017-02-08 10:01:22 +00:00
nicm
35a0606de1
Remove event watermarks, don't work well enough to be worth it.
2017-02-08 08:25:12 +00:00
Thomas Adam
f1282a683d
Merge branch 'obsd-master'
2017-01-24 14:01:15 +00:00
nicm
3d74e89a39
Shorten a long line, and don't leak buffer in paste_add if size is zero.
2017-01-24 13:28:33 +00:00
Thomas Adam
b3a724f30c
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.c
2017-01-23 12:20:43 +00:00
nicm
98e7fbb2ac
Open /dev/ptm before pledge() and save it to be used for PTMGET later
...
(this means inlining forkpty()).
ok deraadt
2017-01-23 10:09:43 +00:00
Thomas Adam
1eb9500644
Merge branch 'obsd-master'
2017-01-12 12:01:10 +00:00
nicm
dad3090d32
Put all palette functions together in the file.
2017-01-12 10:15:55 +00:00
Thomas Adam
4a76861925
Merge branch 'obsd-master'
2017-01-12 02:01:11 +00:00
nicm
0752fdaf6a
Erm the aixterm colours should start at 8, not 7.
2017-01-12 00:24:28 +00:00
nicm
9e786030df
Fix setting the palette of aixterm colours (90-97).
2017-01-12 00:19:32 +00:00
Thomas Adam
29e64a8c64
Merge branch 'obsd-master'
2017-01-07 16:01:17 +00:00
nicm
314e933914
Add support for the OSC 4 and OSC 104 palette setting escape sequences,
...
from S Gilles.
2017-01-07 15:28:13 +00:00
Thomas Adam
0f5b7814b5
Merge branch 'obsd-master'
2016-11-16 10:01:10 +00:00
nicm
5636d38a9d
Initialize modeprefix to 1 properly in window_pane_create, from Artem Fokin.
2016-11-16 09:22:16 +00:00
Thomas Adam
12c49fa3bd
Merge branch 'obsd-master'
2016-11-16 02:01:11 +00:00
nicm
e88b74350f
The target validity check used window_pane_visible but that may be false
...
if the pane is zoomed, so instead add a new function to just check if
the pane is actually on screen (most commands still want to accept panes
invisible by zoom). Also reject panes outside the window for various
special targets. Problem reported by Sean Haugh.
2016-11-16 00:24:03 +00:00
Thomas Adam
28a31201d3
Merge branch 'obsd-master'
2016-10-19 12:01:11 +01:00
nicm
899e629bf0
Alerts are too slow, so rather than walking all sessions and windows,
...
add a link of winlinks to each window and a pointer to the session to
each winlink. Also rewrite the alerts processing to return to the old
behaviour (alert in any window sets the flag on any winlink).
2016-10-19 09:22:07 +00:00
Thomas Adam
b3ab39c4d9
Merge branch 'obsd-master'
2016-10-18 10:01:11 +01:00
nicm
c2f88373e7
Store the right size in the pipe offset for pipe-pane.
2016-10-18 07:38:16 +00:00
Thomas Adam
d54e990c4f
Merge branch 'obsd-master'
2016-10-17 00:01:11 +01: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
Thomas Adam
59d1147469
Merge branch 'obsd-master'
2016-10-15 12:01:14 +01:00
nicm
e7990375cb
Give window_create and window_create1 better names.
2016-10-15 09:27:52 +00:00
Thomas Adam
ad5a561adb
Merge branch 'obsd-master'
2016-10-13 22:01:12 +01:00
nicm
4179b42424
Add support for BCE (background colour erase). This makes various escape
...
sequences (notable EL and ED but also IL, DL, ICH, DCH) create blank
cells using the current background colour rather than the default
colour.
On modern systems BCE doesn't really have many benefits, but most other
terminals now support it, some (lazy) applications rely on it, and it is
not hard to include now that we have pane background colours anyway.
Mostly written by Sean Haugh.
2016-10-13 20:27:27 +00:00
Thomas Adam
b9dc855016
Merge branch 'obsd-master'
...
Conflicts:
format.c
osdep-openbsd.c
2016-10-12 09:45:49 +01:00
nicm
e45401846f
Add static in window-*.c and move some internal functions out of tmux.h.
2016-10-11 13:21:59 +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
Thomas Adam
27591570c4
Merge branch 'obsd-master'
2016-09-28 10:01:11 +01: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
Thomas Adam
895f1d93d5
Merge branch 'obsd-master'
2016-09-16 16:01:16 +01: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
Thomas Adam
a24260bb23
Merge branch 'obsd-master'
2016-07-15 12:01:10 +01: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
Nicholas Marriott
25e128d398
Remove duplicate daemon.c and time.h.
2016-06-27 10:57:02 +01:00
Thomas Adam
93f42d360b
Merge branch 'obsd-master'
2016-06-16 14:01:11 +01: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
Thomas Adam
d35a9ac5f2
Linux: <time.h>
2016-06-16 11:43:05 +01:00
Thomas Adam
5c12230a08
Merge branch 'obsd-master'
2016-06-15 12:01:11 +01: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
Thomas Adam
cc096ae929
Merge branch 'obsd-master'
2016-06-06 10:01:11 +01: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
Thomas Adam
c7a0f56c71
Merge branch 'obsd-master'
2016-05-30 12:01:13 +01: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
Thomas Adam
55d472a9fe
Merge branch 'obsd-master'
2016-04-29 18:01:09 +01:00
Thomas Adam
ba9f32b464
Merge branch 'obsd-master'
2016-04-29 16:01:12 +01: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
c5443da2d3
The backoff timer is causing no end of trouble with disconnected clients
...
stopping data in attached ones. So get rid of it and see how we get on
with just a high watermark on each pane.
2016-04-29 13:36:10 +00:00
Thomas Adam
e304673c65
Merge branch 'obsd-master'
...
Conflicts:
utf8.c
2016-03-02 18:10:51 +00:00
nicm
2e4503ad4e
Redraw status on mode entry and exit.
2016-03-01 12:05:15 +00:00
Nicholas Marriott
782dd941da
Fire SIGCHLD after utempter_add_record since it probably eats it.
2016-02-17 23:21:58 +00:00
Thomas Adam
dc42c35f1f
Merge branch 'obsd-master'
2016-01-19 18:01:15 +00:00
nicm
995af0e2b7
I no longer use my SourceForge address so replace it.
2016-01-19 15:59:12 +00:00
Thomas Adam
5e59c301b7
Merge branch 'obsd-master'
2015-12-31 20:01:09 +00:00
nicm
f84d32ca5e
Use saved pipe buffer offset when writing to pipe, from Nicolas Viennot.
2015-12-31 18:14:13 +00:00
Thomas Adam
58b3d66229
Merge branch 'obsd-master'
2015-12-19 10:01:08 +00:00
nicm
bdbec099cc
Make input off flag (selectp -d) apply to synchronize-panes too.
2015-12-19 08:43:04 +00:00
Thomas Adam
e0cae08c04
Merge branch 'obsd-master'
2015-12-17 00:01:08 +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
Thomas Adam
1a33ea9671
Merge branch 'obsd-master'
2015-12-15 02:01:14 +00:00
nicm
12da13c9d1
Make the marked pane a cmd_find_state.
2015-12-15 00:00:01 +00:00
Thomas Adam
66bad2e979
Merge branch 'obsd-master'
2015-12-03 00:01:08 +00:00
nicm
7236838dea
Mark new active pane changed after pane lost in window, and after
...
break-pane. Reported by tim@.
2015-12-02 23:09:22 +00:00
Thomas Adam
890d8da2e3
Merge branch 'obsd-master'
...
Conflicts:
log.c
proc.c
tmux.c
2015-11-25 16:37:30 +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
Thomas Adam
7fe8edc396
Merge branch 'obsd-master'
2015-11-18 16:01:23 +00:00
nicm
577c0e3e5a
Use __unused rather than rolling our own.
2015-11-18 14:27:44 +00:00
Nicholas Marriott
b7397bf413
utf8 option is gone.
2015-11-13 16:05:58 +00:00
Thomas Adam
5f483499f3
Merge branch 'obsd-master'
2015-11-12 12:01:17 +00:00
nicm
69e0b8326a
Support UTF-8 key bindings by expanding the key type from int to
...
uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.)
2015-11-12 11:05:34 +00:00
Thomas Adam
17f6c3be8e
Merge branch 'obsd-master'
2015-10-31 10:01:12 +00:00
nicm
01defc9f49
Because pledge(2) does not allow us to pass directory file descriptors
...
around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too).
2015-10-31 08:13:58 +00:00
Thomas Adam
da1f6fc2c8
Merge branch 'obsd-master'
...
Conflicts:
Makefile
client.c
server-client.c
server.c
tmux.c
tmux.h
2015-10-27 23:27:26 +00:00
nicm
44657bf932
Move struct options into options.c.
2015-10-27 15:58:42 +00:00
Thomas Adam
4afe26fa82
Merge branch 'obsd-master'
2015-09-14 14:01:09 +01:00
nicm
af16ce6ad9
When the active pane changes, redraw panes if the style has
...
changed. From Cam Hutchison.
2015-09-14 11:34:50 +00:00
Thomas Adam
cb89f2f2a1
Merge branch 'obsd-master'
...
Conflicts:
Makefile
format.c
2015-08-30 21:44:01 +01:00
nicm
5047670693
Remove some old prototypes and unused functions.
2015-08-29 23:55:55 +00:00
nicm
b5aaefc727
Move alerts onto events rather than checking every loop.
2015-08-29 08:30:54 +00:00
nicm
5267ce8ff4
Treat entering or leaving a mode as pane changed.
2015-08-29 00:39:18 +00:00
nicm
b7861f34ba
Better take on reducing the name timer. Again check for name changes in
...
the main loop after events that may have changed the pane, but do so at
most once every 500 millis. If the pane changed too soon, use a timer to
ensure that a check happens later.
2015-08-29 00:29:15 +00:00
nicm
d9b3133321
Only set default title to hostname on screens that are being used for a
...
window pane, no point in calling gethostname() for temporary screens.
2015-08-28 17:11:12 +00:00
nicm
55b8d74561
Revert previous; we do need a timer, until I have a better idea. We
...
can't do the name check every loop, because that is too expensive, and
we can't make sure it only happens infrequently because we have no idea
when the next change will happen.
2015-08-28 16:10:46 +00:00
nicm
e2100c5f5f
We now only checking for name changes when the active pane has changed,
...
but that can only happen when we have already been woken up by a read
event, so there is no need for a timer, we can just check the changed
flag on the end of that read event (we already loop over the windows to
check for bells etc anyway).
2015-08-28 15:51:48 +00:00
Thomas Adam
031d7ce840
Merge branch 'obsd-master'
2015-08-28 10:01:08 +01:00
nicm
25faca41eb
Error messages should not have a trailing period.
2015-08-28 07:55:43 +00:00
nicm
fc58e44f89
Only do the automatic-rename dance if the pane has changed (seen output,
...
or new active pane).
2015-08-28 07:49:24 +00:00
Thomas Adam
e45f42db29
Merge branch 'obsd-master'
2015-07-17 16:01:07 +01:00
nicm
bad8d0fd20
Do not call window_unzoom from window_destroy because it will try to add
...
a notification which will get confused because the reference count is
already zero and end up back in window_destroy and a double
free. Instead, just destroy the layouts directly. Noticed by Thomas
Adam.
2015-07-17 13:09:07 +00:00
Thomas Adam
21a2ccc5f1
Merge branch 'obsd-master'
2015-06-17 20:01:12 +01: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
Thomas Adam
9fdc3a069a
Merge branch 'obsd-master'
2015-06-15 14:01:09 +01: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
Thomas Adam
02e348c069
Merge branch 'obsd-master'
2015-06-04 12:59:41 +01: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
Thomas Adam
00471dc783
Merge branch 'obsd-master'
2015-05-13 09:44:11 +01:00
nicm
3f4ee98162
To replace c0-*, add a high watermark to the pty event, and also backoff
...
when the any of the ttys the pane is going to write to has buffered
enough data.
2015-05-12 22:40:38 +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
Thomas Adam
504b97b6a4
Merge branch 'obsd-master'
...
Conflicts:
tmux.h
2015-05-09 12:52:38 +01:00
nicm
8e9b6e0948
Style spacing nits.
2015-05-07 11:42:56 +00:00
Thomas Adam
f10d3675f8
Merge branch 'obsd-master'
2015-05-06 10:03:52 +01: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
Thomas Adam
dc2adc6bc1
Merge branch 'obsd-master'
2015-04-28 14:57:15 +01: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
Thomas Adam
94a8ef1cae
Merge branch 'obsd-master'
...
Conflicts:
Makefile
tmux.1
2015-04-27 21:21:55 +01:00
Thomas Adam
72e9ebf2ec
Merge branch 'obsd-master'
2015-04-25 20:45:02 +00:00
nicm
05e7fbd60f
Get rid of window_choose_list type.
2015-04-25 18:56:05 +00:00
nicm
07dfdb974d
Make message log a TAILQ.
2015-04-25 18:33:59 +00:00
nicm
6dbd63ba4f
Move the functions to convert ids from strings into session.c and window.c.
2015-04-25 18:09:28 +00:00
Thomas Adam
56e1132db4
Merge branch 'obsd-master'
2015-04-25 10:02:46 +00:00
nicm
8d66f4fba4
Change the windows array into an RB tree and fix some places where we
...
were only looking at the first winlink for a window in a session.
2015-04-22 15:30:11 +00:00
nicm
89e80cabd5
window_index is only used in one place (window_destroy) so inline it there.
2015-04-22 15:05:03 +00:00
Thomas Adam
0a88377086
Merge branch 'obsd-master'
2015-04-22 10:05:54 +01:00
nicm
69f292a90e
Always format real layout even when zoomed.
2015-04-21 22:38:49 +00:00
Thomas Adam
b25dc423b0
Merge branch 'obsd-master'
2015-04-20 15:44:27 +01:00
nicm
6f587570ed
Use a more sensible buffer size for flags string.
2015-04-20 07:50:49 +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
Thomas Adam
ffb83d23e1
Merge branch 'obsd-master'
...
Conflicts:
Makefile
2015-02-14 23:54:07 +00:00
nicm
1b2c62afe9
Entries in the window list can be NULL, prompted by a crash seen by Ben
...
Boeckel.
2015-02-09 12:47:18 +00:00
Thomas Adam
5f8138faf5
Merge branch 'obsd-master'
...
Conflicts:
format.c
2014-12-19 19:22:19 +00:00
nicm
160e3e2be3
Notify on zoom/unzoom, from George Nachmann.
2014-12-15 10:04:18 +00:00
Nicholas Marriott
747cab4281
No need for $Id$ now.
2014-11-08 12:27:43 +00:00
Thomas Adam
35ffd093d7
Merge branch 'obsd-master'
...
Conflicts:
Makefile
cmd-link-window.c
cmd-unlink-window.c
2014-10-29 12:51:21 +00:00
nicm
a02c2e55c0
Only redraw pane when it has actually changed.
2014-10-21 22:22:04 +00:00
Thomas Adam
2874a431c0
Merge branch 'obsd-master'
2014-09-25 11:29:54 +01: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
Thomas Adam
a131b82e95
Merge branch 'obsd-master'
...
Conflicts:
client.c
2014-08-09 20:31:36 +01:00