Commit Graph

11837 Commits

Author SHA1 Message Date
nicm
d29aa12117 Replace the notification system with events. Events can carry a payload of
additional payload (to reduce problems with lifetime of objects) and are
delivered to one or more event sinks. This is more powerful and reduces the
complex dependencies between control mode and hooks. Events are now used for
hooks, control mode notifications and for monitors (set-hook -B).

wait-for can now wait for an event to fire (-E flag, with -F to for filter),
with -v to print the payload, as well as listing (-l) waiting clients on an
event and forcing one to wake (-w).

A few additional hooks are also now available (pane-created, pane-resized, etc)
and some of the existing ones have additional format variables available.
2026-07-10 13:38:45 +00:00
Thomas Adam
ca6dd6ca92 Merge branch 'obsd-master' 2026-07-10 08:30:07 +01:00
nicm
1508bec957 Don't bother to send notifications to clients with CLIENT_EXIT, GitHub
issue 5357 from Ben Maurer.
2026-07-10 07:25:05 +00:00
nicm
bcc73e0db4 Change NOTHING (which means only redraw the indicator) to MOVE. And
redefine NOTHING as /actually/ nothing. Use it for commands which
actually make no change. Fixes flickering due to excessive redrawing of
indicator lines. Mostly from Michael Grant.
2026-07-10 07:13:05 +00:00
Nicholas Marriott
ec31f4566d Tweak test. 2026-07-09 09:39:44 +01:00
Thomas Adam
dfb2a9404f Merge branch 'obsd-master' 2026-07-09 09:30:06 +01:00
Thomas Adam
7ac0d6bead Merge branch 'obsd-master' 2026-07-09 09:00:06 +01:00
Nicholas Marriott
041b6a6bc7 Add test from xiaomublue at gmail dot com. 2026-07-09 08:56:06 +01:00
nicm
3a6c717bb8 Do not exit at bottom if a selection is in progress, GitHub issue 5349
from xiaomublue at gmail dot com.
2026-07-09 07:54:07 +00:00
Thomas Adam
ec74c46d1e Merge branch 'obsd-master' 2026-07-09 08:45:06 +01:00
nicm
161dbaf1ce Cancel pending resizes and resize immediately when entering alternate
screen, fixes flickering with scrollbars. GitHub issue 5351 from Michael
Grant.
2026-07-09 07:35:05 +00:00
nicm
e242da168b Clip the status line and menu against an open popup overlay, GitHub
issue 5350 from Noam Stolero.
2026-07-09 07:32:58 +00:00
nicm
dea309cf8d Allow empty name with new-window again, from Jacob Koziej. 2026-07-09 07:19:24 +00:00
Thomas Adam
ee3944c8fd Merge branch 'obsd-master' 2026-07-09 08:00:06 +01:00
nicm
1fefb80445 Add t/d for time difference in seconds. 2026-07-09 06:33:19 +00:00
Nicholas Marriott
f92cb43ce4 t/d test. 2026-07-08 12:36:19 +01:00
Thomas Adam
cd2ca9ec34 Merge branch 'obsd-master' 2026-07-08 12:15:06 +01:00
nicm
e37a2e54ab Fix regsub with anchor at start of pattern, GitHub issue 5341. 2026-07-08 11:04:51 +00:00
Thomas Adam
53f3b05001 Merge branch 'obsd-master' 2026-07-08 10:30:05 +01:00
nicm
8e76565c9c Keep all modes except cursor during redraw, GitHub issue 5337 from Ayman
Bagabas.
2026-07-08 09:23:10 +00:00
Nicholas Marriott
c830710e11 More sub tests. 2026-07-08 09:55:21 +01:00
Thomas Adam
0f354ac4e0 Merge branch 'obsd-master' 2026-07-08 09:30:06 +01:00
Nicholas Marriott
e601bfb362 Theme report test from Ayman Bagabas. 2026-07-08 09:22:55 +01:00
nicm
dac6514147 Report the terminal's own theme to panes rather than guessing from the
background. GitHub issue 5343 from Ayman Bagabas.
2026-07-08 08:21:53 +00:00
nicm
ac723bf2df Do not crash looking for next or previous session. GitHub issue 5344. 2026-07-08 08:15:49 +00:00
Thomas Adam
c8f6b54da7 Merge branch 'obsd-master' 2026-07-08 09:15:06 +01:00
Nicholas Marriott
27c26e88e5 detach-on-destroy next/previous tests. 2026-07-08 09:16:50 +01:00
Nicholas Marriott
e77d9ad043 -k/empty panes tests. 2026-07-08 09:07:48 +01:00
nicm
25060c3fa5 Fix empty argument to splitw/newp and add -k to copy-mode. 2026-07-08 08:07:42 +00:00
nicm
28c2005a2a Fix a typo (use right var), from Dane Jensen. 2026-07-08 07:55:17 +00:00
Thomas Adam
db115c6b97 Merge branch 'obsd-master' 2026-07-07 14:00:06 +01:00
nicm
7b02cb6d03 Fix . and ; bindings, reported by tb. 2026-07-07 12:30:36 +00:00
Thomas Adam
8beb17df0d Merge branch 'obsd-master' 2026-07-07 11:00:08 +01:00
nicm
76b693aa81 Add C-b g , and C-b g . for move and resize menus, also add to pane menu
(and fix to make them work).
2026-07-07 09:45:09 +00:00
Thomas Adam
d53f1b7458 Merge branch 'obsd-master' 2026-07-07 09:15:06 +01:00
nicm
7188391a22 Add a layout_geometry container struct, from Dane Jensen. 2026-07-07 08:07:26 +00:00
Thomas Adam
869170abd6 Merge branch 'obsd-master' 2026-07-07 09:00:07 +01:00
nicm
1ea574e4ca Set initial scrollbar state, from Michael Grant. 2026-07-07 07:47:03 +00:00
nicm
af35bcb64f Restore { and } to swap-pane and for floating panes and use a separate
key table accessed by g (short for "gove and/or gesize") for floating
panes. So "C-b g Up" moves the pane to top-centre, "C-b g M-Up" moves
and resizes it. This means we not only do not lose the surprisingly
popular { and } bindings, but we can have more than four keys for moving
and resizing panes.
2026-07-07 07:43:07 +00:00
Thomas Adam
55ce48c152 Merge branch 'obsd-master' 2026-07-06 23:00:06 +01:00
nicm
ff09914327 Could of minor tidy ups. 2026-07-06 21:44:26 +00:00
Nicholas Marriott
3946e24eff Add array test. 2026-07-06 18:13:25 +01:00
Thomas Adam
b07424224b Merge branch 'obsd-master' 2026-07-06 17:00:06 +01:00
nicm
d33d5b7de8 When sync is enabled, we need to mark the whole scroll region dirty if
there has been any scrolling. GitHub issue 5330.
2026-07-06 15:41:31 +00:00
Thomas Adam
9180356b13 Merge branch 'obsd-master' 2026-07-06 16:00:06 +01:00
nicm
20ef19b42f Add a key to change an array key in customize mode. 2026-07-06 14:40:57 +00:00
nicm
1117caaf09 Change array item keys to be strings instead of numbers which are
painful to work with.
2026-07-06 14:29:10 +00:00
Thomas Adam
e6505947ec Merge branch 'obsd-master' 2026-07-06 13:30:06 +01:00
nicm
79b83600af NOJOBS is a flag, use correct argument. 2026-07-06 12:10:18 +00:00
nicm
85e3ca5ae2 Check for width/height 0, based on change from Uzair Aftab. 2026-07-06 12:08:52 +00:00