+ kRIT7=\E[1;7C, kUP=\E[1;2A, use=ansi+enq, use=xterm+pcf0,
+ use=vt100, use=xterm+256setaf,
+
+# 2017-11-11:
+# Tested terminology 1.0.0
+#
+# tack -
+# Shifted cursor-keys send nothing, but xterm modifiers for control+shift
+# and control+alt were added like xterm+pcc2
+# Editing keys have some features from xterm+pce2
+# Changed from xterm+pcf0 to xterm+pcf2
+#
+# vttest -
+# REP, SL, SR fail
+#
+# Aside from the partial fixes for function/cursor/editing keys, no improvement
+# in other tests versus 0.6.1
+terminology-1.0.0|EFL-based terminal emulator (1.0.0),
+ dim=\E[2m, flash=\E[?5h$<100/>\E[?5l, kend=\E[OF,
+ khome=\E[OH, rmacs=\E(B,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
+ %?%p1%p3%|%t;7%;%?%p7%t;8%;m$<2>,
+ sgr0=\E(B\E[m, smacs=\E(0, use=ecma+italics,
+ use=vt220+cvis, use=xterm+x11mouse, use=xterm+pce2,
+ use=xterm+pcf2, use=xterm+pcc2, use=bracketed+paste,
+ use=terminology-0.6.1,
+
+# 2020/12/26:
+# Tested terminology 1.8.1 using tack and vttest.
+# tack -
+# flash does not work
+# italics and crossed-out text work
+# no meta mode
+# vttest -
+# DA1 says this is a VT420 with with 132 columns, NRCS, horizontal scrolling
+# DA2 says this is a VT510, version 33.7
+# NRCS does not work, program hangs in the locking shift test.
+# some of the VT420 rectangle operations work
+# left/right margins do not work
+# most of DECSCUSR works
+# most problems with bce are fixed.
+terminology-1.8.1|EFL-based terminal emulator (1.8.1),
+ km@,
+ cvvis@, flash@, initc@, kcbt=\E[Z, rmm@, smm@, Ms@,
+ 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,
+
+######## OPENGL CLIENTS
+
+#### Alacritty
+# https://github.com/jwilm/alacritty
+# Version 0.6.0 (2020/11/25)
+# Version 0.4.0 (2019/11/25)
+# Version 0.3.3 (2019/08/03)
+# Version 0.2.1 (2018/10/03)
+# Project started in 2016/02, uses Rust and OpenGL, and in contrast to (most X
+# terminal programs) is not designed to run with a remote server.
+#
+# Packaged in Arch Linux -
+# vttest:
+# initial screensize 24x80
+# no DECCOLM (does not switch between 80/132 columns)
+# otherwise, passes wrapping test
+# no DECSCNM
+# identifies as a VT102
+# numeric keypad does not send expected codes (seen in 0.4.0)
+# passes bce test
+# vt220:
+# ECH works in 0.3.3 (0.2.1 left text on right margin)
+# no SRM, DECSCA
+# vt320:
+# fails DECXCPR
+# does not implement any of the DECRQM/DECRPM controls
+# does not implement any of the DECRQSS controls
+# vt420:
+# no DECLRMM
+# no DECBI, DECFI
+# other:
+# fails CHT, otherwise ECMA-48 cursor movement ok
+# fails ERM/SPA, SL, SR, passes REP, SD, SU
+# xterm:
+# no X10 mouse
+# has normal and highlight mouse
+# has any-event and button-event mouse
+# + does support SGR-mouse
+# + does not correctly support focus in/out events (seen in 0.4.0)
+# cursor-position wrong after alternate-screen (fixed in 0.4.0)
+# none of the dtterm controls work
+# tack:
+# bell and flash do not work
+# blink does not work
+# italics and crossed-out work (latter did not work in 0.2.1)
+# function-keys work up (tested combinations which window manager allows)
+# treats meta as escape-prefix
+#
+# The program sources include "alacritty" and "alacritty-direct", which are
+# copied from "xterm-256color" and "xterm-direct" (but using semicolon for
+# subparameter delimiter). Refactored here to use ncurses building blocks -TD
+alacritty|alacritty terminal emulator,
+ rs1=\Ec\E]104\007, use=xterm+256color,
+ use=alacritty+common,
+
+alacritty-direct|alacritty with direct color indexing,
+ use=xterm+indirect, use=alacritty+common,
+
+# cancel km, since it is not actually meta mode -TD
+# added ecma+strikeout in 0.3.3 -TD
+# added xterm+sl-twm in 0.3.3 -TD
+alacritty+common|base fragment for alacritty,
+ km@, npc,
+ kb2=\EOE, kcbt=\E[Z, kent=\EOM, Se=\E[0 q,
+ 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,
+
+# https://github.com/raphamorim/rio
+# derived from alacritty
+rio|fork of alacritty,
+ use=alacritty,
+rio-direct|fork of alacritty,
+ use=alacritty-direct,
+
+#### Kitty
+# https://github.com/kovidgoyal/kitty
+# Project started in 2016/10 (see alacritty), but is a Python script rather
+# than Rust, using OpenGL. The same caveats regarding remote connections
+# apply. This is not an X terminal, though (like alacritty), it copies
+# features from xterm.
+#
+# Regarding the name "kitty", that is a pun, reflected in the description.
+# But see
+# http://www.9bis.net/kitty/
+# https://github.com/kovidgoyal/kitty/issues/9
+# https://github.com/kovidgoyal/kitty/issues/1025
+# and
+# http://lists.gnu.org/archive/html/bug-ncurses/2018-09/msg00005.html
+# https://github.com/kovidgoyal/kitty/issues/879
+#
+# Version 0.21.2 (June 28, 2021)
+# changes since 0.19.1
+# Notes:
+# Repeatable tests with tack and vttest assume a standard screensize --
+# measured in characters. However, kitty uses pixel-measurements and
+# does not readily use characters.
+# Resizing with twm shows only pixel-based hint rather than characters
+# manual page states that it is possible to override initial window size,
+# but configuration file has no effect on initial window size.
+# The same problem with XFCE4, but editing the cached json file works
+# for setting the window size (the "c" suffix for cells does not):
+# {"window-size": [720, 440]}
+# though the values depend upon the font in use.
+# vttest
+# tack
+# flash works
+# invisible text still does not work
+# function/special key modifiers finally work
+#
+# Version 0.19.1 (October 6, 2020)
+# changes since 0.13.3:
+# vttest
+# ISO-6429
+# REP works, though using unspecified behavior
+# xterm
+# xterm's SGR-mouse mode is recognized.
+# does recognize original alternate-screen
+# bug: mouse focus in/out does not work.
+# bug: X10 mouse mode responds like any-event
+# bug: highlight-tracking does not work; terminal hangs.
+#
+# tack
+# rs1 adds an empty string for resetting title- and other OSC-strings.
+# italics work
+#
+# Version 0.13.3 (January 19, 2019)
+# Notes:
+# initial screensize 71x22
+# does not respond to "resize -s"
+# resizing with window manager gives no clues
+# vttest
+# does not switch between 80/132 columns
+# fails wrapping test, copying vte/rxvt
+# no reverse-background, no blink
+# claims to be VT200:
+# primary \E[?62;c
+# secondary \E[>1;4000;12c
+# however -
+# no GR in the locking-shifts screen
+# no NRCS or ISO-2022, anyway
+# no VT52
+# VT220:
+# has DECTCEM, ECH, but no SRM and DECSCA
+# has operating condition report, none of the others
+# VT320:
+# has SU/SD
+# DECRQSS ok for DECSTBM, SGR, none of the others
+# no status-line
+# VT420:
+# DECXCPR device status works, none of the others
+# no left/right margins
+# has DECCARA, but not DECERA, DECFRA, DECRARA, DECSERA
+# inside of DECCARA is uncolored
+# line-drawing with DECCARA does not work
+# aside from left/right margins, editing sequences look ok
+# no DECFI, DECBI
+# color:
+# fails ECH test for bce
+# ISO-6429
+# fails REP, SL, SL, but other cursor-movement ok
+# xterm:
+# does not recognize original alternate-screen
+# cursor-position wrong after alternate-screen
+# has normal mouse, any-event, any-button, but
+# no X10 mouse
+# no mouse-highlight tracking
+# no DEC locator
+# dtterm - only supports report-size chars/pixels
+# recognizes tcap-query
+# tack:
+# flash doesn't work
+# italics do not work
+# bce should be set (but see vttest)
+#* developer's terminfo stopped at kf25, but the program continues,
+# copying xterm for the rest of the control+fkey sequence
+# (but only one modifier is supported, like iTerm2).
+#* it omitted shifted pageup/down
+#* control+editing keys work
+# In contrast to function-keys, some additional modifier combinations
+# act like xterm for the editing/cursor-keys, e.g., alt+shift. While
+# the implementation is incomplete, the building-blocks are consistent
+# with what has been implemented -TD
+# DECKPAM does not work -TD
+#* ka1, ka3, kc1, kc3 were bogus (removed)
+#* meta sends escape (removed kmm) -TD
+#* cvvis does not make cursor "more visible" -TD
+kitty|KovId's TTY,
+ use=xterm+256color, use=kitty+common,
+kitty-direct|KovId's TTY using direct colors,
+ oc=\E]104\007, use=xterm+direct2, use=kitty+common,
+kitty+common|KovId's TTY common properties,
+ am, mc5i, mir, msgr, npc, xenl,
+ cols#80, lines#24,
+ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+ yzz{{||}}~~,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ cup=\E[%i%p1%d;%p2%dH, dch=\E[%p1%dP, dch1=\E[P,
+ dim=\E[2m, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
+ flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
+ ich=\E[%p1%d@, ind=\n, kBEG=\E[1;2E, kbeg=\EOE, kbs=^?,
+ kcbt=\E[Z, op=\E[39;49m, rev=\E[7m, ri=\EM, rmacs=\E(B,
+ rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l, rmso=\E[27m,
+ rmul=\E[24m, rs1=\E]\E\\\Ec,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;
+ %?%p1%p3%|%t;7%;m,
+ sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+ smkx=\E[?1h, smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd,
+ Smulx=\E[4:%p1%dm, use=ansi+csr, use=ansi+enq,
+ use=ansi+idl, use=ansi+inittabs, use=ansi+local,
+ 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=report+version,
+
+kitty+setal|set underline colors (nonstandard),
+ setal=\E[58:2::%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1
+ %{255}%&%dm,
+
+######## WAYLAND CLIENTS
+
+#### Foot
+# https://codeberg.org/dnkl/foot/
+# Version 1.8.2
+#
+# This identifies as a VT220 with 4=sixel and 22=color, however:
+# tack:
+# bell does not work
+# status-line does not work because foot does not set the window title
+# sends escape when meta key is used, whether or not smm/rmm enabled
+# vttest:
+# wrap-test fails
+# no application-mode for numeric keypad (unless private mode 1035 is set)
+# no NRCS
+# no VT52
+# no SRM
+# protected areas do not work
+# SU/SD work, SL/SR do not
+# DECRPM responds, but not the corresponding ANSI reports.
+# otherwise few reports, except cursor-position and mouse and some dtterm
+# VT520 cursor-movement works, except for left/right margins
+# supports xterm/DECSCUSR, though default case in vttest does not blink
+# Send: <27> [ 0 <32> q
+# Text: The cursor should be a blinking rectangle
+# partial support for xterm mouse any-event mode and button-event mode:
+# + does not report focus-in/focus-out
+# + does not report buttons 6/7
+# alternate-screen works
+foot|foot terminal emulator,
+ oc=\E]104\E\\, use=xterm+256color2, use=foot+base,
+
+foot-direct|foot with direct color indexing,
+ use=xterm+direct, use=foot+base,
+
+foot+base|foot base fragment,
+ am, bce, bw, mir, msgr, npc, xenl, AX, XT,
+ cols#80, it#8, lines#24,
+ bel=^G, 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, is2=\E[!p\E[4l\E>, kbs=^?,
+ kcbt=\E[Z, oc=\E]104\E\\, op=\E[39;49m, ri=\EM,
+ 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, smam=\E[?7h, smkx=\E[?1h\E=, E3=\E[3J,
+ use=att610+cvis, use=ansi+csr, use=ansi+cup,
+ use=ansi+enq, use=ansi+local, use=ansi+idc, use=ansi+idl,
+ use=ansi+rca2, use=ansi+rep, use=ansi+tabs,
+ use=ansi+sgrbold, use=ecma+index, use=ecma+italics,
+ use=ecma+strikeout, use=xterm+acs, 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
+
+#### DomTerm
+# https://domterm.org
+#
+# Quoting its webpage:
+# The domterm command runs a server that manages sessions (usually shell
+# processes). The user interface and terminal emulation is handled by a
+# JavaScript library that can run in a regular web browser or an embedded
+# browser such as Electron, using Web Sockets to talk to the server.
+#
+# it can connect to, and display in, a web browser, or as a standalone Qt
+# application. Either way, it displays in the current desktop session.
+#
+# Testing current code (2019/07/06) with Fedora 30:
+# tack
+# no flash
+# no beep
+# no dim
+# no blink
+# no invis
+# no italics
+# ok smxx/rmxx
+# bce screen shows diagonal lines...
+# kf6 sends nothing
+# kf11 toggles maximize
+# cursor-key application mode works
+# numeric keypad application does not work; keys always send face-codes
+# sends utf-8 for meta, like xterm
+# vttest
+# has problems with menu #1 (wrapping)
+# DA = VT200 with 132 columns, color
+# DA2 = 990, 100300 ("\E[>990;100300;0c")
+# no VT52, no double-size characters
+# vt220 ECH test works, SRM, DECSCA do not
+# S7C1T/S8C1t does not work
+# DECUDK does not work
+# CNL does not work; the other ECMA-48 cursor-movement tests work
+# REP sort-of works (does not match xterm)
+# SD/SU work, but not SL/SR
+# window reporting: works for size in chars/pixels, but not other tests
+# X10 mouse clicks work -- but return 4 rather than 1 for codes
+# any-event mouse mode acts like any-button mode
+# implements SGR mouse-mode
+# other:
+# does not implement initc
+# does accept either colons or semicolon in 38/48 SGR.
+domterm|DomTerm web client,
+ npc,
+ 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=linux+kbs, use=xterm+256setaf,
+ use=ecma+index, use=xterm+focus, use=xterm+sm+1006,
+ use=xterm+pcfkeys, use=xterm-basic,
+ use=bracketed+paste,
+
+######## Miscellaneous
+
+#### WezTerm
+# https://wezfurlong.org/wezterm/
+# https://github.com/wez/wezterm
+#
+# which says:
+# "wezterm is a terminal emulator with support for modern features
+# such as fonts with ligatures, hyperlinks, tabs and multiple windows."
+#
+# wezterm-20230712_072601_f4abf8fd-1.fedora38.x86_64
+# tested with MacOS and Fedora 38/39.
+#
+# General:
+# + written in Rust.
+# + initial screensize is odd, i.e., 81x24
+# provides no visual feedback on resize
+# ignores "resize -s"
+# manual resize and then running resize got off-by-one adjustment
+# + leaves debris (unerased cells) when switching between normal/alternate
+# screens.
+# + sets TERM=xterm-256color
+# tack:
+# + misplaced message in "am" screen
+# + fails xenl (should be false)
+# + cvvis is same as cnorm, block
+# + has blink and dim
+# + in bce test, blue isn't really blue but some pale purple
+# + modified keys mostly work, but its tab control interferes with some
+# + rmm/smm don't work (always uses escape-prefix)
+# wraptest:
+# + poor (doesn't copy anyone, most of the results are wrong)
+# vttest:
+# + DA is VT5xx with sixel, selective erase, user windows, color
+# + DA2 is VT220 version 277
+# + only the VT100 character set works, contrary to DA/DA2.
+# + no NRCS, either
+# + double-sized character work, with some debris
+# + doesn't switch between 80/132 columns.
+# + numeric keypad ANSI application mode escapes don't work.
+# + numeric keypad ANSI mode misses "0", ".", ","
+# + uses PC-style editing keypad \E[H and \E[F for Find and Select
+# + no VT52
+# + DECSED selective erase doesn't work
+# + SRM doesn't work
+# + 8-bit controls don't work
+# + DECNCSM doesn't work
+# + most DECRQSS do not work (DECSCL, DECSTBM, DECSLRM respond)
+# + DECRQM/DECRPM don't work (most reply permanently reset)
+# + DECLRMM responds to DECRPM, but VT420 rectangle tests do not work.
+# Some of the left/right margin tests work with the cursor-movement screen,
+# but DECFI/DECBI do not work. The other cursor-movement tests are buggy.
+# + implements ECMA-48 cursor movement, but not SL/SR or protected area
+# + implements xterm normal, any-event and button-event mouse, none of the rest
+# + reports window size, none of the other window reports
+wezterm|Wez's Terminal Emulator,
+ km@, xenl@,
+ cvvis@, rmkx=\E[?1l, rmm@, smkx=\E[?1h, smm@,
+ use=xterm-256color,
+
+#### Contour
+# https://github.com/contour-terminal/contour
+#
+# "Modern C++ Terminal Emulator"
+# Contour is a modern and actually fast, modal, virtual terminal emulator,
+# for everyday use. It is aiming for power users with a modern feature mindset.
+#
+# That is three occurrences of "modern" too many -TD
+#
+# MacOS
+# - cannot run, because the package is not signed.
+#
+# Fedora rawhide
+# contour-terminal-0.3.12.262-6.fc39.x86_64
+# - dumps core, cannot test
+#
+# Fedora 39
+# contour-terminal-0.4.0.6245-1.fc38.x86_64
+# - starts but doesn't display
+#
+# Fedora 38
+# contour-terminal-0.4.0.6245-1.fc38.x86_64
+# - starts but doesn't display
+# contour-terminal-0.3.12.262-1.fc38.x86_64
+# + testable (see below)
+# + initial screensize 62x23, no visual feedback on resize, no "resize -s"
+#
+# Sets TERM=contour (which is preferable to xterm).
+#
+# tack:
+# + cvvis is same as cnorm, "|"
+# + sitm/ritm don't work
+# + rmm/smm don't work (always uses escape, but terminfo defines km)
+# + initp interchanges red/blue (bug in tack?)
+# + modified F1-F4 are wrong, sending SS3 with modifier numbers
+# + shifted editing-keypad doesn't send anything
+# + meta key doesn't work
+# + status-line works (based on xterm, including window-resizing)
+# + dots don't line up for home test
+#
+# wraptest:
+# + poor 7/25 differences from xterm (perhaps copying iTerm2)
+#
+# vttest:
+# + hangs in menu 1, etc., when it tries to resize
+#
+# infocmp vs xterm-256color
+# + missing XM/xm
+# + rmcup/smcup doesn't use title-stack (but is implemented)
+# + doesn't use SGR mouse (but is implemented)
+# + sgr doesn't define dim, but dim capability is in terminfo (implemented)
+#
+# Developer's terminfo (compiled-in) uses some extensions.
+contour|contour-latest|Contour Terminal Emulator,
+ am, bce, eslok, hs, km, mc5i, mir, msgr, npc, xenl, xvpa,
+ cols#80, lines#24, pairs#0x7fff,
+ bel=^G, bold=\E[1m, clear=\E[H\E[2J, cr=\r, cub1=^H, cud1=\n,
+ dim=\E[2m, dsl=\E[$~, ech=\E[%p1%dX, el1=\E[1K,
+ flash=\E[?5h$<100/>\E[?5l, fsl=\E[$}, hpa=\E[%i%p1%dG,
+ ind=\n, indn=\E[%p1%dS, invis=\E[8m, ka1=, ka3=, kbs=^?, kc1=,
+ kc3=, kcbt=\E[Z, kend=\EOF, khlp=, kmous=\E[M, kund=,
+ oc=\E]104\E\\, op=\E[39;49m, rev=\E[7m, ri=\EM,
+ rin=\E[%p1%dT, rmam=\E[?7l, rmkx=\E[?1l, rmso=\E[27m,
+ rmul=\E[24m, rs1=\E]\E\\\Ec,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
+ %t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+ sgr0=\E(B\E[m, smam=\E[?7h, smkx=\E[?1h, smso=\E[7m,
+ smul=\E[4m, tsl=\E[2$~\E[1$}\E[H\E[2J, vpa=\E[%i%p1%dd,
+ Cs=\E]12;%p1%s\E\\, E3=\E[3J, Rmol=\E[55m, Se=\E[ q,
+ Smol=\E[53m, Smulx=\E[4:%p1%dm, Ss=\E[%p1%d q,
+ use=ansi+apparrows, use=ansi+cup, use=ansi+csr,
+ use=ansi+erase, use=ansi+idc, use=ansi+idl,
+ use=ansi+inittabs, use=ansi+local, use=ansi+rep,
+ use=att610+cvis, use=ecma+italics, use=ecma+strikeout,
+ use=xterm+256color, use=xterm+acs, use=xterm+alt1049,
+ use=xterm+pcc2, use=xterm+pce2, use=xterm+pcf2,
+
+contour-direct|Contour terminal with direct colors,
+ use=xterm+direct, use=contour,