diff --git a/tmux.1 b/tmux.1 index 22982b11..365b93f5 100644 --- a/tmux.1 +++ b/tmux.1 @@ -3539,6 +3539,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/tty-features.c b/tty-features.c index b42cf74a..48ac51be 100644 --- a/tty-features.c +++ b/tty-features.c @@ -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