# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.1041 $
-# $Date: 2022/12/29 20:11:56 $
+# $Revision: 1.1058 $
+# $Date: 2023/05/08 08:23:18 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
use=ecma+strikeout, use=ecma+index, use=vt420+lrmm,
use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
use=ecma+italics, use=xterm-basic, use=bracketed+paste,
+ use=report+version,
# 2019-06-09: These capabilities are commented-out for compatibility with
# existing releases 5.9-6.1, and may be considered for inclusion after the
# release of ncurses 6.2:
# Windows Terminal (Preview)
# https://github.com/microsoft/terminal
#
+# Windows 10 22H2 (also Windows 11)
+# Version 1.16.10261.0
+#
+# - Windows Terminal #1553: "Feature Request: Mouse/Touch/Pointer Bindings
+# (like middle-click paste, right-click context menu, etc.)", compare to
+# https://learn.microsoft.com/en-us/windows/console/mouse-event-record-str
+# This appears to be related to a problem with its implementation of the
+# Console API; the mouse does not work in a "Command Window" (e.g., as used
+# in the ncurses MinGW driver), although escape sequences work.
+#
# Windows 10 21H1
# Version 1.9.1942.0
#
xterm-p370|xterm patch #370,
npc,
- kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
- use=ansi+rep, use=ecma+strikeout, use=xterm+pcfkeys,
- use=xterm+nofkeys, use=bracketed+paste,
+ kcbt=\E[Z, kent=\EOM, nel=\EE,
+ rv=\E\\[41;[1-6][0-9][0-9];0c,
+ xr=\EP>\\|XTerm\\([1-9][0-9]+\\)\E\\\\,
+ use=ecma+index, use=ansi+rep, use=ecma+strikeout,
+ use=xterm+pcfkeys, use=xterm+nofkeys,
+ use=bracketed+paste, use=report+version,
+ use=xterm+focus,
xterm-p371|xterm patch #371,
use=dec+sl, use=xterm-p370,
# larger feature for manipulating the clipboard selection. Few terminals aside
# from xterm fully implement the clipboard feature, but several copy this
# detail. The names for the extended capabilities here were introduced by vim
-# in January 2017.
+# in January 2017, but used internally. In 2023, vim patch 9.0.1117 is needed
+# to work with this change.
bracketed+paste|xterm bracketed paste,
BD=\E[?2004l, BE=\E[?2004h, PE=\E[201~, PS=\E[200~,
+# https://invisible-island.net/xterm/xterm.log.html#xterm_354
+#
+# The response is a DSR sequence identifying the version: DCS > | text ST
+# For example:
+# ^[P>|XTerm(354)^[\
+report+version|Report xterm name and version (XTVERSION),
+ XR=\E[>0q, xr=\EP>\\|[ -~]+\E\\\\, use=report+da2,
+
+# Vim uses RV to denote the secondary device attributes. Xterm documents the
+# - first parameter as the terminal type (extending it to VT100),
+# - the second as the patch number for xterm, and
+# - the third parameter as zero.
+# Other terminals may provide useful responses, though few are documented.
+report+da2|report secondary device attributes (DA2),
+ RV=\E[>c, rv=\E\\[[0-9]+;[0-9]+;[0-9]+c,
+
#### XTERM Mouse
# The xterm mouse protocol is used by other terminal emulators.
# In this section, two extended capabilities are used to illustrate the mouse
# "any-event" mouse mode.
#
# These building blocks incorporate later features as well:
-# xterm patch #224 (2007/2/11 added private mode 1004, for enabling/disabling
+# xterm patch #224 (2007/2/11) added private mode 1004, for enabling/disabling
# focus in/out event reporting.
-# xterm patch #277 (2012/01/07 added private mode 1006
+# xterm patch #277 (2012/01/07) added private mode 1006
xterm+sm+1002|xterm any-button mouse,
kmous=\E[<, XM=\E[?1006;1004;1002%?%p1%{1}%=%th%el%;,
use=xterm+sm+1003, use=xterm,
xterm+focus|xterm focus-in/out event "keys",
+ XF,
kxIN=\E[I, kxOUT=\E[O,
# xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
# protocol regarding button-releases), I provided the 1006 mode, referring
# to it as "SGR 1006" since the replies resemble the SGR control string:
xterm+sm+1006|xterm SGR-mouse (building block),
- kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
+ kmous=\E[<, XM=\E[?1006;1004;1000%?%p1%{1}%=%th%el%;,
xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
xterm-1006|xterm SGR-mouse,
use=xterm+sm+1006, use=xterm,
use=ecma+index, use=xterm+sm+1006, use=ecma+strikeout,
use=ecma+italics, use=ecma+color, use=xterm-r6,
use=vt220+cvis, use=bracketed+paste,
+ use=report+version,
# The keytab feature was introduced in 0.9.12 (February 2000) with "linux" and
# "vt100" key-table files along with a compiled-in default key-table.
use=xterm+pcc2, use=xterm+pce2, use=xterm+meta,
use=xterm+alt+title, use=xterm+sm+1006,
use=vt100+pfkeys, use=bracketed+paste, use=mlterm2,
+ use=report+version,
# This is mlterm 2.9.3's mlterm.ti, with some additions/corrections -TD
#
use=ecma+index, use=xterm+256setaf, use=ansi+rep,
use=ecma+strikeout, use=xterm+sm+1006,
use=xterm+pcfkeys, use=xterm+tmux, use=vt220+cvis,
- use=ecma+italics, use=xterm-basic,
+ use=ecma+italics, use=xterm-basic, use=report+version,
terminology|EFL-based terminal emulator,
use=terminology-1.8.1,
use=xterm-basic, use=xterm+app, use=ansi+rep,
use=xterm+tmux, use=ecma+strikeout, use=xterm+sl-twm,
use=ecma+italics, use=xterm+pce2, use=xterm+pcc2,
- use=xterm+pcf2, use=bracketed+paste,
+ use=xterm+pcf2, use=bracketed+paste, use=xterm+focus,
#### Kitty
# https://github.com/kovidgoyal/kitty
use=xterm+pcfkeys, use=xterm+sl-twm,
use=ecma+strikeout, use=ecma+italics,
use=xterm+alt1049, use=att610+cvis, use=xterm+tmux,
- use=bracketed+paste,
+ use=bracketed+paste, use=report+version,
kitty+setal|set underline colors (nonstandard),
setal=\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1
bel=^G, blink=\E[5m, bold=\E[1m, clear=\E[H\E[2J, cr=\r,
cub1=^H, cud1=\n, dim=\E[2m, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
el1=\E[1K, flash=\E]555\E\\, ind=\n, invis=\E[8m,
- is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^?, kcbt=\E[Z,
- oc=\E]104\E\\, op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B,
- rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
- rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>,
+ is2=\E[!p\E[4l\E>, kbs=^?, kcbt=\E[Z, oc=\E]104\E\\,
+ op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B, rmam=\E[?7l,
+ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+ rs2=\E[!p\E[4l\E>,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smkx=\E[?1h\E=,
use=ecma+strikeout, use=xterm+alt+title,
use=xterm+pcfkeys, use=xterm+sm+1006, use=xterm+tmux2,
use=xterm+sl-alt, use=bracketed+paste,
+ use=report+version,
######## WEB CLIENTS
dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
enacs=\E(B\E)0, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
- ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^H, kcbt=\E[Z,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP,
- kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR,
- kf4=\EOS, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kmous=\E[M, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
- rmacs=^O, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
- rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
+ ind=\n, indn=\E[%p1%dS, is2=\E)0, kcbt=\E[Z, kcub1=\EOD,
+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kf1=\EOP, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ kmous=\E[M, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+ rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, rmul=\E[24m,
+ rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;
5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smir=\E[4h, smkx=\E[?1h\E=,
smso=\E[3m, smul=\E[4m, tbc=\E[3g, vpa=\E[%i%p1%dd,
- E0=\E(B, S0=\E(%p1%c, use=vt220+pcedit,
+ E0=\E(B, S0=\E(%p1%c, use=xterm+kbs, use=vt220+pcedit,
use=xterm+alt1049, use=ecma+color, use=vt100+enq,
screen|VT 100/ANSI X3.64 virtual terminal,
use=xterm+256setaf, use=screen.xterm-new,
screen.konsole-256color|GNU Screen with konsole using 256 colors,
- use=xterm+256setaf, use=screen.konsole,
+ XR@, use=xterm+256setaf, use=screen.konsole,
screen.vte-256color|GNU Screen with vte using 256 colors,
use=xterm+256setaf, use=screen.vte,
use=xterm+256setaf, use=screen.putty,
screen.mlterm-256color|GNU Screen with mlterm using 256 colors,
- use=xterm+256setaf, use=screen.mlterm,
+ XR@, use=xterm+256setaf, use=screen.mlterm,
# ======================================================================
use=xterm+x11mouse, use=screen+italics,
use=screen+fkeys, use=no+brackets, use=gnome,
screen.konsole|screen in KDE console window,
- use=xterm+x11mouse, use=screen+italics,
+ XR@, use=xterm+x11mouse, use=screen+italics,
use=screen+fkeys, use=no+brackets, use=konsole,
# fix the backspace key
screen.linux|screen.linux-s|screen in Linux console,
kbs=^?, kcbt@, use=linux+sfkeys, use=xterm+x11mouse,
use=screen+fkeys, use=screen,
screen.mlterm|screen in mlterm,
- use=xterm+x11mouse, use=screen+fkeys, use=no+brackets,
- use=mlterm,
+ XR@, use=xterm+x11mouse, use=screen+fkeys,
+ use=no+brackets, use=mlterm,
screen.putty|screen in putty,
use=xterm+x11mouse, use=screen+fkeys, use=no+brackets,
use=putty,
smso=\E[7m, E3=\E[3J, Smulx=\E[4:%p1%dm,
use=ecma+italics, use=ecma+strikeout, use=xterm+edit,
use=xterm+pcfkeys, use=xterm+sl, use=xterm+tmux,
- use=screen, use=bracketed+paste,
+ use=screen, use=bracketed+paste, use=report+version,
+ use=xterm+focus,
tmux-256color|tmux with 256 colors,
use=xterm+256setaf, use=tmux,
# way to scroll.
sun-cgsix|sun-ss5|Sun SparcStation 5 console,
il@, il1@, use=sun-il,
+
+# The Sun console was documented in the wscons manual page (apparently
+# unrelated to the "wscons" used by some of the BSDs).
+#
+# https://illumos.org/man/4D/wscons
+# https://www.bitsavers.org/pdf/sun/sun1/800-0345_Sun-1_System_Reference_Manual_Jul82.pdf
+#
+# The early cmdtool and shelltool programs in Sun's NeWS were based on this.
+# After NeWS was discontinued, XView provided a similar shelltool, with an
+# incomplete manual page. Presumably the intent was to document features of
+# shelltool not in wscons:
+#
+# https://manpages.ubuntu.com/manpages/bionic/en/man1/shelltool.1.html
+# https://manpages.ubuntu.com/manpages/bionic/en/man1/cmdtool.1.html
+#
+# The wscons manual page and the XView source show that it had no feature that
+# could be used in ncurses u6/u7/u8/u9 extensions. Interesting, the XView
+# source shows that its shelltool could tell the host what a particular mode
+# was set to. But neither that nor its CSI..t controls support u6/u7/u8/u9.
+#
# If you are using an SS5, change the sun definition to use sun-ss5.
sun|sun1|sun2|Sun Microsystems Inc. workstation console,
use=sun-il,
# kDC3 kDC4 kDC5 kDC6 kDC7 kDN kDN3 kDN4 kDN5 kDN6 kDN7 kEND3 kEND4 kEND5 kEND6
# kEND7 kHOM3 kHOM4 kHOM5 kHOM6 kHOM7 kIC3 kIC4 kIC5 kIC6 kIC7 kLFT3 kLFT4
# kLFT5 kLFT6 kLFT7 kNXT3 kNXT4 kNXT5 kNXT6 kNXT7 kPRV3 kPRV4 kPRV5 kPRV6 kPRV7
-# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 ka2 kb1 kb3 kc2
+# kRIT3 kRIT4 kRIT5 kRIT6 kRIT7 kUP kUP3 kUP4 kUP5 kUP6 kUP7 kxIN kxOUT ka2 kb1
+# kb3 kc2
#
# Bracketed paste is described with these capabilities in vim:
#
# Ms modifies the selection/clipboard. Its parameters are
# p1 = the storage unit (clipboard, selection or cut buffer)
# p2 = the base64-encoded clipboard content.
+# RV requests the terminal to report secondary device attributes (i.e, version).
+# rv shows the format of the terminal responses, as a regular expression.
# Se resets the cursor style to the terminal power-on default.
# Ss is a string capability with one numeric parameter. It is used to set the
# cursor style as described by the DECSCUSR function to a block or
# underline.
# TS is a string capability which acts like "tsl", but uses no parameter and
# goes to the first column of the "status line".
+# XF is set/true for terminals which support the xterm focus-in/focus-out
+# escape sequences sent from the terminal to the host when private mode
+# 1004 is set. Those are defined as kxIN and kxOUT, to take advantage of
+# ncurses keypad mode to interpret them like a function key. Because the
+# 1004 mode is usually combined with other flags to set the mouse protocol,
+# this flag provides an application with the information that the focus
+# mode is assumed to be set, e.g., in XM.
# XM is a string capability which overrides ncurses's built-in string which
# enables/disables xterm mouse mode.
# xm shows the format of the mouse responses. Parameters:
# p8 = x-ordinate ending region
# Other extensions, used in xm:
# %u = UTF-8
+# XR requests the terminal to report its version as a free-format string.
+# xr shows the format of the terminal responses, as a regular expression.
#
#### Miscellaneous extensions:
#
# + correct PS vs PE names in bracketed+paste (report by Bram Moolenaar)
# -TD
#
+# 2023-01-07
+# + add comment to bracketed+paste explaining that vim patch 9.0.1117 is
+# needed for use with the updated xterm descriptions (suggested by Bram
+# Moolenaar).
+# + add RV report+version (suggested by Bram Moolenaar).
+#
+# 2023-01-14
+# + change RV to XR/xr, to avoid conflict with pre-existing usage in vim,
+# to use RV/rv to denote DA2 and its response (discussion with Bram
+# Moolenaar) -TD
+# + add XF flag to xterm+focus so that termcap applications can be aware
+# of terminals which may support focus in/out -TD
+# + use xterm+focus in xterm-p370 and tmux -TD
+#
+# 2023-01-28
+# + document XF, kxIN and kxOUT -TD
+# + add note on sun/wscons/cmdtool/shelltool -TD
+#
+# 2023-04-01
+# + remove DECCOLM+DECSCLM from foot (patch by Daniel Ekloef).
+#
+# 2023-04-08
+# + add xterm+focus to alacritty+common (patch by Christian Duerr).
+#
+# 2023-05-08
+# + add mode 1004 to xterm+sm+1006 from xterm #380 -TD
+#
######## SHANTIH! SHANTIH! SHANTIH!