Skip to content

Instantly share code, notes, and snippets.

@jevinskie
Last active January 1, 2025 18:07
Show Gist options
  • Save jevinskie/8eea4cbd5cc930e41fc5b8d9b2e0b0c9 to your computer and use it in GitHub Desktop.
Save jevinskie/8eea4cbd5cc930e41fc5b8d9b2e0b0c9 to your computer and use it in GitHub Desktop.
ncurses terminfo.src for iTerm2, etc from 2024/12/28
######## APPLE
#### Terminal.app
# nsterm*|Apple_Terminal - AppKit Terminal.app
#
# Terminal.app is a Terminal emulator bundled with NeXT's NeXTSTEP and
# OPENSTEP/Mach operating systems, and with Apple's Rhapsody, Mac OS X
# Server and Mac OS X operating systems. There is also a
# "terminal.app" in GNUstep, but I believe it to be an unrelated
# codebase and I have not attempted to describe it here.
#
# For NeXTSTEP, OPENSTEP/Mach, Rhapsody and Mac OS X Server 1.0, you
# are pretty much on your own. Use "nsterm-7-m" and hope for the best.
# You might also try "nsterm-7" and "nsterm-old" if you suspect your
# version supports color.
#
# To determine the version of Terminal.app you're using by running:
#
# echo "$TERM_PROGRAM" "$TERM_PROGRAM_VERSION"
#
# For Apple_Terminal v309+, use "nsterm-256color" (or "nsterm-bce")
#
# For Apple_Terminal v200+, use "nsterm-16color" (a.k.a. "nsterm")
#
# For Apple_Terminal v71+/v100+, use "nsterm-bce".
#
# For Apple_Terminal v51+, use "nsterm-7-c" or "nsterm-7-c-s".
#
# For Apple_Terminal v41+, use "nsterm-old", or "nsterm-s".
#
# For all earlier versions (Apple_Terminal), try "nsterm-7-m"
# (monochrome) or "nsterm-7" (color); "nsterm-7-m-s" and "nsterm-7-s"
# might work too, but really you're on your own here since these
# systems are very obsolete and I can't test them. I do welcome
# patches, though :).
# Other Terminals:
#
# For GNUstep_Terminal, you're probably best off using "linux" or
# writing your own terminfo.
# For MacTelnet, you're on your own. It's a different codebase, and
# seems to be somewhere between "vt102", "ncsa" and "xterm-color".
# For iTerm.app, see "iterm".
#
# The AppKit Terminal.app descriptions all have names beginning with
# "nsterm". Note that the statusline (-s) versions use the window
# titlebar as a phony status line, and may produce warnings during
# compilation as a result ("tsl uses 0 parameters, expected 1".)
# Ignore these warnings, or even ignore these entries entirely. Apps
# which need to position the cursor or do other fancy stuff inside the
# status line won't work with these entries. They're primarily useful
# for programs like Pine which provide simple notifications in the
# status line. Please note that non-ASCII characters don't work right
# in the status line, since Terminal.app incorrectly interprets their
# Unicode codepoints as MacRoman codepoints (in earlier Mac OS X
# versions) or only accepts status lines consisting entirely of
# characters from the first 256 Unicode positions (including C1 but
# not C0 or DEL.)
#
# The Mythology* of AppKit Terminal.app:
#
# In the days of NeXTSTEP 0.x and 1.x there were two incompatible
# bundled terminal emulators, Shell and Terminal. Scott Hess wrote a
# shareware replacement for Terminal called "Stuart" which NeXT bought
# and used as the basis for the Terminal.app in NeXTSTEP 2+,
# OPENSTEP/Mach, Apple Rhapsody, Mac OS X Server 1.0, and Mac OS X. I
# don't know the TERM_PROGRAM and TERM_PROGRAM_VERSION settings or
# capabilities for the early versions, but I believe that the
# TERM_PROGRAM_VERSION may have been reset at some point.
#
# The early versions were tailored to the NeXT character set. Sometime
# after the Apple acquisition the encoding was switched to MacRoman
# (initially with serious altcharset bugs due to incomplete conversion
# of the old NeXT code,) and then later to UTF-8. Also sometime during
# or just prior to the early days of Mac OS X, the Terminal grew ANSI
# 8-color support (initially buggy when combined with attributes, but
# that was later fixed.) More recently, around Mac OS X version 10.3
# or so (Terminal.app v100+) xterm-like 16-color support was added. In
# some versions (for instance 133-1 which shipped with Mac OS X
# version 10.4) this suffered from the <bce> bug, but that seems to
# have been fixed in Mac OS X version 10.5 (Terminal.app v240.2+).
#
# In the early days of Mac OS X the terminal was fairly buggy and
# would routinely crash under load. Many of these bugs seem to have
# been fixed around Mac OS X version 10.3 (Terminal.app v100+) but
# some may still remain. This change seems to correspond to
# Terminal.app reporting "xterm-color" as $TERM rather than "vt100" as
# it did previously.
#
# * This may correspond with what actually happened, but I don't
# know. It is based on guesswork, hearsay, private correspondence,
# my faulty memory, and the following online sources and references:
#
# [1] "Three Scotts and a Duane" by Simson L. Garfinkel
# http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/93.8/93.8.Dec.Community1.html
#
# [2] NeXTSTEP entry from Wikipedia, the free encyclopedia
# https://secure.wikimedia.org/wikipedia/en/wiki/Nextstep
#
# * Renamed the AppKit Terminal.app entry from "Apple_Terminal" to
# "nsterm" to comply with the name length and case conventions and
# limitations of various software packages [notably Solaris terminfo
# and UNIX.] A single Apple_Terminal alias is retained for
# backwards-compatibility.
#
# * Added function key support (F1-F4). These only work in Terminal.app
# version 51, hopefully the capabilities won't cause problems for people
# using version 41.
#
# * Added "full color" (-c) entries which support the 16-color mode in
# version 51.
#
# * By default, version 51 uses UTF-8 encoding with broken altcharset
# support, so "ASCII" (-7) entries without altcharset support were
# added.
# nsterm - AppKit Terminal.app
#
# Apple's Mac OS X includes a Terminal.app derived from the old NeXT
# Terminal.app. It is a partial VT100 emulation with some xterm-like
# extensions. This terminfo was written to describe versions 41
# (shipped with Mac OS X version 10.0) and 51 (shipped with Mac OS X
# version 10.1) of Terminal.app.
#
# Terminal.app runs under the Mac OS X Quartz windowing system (and
# other AppKit-supported windowing systems.) On the Mac OS X machine I
# use, the executable for Terminal.app is:
# /Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
#
# If you're looking for a description of the full-screen system
# console which runs under Apple's Darwin operating system on PowerPC
# platforms, see the "xnuppc" entry instead.
#
# There were no function keys in version 41. In version 51, there are
# four working function keys (F1, F2, F3 and F4.) The function keys
# are included in all of these entries.
#
# It does not support mouse pointer position reporting. Under some
# circumstances the cursor can be positioned using option-click; this
# works by comparing the cursor position and the selected position,
# and simulating enough cursor-key presses to move the cursor to the
# selected position. This technique fails in all but the simplest
# applications.
#
# It provides partial ANSI color support (background colors interacted
# badly with bold in version 41, though, as reflected in :ncv:.) The
# monochrome (-m) entries are useful if you've disabled color support
# or use a monochrome monitor. The full color (-c) entries are useful
# in version 51, which doesn't exhibit the background color bug. They
# also enable an xterm-compatible 16-color mode.
#
# The configurable titlebar is set using xterm-compatible sequences;
# it is used as a status bar in the statusline (-s) entries. Its width
# depends on font sizes and window sizes, but 50 characters seems to
# be the default for an 80x24 window.
#
# The MacRoman character encoding is used for some of the alternate
# characters in the "MacRoman" entries; the "ASCII" (-7) entries
# disable alternate character set support entirely, and the "VT100"
# (-acs) entries rely instead on Terminal.app's own buggy VT100
# graphics emulation, which seems to think the character encoding is
# the old NeXT charset instead of MacRoman. The "ASCII" (-7) entries
# are useful in Terminal.app version 51, which supports UTF-8 and
# other ASCII-compatible character encodings but does not correctly
# implement VT100 graphics; once VT100 graphics are correctly
# implemented in Terminal.app, the "VT100" (-acs) entries should be
# usable in any ASCII-compatible character encoding [except perhaps
# in UTF-8, where some experts argue for disallowing alternate
# characters entirely.]
#
# Terminal.app reports "vt100" as the terminal type, but exports
# several environment variables which may aid detection in a shell
# profile (i.e. .profile or .login):
#
# TERM=vt100
# TERM_PROGRAM=Apple_Terminal
# TERM_PROGRAM_VERSION=41 # in Terminal.app version 41
# TERM_PROGRAM_VERSION=51 # in Terminal.app version 51
#
# For example, the following Bourne shell script would detect the
# correct terminal type:
#
# if [ :"$TERM" = :"vt100" -a :"$TERM_PROGRAM" = :"Apple_Terminal" ]
# then
# export TERM
# if [ :"$TERM_PROGRAM_VERSION" = :41 ]
# then
# TERM="nsterm-old"
# else
# TERM="nsterm-c-7"
# fi
# fi
#
# In a C shell derivative, this would be accomplished by:
#
# if ( $?TERM && $?TERM_PROGRAM && $?TERM_PROGRAM_VERSION) then
# if ( :"$TERM" == :"vt100" && :"$TERM_PROGRAM" == :"Apple_Terminal" ) then
# if ( :"$TERM_PROGRAM_VERSION" == :41 ) then
# setenv TERM "nsterm-old"
# else
# setenv TERM "nsterm-c-7"
# endif
# endif
# endif
# The '+' entries are building blocks
nsterm+7|AppKit Terminal.app v41+ basic capabilities w/ASCII charset,
am, bw, msgr, xenl, xon,
cols#80, it#8, lines#24,
bel=^G, cr=\r, cub1=^H, cud1=\n, dim=\E[2m, el1=\E[1K, ht=^I,
hts=\EH, ind=\n, kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
kcuu1=\EOA, kent=\EOM, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;%?%p7%t;8%;m,
sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
use=ansi+csr, use=ansi+cup, use=ansi+erase, use=ansi+idl,
use=ansi+local, use=ansi+sgrbold, use=vt100+enq,
use=vt100+pfkeys,
nsterm+acs|AppKit Terminal.app v41+ basic capabilities w/VT100 alternate-charset,
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[m\017, use=nsterm+7, use=vt100+4bsd,
nsterm+mac|AppKit Terminal.app v41+ basic capabilities w/MacRoman alternate-charset,
acsc=+\335\,\334-\366.\3770#`\327a:f\241g\261h#i
\360jjkkllmmnno\370p\370q\321rrssttuuvvwwxxy\262z\263{
\271|\255}\243~\245,
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[m\017, use=nsterm+7, use=vt100+4bsd,
# compare with xterm+sl-twm
nsterm+s|AppKit Terminal.app v41+ status-line (window titlebar) support,
wsl#50, use=xterm+sl-twm,
nsterm+c|AppKit Terminal.app v51+ full color support (including 16 colors),
op=\E[0m, use=ibm+16color,
nsterm+c41|AppKit Terminal.app v41 color support,
ncv#37,
op=\E[0m, use=klone+color,
# These are different combinations of the building blocks
# ASCII charset (-7)
nsterm-m-7|nsterm-7-m|AppKit Terminal.app v41+ w/ASCII charset (monochrome),
use=nsterm+7,
nsterm-m-s-7|nsterm-7-m-s|AppKit Terminal.app v41+ w/ASCII charset (monochrome w/statusline),
use=nsterm+s, use=nsterm+7,
nsterm-7|AppKit Terminal.app v41+ w/ASCII charset (color),
use=nsterm+c41, use=nsterm+7,
nsterm-7-c|nsterm-c-7|AppKit Terminal.app v51+ w/ASCII charset (full color),
use=nsterm+c, use=nsterm+7,
nsterm-s-7|nsterm-7-s|AppKit Terminal.app v41+ w/ASCII charset (color w/statusline),
use=nsterm+s, use=nsterm+c41, use=nsterm+7,
nsterm-c-s-7|nsterm-7-c-s|AppKit Terminal.app v51+ w/ASCII charset (full color w/statusline),
use=nsterm+s, use=nsterm+c, use=nsterm+7,
# VT100 alternate-charset (-acs)
nsterm-m-acs|nsterm-acs-m|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome),
use=nsterm+acs,
nsterm-m-s-acs|nsterm-acs-m-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (monochrome w/statusline),
use=nsterm+s, use=nsterm+acs,
nsterm-acs|AppKit Terminal.app v41+ w/VT100 alternate-charset (color),
use=nsterm+c41, use=nsterm+acs,
nsterm-c-acs|nsterm-acs-c|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color),
use=nsterm+c, use=nsterm+acs,
nsterm-s-acs|nsterm-acs-s|AppKit Terminal.app v41+ w/VT100 alternate-charset (color w/statusline),
use=nsterm+s, use=nsterm+c41, use=nsterm+acs,
nsterm-c-s-acs|nsterm-acs-c-s|AppKit Terminal.app v51+ w/VT100 alternate-charset (full color w/statusline),
use=nsterm+s, use=nsterm+c, use=nsterm+acs,
# MacRoman charset
nsterm-m|AppKit Terminal.app v41+ w/MacRoman charset (monochrome),
use=nsterm+mac,
nsterm-m-s|AppKit Terminal.app v41+ w/MacRoman charset (monochrome w/statusline),
use=nsterm+s, use=nsterm+mac,
nsterm-old|AppKit Terminal.app v41+ w/MacRoman charset (color),
use=nsterm+c41, use=nsterm+mac,
nsterm-c|AppKit Terminal.app v51+ w/MacRoman charset (full color),
use=nsterm+c, use=nsterm+mac,
nsterm-s|AppKit Terminal.app v41+ w/MacRoman charset (color w/statusline),
use=nsterm+s, use=nsterm+c41, use=nsterm+mac,
nsterm-c-s|AppKit Terminal.app v51+ w/MacRoman charset (full color w/statusline),
use=nsterm+s, use=nsterm+c, use=nsterm+mac,
# In Mac OS X version 10.5 the format of the preferences has changed
# and a new, more complex technique is needed, e.g.,
#
# python -c 'import sys,objc;NSUserDefaults=objc.lookUpClass(
# "NSUserDefaults");ud=NSUserDefaults.alloc();
# ud.init();prefs=ud.persistentDomainForName_(
# "com.apple.Terminal");prefs["Window Settings"][
# prefs["Default Window Settings"]]["TerminalType"
# ]=sys.argv[1];ud.setPersistentDomain_forName_(prefs,
# "com.apple.Terminal")' nsterm-16color
#
# and it is still not settable from the preferences dialog. This is
# tracked under rdar://problem/7365108 and rdar://problem/7365134
# in Apple's bug reporter.
#
# In OS X 10.5 (Leopard) the TERM which can be set in the preferences dialog
# defaults to xterm-color. Alternative selections are ansi, dtterm, rxvt,
# vt52, vt100, vt102 and xterm.
nsterm-16color|AppKit Terminal.app v240.2+ with Mac OS X version 10.5,
bw@, mir, npc,
flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
kdch1=\E[3~, kend=\E[F, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
kf16=\E[29~, kf17=\E[31~, kf18=\E[22~, kf19=\E[33~,
kf20=\E[34~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\E[H, knp=\E[6~, kpp=\E[5~,
vpa=\E[%i%p1%dd, kLFT5=\E[5D, kRIT5=\E[5C, use=ansi+idc,
use=xterm+alt47, use=nsterm-c-s-acs, use=vt220+cvis,
# The versions of Terminal.app in Mac OS X version 10.3.x seem to have
# the background color erase feature. The newer version 240.2 in Mac OS X
# version 10.5 does not.
#
# This entry is based on newsgroup comments by Alain Bench, Christian Ebert,
# and D P Schreber comparing to nsterm-c-s-acs.
#
# In Mac OS X version 10.4 and earlier, D P Schreber notes that $TERM
# can be set in Terminal.app, e.g.,
#
# defaults write com.apple.Terminal TermCapString nsterm-bce
#
# and that it is not set in Terminal's preferences dialog.
#
# Modified for OS X 10.8, omitting bw based on testing with tack -TD
#
# Notes:
# * The terminal description matches the default settings.
# * The keyboard is configurable via a dialog.
# * By default khome, kend, knext and kprev are honored only with a
# shift-modifier.
# * There are bindings for control left/right arrow (but not up/down).
# Added those to nsterm-16color, which is the version used for OS X 10.6
# * "Allow VT100 application keypage mode" is by default disabled.
# There is no way to press keypad-comma unless application mode is enabled
# and used.
# * 132-column mode stopped working during vttest's tests. Consider it broken.
# * CHT, REP, SU, SD are buggy.
# * ECH works (also in Leopard), but is not used here for compatibility.
# * The terminal preferences dialog replaces xterm-color by xterm-16color and
# xterm-256color. However, it adds "nsterm", so it is possible to use the
# nsterm entry from this file to override the MacPorts (20110404) or
# system (20081102) copy of this file.
# + In OS X 10.8 (Mountain Lion) the TERM which can be set in the preferences
# dialog defaults to xterm-256color. Alternative selections are ansi,
# dtterm, rxvt, vt52, vt100, vt102, xterm and xterm-16color. However,
# the menu says "Declare terminal as" without promising to actually emulate
# the corresponding terminals. Indeed, changing TERM does not affect the
# emulation itself. This means that
# + the function-keys do not match for dtterm for kf1-kf4 as well as
# khome/kend
# + the color model is the same for each setting of TERM (does not match
# ansi or dtterm).
# + the shift/control/meta key modifiers from rxvt and xterm variants are not
# recognised except for a few special cases, i.e., kRIT5 and kLFT5.
# + the VT52 emulation does not give a usable shell because screen-clearing
# does not work as expected.
# + selecting "xterm" or "xterm-16color" sets TERM to "xterm-256color".
# + OSX 10.9 (Yosemite) added more extended keys in the default configuration
# as well as unmasking F10 (which had been used in the window manager). Those
# keys are listed in this entry.
nsterm-bce|AppKit Terminal.app v71+/v100.1.8+ with Mac OS X version 10.3/10.4 (bce),
bce, use=nsterm-16color,
# This is tested with OS X 10.8 (Mountain Lion), 2012/08/11
# TERM_PROGRAM_VERSION=309
# Earlier reports state that these differences also apply to OS X 10.7 (Lion),
# TERM_PROGRAM_VERSION=303
nsterm-build309|Terminal.app in OS X 10.8,
use=xterm+256setaf, use=nsterm-bce,
# removed bogus kDC7 -TD
nsterm-build326|Terminal.app in OS X 10.9,
kDC=\E[3;2~, kLFT=\E[1;2D, kRIT=\E[1;2C, kcbt=\E[Z,
kf18=\E[32~, kDC5=\E[3;5~, kLFT3=\Eb, kLFT5=\E[1;5D,
kRIT3=\Ef, kRIT5=\E[1;5C, use=nsterm-build309,
# actually "343.7"
nsterm-build343|Terminal.app in OS X 10.10,
kend=\EOF, khome=\EOH, use=nsterm-build326,
# reviewed Terminal.app in El Capitan (version 2.6 build 361) -TD
# Using vttest:
# + no VT52 mode for cursor keys, though VT52 screen works in vttest
# + f1-f4 map to pf1-pf4
# + no VT220 support aside from DECTCEM and ECH
# + there are no protected areas. Forget about anything above VT220.
# + in ECMA-48 cursor movement, VPR and HPR fail. Others work.
# + vttest color 11.6.4 and 11.6.5 (bce for ED/EL and ECH/indexing) are bce
# + but bce fails for 11.6.7.2 (test repeat).
# + SD (11.6.7.3) also fails, but SL/SR/SU work.
# + 11.6.6 (test insert/delete char/line with bce) has several failures.
# + normal (not X10 or Highlight tracking) mouse now works.
# + mouse any-event works
# + mouse button-event works
# + in alternate screen:
# mode 47/48 work
# mode 1047 fails to restore cursor position (do not use)
# mode 1049 fails to restore screen contents (do not use)
# + dtterm window-modify operations work (some messages are not printed)
# + dtterm window-report gives size of window in characters/pixels as
# well as state of window.
# Using tack:
# + there is no difference between cnorm/cvvis
# + has dim/invis/blink (no protect of course)
# + most function keys with shift/control modifiers give beep
# (user can configure, but out-of-the-box is what I record)
# + shift-F5 is \E[25~ through shift-F12 is \E[34~ (skips \E[30~ between
# F8 and F9).
# + kLFT5/kRIT5 work, but not up/down with control-modifier
# + kLFT/kRIT work, but not up/down with shift-modifier
# + there are a few predefined bindings with Alt, but no clear pattern.
# + uses alt-key as UTF-8 "meta" something like xterm altSendsEscape
# Using ncurses test-program with xterm-new:
# + no italics
# Using xterm's scripts:
# + palette for 256-colors is hardcoded.
# + no support for "dynamic colors"
# + no support for tcap-query.
nsterm-build361|Terminal.app in OS X 10.11,
XT,
kmous=\E[M, use=nsterm-build343,
# reviewed Terminal.app in High Sierra (version 2.8 build 400) -TD
# Comparing with build361, little has changed, except that italics work.
# Direct-color is not supported, by the way.
#
# Improved rmso/rmul -TD
nsterm-build400|Terminal.app in OS X 10.13,
rmso=\E[27m, rmul=\E[24m, use=xterm+sm+1006,
use=ecma+italics, use=nsterm-build361,
nsterm-build440|Terminal.app in MacOS 11.6.8,
use=xterm+alt1049, use=nsterm-build400,
# This is an alias which should always point to the "current" version
nsterm|nsterm-256color|Apple_Terminal|AppKit Terminal.app,
use=nsterm-build440,
#### iTerm, iTerm2
# iTerm 0.10
#
# iTerm.app from http://iterm.sourceforge.net/ is an alternative (and more
# featureful) terminal emulator for Mac OS X. It is similar enough in
# capabilities to nsterm-16color that I have derived this description from that
# one, but as far as I know they share no code. Many of the features are
# user-configurable, but I attempt only to describe the default configuration
# (B. Sittler).
#
# According to its documentation, iTerm uses terminfo to obtain function key
# definitions. For example, if it is started with TERM=xterm, it uses key
# definitions from that terminal description from the local OSX machine. Those
# $TERM settings may be augmented using the bookmark and profile dialogs.
# However, the behavior seen with tack does not agree with either the terminfo
# description or the function keys in its "xterm" profile.
#
# NOTES:
# with vttest:
# reports primary DA as VT100 with AVO: \E[?1;2c
# reports secondary DA as "\E[>0;95;c"
# supports blink and underline
# displays bold text as red
# recognizes all dtterm controls for modifying/querying window
# resizing via escape sequence is very slow
# supports X11R5 mouse (no X10) and XFree86 mouse (button- and event-tracking)
# supports X11R5 alternate screen and XFree86 1049 (no 1047/1048)
# supports CHA, VPA, VPR, but no other ECMA-48 cursor movement such as HPA
# with tack:
# .
# with ncurses test-program:
# ncurses 'k' has problem in second screen; light background does not fill
# with xterm scripts
# can display/alter xterm-256color cube
# can display/alter xterm-88color cube
iTerm.app|iterm|iTerm.app terminal emulator for Mac OS X,
bce, mir, npc, xenl, xon,
wsl#50,
blink=\E[5m, bold=\E[1m, cub1=^H, cud1=\n,
cup=\E[%i%p1%d;%p2%dH, el1=\E[1K,
flash=\E[?5h$<200/>\E[?5l, hpa=\E[%i%p1%dG,
kLFT=\E[1;2D, kRIT=\E[1;2C, kbs=^?, kcbt=\E[Z, kdch1=\E[3~,
kend=\EOF, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
knp=\E[6~, kpp=\E[5~, op=\E[0m, rev=\E[7m, ri=\EM,
rmam=\E[?7l, rmkx=\E[?1l\E>, rmso=\E[m, rmul=\E[m,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
%p9%t\016%e\017%;,
sgr0=\E[m\017, smam=\E[?7h, smkx=\E[?1h\E=, smso=\E[7m,
smul=\E[4m, vpa=\E[%i%p1%dd, kEND5=\E[1;5F,
kHOM5=\E[1;5H, use=ansi+apparrows, use=ansi+csr,
use=ansi+enq, use=ansi+erase, use=ansi+idc, use=ansi+idl,
use=ansi+local, use=vt100+4bsd, use=vt100+keypad,
use=vt100+pfkeys, use=xterm+alt47, use=xterm+sl-twm,
use=xterm+x11mouse, use=xterm+256setaf, use=vt220+cvis,
# iTerm2
#
# https://iterm2.com/
# https://github.com/gnachman/iTerm2
# ~/Library/Preferences/com.googlecode.iterm2.plist
# "iTerm" stalled in 2009. A different set of developers began "iTerm2".
#
# iTerm2 3.5.0
#
# NOTES:
# with esctest:
# 365 tests passed, 196 known bugs, 2 tests fail intermittently
# the known bugs include several of the cursor-movement tests
# the ED, EL tests include those failing intermittently
# DECCOLM, DECERA, DECSED, DECSERA and SPA do not work
# most of the DECRPM, DECRQSS reports fail
# with vttest:
# reports primary DA as VT420
# VT420 rectangular operations, as well as DECBI/DEVFI work with margins
# SRM does not work
# DECSED, and SPA do not work
# REP and SD work, SL/SR/SU do not work
# with tack:
# status-line does not work
#
# The default settings have blinking-text and keypad-application mode disabled.
# Enabling the latter make it half-working (numlock sends an escape character).
# About half of the modified function-keys are untestable due to preassigned
# features.
#
# iTerm2 3.5.0 comes with a 4-year-old copy of xterm's terminfo (June 2020),
# which is modified, using the ncurses TERMINFO_DIRS variable to substitute
# this locally:
# + xterm-nrc and xterm+pcfN are removed
# + the developer made changes to adapt it to the 16-year-old version of
# ncurses bundled with MacOS, i.e., changing the mouse protocol to the
# legacy X11 format and reducing the number of colors to 32k (in more than
# one place). In the former case, the developer was confused about why that
# was necessary. In the latter, the developer clearly misunderstood how the
# tools work.
# + vt420+lrmm is modified, removing smglr and corrupting mgc (again, developer
# confusion).
# + the developer added a couple of features, misnaming them as "xterm" blocks:
# + a copy of kitty+setal renamed to xterm+setulc (and Setulc) is added, but
# the feature is first mentioned in iTerm2 changes in May 2020, while
# it is first mention in kitty changes in December 2016.
# + Smulx is added
#
# iTerm2 3.4.0
#
# NOTES:
# with esctest:
# 293 tests pass, 270 tests fail
# with tack:
# minor improvements which do not alter the terminfo
#
# iTerm2 3.0.15
#
# NOTES:
# with vttest:
# reports primary DA as VT100 with AVO: \E[?1;2c
# reports secondary DA as "\E[>0;95;0c"
# numeric keypad application mode does not work
# by default, dtterm window-modifications are ignored
# by default, dtterm window-reports return, but icon as "L", window as "l"
# supports SD/SU, no REP, SL, SR
# supports CBT, CHA, VPA, CNL, CPL, VPR (no HPA, CHT, HPR)
# no improvement to XFree86 1047/1048 modes
# with tack:
# in meta-mode, imitates xterm, sending UTF-8
# special-key modifiers based on xterm use incompatible default for alt/meta
# with ncurses test-program:
# no italics
# no improvement to ncurses 'k'
# with xterm scripts:
# acolors.sh works
#
# Italic text did not work initially, apparently because upgrading did not
# add/change that preference (set in Preferences, Profiles, Text). A new
# install of iTerm 3.0.15 provides italics by default (blinking text is an
# option in the preferences dialog).
#
# 2018/01/21: found xterm+sm+1006 did not work with version 3.1.5
# 2018/05/19: xterm+sm+1006 seems to work with 3.1.6beta -TD
iTerm2.app|iterm2|terminal emulator for Mac OS X,
cbt=\E[Z, dim=\E[2m, kEND=\E[1;2F, kHOM=\E[1;2H, ka1@, ka3@,
kb2@, kc1@, kc3@, kent@, 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~, kf20=\E[19;2~, kf21=\E[20;2~,
kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~,
kind=\E[1;2B, kri=\E[1;2A, nel=\EE, op=\E[39;49m,
rmso=\E[27m, rmul=\E[24m,
rs2=\E[!p\E[?3;4l\E[4l\E>\E[?1000l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?
%p5%t;2%;m%?%p9%t\016%e\017%;,
Smulx=\E[4:%p1%dm, kDN3=\E\E[B, kDN4=\E[1;10B,
kDN5=\E[1;5B, kDN6=\E[1;6B, kEND3=\E[1;9F,
kEND4=\E[1;10F, kEND6=\E[1;6F, kEND7=\E[1;13F,
kEND8=\E[1;14F, kHOM3=\E[1;9H, kHOM4=\E[1;10H,
kHOM6=\E[1;6H, kHOM7=\E[1;13H, kHOM8=\E[1;14H,
kLFT3=\E\E[D, kLFT4=\E[1;10D, kLFT5=\E[1;5D,
kLFT6=\E[1;6D, kNXT3=\E\E[6~, kPRV3=\E\E[5~,
kRIT3=\E\E[C, kRIT4=\E[1;10C, kRIT5=\E[1;5C,
kRIT6=\E[1;6C, kUP3=\E\E[A, kUP4=\E[1;10A, kUP5=\E[1;5A,
kUP6=\E[1;6A, use=ecma+index, use=xterm+alt+title,
use=ecma+italics, use=iterm, use=bracketed+paste,
use=kitty+setal,
# xnuppc - Darwin PowerPC Console (a.k.a. "darwin")
#
# On PowerPC platforms, Apple's Darwin operating system uses a
# full-screen system console derived from a NetBSD framebuffer
# console. It is an ANSI-style terminal, and is not really VT-100
# compatible.
#
# Under Mac OS X, this is the system console driver used while in
# single-user mode [reachable by holding down Command-S during the
# boot process] and when logged in using console mode [reachable by
# typing ">console" at the graphical login prompt.]
#
# If you're looking for a description of the Terminal.app terminal
# emulator which runs under the Mac OS X Quartz windowing system (and
# other AppKit-supported windowing systems,) see the "nsterm"
# entry instead.
#
# NOTE: Under Mac OS X version 10.1, the default login window does not
# prompt for user name, instead requiring an icon to be selected from
# a list of known users. Since the special ">console" login is not in
# this list, you must make one of two changes in the Login Window
# panel of the Login section of System Prefs to make the special
# ">console" login accessible. The first option is to enable 'Show
# "Other User" in list for network users', which will add a special
# "Other..." icon to the graphical login panel. Selecting "Other..."
# will present the regular graphical login prompt. The second option
# is to change the 'Display Login Window as:' setting to 'Name and
# password entry fields', which replaces the login panel with a
# graphical login prompt.
#
# There are no function keys, at least not in Darwin 1.3.
#
# It has no mouse support.
#
# It has full ANSI color support, and color combines correctly with
# all three supported attributes: bold, inverse-video and underline.
# However, bold colored text is almost unreadable (bolding is
# accomplished using shifting and or-ing, and looks smeared) so bold
# has been excluded from the list of color-compatible attributes
# [using (ncv)]. The monochrome entry (-m) is useful if you use a
# monochrome monitor.
#
# There is one serious bug with this terminal emulation's color
# support: repositioning the cursor onto a cell with non-matching
# colors obliterates that cell's contents, replacing it with a blank
# and displaying a colored cursor in the "current" colors. There is
# no complete workaround at present [other than using the monochrome
# (-m) entries,] but removing the (msgr) capability seemed to help.
#
# The "standout" chosen was simple reverse-video, although a colorful
# standout might be more aesthetically pleasing. Similarly, the bold
# chosen is the terminal's own smeared bold, although a simple
# color-change might be more readable. The color-bold (-b) entries
# uses magenta colored text for bolding instead. The fancy color (-f
# and -f2) entries use color for bold, standout and underlined text
# (underlined text is still underlined, though.)
#
# Apparently the terminal emulator does support a VT-100-style
# alternate character set, but all the alternate character set
# positions have been left blank in the font. For this reason, no
# alternate character set capabilities have been included in this
# description. The console driver appears to be ASCII-only, so (enacs)
# has been excluded [although the VT-100 sequence does work.]
#
# The default Mac OS X and Darwin installation reports "vt100" as the
# terminal type, and exports no helpful environment variables. To fix
# this, change the "console" entry in /etc/ttys from "vt100" to
# "xnuppc-WxH", where W and H are the character dimensions of your
# console (see below.)
#
# The font used by the terminal emulator is apparently one originally
# drawn by Ka-Ping Yee, and uses 8x16-pixel characters. This
# file includes descriptions for the following geometries:
#
# Pixels Characters Entry Name (append -m for monochrome)
# -------------------------------------------------------------------
# 640x400 80x25 xnuppc-80x25
# 640x480 80x30 xnuppc-80x30
# 720x480 90x30 xnuppc-90x30
# 800x600 100x37 xnuppc-100x37
# 896x600 112x37 xnuppc-112x37
# 1024x640 128x40 xnuppc-128x40
# 1024x768 128x48 xnuppc-128x48
# 1152x768 144x48 xnuppc-144x48
# 1280x1024 160x64 xnuppc-160x64
# 1600x1024 200x64 xnuppc-200x64
# 1600x1200 200x75 xnuppc-200x75
# 2048x1536 256x96 xnuppc-256x96
#
# The basic "xnuppc" entry includes no size information, and the
# emulator includes no reporting capability, so you'll be at the mercy
# of the TTY device (which reports incorrectly on my hardware.) The
# color-bold entries do not include size information.
# The '+' entries are building blocks
xnuppc+basic|Darwin PowerPC console basic capabilities,
am, bce, mir, xenl, NQ,
it#8,
bold=\E[1m, cr=\r, dsl=\E]2;\007, el1=\E[1K, ht=^I, hts=\EH,
ind=\n, kbs=^?, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
kcuu1=\EOA, rev=\E[7m, ri=\EM, rmam=\E[?7l, rmkx=\E[?1l\E>,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
sgr0=\E[m, smam=\E[?7h, smkx=\E[?1h\E=, tbc=\E[3g,
use=ansi+csr, use=ansi+cup, use=ansi+erase,
use=ansi+local, use=ansi+sgrso, use=ansi+sgrul,
use=vt100+keypad,
xnuppc+c|Darwin PowerPC console ANSI color support,
ncv#32, use=klone+color,
xnuppc+b|Darwin PowerPC console color-bold support,
ncv#32,
bold=\E[35m,
sgr=\E[0%?%p6%t;35%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
use=xnuppc+basic,
xnuppc+f|Darwin PowerPC console fancy color support,
ncv#35,
sgr=\E[0%?%p6%t;35%;%?%p2%t;36;4%;%?%p1%t;33;44%;%?%p3%t;7%;
m,
smso=\E[33;44m, smul=\E[36;4m, use=xnuppc+b,
xnuppc+f2|Darwin PowerPC console alternate fancy color support,
ncv#35,
bold=\E[33m,
sgr=\E[0%?%p6%t;33%;%?%p2%t;34%;%?%p1%t;31;47%;%?%p3%t;7%;m,
smso=\E[31;47m, smul=\E[34m, use=xnuppc+basic,
# Building blocks for specific screen sizes
xnuppc+80x25|Darwin PowerPC console 80x25 support (640x400 pixels),
cols#80, lines#25,
xnuppc+80x30|Darwin PowerPC console 80x30 support (640x480 pixels),
cols#80, lines#30,
xnuppc+90x30|Darwin PowerPC console 90x30 support (720x480 pixels),
cols#90, lines#30,
xnuppc+100x37|Darwin PowerPC console 100x37 support (800x600 pixels),
cols#100, lines#37,
xnuppc+112x37|Darwin PowerPC console 112x37 support (896x600 pixels),
cols#112, lines#37,
xnuppc+128x40|Darwin PowerPC console 128x40 support (1024x640 pixels),
cols#128, lines#40,
xnuppc+128x48|Darwin PowerPC console 128x48 support (1024x768 pixels),
cols#128, lines#48,
xnuppc+144x48|Darwin PowerPC console 144x48 support (1152x768 pixels),
cols#144, lines#48,
xnuppc+160x64|Darwin PowerPC console 160x64 support (1280x1024 pixels),
cols#160, lines#64,
xnuppc+200x64|Darwin PowerPC console 200x64 support (1600x1024 pixels),
cols#200, lines#64,
xnuppc+200x75|Darwin PowerPC console 200x75 support (1600x1200 pixels),
cols#200, lines#75,
xnuppc+256x96|Darwin PowerPC console 256x96 support (2048x1536 pixels),
cols#0x100, lines#96,
# These are different combinations of the building blocks
xnuppc-m|darwin-m|Darwin PowerPC console (monochrome),
use=xnuppc+basic,
xnuppc|darwin|Darwin PowerPC console (color),
use=xnuppc+c, use=xnuppc+basic,
xnuppc-m-b|darwin-m-b|Darwin PowerPC console (monochrome w/color-bold),
use=xnuppc+b,
xnuppc-b|darwin-b|Darwin PowerPC console (color w/color-bold),
use=xnuppc+b, use=xnuppc+c,
xnuppc-m-f|darwin-m-f|Darwin PowerPC console (fancy monochrome),
use=xnuppc+f,
xnuppc-f|darwin-f|Darwin PowerPC console (fancy color),
use=xnuppc+f, use=xnuppc+c,
xnuppc-m-f2|darwin-m-f2|Darwin PowerPC console (alternate fancy monochrome),
use=xnuppc+f2,
xnuppc-f2|darwin-f2|Darwin PowerPC console (alternate fancy color),
use=xnuppc+f2, use=xnuppc+c,
# Combinations for specific screen sizes
xnuppc-80x25-m|darwin-80x25-m|Darwin PowerPC console (monochrome) 80x25,
use=xnuppc+80x25, use=xnuppc+basic,
xnuppc-80x25|darwin-80x25|Darwin PowerPC console (color) 80x25,
use=xnuppc+c, use=xnuppc+80x25, use=xnuppc+basic,
xnuppc-80x30-m|darwin-80x30-m|Darwin PowerPC console (monochrome) 80x30,
use=xnuppc+80x30, use=xnuppc+basic,
xnuppc-80x30|darwin-80x30|Darwin PowerPC console (color) 80x30,
use=xnuppc+c, use=xnuppc+80x30, use=xnuppc+basic,
xnuppc-90x30-m|darwin-90x30-m|Darwin PowerPC console (monochrome) 90x30,
use=xnuppc+90x30, use=xnuppc+basic,
xnuppc-90x30|darwin-90x30|Darwin PowerPC console (color) 90x30,
use=xnuppc+c, use=xnuppc+90x30, use=xnuppc+basic,
xnuppc-100x37-m|darwin-100x37-m|Darwin PowerPC console (monochrome) 100x37,
use=xnuppc+100x37, use=xnuppc+basic,
xnuppc-100x37|darwin-100x37|Darwin PowerPC console (color) 100x37,
use=xnuppc+c, use=xnuppc+100x37, use=xnuppc+basic,
xnuppc-112x37-m|darwin-112x37-m|Darwin PowerPC console (monochrome) 112x37,
use=xnuppc+112x37, use=xnuppc+basic,
xnuppc-112x37|darwin-112x37|Darwin PowerPC console (color) 112x37,
use=xnuppc+c, use=xnuppc+112x37, use=xnuppc+basic,
xnuppc-128x40-m|darwin-128x40-m|Darwin PowerPC console (monochrome) 128x40,
use=xnuppc+128x40, use=xnuppc+basic,
xnuppc-128x40|darwin-128x40|Darwin PowerPC console (color) 128x40,
use=xnuppc+c, use=xnuppc+128x40, use=xnuppc+basic,
xnuppc-128x48-m|darwin-128x48-m|Darwin PowerPC console (monochrome) 128x48,
use=xnuppc+128x48, use=xnuppc+basic,
xnuppc-128x48|darwin-128x48|Darwin PowerPC console (color) 128x48,
use=xnuppc+c, use=xnuppc+128x48, use=xnuppc+basic,
xnuppc-144x48-m|darwin-144x48-m|Darwin PowerPC console (monochrome) 144x48,
use=xnuppc+144x48, use=xnuppc+basic,
xnuppc-144x48|darwin-144x48|Darwin PowerPC console (color) 144x48,
use=xnuppc+c, use=xnuppc+144x48, use=xnuppc+basic,
xnuppc-160x64-m|darwin-160x64-m|Darwin PowerPC console (monochrome) 160x64,
use=xnuppc+160x64, use=xnuppc+basic,
xnuppc-160x64|darwin-160x64|Darwin PowerPC console (color) 160x64,
use=xnuppc+c, use=xnuppc+160x64, use=xnuppc+basic,
xnuppc-200x64-m|darwin-200x64-m|Darwin PowerPC console (monochrome) 200x64,
use=xnuppc+200x64, use=xnuppc+basic,
xnuppc-200x64|darwin-200x64|Darwin PowerPC console (color) 200x64,
use=xnuppc+c, use=xnuppc+200x64, use=xnuppc+basic,
xnuppc-200x75-m|darwin-200x75-m|Darwin PowerPC console (monochrome) 200x75,
use=xnuppc+200x75, use=xnuppc+basic,
xnuppc-200x75|darwin-200x75|Darwin PowerPC console (color) 200x75,
use=xnuppc+c, use=xnuppc+200x75, use=xnuppc+basic,
xnuppc-256x96-m|darwin-256x96-m|Darwin PowerPC console (monochrome) 256x96,
use=xnuppc+256x96, use=xnuppc+basic,
xnuppc-256x96|darwin-256x96|Darwin PowerPC console (color) 256x96,
use=xnuppc+c, use=xnuppc+256x96, use=xnuppc+basic,
#### 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
#### Ghostty
# https://github.com/ghostty-org/ghostty
#
# Its readme and manpage begin with a lot of hype, concluding with
#
# While aiming for this ambitious goal, our first step is to make Ghostty
# one of the best fully standards compliant terminal emulator, remaining
# compatible with all existing shells and software while supporting all
# of the latest terminal innovations in the ecosystem. You can use
# Ghostty as a drop-in replacement for your existing terminal emulator.
#
# However, it uses xterm as a standard:
#
# We believe Ghostty is one of the most compliant terminal emulators
# available. Terminal behavior is partially a de jure standard (i.e.
# [ECMA-48](https://ecma-international.org/publications-and-standards/stand>
# but mostly a de facto standard as defined by popular terminal emulators
# worldwide. Ghostty takes the approach that our behavior is defined by
# (1) standards, if available, (2) xterm, if the feature exists, (3)
# other popular terminals, in that order. This defines what the Ghostty
# project views as a "standard."
#
# while xterm uses ECMA-48 and DEC 070 along with related documentation such as
# the DEC terminal reference manuals. xterm's documentation does not attempt
# to duplicate those sources of information, so that developers should rely
# upon both xterm's documentation and the published standards.
#
# Comments in ghostty's source code and commits demonstrate that the developers
# study xterm's source code closer than xterm's documentation. The quote above
# is the only mention of ECMA-48.
#
# ghostty 1.0.0 tested with Arch Linux:
# -------------
# tack:
# - does not implement blinking text
# - does not implement meta mode (kmm).
# - implements VT100-style alternate character set
# - testing video-attributes unexpectedly clears the display before acsc
# - italics and strike-out work
# - function-keys mostly match; however because this client (unlike X11
# clients) does not work with a remote display, some (such as control/alt key
# combinations, and the shifted editing keys) are untestable because
# - numeric keypad does not send VT100-style escapes
# wraptest:
# - matches xterm
# vttest:
# - ghostty hangs in more than one menu, making it impossible to test more than
# a small part of the program. In particular, these are untestable:
# 1. Test of cursor movements
# 2. Test of screen features
# 4. Test of double-sized characters
# - ghostty has tabs (imitating gnome-terminal); when closing a tab with a
# running process (e.g., a hung vttest), ghostty does not prompt about the
# process to be killed.
# - identifies as a "VT220 with color":
# <27> [ ? 6 2 ; 2 2 c
# - although claiming to be a VT220, it does not support NRCS. Actually, it
# fails the VT100 character set test as well. This is a complete failure:
# 3. Test of character sets
# - it does not hang in this menu entry:
# 8. Test of VT102 features (Insert/Delete Char/Line)
# although because it does not implement double-sized characters, most of
# that test counts as a failure.
# - implements VT220 DECTCEM and ECH, but not SRM or DECSCA
# - implements VT420 left/right margins
# - does not implement VT420 rectangle operations
# - does not implement 8-bit controls
# - does implement ISO-6429 cursor-movement
# - supports BCE partially: ED/EL work, but not ECH and indexing.
# - does not support blinking text
# - responds to XTVERSION
# - responds to DECRPM controls, though many are "unknown"
# - does not respond to most DECRQSS except for SGR, DECSCUSR, DECSTBM
# - implements most of xterm mouse protocol except for
# - Mouse Highlight Tracking
# - DEC Locator Events
# - some window reporting works:
# 14 - size of text area in pixels
# 16 - size of character in pixels
# 18 - size of window in chars
# 21 - report window label
# - window-modifying does not work
# - cursor position is incorrect after switching to/from alternate screen
#
# The developers set "Tc" in their terminal description to hint that it
# supports direct-colors, but the feature did not work with this version -TD
ghostty|Ghostty terminal emulator,
am, bce, km, mc5i, mir, msgr, npc, xenl, AX, XT,
cols#80, lines#24, pairs#0x7fff,
acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxy
yzz{{||}}~~,
bel=^G, bold=\E[1m, clear=\E[H\E[2J,
cnorm=\E[?12l\E[?25h, cr=\r, cub1=^H, cud1=\n,
cvvis=\E[?12;25h, dim=\E[2m, ech=\E[%p1%dX, el1=\E[1K,
flash=\E[?5h$<100/>\E[?5l, ind=\n, invis=\E[8m, kbs=^?,
kcbt=\E[Z, kend=\EOF, kent=\EOM, kf13=\E[1;2P,
kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf25=\E[1;5P,
kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S, kf37=\E[1;6P,
kf38=\E[1;6Q, kf39=\E[1;6R, kf40=\E[1;6S, kf49=\E[1;3P,
kf50=\E[1;3Q, kf51=\E[1;3R, kf52=\E[1;3S, kf61=\E[1;4P,
kf62=\E[1;4Q, kf63=\E[1;4R, op=\E[39;49m, rev=\E[7m,
ri=\EM, rmam=\E[?7l, rmcup=\E[?1049l, rmkx=\E[?1l\E>,
rmso=\E[27m, rmul=\E[24m, rs1=\E]\E\\\Ec,
setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;
5;%p1%d%;m,
setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5
;%p1%d%;m,
sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|
%t;7%;%?%p5%t;2%;%?%p7%t;8%;m,
sgr0=\E(B\E[m, smam=\E[?7h, smcup=\E[?1049h,
smkx=\E[?1h\E=, E3=\E[3J, Ms=\E]52;%p1%s;%p2%s\007,
Se=\E[2 q, Smulx=\E[4:%p1%dm, Ss=\E[%p1%d q,
xr=\EP>\\|ghostty [!-z]+\E\\, use=ansi+apparrows,
use=ansi+csr, use=ansi+cup, use=ansi+enq, use=ansi+erase,
use=ansi+idc, use=ansi+idl, use=ansi+inittabs,
use=ansi+local, use=ansi+local1, use=ansi+rca2,
use=ansi+rep, use=ansi+sgrso, use=ansi+sgrul,
use=ansi+tabs, use=ecma+index, use=ecma+italics,
use=ecma+strikeout, use=report+version, use=vt220+cvis,
use=xterm+256color2, use=xterm+acs,
use=xterm+alt+title, use=bracketed+paste,
use=kitty+setal, use=vt420+lrmm, use=xterm+focus,
use=xterm+pce2, use=xterm+pcc2, use=xterm+pcf0,
use=xterm+sm+1006, use=xterm+sl-twm,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment