diff --git a/tmux.1 b/tmux.1 index 1d2f74a0a..0b6c48c40 100644 --- a/tmux.1 +++ b/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.1185 2026/10/13 10:21:58 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.1186 2026/10/14 12:33:46 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott .\" @@ -14,7 +14,7 @@ .\" IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING .\" OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: October 13 2026 $ +.Dd $Mdocdate: October 14 2026 $ .Dt TMUX 1 .Os .Sh NAME @@ -5194,6 +5194,8 @@ Supports extended keys. Supports focus reporting. .It hyperlinks Supports OSC 8 hyperlinks. +.It imagescroll +Moves image content with scroll regions. .It ignorefkeys Ignore function keys from .Xr terminfo 5 @@ -8984,6 +8986,8 @@ These are set automatically if the capability is present. .It Em \&Hls Set or clear a hyperlink annotation. +.It Em \&Iscrl +Indicates that the terminal moves image content with scroll regions. .It Em \&Nobr Tell .Nm diff --git a/tmux.h b/tmux.h index f8c3e0d44..468c34297 100644 --- a/tmux.h +++ b/tmux.h @@ -1,4 +1,4 @@ -/* $OpenBSD: tmux.h,v 1.1461 2026/10/14 10:34:14 nicm Exp $ */ +/* $OpenBSD: tmux.h,v 1.1462 2026/10/14 12:33:46 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -499,6 +499,7 @@ enum tty_code_code { TTYC_IND, TTYC_INDN, TTYC_INVIS, + TTYC_ISCRL, TTYC_KCBT, TTYC_KCUB1, TTYC_KCUD1, diff --git a/tty-features.c b/tty-features.c index 1f4cd969a..3e2702f7e 100644 --- a/tty-features.c +++ b/tty-features.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty-features.c,v 1.48 2026/10/12 12:35:03 nicm Exp $ */ +/* $OpenBSD: tty-features.c,v 1.49 2026/10/14 12:33:46 nicm Exp $ */ /* * Copyright (c) 2020 Nicholas Marriott @@ -376,6 +376,17 @@ static const struct tty_feature tty_feature_kittygraphics = { TERM_KITTYGRAPHICS }; +/* Terminal moves images with scroll regions. */ +static const char *const tty_feature_imagescroll_capabilities[] = { + "Iscrl", + NULL +}; +static const struct tty_feature tty_feature_imagescroll = { + "imagescroll", + tty_feature_imagescroll_capabilities, + 0 +}; + /* Terminal supports the OSC 9;4 progress bar. */ static const char *const tty_feature_progressbar_capabilities[] = { "Spb=\\E]9;4;%p1%d;%p2%d\\E\\\\", @@ -406,6 +417,7 @@ static const struct tty_feature *const tty_features[] = { &tty_feature_extkeys, &tty_feature_focus, &tty_feature_ignorefkeys, + &tty_feature_imagescroll, &tty_feature_kittygraphics, &tty_feature_margins, &tty_feature_mouse, @@ -645,6 +657,7 @@ tty_default_features(struct client *c, const char *name, u_int version) "extkeys," "focus," "hyperlinks," + "imagescroll," "margins," "sixel," "usstyle" diff --git a/tty-term.c b/tty-term.c index 3311701ba..7415cc552 100644 --- a/tty-term.c +++ b/tty-term.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty-term.c,v 1.112 2026/10/12 10:39:05 nicm Exp $ */ +/* $OpenBSD: tty-term.c,v 1.113 2026/10/14 12:33:46 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott @@ -116,6 +116,7 @@ static const struct tty_term_code_entry tty_term_codes[] = { [TTYC_IND] = { TTYCODE_STRING, "ind" }, [TTYC_INDN] = { TTYCODE_STRING, "indn" }, [TTYC_INVIS] = { TTYCODE_STRING, "invis" }, + [TTYC_ISCRL] = { TTYCODE_FLAG, "Iscrl" }, [TTYC_KCBT] = { TTYCODE_STRING, "kcbt" }, [TTYC_KCUB1] = { TTYCODE_STRING, "kcub1" }, [TTYC_KCUD1] = { TTYCODE_STRING, "kcud1" }, diff --git a/window-client.c b/window-client.c index 05bb2f801..c9234847f 100644 --- a/window-client.c +++ b/window-client.c @@ -1,4 +1,4 @@ -/* $OpenBSD: window-client.c,v 1.50 2026/10/12 12:35:03 nicm Exp $ */ +/* $OpenBSD: window-client.c,v 1.51 2026/10/14 12:33:46 nicm Exp $ */ /* * Copyright (c) 2017 Nicholas Marriott @@ -89,19 +89,20 @@ static const char *window_client_info_lines[] = { " #[#{E:tree-mode-border-style},acs]x#[default] " WINDOW_CLIENT_FEATURE(hyperlinks) " " WINDOW_CLIENT_FEATURE(ignorefkeys) " " - WINDOW_CLIENT_FEATURE(kittygraphics) " " - WINDOW_CLIENT_FEATURE(margins), + WINDOW_CLIENT_FEATURE(imagescroll) " " + WINDOW_CLIENT_FEATURE(kittygraphics), " #[#{E:tree-mode-border-style},acs]x#[default] " + WINDOW_CLIENT_FEATURE(margins) " " WINDOW_CLIENT_FEATURE(mouse) " " WINDOW_CLIENT_FEATURE(osc7) " " - WINDOW_CLIENT_FEATURE(overline) " " - WINDOW_CLIENT_FEATURE(progressbar), + WINDOW_CLIENT_FEATURE(overline), " #[#{E:tree-mode-border-style},acs]x#[default] " + WINDOW_CLIENT_FEATURE(progressbar) " " WINDOW_CLIENT_FEATURE(rectfill) " " WINDOW_CLIENT_FEATURE(sixel) " " - WINDOW_CLIENT_FEATURE(strikethrough) " " - WINDOW_CLIENT_FEATURE(sync), + WINDOW_CLIENT_FEATURE(strikethrough), " #[#{E:tree-mode-border-style},acs]x#[default] " + WINDOW_CLIENT_FEATURE(sync) " " WINDOW_CLIENT_FEATURE(title) " " WINDOW_CLIENT_FEATURE(usstyle) " " WINDOW_CLIENT_FEATURE(utf8),