]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - misc/terminfo.src
ncurses 6.4 - patch 20231028
[ncurses.git] / misc / terminfo.src
index 90e1c79b3ffb2efd00941f3bf8efdfb97eaeed45..fa5c67e41f4f79b91897f8b92bb9ae8b65a49f90 100644 (file)
@@ -6,8 +6,8 @@
 # Report bugs and new terminal descriptions to
 #      bug-ncurses@gnu.org
 #
-#      $Revision: 1.1039 $
-#      $Date: 2022/12/24 18:18:58 $
+#      $Revision: 1.1067 $
+#      $Date: 2023/10/28 21:45:20 $
 #
 # 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
@@ -368,6 +368,9 @@ ansi+idc|ANSI insert/delete characters,
 ansi+arrows|ANSI normal-mode home and cursor-keys,
        kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
        khome=\E[H,
+ansi+apparrows|ANSI application-mode home and cursor-keys,
+       kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, khome=\EOH,
+       use=ansi+arrows,
 ansi+sgr|ANSI graphic renditions,
        blink=\E[5m, invis=\E[8m, rev=\E[7m,
        sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
@@ -4155,9 +4158,10 @@ crt|crt-vt220|CRT 2.3 emulating VT220,
 #      resize.pl gets no reply, resize.sh needs fix for no reply.
 scrt|securecrt|SecureCRT emulating xterm-256color,
        bce@, km@, npc,
-       bel@, cvvis@, kcbt=\E[Z, kent=\EOM, use=vt220+pcedit,
-       use=xterm+256setaf, use=ecma+index, use=ansi+rep,
-       use=xterm+keypad, use=xterm+pcfkeys, use=xterm-basic,
+       bel@, cvvis@, kcbt=\E[Z, kent=\EOM, use=linux+kbs,
+       use=vt220+pcedit, use=xterm+256setaf, use=ecma+index,
+       use=ansi+rep, use=xterm+keypad, use=xterm+pcfkeys,
+       use=xterm-basic,
 
 # Absolute Telnet
 # (eval 2021/02/20)
@@ -4205,15 +4209,23 @@ scrt|securecrt|SecureCRT emulating xterm-256color,
 #      supports 256-colors, including changing palette (ncurses menu d works)
 #      supports UTF-8, but honors VT100 line-drawing
 absolute|Absolute Telnet emulating xterm,
-       kcbt=\E[Z, use=ecma+index, use=ansi+rep,
+       kcbt=\E[Z, use=ecma+index, use=linux+kbs, use=ansi+rep,
        use=vt220+pcedit, use=xterm+keypad, use=xterm+app,
        use=xterm+pcf0, use=xterm+256color, use=xterm+x11mouse,
        use=xterm-basic,
 
 #### PuTTY
-# PuTTY 0.74 (27 June 2020)
 # http://www.chiark.greenend.org.uk/~sgtatham/putty/
 #
+# PuTTY 0.78 (September 2020, tested 12 August 2023)
+# Testing with tack:
+#      implements cross-out text (shortly after 0.74)
+#      restore kLFT as kLFT5, etc. (mentioned in October 2021)
+#      does not support direct-colors (mentioned in July 2021)
+#
+# PuTTY 0.74 (27 June 2020)
+#      (unchanged)
+#
 # PuTTY 0.73 (September 2019)
 # Testing with tack:
 #      does not implement italics
@@ -4294,6 +4306,12 @@ putty|PuTTY terminal emulator,
        use=xterm+alt1049, use=xterm+sm+1006, use=putty+fnkeys,
        use=vt102+enq, use=xterm+sl, use=vt100+fnkeys,
        use=putty+keypad, use=vt220+cvis, use=bracketed+paste,
+       use=putty+cursor, use=ecma+strikeout,
+# older versions (e.g., before 0.71) of PuTTY used a shift-modifier to toggle
+# between normal- and application-mode for the cursor-keys.  That was dropped,
+# and a few years later (after 0.74) restored as the control-modifier.
+putty+cursor|PuTTY modified cursor-keys,
+       kDN5=\E[B, kLFT5=\E[D, kRIT5=\E[C, kUP5=\E[A,
 putty+keypad|PuTTY numeric keypad,
        kp1=\EOq, kp2=\EOr, kp3=\EOs, kp4=\EOt, kp5=\EOu, kp6=\EOv,
        kp7=\EOw, kp8=\EOx, kp9=\EOy, kpADD=\EOl, kpDIV=\EOQ,
@@ -4417,10 +4435,11 @@ mintty+common|shared capabilities for mintty,
        rsupm=\E[75m, smm@, smpch=\E[11m, sshm=\E[1:2m,
        ssubm=\E[74m, ssupm=\E[73m, Rmol=\E[55m, Smol=\E[53m,
        Smulx=\E[4:%p1%dm, blink2=\E[6m, norm=\E[22m,
-       opaq=\E[28m, smul2=\E[21m, use=ansi+rep,
+       opaq=\E[28m, smul2=\E[21m, use=linux+kbs, use=ansi+rep,
        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=xterm+focus, 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:
@@ -4621,6 +4640,16 @@ ms-vt-utf8|vt-utf8|UTF-8 flavor of VT100+,
 # 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
 #
@@ -4711,10 +4740,10 @@ ms-vt-utf8|vt-utf8|UTF-8 flavor of VT100+,
 ms-terminal|Windows10 terminal,
        npc,
        cud1=\E[B, kcbt=\E[Z, rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@,
-       Cr@, Ms@, use=xterm+256color, use=xterm+pcfkeys,
-       use=ansi+rep, use=xterm+sm+1006, use=ecma+index,
-       use=ecma+italics, use=ecma+strikeout, use=xterm-basic,
-       use=xterm+tmux,
+       Cr@, Ms@, use=linux+kbs, use=xterm+256color,
+       use=xterm+pcfkeys, use=ansi+rep, use=xterm+sm+1006,
+       use=ecma+index, use=ecma+italics, use=ecma+strikeout,
+       use=xterm-basic, use=xterm+tmux,
 
 #### Visual Studio
 # Visual Studio Code 1.45.0 uses xterm.js 12.8.1 (see https://xtermjs.org/).
@@ -4763,9 +4792,10 @@ ms-terminal|Windows10 terminal,
 # - color-palette cannot be changed
 vscode|xterm.js|Visual Studio Code terminal using xterm.js,
        npc,
-       kcbt=\E[Z, rmkx=\E[?1l, smkx=\E[?1h, use=xterm+256setaf,
-       use=ecma+index, use=xterm+sm+1006, use=xterm+pcfkeys,
-       use=ecma+italics, use=xterm-basic, use=bracketed+paste,
+       kcbt=\E[Z, rmkx=\E[?1l, smkx=\E[?1h, use=linux+kbs,
+       use=xterm+256setaf, use=ecma+index, use=xterm+focus,
+       use=xterm+sm+1006, use=xterm+pcfkeys, use=ecma+italics,
+       use=xterm-basic, use=bracketed+paste,
 vscode-direct|Visual Studio Code with direct-colors,
        use=xterm+indirect, use=vscode,
 
@@ -4986,14 +5016,18 @@ xterm+nofkeys|building block for xterm fkey-variants,
        npc,
        kcbt=\E[Z, kent=\EOM, nel=\EE, use=ecma+index,
        use=ansi+rep, use=ecma+strikeout, use=vt420+lrmm,
-       use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
-       use=xterm+keypad, use=xterm-basic,
+       use=xterm+focus, use=xterm+sm+1006, use=xterm+tmux,
+       use=ecma+italics, use=xterm+keypad, use=xterm-basic,
 
 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,
@@ -5003,9 +5037,15 @@ xterm-new|modern xterm terminal emulator,
        use=xterm-p370,
 
 # This fragment is for people who cannot agree on what the backspace key
-# should send.
+# should send.  The ncurses configure script option "--with-xterm-kbs" can
+# set it to BS (standard) or DEL (Linux's notion of "vt220").  xterm provides
+# either, depending on how the pseudoterminals are configured.
 xterm+kbs|fragment for backspace key,
        kbs=^H,
+
+# Use this fragment for terminals that always use DEL for "backspace".
+linux+kbs|fragment for "backspace" key,
+       kbs=^?,
 #
 # This fragment describes as much of XFree86 xterm's "pc-style" function
 # keys as will fit into terminfo's 60 function keys.
@@ -5646,8 +5686,8 @@ xterm-vt220|xterm emulating VT220,
        kmous=\E[M, knp=\E[6~, kpp=\E[5~, nel=\EE, use=xterm+app,
        use=xterm+edit, use=vt220+keypad, use=ecma+italics,
        use=ecma+index, use=ansi+rep, use=ecma+strikeout,
-       use=xterm+sm+1006, use=xterm+tmux, use=xterm+keypad,
-       use=xterm-basic,
+       use=xterm+focus, use=xterm+sm+1006, use=xterm+tmux,
+       use=xterm+keypad, use=xterm-basic,
 
 xterm-vt52|xterm emulating DEC VT52,
        cols#80, it#8, lines#24,
@@ -5766,9 +5806,26 @@ xterm1|xterm terminal emulator ignoring the alternate screen buffer,
 # 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, PD=\E[201~, PE=\E[200~,
+       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.
@@ -5853,9 +5910,9 @@ xterm-x11hilite|X11 mouse with highlight,
 # "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%;,
@@ -5870,8 +5927,12 @@ xterm+sm+1003|xterm any-event mouse,
 xterm-1003|example of xterm any-event mouse,
        use=xterm+sm+1003, use=xterm,
 
+# Some terminal emulators implement xterm focus in/out, but do it incorrectly,
+# interfering with user applications.
+# https://lists.gnu.org/archive/html/bug-ncurses/2023-10/msg00087.html
 xterm+focus|xterm focus-in/out event "keys",
-       kxIN=\E[I, kxOUT=\E[O,
+       XF,
+       fd=\E[?1004l, fe=\E[?1004h, kxIN=\E[I, kxOUT=\E[O,
 
 # xterm patch #116 (1999/9/25) added Stephen P Wall's changes to support DEC
 # locator mode.
@@ -5909,6 +5970,13 @@ xterm+sm+1006|xterm SGR-mouse (building block),
 xterm-1006|xterm SGR-mouse,
        use=xterm+sm+1006, use=xterm,
 
+# Some terminal emulators implement xterm focus in/out, but do it incorrectly,
+# interfering with user applications.
+# https://lists.gnu.org/archive/html/bug-ncurses/2023-10/msg00087.html
+oldxterm+sm+1006|xterm SGR-mouse (building block),
+       kmous=\E[<, XM=\E[?1006;1000%?%p1%{1}%=%th%el%;,
+       xm=\E[<%i%p3%d;%p1%d;%p2%d;%?%p4%tM%em%;,
+
 #### KTERM
 # (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
 # (kterm should not invoke DEC Graphics as the alternate character set
@@ -6081,7 +6149,7 @@ xterms-sun|small (80x24) xterm with sunFunctionKeys true,
 gnome-rh62|GNOME terminal,
        bce,
        kdch1=^?, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
-       use=xterm-color,
+       use=linux+kbs, use=xterm-color,
 
 # GNOME Terminal 1.4.0.4 (Redhat 7.2)
 #
@@ -6108,7 +6176,7 @@ gnome-rh72|GNOME Terminal in RedHat 7,
        sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e
            \017%;,
        sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=vt220+cvis,
-       use=xterm-color,
+       use=linux+kbs, use=xterm-color,
 
 # GNOME Terminal 2.0.1 (Redhat 8.0)
 #
@@ -6242,7 +6310,7 @@ vte-2014|VTE 0.35.1,
        ncv@,
        cbt=\E[Z, el1=\E[1K, flash=\E[?5h$<100/>\E[?5l,
        ich=\E[%p1%d@, kent=\EOM, use=ecma+index,
-       use=xterm+sm+1006, use=xterm+pcfkeys, use=vte-2012,
+       use=oldxterm+sm+1006, use=xterm+pcfkeys, use=vte-2012,
        use=bracketed+paste,
 
 # As of January 2018, this was the  most recent release,
@@ -6303,10 +6371,11 @@ xfce|Xfce Terminal,
 hterm|Chromium hterm,
        npc,
        U8#1,
-       kcbt=\E[Z, kent=\EOM, nel=\EE, use=xterm+osc104,
-       use=ecma+index, use=ansi+rep, use=ecma+strikeout,
-       use=vt420+lrmm, use=xterm+sm+1006, use=xterm+tmux,
-       use=ecma+italics, use=xterm+pcfkeys, use=xterm-basic,
+       kcbt=\E[Z, kent=\EOM, nel=\EE, use=linux+kbs,
+       use=xterm+osc104, use=ecma+index, use=ansi+rep,
+       use=ecma+strikeout, use=vt420+lrmm, use=xterm+focus,
+       use=xterm+sm+1006, use=xterm+tmux, use=ecma+italics,
+       use=xterm+pcfkeys, use=xterm-basic,
        use=bracketed+paste,
 hterm-256color|Chromium hterm with xterm 256-colors,
        use=xterm+256color2, use=hterm,
@@ -6369,7 +6438,8 @@ mgt|Multi GNOME Terminal,
 # or not is debatable).
 kvt|KDE terminal,
        bce, km@,
-       kdch1=^?, kend=\E[F, khome=\E[H, use=xterm-color,
+       kdch1=^?, kend=\E[F, khome=\E[H, use=linux+kbs,
+       use=xterm-color,
 
 # Konsole 1.0.1 (2001/11/25)
 # (formerly known as kvt)
@@ -6437,9 +6507,10 @@ konsole-base|KDE console window (common),
        sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
            %p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
        sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
-       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=ecma+index, use=xterm+focus, 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.
@@ -6599,6 +6670,7 @@ mlterm3|multi lingual terminal emulator 3.x,
        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
 #
@@ -7680,10 +7752,11 @@ terminology-1.0.0|EFL-based terminal emulator (1.0.0),
 terminology-1.8.1|EFL-based terminal emulator (1.8.1),
        km@,
        cvvis@, flash@, initc@, kcbt=\E[Z, rmm@, smm@, Ms@,
-       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=linux+kbs, use=ecma+index, use=xterm+256setaf,
+       use=ansi+rep, use=ecma+strikeout, use=xterm+focus,
+       use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm+tmux,
+       use=vt220+cvis, use=ecma+italics, use=xterm-basic,
+       use=report+version,
 
 terminology|EFL-based terminal emulator,
        use=terminology-1.8.1,
@@ -7752,11 +7825,11 @@ alacritty-direct|alacritty with direct color indexing,
 alacritty+common|base fragment for alacritty,
        km@, npc,
        kb2=\EOE, kbs=^?, kcbt=\E[Z, kent=\EOM, Se=\E[0 q,
-       Smulx=\E[4:%p1%dm, use=ecma+index, use=xterm+sm+1006,
-       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,
+       Smulx=\E[4:%p1%dm, use=ecma+index, use=xterm+focus,
+       use=xterm+sm+1006, 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,
 
 #### Kitty
 # https://github.com/kovidgoyal/kitty
@@ -7908,11 +7981,11 @@ kitty+common|KovId's TTY common properties,
        sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
        smkx=\E[?1h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
        vpa=\E[%i%p1%dd, Smulx=\E[4:%p1%dm, use=ansi+enq,
-       use=ansi+rep, use=xterm+sm+1006, use=ecma+index,
-       use=xterm+pcfkeys, use=xterm+sl-twm,
+       use=ansi+rep, use=xterm+focus, use=xterm+sm+1006,
+       use=ecma+index, 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
@@ -7960,10 +8033,10 @@ foot+base|foot base fragment,
        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=,
@@ -7974,6 +8047,7 @@ foot+base|foot base fragment,
        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, use=xterm+focus,
 
 ######## WEB CLIENTS
 
@@ -8027,8 +8101,9 @@ domterm|DomTerm web client,
        bel@, blink@, dim@, invis@, kcbt=\E[Z, ritm@, rmkx=\E[?1l,
        sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
            %t;7%;m,
-       sitm@, smkx=\E[?1h, use=xterm+256setaf, use=ecma+index,
-       use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm-basic,
+       sitm@, smkx=\E[?1h, use=linux+kbs, use=xterm+256setaf,
+       use=ecma+index, use=xterm+focus, use=xterm+sm+1006,
+       use=xterm+pcfkeys, use=xterm-basic,
        use=bracketed+paste,
 
 ######## UNIX VIRTUAL TERMINALS, VIRTUAL CONSOLES, AND TELNET CLIENTS
@@ -8192,25 +8267,25 @@ screen-base|VT 100/ANSI X3.64 virtual terminal (base),
        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=screen4,
 
 no+brackets|cancel bracketed paste,
-       BD@, BE@, PD@, PE@,
+       BD@, BE@, PE@, PS@,
 
 # The bce and status-line entries are from screen 3.9.13 (and require some
 # changes to .screenrc).
@@ -8259,7 +8334,7 @@ screen.xterm-256color|GNU Screen with xterm using 256 colors,
        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,
@@ -8268,7 +8343,7 @@ screen.putty-256color|GNU Screen with putty using 256 colors,
        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,
 
 # ======================================================================
 
@@ -8356,7 +8431,7 @@ screen.gnome|screen in GNOME Terminal,
        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,
@@ -8364,8 +8439,8 @@ 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,
@@ -8480,7 +8555,8 @@ tmux|tmux terminal multiplexer,
        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, use=xterm+sm+1006,
 
 tmux-256color|tmux with 256 colors,
        use=xterm+256setaf, use=tmux,
@@ -8529,7 +8605,7 @@ mosh|mobile shell,
            %t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
        sgr0=\E(B\E[m, use=ansi+enq, use=xterm+meta,
        use=ecma+italics, use=ecma+index, use=xterm+acs,
-       use=xterm+sm+1006, use=xterm+pcfkeys,
+       use=xterm+focus, use=xterm+sm+1006, use=xterm+pcfkeys,
        use=xterm-xfree86, use=bracketed+paste,
 
 mosh-256color|mosh using 256-colors,
@@ -8792,6 +8868,26 @@ sun-il|Sun Microsystems console with working insert-line,
 # 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,
@@ -25422,7 +25518,7 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 # differences, noted in
 #      https://invisible-island.net/ncurses/ncurses-netbsd.html
 #
-# ncurses makes explicit checks for a few user-definable capabilities:  AX,
+# ncurses makes explicit checks for a few user-definable capabilities:  AX, E3,
 # RGB, U8, XM, which are documented in the user_caps(5) manual page.
 #
 #### SCREEN Extensions:
@@ -25502,14 +25598,20 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 # 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:
 #
 # BE enables bracketed paste
 # BD disables bracketed paste
-# PE is sent before the pasted text
-# PD is sent after the pasted text
+# PS is sent before the pasted text
+# PE is sent after the pasted text
+#
+# vim also uses these names for xterm focus:
+#
+# fe enables focus events
+# fd disables focus events
 #
 # Here are the other xterm-related extensions which are used in this file:
 #
@@ -25520,12 +25622,21 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 # 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:
@@ -25539,6 +25650,8 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      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:
 #
@@ -27713,4 +27826,58 @@ v3220|LANPAR Vision II model 3220/3221/3222,
 #      + add/use bracketed+paste to help identify terminals supporting this
 #        xterm feature (prompted by discussion with Bram Moolenaar) -TD
 #
+# 2022-12-29
+#      + 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
+#
+# 2023-06-05
+#      + add xterm+focus to foot+base (patch by Daniel Ekloef).
+#
+# 2023-07-08
+#      + add linux+kbs for terminals which imitate xterm's behavior with
+#        Linux -TD
+#
+# 2023-07-15
+#      + mention E3 in regard to user_caps(5) -TD
+#
+# 2023-08-12
+#      + add/use putty+cursor to reflect amending of modified cursor-keys in
+#        2021 -TD
+#      + add ecma+strikeout to putty -TD
+#
+# 2023-10-21
+#      + use oldxterm+sm+1006 in vte-2014 (report by Benno Schulenberg) -TD
+#      + add ansi+apparrows -TD
+#
+# 2023-10-28
+#      + move xterm focus mode 1004 from xterm+sm+1006 into xterm+focus as
+#        fe/fd capabilities, like vim (vim-pr #13440).
+#
 ######## SHANTIH!  SHANTIH!  SHANTIH!