Add imagescroll feature and capability.

This commit is contained in:
nicm
2026-10-14 12:33:46 +00:00
committed by tmux update bot
parent 6b26f0abc0
commit 3ba4fb32cf
5 changed files with 32 additions and 12 deletions

8
tmux.1
View File

@@ -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 <nicholas.marriott@gmail.com>
.\"
@@ -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
@@ -5192,6 +5192,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
@@ -8972,6 +8974,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

3
tmux.h
View File

@@ -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 <nicholas.marriott@gmail.com>
@@ -491,6 +491,7 @@ enum tty_code_code {
TTYC_IND,
TTYC_INDN,
TTYC_INVIS,
TTYC_ISCRL,
TTYC_KCBT,
TTYC_KCUB1,
TTYC_KCUD1,

View File

@@ -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 <nicholas.marriott@gmail.com>
@@ -366,6 +366,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\\\\",
@@ -396,6 +407,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,
@@ -635,6 +647,7 @@ tty_default_features(struct client *c, const char *name, u_int version)
"extkeys,"
"focus,"
"hyperlinks,"
"imagescroll,"
"margins,"
"sixel,"
"usstyle"

View File

@@ -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 <nicholas.marriott@gmail.com>
@@ -113,6 +113,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" },

View File

@@ -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 <nicholas.marriott@gmail.com>
@@ -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),