nicm
cb8a0d83fb
If automatic-rename is off, allow the escape sequence to set an empty
...
window name, GitHub issue 2964.
2021-11-11 09:31:16 +00:00
nicm
57100376cc
Add a cursor-style option, from Alexis Hildebrandt in GitHub issue 2960.
2021-11-03 13:37:17 +00:00
nicm
8d2286b769
Add a cursor-colour option, from Alexis Hildebrandt in GitHub issue
...
2959.
2021-11-01 09:34:49 +00:00
nicm
9b1fdb291e
Separate "very visible" flag from blinking flag, it should not affect
...
DECSCUSR. GitHub issue 2891.
2021-10-05 12:46:02 +00:00
nicm
30786abe0e
Some other missing palette NULL checks, from oss-fuzz.
2021-08-14 16:26:29 +00:00
nicm
2bb0b9d6c5
Change focus to be driven by events rather than walking all panes at end
...
of event loop, this way the ordering of in and out can be enforced.
GitHub issue 2808.
2021-08-13 06:52:51 +00:00
nicm
7eea3d7ab8
Break the colour palette into a struct rather than just a single array
...
and use that to support the OSC palette-setting sequences in popups.
Also add a pane-colours array option to specify the defaults. GitHub
issue 2815.
2021-08-11 20:49:55 +00:00
nicm
64c276c23b
Add an "always" value to the extended-keys option to always forward
...
these keys to applications inside tmux.
2021-06-10 07:24:10 +00:00
nicm
fb42ae3071
Reduce len when moving past spaces in OSC 11 parameter.
2021-02-18 13:30:24 +00:00
nicm
d768fc2553
Make SGR 6 (rapid blink) the same as SGR 5 (blink) and make SGR 21 to
...
the same as SGR 4:2, it is an old alternative. GitHub issue 2567.
2021-02-15 14:22:35 +00:00
nicm
6642706f7b
Support X11 colour names and some other variations for OSC 10/11, also
...
add OSC 110 and 111. GitHub issue 2567.
2021-02-15 09:39:37 +00:00
nicm
8e1d28453d
Limit range of repeat to avoid silly high numbers causing delays, from
...
Sergey Nizovtsev.
2020-10-30 11:34:13 +00:00
nicm
a868bacb46
Do not write after the end of the array and overwrite the stack when
...
colon-separated SGR sequences contain empty arguments. Reported by Sergey
Nizovtsev.
2020-10-29 16:33:01 +00:00
nicm
f08bfa7cd1
Respond to colour requests if a colour is available, from Michal Goral.
2020-08-19 06:37:23 +00:00
nicm
d329b035ce
Add a hook when the pane title changed.
2020-07-24 07:05:37 +00:00
nicm
1bf9555e4f
d and D keys to reset to default in customize mode.
2020-06-16 08:18:34 +00:00
nicm
a54a88edd6
Instead of sending all data to control mode clients as fast as possible,
...
add a limit of how much data will be sent to the client and try to use
it for panes with some degree of fairness. GitHub issue 2217, with
George Nachman.
2020-06-01 09:43:00 +00:00
nicm
31e3f2d530
Support code for control mode flow control: allow clients to have
...
separate offsets (used and acknowleged) into the pane buffers; turn off
reading from panes when no clients can accept the data; and add a -A
flag to refresh-client to let clients turn receiving a pane on and off.
2020-05-21 07:24:13 +00:00
nicm
0ab82d9531
Add a terminal feature for enable/disable extended keys (supported by
...
xterm and mintty) and add an option to make tmux send it. Only forward
extended keys if the application has requested them, even though we use
the CSI u sequence and xterm uses CSI 27 ~ - this is what mintty does as
well.
2020-05-16 16:44:54 +00:00
nicm
9605b080f6
Do not hoke into struct window_pane from the tty code and instead set
...
everything up in tty_ctx. Provide a way to initialize the tty_ctx from a
callback and use it to let popups draw directly through input_parse in
the same way as panes do, rather than forcing a full redraw on every
change.
2020-05-16 15:34:08 +00:00
nicm
f03b61131b
Drop having a separate type for style options and make them all strings,
...
which allows formats to be expanded. Any styles without a '#{' are still
validated when they are set but any with a '#{' are not. Formats are not
expanded usefully in many cases yet, that will be changed later.
To make this work, a few other changes:
- set-option -a with a style option automatically appends a ",".
- OSC 10 and 11 don't set the window-style option anymore, instead the
fg and bg are stored in the pane struct and act as the defaults that
can be overridden by window-style.
- status-fg and -bg now override status-style instead of trying to keep
them in sync.
2020-05-16 15:01:30 +00:00
nicm
9dd58470e4
Remove support for iTerm2's DSR 1337 extension and use the CSI > q
...
extension now supported by a few different terminals.
2020-05-16 14:16:25 +00:00
nicm
048f1ff18a
Do not remove the automatic-rename option from the global set, only from
...
the window (it must stay in the global set or tmux will crash). GitHub
issue 2188.
2020-04-30 13:31:22 +00:00
nicm
3bbd66c013
Move alternate screen into the screen rather than the pane.
2020-03-31 07:00:34 +00:00
nicm
de34436d4c
Change input path so it doesn't require a pane.
2020-03-19 14:03:48 +00:00
nicm
265164d251
Instead of passing titles through vis() which doubles backslashes, just
...
ignore any containing control characters or invalid UTF-8. GitHub issue 2070.
2020-02-03 13:46:27 +00:00
nicm
531daba584
Do not send DA and DSR again if already have a response.
2020-01-29 15:07:49 +00:00
nicm
90e962fff8
Add support for the iTerm2 DSR 1337 sequence to get the terminal version.
2020-01-28 10:59:29 +00:00
nicm
9ea05b2fb3
Bump the escape sequence timeout to five seconds to allow for longer
...
legitimate sequences.
2019-11-28 09:50:09 +00:00
nicm
5dfe9db788
Do not add path if it is NULL, duh.
2019-11-15 11:21:32 +00:00
nicm
f3dc38dcae
Handle OSC 7 (a VTE extension) and put the result in a new format (pane_path).
2019-11-15 11:16:53 +00:00
nicm
2dbf062a89
Change new-session -A without a session name (that is, no -s option
...
also) to attach to the best existing session like attach-session rather
than creating a new one.
2019-11-14 08:00:30 +00:00
nicm
d9c95c900c
Handle the various different forms of rgb colour strings.
2019-11-01 09:09:53 +00:00
nicm
f18cd5b19c
Turn automatic-rename back on if the rename escape sequence is used with
...
an empty name, GitHub issue 1921.
2019-10-14 09:19:40 +00:00
nicm
bbd1032a2a
Style and line length nits.
2019-09-25 19:05:59 +00:00
nicm
e3359f8349
Some minor performance improvements - most notably, don't search the
...
input state table if the next character matches the same state as before.
2019-09-24 20:44:58 +00:00
nicm
45f4ff5485
Add support for the SD (scroll down) escape sequence, GitHub issue 1861.
2019-08-05 06:42:02 +00:00
nicm
dae2868d12
Add support for underscore colours with Setulc capability, mostly from
...
Kai Moschcau.
2019-06-27 15:17:41 +00:00
nicm
fc1df91e03
allow-rename and alternate-screen can be pane options.
2019-06-20 13:40:22 +00:00
nicm
5f92f92908
Add a per-pane option set. Pane options inherit from window options (so
...
there should be no change to existing behaviour) and are set and shown
with set-option -p and show-options -p.
Change remain-on-exit and window-style/window-active-style to be pane
options (some others will be changed later).
This makes select-pane -P and -g unnecessary so no longer document them
(they still work) and no longer document set-window-option and
show-window-options in favour of set-option -w and show-options -w.
2019-06-20 11:59:59 +00:00
nicm
b26523c26d
Remove a leftover abort and some fixes from cppcheck.
2019-05-30 20:54:03 +00:00
nicm
6e0c663a89
Fix the color space parameter in RGB SGR, from Brad Town.
2019-05-20 05:35:46 +00:00
nicm
1ee944a19d
Add support for overline (SGR 53), from Ricardo Banffy.
2019-05-13 20:10:23 +00:00
nicm
69440d19b7
Do not use evbuffer_add_buffer because it is destructive and doesn't
...
work in newer libevent.
2019-05-07 10:25:15 +00:00
nicm
9f75635596
Allow panes to be empty (no command), output can be piped to them with
...
split-window or display-message -I.
2019-05-03 20:44:24 +00:00
nicm
7bcc0d16f2
Add an argument to copy commands to set the prefix for the buffer name,
...
allows buffers for different sessions to be named separately.
2019-04-02 09:03:39 +00:00
nicm
13f9a061ac
Add a wrapper (struct style) around styles rather than using the
...
grid_cell directly. There will be some non-cell members soon.
2019-03-14 09:53:52 +00:00
nicm
2fbd491ff0
Add actual HPA (\033[`), the existing one is CHA. From Marc Reisner.
2019-03-14 06:33:43 +00:00
nicm
feaa5660a3
Do not use origin for VPA.
2019-03-13 07:34:36 +00:00
nicm
938156d73b
DECRC and DECSC apparently need to preserve origin mode as well, based
...
on a fix from Marc Reisner.
2019-03-12 20:02:47 +00:00
nicm
2796ae81d0
Fix HPA in origin mode.
2019-03-12 18:30:08 +00:00
nicm
f3f534a3a0
Tidy up a lot of &ictx->ctx by using a local variable.
2019-03-12 18:26:57 +00:00
nicm
7804fa1b82
Revert to not clearing history on RIS, apparently some bootloaders send
...
this and it doesn't really do any harm.
2019-03-12 12:58:40 +00:00
nicm
3f6bfbaf2b
Allow multiple modes to be open in a pane. A stack of open modes is kept
...
and the previous restored when the top is exited. If a mode that is
already on the stack is entered, the existing instance is moved to the
top as the active mode rather than being opened new.
2019-03-12 11:16:49 +00:00
nicm
ff4c80d53d
Add support for origin mode (DECOM, SM/RM ?6), from Marc Reisner.
2019-03-12 07:39:27 +00:00
nicm
4e3d661284
Fix parsing of empty colon-separated fields, reported by Siarhei Siniak.
2018-12-17 21:52:59 +00:00
nicm
749f67b7d8
evbuffer_new and bufferevent_new can both fail (when malloc fails) and
...
return NULL. GitHub issue 1547.
2018-11-19 13:35:40 +00:00
nicm
a51668ca06
Support OSC 52 ? to read the top buffer inside tmux (when set-clipboard
...
is changed to on), also add refresh-client -l to ask tmux to use the
same mechanism to get the clipboard from the terminal outside
tmux. GitHub issue 1477.
2018-10-18 08:04:14 +00:00
nicm
bc0e527f32
Support for extended underline styles on terminals which offer them,
...
enabled by adding the Smulx capability with terminal-overrides (add
something like ',vte*:Smulx=\E[4\:%p1%dm'). GitHub issue 1492.
2018-10-18 07:57:57 +00:00
nicm
a9ffb56b65
Add the KEYC_XTERM flag to all function keys that imply a modifier so
...
that they are correctly translated into xterm(1)-style keys. GitHub
issue 1437.
2018-08-16 14:04:03 +00:00
nicm
80bdd89856
Clear history on RIS like most other terminals do.
2018-07-31 10:32:19 +00:00
nicm
051a29ca03
A couple of fixes to the : form of SGR. Apparently there is an extra
...
argument that nobody knew about, so skip that if it exists. Also there
are a bunch of useless optional arguments at the end, so ignore those.
2018-04-10 11:20:15 +00:00
nicm
5d616f4c72
Fix link, from Eliran Gonen.
2018-04-06 09:09:38 +00:00
nicm
85c48aafff
For some reason tmux treats SGR 10 as SGR 0. It has done since the first
...
version and I'm not sure why since no other terminal appears to. Change
to just ignore SGR 10 instead.
2018-03-05 12:32:28 +00:00
nicm
6ae04dd5a0
Support ISO colon-separated SGR.
2018-02-19 21:20:10 +00:00
nicm
c03565611e
Simplify UTF-8 states down into one state.
2018-01-12 16:32:12 +00:00
nicm
88517ceebb
Add support for the xterm(1) title stack, from Brad Town, GitHub issue
...
1075.
2017-10-05 13:29:18 +00:00
nicm
8405fcdd9b
Apply timeout to CAN and RS which also wait for ST.
2017-09-10 08:01:23 +00:00
nicm
5fc0be5045
Support REP escape sequence (\033[b).
2017-08-29 09:28:45 +00:00
nicm
74b2deae1c
Add a hook when the clipboard is set.
2017-06-09 09:21:24 +00:00
nicm
c5b7faaefc
Add a timeout to prevent the sequences which wait for a specific
...
terminator (OSC, APC and DCS) waiting forever, which helps to avoid
garbage (cat /dev/random) locking up panes completely. This (and the
last commit) prompted by a discussion with theo.
2017-06-04 09:22:34 +00:00
nicm
8149bc3fa6
Be more strict about escape sequences that rename windows or set titles:
...
ignore any that not valid UTF-8 outright, and for good measure pass the
result through our UTF-8-aware vis(3).
2017-06-04 09:02:36 +00:00
nicm
3442066054
Make set-clipboard a three-state option so tmux itself can ignore the
...
sequencess.
2017-06-03 17:43:01 +00:00
nicm
d5158620bb
Support OSC 10 and 11 to set foreground and background colours, from
...
"bertnp" in GitHub issue 942.
2017-05-28 23:23:40 +00:00
nicm
18bab30792
Scrolling needs to use background colour.
2017-05-12 13:00:56 +00:00
nicm
886d50dcab
ECH needs to use background colour.
2017-05-12 10:50:11 +00:00
nicm
bcab77e266
We need to collect UTF-8 characters so that width != 1 characters are
...
correctly flushed.
2017-04-22 08:33:28 +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
f27e1d07fc
Add SGR 28 to clear hidden flag.
2017-02-19 07:55:11 +00:00
nicm
82db1fa9e5
There are buggy terminals out there that do not move the cursor to 0,0
...
after CSR, so invalidate the cursor position rather than assuming 0,0.
2017-02-16 12:56:01 +00:00
nicm
e100d465da
Add support for scroll up escape sequence (CSI S) and use it when
...
possible instead of sending individual line feeds.
2017-02-08 17:31:09 +00:00
nicm
13a0b6bb3f
Collect sequences of printable ASCII characters and process them
...
together instead of handling them one by one. This is significantly
faster. Sequences are terminated when we reach the end of the line, fill
the internal buffer, or a different character is seen by the input
parser (an escape sequence, or UTF-8).
Rather than writing collected sequences out immediately, hold them until
it is necessary (another screen modification, or we consume all
available data). This means we can discard changes that would have no
effect (for example, lines that would just be scrolled off the screen or
cleared). This reduces the total amount of data we write out to the
terminal - not important for fast terminals, but a big help with slow
(like xterm).
2017-02-08 16:45:18 +00:00
nicm
7475165cd8
Some other tidying bits.
2017-02-08 15:49:29 +00:00
nicm
d60e585d9e
Use DECFRA on VT420 compatible terminals (so, xterm) and ED on all
...
others for clearing panes.
2017-02-06 22:05:11 +00:00
nicm
10e14ae504
Add BCE for clear to start of screen, which was somehow missed.
2017-02-06 19:26:49 +00:00
nicm
d150d9b384
Fix logging of CSI parameters.
2017-02-06 13:25:15 +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
4ede35c48c
Accept the OSC 52 escape sequence inside tmux to add a new buffer, from
...
harry dot gindi at live dot com.
2017-01-22 19:00:01 +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
nicm
bee95bf378
Spacing nits.
2016-12-09 21:39:27 +00: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
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
bb5798aa0e
Couple of vasprintf -> xvasprintf.
2016-09-28 14:40:07 +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
nicm
b8a102d26f
Handle wcwidth() and mbtowc() failures in better style and drop
...
characters where we can't find the width (wcwidth() fails) on input, the
same as we drop invalid UTF-8. Suggested by schwarze@.
2016-03-02 15:36:02 +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
68d797587e
A couple of missing printflike attributes, from Andrey Starodubtsev.
2016-01-15 11:31:47 +00:00
nicm
99e9a4c786
send-keys -R should reset the input parser to ground state (so it can be
...
used to escape from, for example, printf '\033]2;').
2015-12-16 22:05:35 +00:00
nicm
2adf3f42ee
Partly revert previous, it is harmless to keep support for UTF-8 mouse
...
mode inside tmux, just no longer support it for tmux itself.
2015-11-23 23:47:57 +00:00