+# 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=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=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,
+
+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, 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,
+
+#### 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, it#8, lines#24,
+ acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
+ yzz{{||}}~~,
+ bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=\r,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM,
+ dl1=\E[M, 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,
+ ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
+ ind=\n, kBEG=\E[1;2E, kbeg=\EOE, kbs=^?, kcbt=\E[Z,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kdch1=\E[3~, kend=\EOF, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R,
+ kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~,
+ kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
+ kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
+ kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S,
+ kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~,
+ kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~,
+ kf35=\E[23;5~, kf36=\E[24;5~, kf4=\EOS, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\EOH,
+ kich1=\E[2~, kind=\E[1;2B, knp=\E[6~, kpp=\E[5~,
+ kri=\E[1;2A, op=\E[39;49m, rc=\E8, 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, sc=\E7,
+ 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, 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=ecma+strikeout, use=ecma+italics,
+ use=xterm+alt1049, use=att610+cvis, use=xterm+tmux,
+
+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, hs, mir, msgr, npc, xenl, AX, XT,
+ cols#80, it#8, lines#24,
+ acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ 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>,
+ 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=,
+ smso=\E[7m, smul=\E[4m, 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=ecma+index, use=ecma+italics,
+ use=ecma+strikeout, use=xterm+alt+title,
+ use=xterm+pcfkeys, use=xterm+sm+1006, use=xterm+tmux2,
+ use=xterm+sl-alt,
+
+######## 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=xterm+256setaf, use=ecma+index,
+ use=xterm+sm+1006, use=xterm+pcfkeys, use=xterm-basic,
+