Commit Graph

5024 Commits

Author SHA1 Message Date
nicm
1bb90bdd62 Add a maximum repeat size as well as count. 2026-09-29 19:03:18 +00:00
nicm
95aaa6cc2a Do not try to decode UTF-8 if it is too long to match the pattern. 2026-09-28 21:22:21 +00:00
nicm
389908d001 Do not allocate for repeat inside loop but allocate up front and just
copy in the loop.
2026-09-28 21:22:21 +00:00
nicm
5fbfaca6a8 Copy all #s at once when multiple are seen before [ rather than only
copying one at a time which can be very slow.
2026-09-28 17:26:42 +00:00
nicm
c4eb4ab5df Check time every iteration for expensive repeat loop. 2026-09-28 17:26:42 +00:00
nicm
5e5e15f6c7 Use mode screen for cursor not base which may be wrong during
synchronized updates. GitHub issue 5648 from bugreporter23 at gmail dot
com.
2026-09-28 15:30:41 +00:00
nicm
db3950ed07 Do not use subtraction for comparators, this doesn't really matter for
IDs but it breaks key sorting. GitHub issue 5646 from Alexandre Fiori.
2026-09-28 12:05:37 +00:00
nicm
a16e62849d Fix dragging a floating pane by its top border over a tiled pane's
status line, GitHub issue 5645 from Michael Grant.
2026-09-28 12:05:37 +00:00
nicm
bbecdc802f Fix floating panes not being detected as obscuring the pane behind them,
GitHub issue 5641 from Michael Grant.
2026-09-28 12:05:37 +00:00
nicm
884101263e Exit 128 + SIGHUP like popups did if waiting for a pane that was killed,
from Alexandre Fiori.
2026-09-28 12:05:37 +00:00
nicm
86af3c8167 Add a second comparison for key bindings to avoid ties, GitHub issue
5647 from Alexandre Fiori.
2026-09-28 10:25:03 +00:00
nicm
abb1c79886 Bounds check size and offsets for v1 layouts, found by ossfuzz. 2026-09-28 10:25:03 +00:00
nicm
11a0799925 Tighten up TMUX_TMPDIR - do not allow relative paths or .. or if
realpath fails. From Alexandre Fiori.
2026-09-25 23:37:16 +00:00
nicm
7a816f90e7 Discard keys if there is no session, fixes crash reported by Artyom
Pertsovsky.
2026-09-25 17:28:18 +00:00
nicm
d87bd430b9 Fix some indentation. 2026-09-25 12:18:30 +00:00
nicm
f9eb405921 Do not overflow window indexes at INT_MAX in new-window -a and
renumber-windows. GitHub issue 5637 from Alexandre Fiori.
2026-09-25 12:18:30 +00:00
nicm
4ae837de68 Keep the scroll position in tree mode when the list is rebuilt, GitHub
issue 5631 from Kim A Brandt.
2026-09-25 06:40:33 +00:00
nicm
7fc7f1bf69 As well as tracking modified (dirty) lines during a synchronized update,
also track scrolled lines. This means they can be scrolled as one
instead of forcing each line to be redrawn - much less expensive for a
very common operation. From Ben Maurer in GitHub issue 5611.
2026-09-24 12:27:51 +00:00
nicm
aa4123ab58 Add margins for WezTerm and ghostty, from Michael Grant. 2026-09-24 09:44:54 +00:00
nicm
a4c051f27d Note about default-shell, from Meriel Sartha Mittelbach. 2026-09-23 16:48:08 +00:00
nicm
183c3432b0 Get x and y the right way round, fixes crash when opening a mode prompt
when the client is offset into the window; may be the crash reported by
sthen@.
2026-09-22 20:02:40 +00:00
nicm
e7618f41c2 Some terminals have extended DECSCUSR to allow it to reset to the
default style and put that as the Se capability in their terminfo entry.
Change so that if Ss and Se exist, tmux does not overwrite them with its
own. GitHub issue 5476.
2026-09-22 16:48:18 +00:00
nicm
83f62d0acc Add a feature for mintty's application escape to avoid dodgy terminals
whinging about not supporting it, GitHub issue 5626 from Pete Dietl.
2026-09-22 11:58:41 +00:00
nicm
19b7660778 Only rely on the previous line wrapping when the cursor is actually on
it, GitHub issue 5625 from Ben Maurer.
2026-09-22 11:58:41 +00:00
nicm
4624bc2129 Correctly write Z indexes to v2 layouts if zoomed, GitHub issue 5624. 2026-09-22 11:58:41 +00:00
nicm
0e1f6ed80d Do not leak waiting clients (in wait-for) if they are killed, GitHub
issue 5614.
2026-09-22 11:58:41 +00:00
nicm
ca5c28d224 Do not cancel mark when click on border. 2026-09-21 22:31:26 +00:00
nicm
21b3da3bab Do not do anything in session_detach and rely on the caller destroying
the session, otherwise grouped sessions can reuse a session with no
windows. From Jeong, Heon in GitHub issue 5620.
2026-09-21 18:56:55 +00:00
nicm
dda0e4d489 Add support for borderless menus, like panes. GitHub issue 5447 from harikp2002
at gmail dot com.
2026-09-21 13:44:39 +00:00
nicm
e361b8f8ff Do not trim all lines to make a zero line grid which reflow does not like, from
Kaixuan Li.
2026-09-21 13:44:39 +00:00
nicm
9be3a35178 Do not unzoom when resizing a floating pane that was created with -A.
Similarly, skip hidden floating panes when changing Z order. Reported by Clark
Wang.
2026-09-21 13:44:39 +00:00
nicm
34cd5da4e3 Remove popups and all the associated overlay machinery (they were the last user
of it). display-popup stays but becomes an (undocumented) compatibility command
to open a floating pane.
2026-09-21 11:01:12 +00:00
nicm
3d5f946f35 Fix typo (too few 0s) in CLIENT_CONTROL_DISCARD, from someone in GitHub issue
5622.
2026-09-21 11:01:12 +00:00
sthen
56b36d671e build tmux with debug symbols, ok claudio nicm 2026-09-20 12:06:27 +00:00
nicm
eee95e6479 If no floating panes, reset default starting position, and reset if any part of
the pane goes outside the window.
2026-09-20 12:06:27 +00:00
nicm
bbd00148de Empty string for invalid old-style formats causes old iTerm2 versions to crash,
so emit "0000," instead.
2026-09-20 12:06:27 +00:00
nicm
2e9189c01d Fix session_*_flag format variables which loop over the windows (they should
only be false if all windows do not have the flag, not the first one). GitHub
issue 5599.
2026-09-20 12:06:27 +00:00
nicm
d4dc032599 Do not loop forever if someone tries to give WCHAR_MAX a width, GitHub issue
5602.
2026-09-20 12:06:27 +00:00
nicm
d1d07f9790 Expand -c for run-shell like the other -c flags, reported by Saúl Nogueras. 2026-09-20 12:06:27 +00:00
nicm
b25af0a08c Reset layout manually instead of calling window_unzoom which can go down the
notification path and end up double freeing the pane (this was previously
removed in 2015 but added back to fix a problem with late destroy - this is a
better fix). GitHub issue 5591 from Romain Francoise.
2026-09-20 12:06:27 +00:00
nicm
325b40e8c4 Add rounded borders option for panes like popups. 2026-09-11 17:00:18 +00:00
nicm
f8fc53b6f8 Rather than allowing floating panes to remain outside the window and
invisible after resize, move them and resize them so they are fully
inside the window. GitHub issue 5582 from Noam Stolero.
2026-09-11 12:58:29 +00:00
nicm
d202aa7ac1 Add remain-on-exit failed-key and a -D flag to new-pane to have a modal
pane wait for Escape/C-c. Both to allow better compatibility with
popups.
2026-09-10 13:04:11 +00:00
nicm
b7c5030004 Add a nesting limit for v1 layouts, reported by M Khalilov, fix based on
issue 5572 from Afonso Januário. Also tweak some language while here.
2026-09-09 19:23:07 +00:00
nicm
0544f0b210 Draw bottom border with pane status line at the top. 2026-09-09 10:12:50 +00:00
nicm
a3129249d1 Bound the memory used by buffered control mode command replies (to 64
MB), GitHub issue 5565 from kagari dot shusei at proton dot me.
2026-09-09 10:12:50 +00:00
nicm
930c81b819 Do not adjust prompt position on invalid Unicode, from Kaixuan Li. 2026-09-09 10:12:50 +00:00
nicm
bf43fdc0c7 Add new layout format which includes floating panes. The new format is
now a JSON subset which is less fragile and easier to handle than the
old custom format. The old (version 1) format is still supported for
control mode clients for now - they must set the new-layouts flag to
receive the new format. From Dane Jensen.
2026-09-09 08:27:49 +00:00
nicm
c7102ebbe5 The client for the layout format is the client we are sending it to, not
the target client.
2026-09-08 21:40:57 +00:00
nicm
d9692f7ecf Add new-layouts flag for control clients so they can default to old
layouts for backwards compatibility.
2026-09-08 11:38:04 +00:00