From 3893e820b2fbd04b22b9a380cb05abd820221c98 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 10 Jun 2021 07:59:08 +0000 Subject: [PATCH] Feature for the mouse since FreeBSD termcap does not have kmous. --- usr.bin/tmux/tmux.1 | 6 +++++- usr.bin/tmux/tty-features.c | 19 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/usr.bin/tmux/tmux.1 b/usr.bin/tmux/tmux.1 index 2d55b9f61ea..8273596854f 100644 --- a/usr.bin/tmux/tmux.1 +++ b/usr.bin/tmux/tmux.1 @@ -1,4 +1,4 @@ -.\" $OpenBSD: tmux.1,v 1.841 2021/06/10 07:56:47 nicm Exp $ +.\" $OpenBSD: tmux.1,v 1.842 2021/06/10 07:59:08 nicm Exp $ .\" .\" Copyright (c) 2007 Nicholas Marriott .\" @@ -3540,6 +3540,10 @@ Supports extended keys. Supports focus reporting. .It margins Supports DECSLRM margins. +.It mouse +Supports +.Xr xterm 1 +mouse sequences. .It overline Supports the overline SGR attribute. .It rectfill diff --git a/usr.bin/tmux/tty-features.c b/usr.bin/tmux/tty-features.c index 3a055702b3d..537920347ba 100644 --- a/usr.bin/tmux/tty-features.c +++ b/usr.bin/tmux/tty-features.c @@ -1,4 +1,4 @@ -/* $OpenBSD: tty-features.c,v 1.19 2021/06/10 07:28:45 nicm Exp $ */ +/* $OpenBSD: tty-features.c,v 1.20 2021/06/10 07:59:08 nicm Exp $ */ /* * Copyright (c) 2020 Nicholas Marriott @@ -25,7 +25,6 @@ /* * Still hardcoded: - * - mouse (under kmous capability); * - default colours (under AX or op capabilities); * - AIX colours (under colors >= 16); * - alternate escape (if terminal is VT100-like). @@ -54,6 +53,17 @@ static const struct tty_feature tty_feature_title = { 0 }; +/* Terminal has mouse support. */ +static const char *tty_feature_mouse_capabilities[] = { + "kmous=\\E[M", + NULL +}; +static const struct tty_feature tty_feature_mouse = { + "mouse", + tty_feature_mouse_capabilities, + 0 +}; + /* Terminal can set the clipboard with OSC 52. */ static const char *tty_feature_clipboard_capabilities[] = { "Ms=\\E]52;%p1%s;%p2%s\\a", @@ -238,6 +248,7 @@ static const struct tty_feature *tty_features[] = { &tty_feature_extkeys, &tty_feature_focus, &tty_feature_margins, + &tty_feature_mouse, &tty_feature_overline, &tty_feature_rectfill, &tty_feature_rgb, @@ -338,7 +349,7 @@ tty_default_features(int *feat, const char *name, u_int version) const char *features; } table[] = { #define TTY_FEATURES_BASE_MODERN_XTERM \ - "256,RGB,bpaste,clipboard,strikethrough,title" + "256,RGB,bpaste,clipboard,mouse,strikethrough,title" { .name = "mintty", .features = TTY_FEATURES_BASE_MODERN_XTERM ",ccolour,cstyle,extkeys,margins,overline,usstyle" @@ -348,7 +359,7 @@ tty_default_features(int *feat, const char *name, u_int version) ",ccolour,cstyle,focus,overline,usstyle" }, { .name = "rxvt-unicode", - .features = "256,bpaste,ccolour,cstyle,title" + .features = "256,bpaste,ccolour,cstyle,mouse,title" }, { .name = "iTerm2", .features = TTY_FEATURES_BASE_MODERN_XTERM -- 2.20.1