terminfo for XTERM

# $XTermId: terminfo,v 1.209 2024/02/11 23:35:48 tom Exp $
#
# Updates/notes/new entries (e.g., xterm-8bit, xterm-16color, xterm-256color)
# - Thomas E. Dickey
#
#------------------------------------------------------------------------------
# Copyright 1996-2023,2024 by Thomas E. Dickey
#
#                         All Rights Reserved
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so, subject to
# the following conditions:
#
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Except as contained in this notice, the name(s) of the above copyright
# holders shall not be used in advertising or otherwise to promote the
# sale, use or other dealings in this Software without prior written
# authorization.
#------------------------------------------------------------------------------
# format (ncurses 6.1): tic -I -W -1 -f -x terminfo
#------------------------------------------------------------------------------
#
# Special Capabilities:
# --------------------
# ich has a corresponding capability that inserts a single blank.  We could
#       have used ich1=\E[@, which works with ncurses, but that is not standard
#       behavior.  If it is set, then SVr4 vi (e.g., Solaris 2.6) emits both
#       smir/rmir and ich1.
# meml locks memory above the cursor; memu unlocks (ala HP terminals).  This
#       is not recognized by some older (e.g., SVr3) tic programs, but none
#       do more than warn about it.  Ignore the warning.
# smcup clears memory before switching to the alternate screen.  The older
#       (deprecated) \E[?47h did not do this, requiring applications to
#       embed a \E[2J in the rmcup string.  However, that behavior cannot
#       be disabled via titeInhibit, making that resource not function as
#       intended on systems with terminfo.
# rs2/is2 are shorter with XFree86 xterm because it supports DECSTR.  We
#       use the shorter sequence for compatibility with the termcap, which
#       is trimmed to keep it shorter than 1023 characters.  It (escape \E[!p)
#       replaces these in the conventional vt100 reset-string:
#               \E7     - save cursor (fixes origin-mode side-effect)
#               \E[r    - reset scrolling margins
#               \E[m    - reset SGR (including color)
#               \E[?7h  - reset wraparound mode (DECAWM)
#               \E[?1l  - reset application cursor keys (DECCKM)
#               \E[?6l  - reset origin mode (DECOM)
#               \E8     - restore cursor
#       DECSTR is recognized by XFree86 xterm even in vt52 mode.
#
# Editing Keypad:
# --------------
# XFree86 xterm emulates vt220 if the decTerminalID resource is set to 200 or
# higher.  Otherwise it emulates a vt100 or vt52 depending on the value of the
# resource.  When emulating a vt220, we support the editing keypad.  Sun and PC
# keyboards have an editing keypad which is similar to the vt220:
#
#       VT220 editing keypad
#       ----------------------------
#       Find      Insert      Remove
#       Select    Prev        Next
#       ----------------------------
#
#       Sun/PC editing keypad
#       ----------------------------
#       Insert    Home        PageUp
#       Delete    End         PageDn
#       ----------------------------
#
# If the sunKeyboard resource is true, we map it this way (adjusting the values
# of Home, End and Delete):
#       VT220                 Sun/PC
#       ----------------------------
#       Find                  Home
#       Select                End
#       Insert                Insert
#       Remove                Delete
#       Prev                  PageUp
#       Next                  PageDn
#       ----------------------------
#
# Note that all of the keys on the editing keypad transmit escape sequences.  A
# vt220 does this only when in vt220 mode; when emulating a vt100 the editing
# keypad is inactive.
#
# Alternative keycodes:
# --------------------
# Several of the function keys have alternative names, depending on the type of
# host which your xterm is connected to.  DEC (i.e., the VMS system) uses F15
# as the HELP key, F16 as the DO key.  Unix applications generally do not do
# this.  Curses applications in particular, assign a unique keycode to each
# capability string.  These terminal descriptions do not have conflicting
# definitions, to ensure that Unix curses applications use a consistent set of
# keycodes.  To get a VMS-bias, make these substitutions:
#       1. change khome to kfnd
#       2. change kend to kslt
# The original xterm-r6 entry does in fact have a VMS bias.
#
# Some legacy applications using the termcap emulation may expect kll where
# we have specified kend.
#
# Function keys with modifiers (Sun/PC):
# -------------------------------------
#       Shift-Fx          - kf{12+x}
#       Control-Fx        - kf{24+x}
#       Shift-Control-Fx  - kf{36+x}
#
# The terminfo defines some special keys which are documented as "shifted",
# e.g., kDC is shifted-delete-character.
#
# Note however, that even though the terminfo says a key might be sent, there
# may be conflicts which prevent this.  For example, it is common to use
# shifted pageup and pagedown for window manager functions.  The default
# translation for xterm since X11R4 has overridden shifted Insert, Select,
# PageUp and PageDown, which correspond to terminfo kIC, kEND, kPRV and kNXT
# respectively.
#
xterm-new|modern xterm terminal emulator,
        use=dec+sluse=ecma+indexuse=xterm+keypaduse=vt420+lrmm,
        use=xterm+sm+1006use=ansi+repuse=ecma+strikeoutuse=xterm+pcfkeys,
        use=xterm+tmuxuse=xterm+nofkeysuse=bracketed+pasteuse=report+version,
        use=xterm+focus,

# Left/right margins are supported in xterm since patch #279 (2012/05/10)
vt420+lrmm|VT420 left/right margins,
        mgc=\E[?69lsmglp=\E[?69h\E[%i%p1%dssmglr=\E[?69h\E[%i%p1%d;%p2%ds,
        smgrp=\E[?69h\E[%i;%p1%ds,

# These "ansi+XXX" blocks were added in ncurses 5.0 or 5.1:
ansi+arrows|ANSI normal-mode home and cursor-keys,
        kbs=^Hkcub1=\E[Dkcud1=\E[Bkcuf1=\E[Ckcuu1=\E[Akhome=\E[H,

ansi+csr|ANSI scroll-region plus cursor save & restore,
        csr=\E[%i%p1%d;%p2%drrc=\E8sc=\E7,

ansi+cup|ANSI absolute cursor-addressing,
        cup=\E[%i%p1%d;%p2%dHhome=\E[H,

ansi+enq|ncurses extension for ANSI ENQ,
        u6=\E[%i%d;%dRu7=\E[6nu8=\E[?%[;0123456789]cu9=\E[c,

ansi+erase|ANSI clear screen/line,
        clear=\E[H\E[Jed=\E[Jel=\E[K,

ansi+idc1|ANSI insert/delete one character,
        dch1=\E[Pich1=\E[@rmir=\E[4lsmir=\E[4h,

ansi+idc|ANSI insert/delete characters,
        dch=\E[%p1%dPich=\E[%p1%d@use=ansi+idc1,

ansi+idl1|ANSI insert/delete one line,
        dl1=\E[Mil1=\E[L,

ansi+idl|ANSI insert/delete lines,
        dl=\E[%p1%dMil=\E[%p1%dLuse=ansi+idl1,

ansi+inittabs|ANSI initial tab-stops,
        it#8use=ansi+tabs,

ansi+local1|ANSI normal-mode cursor-keys,
        cub1=\E[Dcud1=\E[Bcuf1=\E[Ccuu1=\E[A,

ansi+local|ANSI normal-mode parameterized cursor-keys,
        cub=\E[%p1%dDcud=\E[%p1%dBcuf=\E[%p1%dCcuu=\E[%p1%dAuse=ansi+local1,

ansi+pp|ANSI printer port,
        mc5i,
        mc0=\E[imc4=\E[4imc5=\E[5i,

ansi+rep|ANSI repeat-character,
        rep=%p1%c\E[%p2%{1}%-%db,

ansi+sgr|ANSI graphic renditions,
        blink=\E[5minvis=\E[8mrev=\E[7m,
        sgr=\E[0
                %?
                        %p3
                        %t;7
                %;
                %?
                        %p4
                        %t;5
                %;
                %?
                        %p7
                        %t;8
                %;
                m
,
        sgr0=\E[0m,

ansi+sgrso|ANSI standout only,
        rmso=\E[msmso=\E[7m,

ansi+sgrul|ANSI underline only,
        rmul=\E[msmul=\E[4m,

ansi+sgrbold|ANSI graphic renditions; assuming terminal has bold; not dim,
        bold=\E[1m,
        sgr=\E[
                %?
                        %p1
                        %t7;
                %;
                %?
                        %p2
                        %t4;
                %;
                %?
                        %p3
                        %t7;
                %;
                %?
                        %p4
                        %t5;
                %;
                %?
                        %p6
                        %t1;
                %;
                %?
                        %p7
                        %t8;
                %;
                m
,
        use=ansi+sgruse=ansi+sgrsouse=ansi+sgrul,

ansi+sgrdim|ANSI graphic renditions; assuming terminal has dim; not bold,
        dim=\E[2m,
        sgr=\E[
                %?
                        %p1
                        %t7;
                %;
                %?
                        %p2
                        %t4;
                %;
                %?
                        %p3
                        %t7;
                %;
                %?
                        %p4
                        %t5;
                %;
                %?
                        %p5
                        %t2;
                %;
                %?
                        %p7
                        %t8;
                %;
                m
,
        use=ansi+sgruse=ansi+sgrsouse=ansi+sgrul,

ansi+tabs|ANSI tab-stops,
        cbt=\E[Zht=^Ihts=\EHtbc=\E[3g,

# These were added after ncurses 6.0:
ansi+apparrows|ANSI application-mode home and cursor-keys,
        kcub1=\EODkcud1=\EOBkcuf1=\EOCkcuu1=\EOAkhome=\EOHuse=ansi+arrows,

ansi+cpr|ncurses extension for ANSI CPR,
        u6=\E[%i%d;%dRu7=\E[6n,

ansi+rca2|ANSI relative cursor-addressing,
        hpa=\E[%i%p1%dGvpa=\E[%i%p1%dd,

# Encode modifiers using parameters (see "Xterm Control Sequences" ctlseqs.ms).
# Note that this is unrelated to PCTERM.
#
# Some names are extensions allowed by ncurses, e.g.,
#       kDN, kDN5, kDN6, kLFT5, kLFT6, kRIT5, kRIT6, kUP, kUP5, kUP6
#
# The uppercase names are made up, since there are no standards that apply.
# If they were limited to two characters, they could in principle be translated
# to termcap.  However, termcap sizes are limited to 1023 bytes, so there is
# little point in ensuring that extended key names can be translated to
# termcap.  A terminfo file can be up to 4096 bytes; using all extended keys
# that xterm can generate would in fact exceed that limit.
#
# The numbers correspond to the modifier parameters documented in Xterm
# Control Sequences:
#
#       2       Shift
#       3       Alt
#       4       Shift + Alt
#       5       Control
#       6       Shift + Control
#       7       Alt + Control
#       8       Shift + Alt + Control
#
# X/Open Curses defines some shift combinations, which are also used here
# where applicable.  Since it does define some shift combinations, no number
# (2) is used for suffixing the made-up names.  Some combinations are not
# useful, e.g., they may reboot your computer, or they may require too many
# fingers.  I stopped at modifier 7, just to keep things simple -TD
#
# XTerm resources:
# ---------------
# The xterm+pcfn, xterm+pcf0, xterm+pcf1, xterm+pcf2 and xterm+pcf3 fragments
# correspond to default resource settings for xterm on a 104-key PC keyboard
# with 12 function-keys:
#
#       *sunKeyboard:false
#       *oldXtermFKeys:false
#       *modifyCursorKeys:2
#       *modifyFunctionKeys:2
#       *ctrlFKeys:10
#
# The key numbers are computed based on the modifiers:
#
#       kf1-kf12 are F1-F12
#       kf13-kf24 are shift F1-F12
#       kf25-kf36 are control F1-F12
#       kf37-kf48 are control+shift F1-F12
#       kf49-kf60 are alt F1-F12
#       kf61-kf63 are shift-alt F1-F3
#
# Note that ncurses would allow definition of kf64 and beyond, if there were
# an application that required it.
#
xterm+pcfkeys|fragment for PC-style keys,
        use=xterm+appuse=xterm+pcf2use=xterm+pce2use=xterm+pcc2,

# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
# asked for some of xterm's advanced features to be added to its terminfo
# entry.  It defines extended capabilities not found in standard terminfo or
# termcap.  These are useful in tmux, for instance, hence the name.
#
# One caveat in adding extended capabilities in ncurses is that if the names
# are longer than two characters, then they will not be visible through the
# termcap interface.
#
# Ms modifies the selection/clipboard.  Its parameters are
#       p1 = the storage unit (clipboard, selection or cut buffer)
#       p2 = the base64-encoded clipboard content.
#
# Ss is used to set the cursor style as described by the DECSCUSR
#       function to a block or underline.
# Se resets the cursor style to the terminal power-on default.
#
# Cs and Ce set and reset the cursor colour.
xterm+tmux|advanced xterm features used in tmux,
        Cr=\E]112\007, Cs=\E]12;%p1%s\007, Ms=\E]52;%p1%s;%p2%s\007, Se=\E[2\sq,
        Ss=\E[%p1%d\sq,
#
# The ctrlFKeys resource is only relevant to the xterm+pcfn and xterm+pcfN
# entries, since the modifyFunctionKeys resource overrides ctrlFKeys when it is
# positive.  A different choice of ctrlFKeys would give a different set of
# function-key strings.
xterm+pcfn|fragment with modifyFunctionKeys:-1 and ctrlFKeys:10,
        kf1=\EOPkf10=\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[32~kf19=\E[33~kf2=\EOQ,
        kf20=\E[34~kf21=\E[42~kf22=\E[43~kf23=\E[44~kf24=\E[45~kf25=\E[46~,
        kf26=\E[47~kf27=\E[48~kf28=\E[49~kf29=\E[50~kf3=\EORkf30=\E[51~,
        kf31=\E[52~kf32=\E[53~kf33=\E[54~kf34=\E[55~kf35=\E[56~kf36=\E[57~,
        kf37=\E[58~kf38=\E[59~kf39=\E[60~kf4=\EOSkf40=\E[61~kf41=\E[62~,
        kf42=\E[63~kf43=\E[64~kf44=\E[65~kf45=\E[66~kf46=\E[67~kf47=\E[68~,
        kf48=\E[69~kf5=\E[15~kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~,

# Changing ctrlFKeys to 12 would let us number the keys using just shift- and
# control- modifiers:
#       kf1-kf12 are F1-F12
#       kf13-kf24 are shift F1-F12
#       kf25-kf36 are control F1-F12
#       kf37-kf48 are control+shift F1-F12
xterm+pcfN|fragment with modifyFunctionKeys:-1 and ctrlFKeys:12,
        kf1=\EOPkf10=\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[32~kf19=\E[33~kf2=\EOQ,
        kf20=\E[34~kf21=\E[42~kf22=\E[43~kf23=\E[44~kf24=\E[45~kf25=\E[46~,
        kf26=\E[47~kf27=\E[48~kf28=\E[49~kf29=\E[50~kf3=\EORkf30=\E[51~,
        kf31=\E[52~kf32=\E[53~kf33=\E[54~kf34=\E[55~kf35=\E[56~kf36=\E[57~,
        kf37=\E[58~kf38=\E[59~kf39=\E[60~kf4=\EOSkf40=\E[61~kf41=\E[62~,
        kf42=\E[63~kf43=\E[64~kf44=\E[65~kf45=\E[66~kf46=\E[67~kf47=\E[68~,
        kf48=\E[69~kf5=\E[15~kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~,

xterm+pcf0|fragment with modifyFunctionKeys:0,
        kf1=\EOPkf10=\E[21~kf11=\E[23~kf12=\E[24~kf13=\EO2Pkf14=\EO2Q,
        kf15=\EO2Rkf16=\EO2Skf17=\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=\EO5Pkf26=\EO5Qkf27=\EO5Rkf28=\EO5Skf29=\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~kf37=\EO6Pkf38=\EO6Qkf39=\EO6Rkf4=\EOS,
        kf40=\EO6Skf41=\E[15;6~kf42=\E[17;6~kf43=\E[18;6~kf44=\E[19;6~,
        kf45=\E[20;6~kf46=\E[21;6~kf47=\E[23;6~kf48=\E[24;6~kf49=\EO3P,
        kf5=\E[15~kf50=\EO3Qkf51=\EO3Rkf52=\EO3Skf53=\E[15;3~kf54=\E[17;3~,
        kf55=\E[18;3~kf56=\E[19;3~kf57=\E[20;3~kf58=\E[21;3~kf59=\E[23;3~,
        kf6=\E[17~kf60=\E[24;3~kf61=\EO4Pkf62=\EO4Qkf63=\EO4Rkf7=\E[18~,
        kf8=\E[19~kf9=\E[20~,

# This is almost the same as xterm+pcf2 because the unmodified keys all happen
# to have a pattern that forces the modifier to the same position.
xterm+pcf1|fragment with modifyFunctionKeys:1,
        kf1=\EOPkf10=\E[21~kf11=\E[23~kf12=\E[24~kf13=\E[2Pkf14=\E[2Q,
        kf15=\E[2Rkf16=\E[2Skf17=\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[5Pkf26=\E[5Qkf27=\E[5Rkf28=\E[5Skf29=\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~kf37=\E[6Pkf38=\E[6Qkf39=\E[6Rkf4=\EOS,
        kf40=\E[6Skf41=\E[15;6~kf42=\E[17;6~kf43=\E[18;6~kf44=\E[19;6~,
        kf45=\E[20;6~kf46=\E[21;6~kf47=\E[23;6~kf48=\E[24;6~kf49=\E[3P,
        kf5=\E[15~kf50=\E[3Qkf51=\E[3Rkf52=\E[3Skf53=\E[15;3~kf54=\E[17;3~,
        kf55=\E[18;3~kf56=\E[19;3~kf57=\E[20;3~kf58=\E[21;3~kf59=\E[23;3~,
        kf6=\E[17~kf60=\E[24;3~kf61=\E[4Pkf62=\E[4Qkf63=\E[4Rkf7=\E[18~,
        kf8=\E[19~kf9=\E[20~,

xterm+pcf2|fragment with modifyFunctionKeys:2,
        kf1=\EOPkf10=\E[21~kf11=\E[23~kf12=\E[24~kf13=\E[1;2Pkf14=\E[1;2Q,
        kf15=\E[1;2Rkf16=\E[1;2Skf17=\E[15;2~kf18=\E[17;2~kf19=\E[18;2~,
        kf2=\EOQkf20=\E[19;2~kf21=\E[20;2~kf22=\E[21;2~kf23=\E[23;2~,
        kf24=\E[24;2~kf25=\E[1;5Pkf26=\E[1;5Qkf27=\E[1;5Rkf28=\E[1;5S,
        kf29=\E[15;5~kf3=\EORkf30=\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~kf37=\E[1;6P,
        kf38=\E[1;6Qkf39=\E[1;6Rkf4=\EOSkf40=\E[1;6Skf41=\E[15;6~kf42=\E[17;6~,
        kf43=\E[18;6~kf44=\E[19;6~kf45=\E[20;6~kf46=\E[21;6~kf47=\E[23;6~,
        kf48=\E[24;6~kf49=\E[1;3Pkf5=\E[15~kf50=\E[1;3Qkf51=\E[1;3R,
        kf52=\E[1;3Skf53=\E[15;3~kf54=\E[17;3~kf55=\E[18;3~kf56=\E[19;3~,
        kf57=\E[20;3~kf58=\E[21;3~kf59=\E[23;3~kf6=\E[17~kf60=\E[24;3~,
        kf61=\E[1;4Pkf62=\E[1;4Qkf63=\E[1;4Rkf7=\E[18~kf8=\E[19~kf9=\E[20~,

xterm+pcf3|fragment with modifyFunctionKeys:3,
        kf1=\EOPkf10=\E[21~kf11=\E[23~kf12=\E[24~kf13=\E[>1;2Pkf14=\E[>1;2Q,
        kf15=\E[>1;2Rkf16=\E[>1;2Skf17=\E[>15;2~kf18=\E[>17;2~kf19=\E[>18;2~,
        kf2=\EOQkf20=\E[>19;2~kf21=\E[>20;2~kf22=\E[>21;2~kf23=\E[>23;2~,
        kf24=\E[>24;2~kf25=\E[>1;5Pkf26=\E[>1;5Qkf27=\E[>1;5Rkf28=\E[>1;5S,
        kf29=\E[>15;5~kf3=\EORkf30=\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~kf37=\E[>1;6P,
        kf38=\E[>1;6Qkf39=\E[>1;6Rkf4=\EOSkf40=\E[>1;6Skf41=\E[>15;6~,
        kf42=\E[>17;6~kf43=\E[>18;6~kf44=\E[>19;6~kf45=\E[>20;6~kf46=\E[>21;6~,
        kf47=\E[>23;6~kf48=\E[>24;6~kf49=\E[>1;3Pkf5=\E[15~kf50=\E[>1;3Q,
        kf51=\E[>1;3Rkf52=\E[>1;3Skf53=\E[>15;3~kf54=\E[>17;3~kf55=\E[>18;3~,
        kf56=\E[>19;3~kf57=\E[>20;3~kf58=\E[>21;3~kf59=\E[>23;3~kf6=\E[17~,
        kf60=\E[>24;3~kf61=\E[>1;4Pkf62=\E[>1;4Qkf63=\E[>1;4Rkf7=\E[18~,
        kf8=\E[19~kf9=\E[20~,
#
# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
# and revised in patch #167 (2002/8/24).
#
# The original assignments from patch #94 for cursor-keys had some technical
# issues:
#
#       A parameter for a function-key to represent a modifier is just more
#       bits.  But for a cursor-key it may change the behavior of the
#       application.  For instance, emacs decodes the first parameter of a
#       cursor-key as a repeat count.
#
#       A parameterized string should (really) not begin with SS3 (\EO).
#       Rather, CSI (\E[) should be used.
#
# For these reasons, the original assignments were deprecated.  For
# compatibility reasons, they are still available as a setting of xterm's
# modifyCursorKeys resource.  These fragments list the modified cursor-keys
# that might apply to xterm+pcfkeys with different values of that resource.
xterm+pcc3|fragment with modifyCursorKeys:3,
        kLFT=\E[>1;2DkRIT=\E[>1;2Ckind=\E[>1;2Bkri=\E[>1;2A, kDN=\E[>1;2B,
        kDN3=\E[>1;3B, kDN4=\E[>1;4B, kDN5=\E[>1;5B, kDN6=\E[>1;6B, kDN7=\E[>1;7B,
        kLFT3=\E[>1;3D, kLFT4=\E[>1;4D, kLFT5=\E[>1;5D, kLFT6=\E[>1;6D, kLFT7=\E[>1;7D,
        kRIT3=\E[>1;3C, kRIT4=\E[>1;4C, kRIT5=\E[>1;5C, kRIT6=\E[>1;6C, kRIT7=\E[>1;7C,
        kUP=\E[>1;2A, kUP3=\E[>1;3A, kUP4=\E[>1;4A, kUP5=\E[>1;5A, kUP6=\E[>1;6A,
        kUP7=\E[>1;7A,

xterm+pcc2|fragment with modifyCursorKeys:2,
        kLFT=\E[1;2DkRIT=\E[1;2Ckind=\E[1;2Bkri=\E[1;2A, kDN=\E[1;2B, kDN3=\E[1;3B,
        kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B, kDN7=\E[1;7B, kLFT3=\E[1;3D,
        kLFT4=\E[1;4D, kLFT5=\E[1;5D, kLFT6=\E[1;6D, kLFT7=\E[1;7D, kRIT3=\E[1;3C,
        kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kRIT7=\E[1;7C, kUP=\E[1;2A,
        kUP3=\E[1;3A, kUP4=\E[1;4A, kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A,

xterm+pcc1|fragment with modifyCursorKeys:1,
        kLFT=\E[2DkRIT=\E[2Ckind=\E[2Bkri=\E[2A, kDN=\E[2B, kDN3=\E[3B, kDN4=\E[4B,
        kDN5=\E[5B, kDN6=\E[6B, kDN7=\E[7B, kLFT3=\E[3D, kLFT4=\E[4D, kLFT5=\E[5D,
        kLFT6=\E[6D, kLFT7=\E[7D, kRIT3=\E[3C, kRIT4=\E[4C, kRIT5=\E[5C, kRIT6=\E[6C,
        kRIT7=\E[7C, kUP=\E[2A, kUP3=\E[3A, kUP4=\E[4A, kUP5=\E[5A, kUP6=\E[6A, kUP7=\E[7A,

xterm+pcc0|fragment with modifyCursorKeys:0,
        kLFT=\EO2DkRIT=\EO2Ckind=\EO2Bkri=\EO2A, kDN=\EO2B, kDN3=\EO3B, kDN4=\EO4B,
        kDN5=\EO5B, kDN6=\EO6B, kDN7=\EO7B, kLFT3=\EO3D, kLFT4=\EO4D, kLFT5=\EO5D,
        kLFT6=\EO6D, kLFT7=\EO7D, kRIT3=\EO3C, kRIT4=\EO4C, kRIT5=\EO5C, kRIT6=\EO6C,
        kRIT7=\EO7C, kUP=\EO2A, kUP3=\EO3A, kUP4=\EO4A, kUP5=\EO5A, kUP6=\EO6A, kUP7=\EO7A,

# The home/end keys on the editing keypad are also treated as cursor keys.
xterm+pce3|fragment with modifyCursorKeys:3,
        kDC=\E[>3;2~kEND=\E[>1;2FkHOM=\E[>1;2HkIC=\E[>2;2~kNXT=\E[>6;2~,
        kPRV=\E[>5;2~, kDC3=\E[>3;3~, kDC4=\E[>3;4~, kDC5=\E[>3;5~, kDC6=\E[>3;6~,
        kDC7=\E[>3;7~, kEND3=\E[>1;3F, kEND4=\E[>1;4F, kEND5=\E[>1;5F, kEND6=\E[>1;6F,
        kEND7=\E[>1;7F, kHOM3=\E[>1;3H, kHOM4=\E[>1;4H, kHOM5=\E[>1;5H, kHOM6=\E[>1;6H,
        kHOM7=\E[>1;7H, kIC3=\E[>2;3~, kIC4=\E[>2;4~, kIC5=\E[>2;5~, kIC6=\E[>2;6~,
        kIC7=\E[>2;7~, kNXT3=\E[>6;3~, kNXT4=\E[>6;4~, kNXT5=\E[>6;5~, kNXT6=\E[>6;6~,
        kNXT7=\E[>6;7~, kPRV3=\E[>5;3~, kPRV4=\E[>5;4~, kPRV5=\E[>5;5~, kPRV6=\E[>5;6~,
        kPRV7=\E[>5;7~use=xterm+pce0,

xterm+pce2|fragment with modifyCursorKeys:2,
        kDC=\E[3;2~kEND=\E[1;2FkHOM=\E[1;2HkIC=\E[2;2~kNXT=\E[6;2~kPRV=\E[5;2~,
        kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~,
        kEND3=\E[1;3F, kEND4=\E[1;4F, kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F,
        kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H, kHOM6=\E[1;6H, kHOM7=\E[1;7H,
        kIC3=\E[2;3~, kIC4=\E[2;4~, kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~,
        kNXT3=\E[6;3~, kNXT4=\E[6;4~, kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~,
        kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~,
        use=xterm+pce0,

xterm+pce1|fragment with modifyCursorKeys:1,
        kDC=\E[3;2~kEND=\E[2FkHOM=\E[2HkIC=\E[2;2~kNXT=\E[6;2~kPRV=\E[5;2~,
        kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~,
        kEND3=\E[3F, kEND4=\E[4F, kEND5=\E[5F, kEND6=\E[6F, kEND7=\E[7F, kHOM3=\E[3H,
        kHOM4=\E[4H, kHOM5=\E[5H, kHOM6=\E[6H, kHOM7=\E[7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
        kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~, kNXT4=\E[6;4~,
        kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
        kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~use=xterm+pce0,

xterm+pce0|fragment with modifyCursorKeys:0,
        kDC=\E[3;2~kEND=\EO2FkHOM=\EO2HkIC=\E[2;2~kNXT=\E[6;2~kPRV=\E[5;2~,
        kDC3=\E[3;3~, kDC4=\E[3;4~, kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~,
        kEND3=\EO3F, kEND4=\EO4F, kEND5=\EO5F, kEND6=\EO6F, kEND7=\EO7F, kHOM3=\EO3H,
        kHOM4=\EO4H, kHOM5=\EO5H, kHOM6=\EO6H, kHOM7=\EO7H, kIC3=\E[2;3~, kIC4=\E[2;4~,
        kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kNXT3=\E[6;3~, kNXT4=\E[6;4~,
        kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~, kPRV3=\E[5;3~, kPRV4=\E[5;4~,
        kPRV5=\E[5;5~, kPRV6=\E[5;6~, kPRV7=\E[5;7~use=vt220+pcedit,

ecma+italics|ECMA-48 italics,
        ritm=\E[23msitm=\E[3m,

# The rmxx/smxx capabilities are an ncurses extension
ecma+strikeout|ECMA-48 strikeout/crossed-out,
        rmxx=\E[29m, smxx=\E[9m,

# ECMA-48 does not include the VT100 indexing and scroll-margins.  It has its
# own variation.
ecma+index|ECMA-48 scroll up/down,
        indn=\E[%p1%dSrin=\E[%p1%dT,

# The XM capability is an ncurses extension
xterm+sm+1006|xterm SGR-mouse,
        kmous=\E[<, XM=\E[?1006;1000
                %?
                        %p1%{1}%=
                        %th
                %e
                        l
                %;
,
        xm=\E[<%i
                %p3%d;
                %p1%d;
                %p2%d;
                %?
                        %p4
                        %tM
                %e
                        m
                %;
,

# By default, ncurses knows that xterm private mode 1000 enables/disables
# the X11 xterm mouse protocol.  So XM is not needed here, except for clarity.
xterm+x11mouse|X11 xterm mouse protocol,
        kmous=\E[M, XM=\E[?1000
                %?
                        %p1%{1}%=
                        %th
                %e
                        l
                %;
,
        xm=\E[M
                %?
                        %p4
                        %t
                        %p3
                %e%{3}
                %;
                %'\s'%+%c
                %p2%'!'%+%c
                %p1%'!'%+%c
,

# xterm patch #224 2007/2/11 added private mode 1004, for enabling/disabling
# focus in/out event reporting.  The 1004 is normally part of XM in a different
# building-block, e.g., for reporting any events.
xterm+focus|xterm focus-in/out event "keys",
        XF,
        fd=\E[?1004l, fe=\E[?1004h, kxIN=\E[I, kxOUT=\E[O,

https://invisible-island.net/xterm/xterm-paste64.html
#
# Bracketed paste was introduced by xterm patch #203 in May 2005, as part of a
# 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, but used internally.  In 2023, vim patch 9.0.1117 is needed
# to work with this change.
bracketed+paste|xterm bracketed paste,
        BD=\E[?2004l, BE=\E[?2004h, PE=\E[201~, PS=\E[200~,

https://invisible-island.net/xterm/xterm.log.html#xterm_354
#
# The response is a DSR sequence identifying the version: DCS > | text ST
# For example:
#       ^[P>|XTerm(354)^[\
report+version|Report xterm name and version (XTVERSION).,
        XR=\E[>0q, xr=\EP>\\|XTerm\\([1-9][0-9]+\\)\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.
#
# Since patch #280 2012/06/24, xterm by default reports itself as a VT420.
report+da2|report secondary device attributes (DA2),
        RV=\E[>c, rv=\E\\[41;[1-6][0-9][0-9];0c,

# This chunk is used for building the VT220/Sun/PC keyboard variants.
xterm-basic|modern xterm terminal emulator - common,
        OTbs, ambcekmmirmsgrxenl, AX, XT,
        colors#8cols#80lines#24pairs#64,
        acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~bel=^G,
        civis=\E[?25lclear=\E[H\E[2Jcnorm=\E[?12l\E[?25hcr=\rcub1=^Hcud1=\n,
        cup=\E[%i%p1%d;%p2%dHcvvis=\E[?12;25hdch=\E[%p1%dPdch1=\E[P,
        ech=\E[%p1%dXed=\E[Jel=\E[Kel1=\E[1Kflash=\E[?5h$<100/>\E[?5lhome=\E[H,
        ich=\E[%p1%d@ind=\nis2=\E[!p\E[?3;4l\E[4l\E>kmous=\E[M, meml=\El, memu=\Em,
        op=\E[39;49mri=\EMrmacs=\E(Brmam=\E[?7lrmir=\E[4lrmkx=\E[?1l\E>,
        rmm=\E[?1034lrmso=\E[27mrmul=\E[24mrs1=\Ecrs2=\E[!p\E[?3;4l\E[4l\E>,
        setab=\E[4%p1%dmsetaf=\E[3%p1%dm,
        setb=\E[4
                %?
                        %p1%{1}%=
                        %t4
                %e
                        %p1%{3}%=
                        %t6
                %e
                        %p1%{4}%=
                        %t1
                %e
                        %p1%{6}%=
                        %t3
                %e
                        %p1%d
                %;
                m
,
        setf=\E[3
                %?
                        %p1%{1}%=
                        %t4
                %e
                        %p1%{3}%=
                        %t6
                %e
                        %p1%{4}%=
                        %t1
                %e
                        %p1%{6}%=
                        %t3
                %e
                        %p1%d
                %;
                m
,
        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[msmacs=\E(0smam=\E[?7hsmir=\E[4hsmkx=\E[?1h\E=,
        smm=\E[?1034h, E3=\E[3Juse=ansi+csruse=ansi+enquse=ansi+idl,
        use=ansi+inittabsuse=ansi+localuse=ansi+ppuse=ansi+rca2,
        use=ansi+sgrbolduse=ansi+sgrdimuse=xterm+alt+titleuse=xterm+kbs,

xterm+nofkeys|building block for xterm fkey-variants,
        npc,
        kcbt=\E[Zkent=\EOMnel=\EEuse=ecma+indexuse=ansi+repuse=ecma+strikeout,
        use=vt420+lrmmuse=xterm+sm+1006use=xterm+tmuxuse=xterm+focus,
        use=ecma+italicsuse=xterm+keypaduse=xterm-basic,
#
# The xterm-new description has all of the features, but is not completely
# compatible with vt220.  If you are using a Sun or PC keyboard, set the
# sunKeyboard resource to true:
#       + maps the editing keypad
#       + interprets control-function-key as a second array of keys, so a
#         12-fkey keyboard can support vt220's 20-fkeys.
#       + maps numeric keypad "+" to ",".
#       + uses DEC-style control sequences for the application keypad.
#
# Some packagers modify xterm's resource definitions to provide extra function
# keys by using the shift-modifier in the translations resource.  However, that
# interferes with the DECUDK functionality.
#
xterm-vt220|xterm emulating vt220,
        npc,
        kcbt=\E[Zkend=\E[4~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[32~kf19=\E[33~,
        kf20=\E[34~kf5=\E[15~kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~,
        khome=\E[1~kmous=\E[Mnel=\EEuse=xterm+appuse=vt220+keypad,
        use=vt220+pcedituse=ecma+italicsuse=ecma+indexuse=ansi+rep,
        use=ecma+strikeoutuse=xterm+focususe=xterm+sm+1006use=xterm+tmux,
        use=xterm+keypaduse=xterm-basic,
#
xterm-vt52|xterm emulating dec vt52,
        cols#80it#8lines#24,
        acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~bel=^G,
        clear=\EH\EJcr=\rcub1=\EDcud1=\EBcuf1=\EC,
        cup=\EY%p1%'\s'%+%c%p2%'\s'%+%ccuu1=\EAed=\EJel=\EKhome=\EHht=^Iind=\n,
        kcub1=\EDkcud1=\EBkcuf1=\ECkcuu1=\EAnel=\r\nri=\EIrmacs=\EGsmacs=\EF,
        use=xterm+kbsuse=vt52+keypad,

# from ncurses 6.2:
# DECScope of course had no "function keys", but this building block assigns
# the three blank keys at the top of the auxiliary (numeric) keypad, using
# the same analogy as vt100 (also lacking function-keys).
#
# These assignments use the same layout for 0-9 as vt100+keypad; the vt52
# keypad had its cursor-keys on the right-column as shown -TD
#   _______________________________________
#  |   PF1   |   PF2   |   PF3   | c-up    |
#  |   \EP   |   \EQ   |   \ER   |   \EA   |
#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|kcuu1_k4_|
#  |    7         8         9      c-down  |
#  |   \E?w  |   \E?x  |   \E?y  |   \EB   |
#  |_kf9__k9_|_kf10_k;_|_kf0__k0_|kcud1____|
#  |    4    |    5    |    6    | c-right |
#  |   \E?t  |   \E?u  |   \E?v  |   \EC   |
#  |_kf5__k5_|_kf6__k6_|_kf7__k7_|kcuf1_k8_|
#  |    1    |    2    |    3    | c-left  |
#  |   \E?q  |   \E?r  |   \E?s  |   \ED   |
#  |_ka1__K1_|_kb2__K2_|_ka3__K3_|kcub1____|
#  |         0         |   .     |  enter  |
#  |        \E?p       |  \E?n   |  \E?M   |
#  |___kc1_______K4____|_kc3__K5_|_kent_@8_|
#
vt52+keypad|DECScope auxiliary keypad,
        ka1=\E?qka3=\E?skb2=\E?rkc1=\E?pkc3=\E?nkf0=\E?ykf1=\EPkf2=\EQkf3=\ER,
        kf5=\E?tkf6=\E?ukf7=\E?vkf8=\E?wkf9=\E?x,
#
# Sun does not number the function keys this way in their sparse termcap; their
# terminal descriptions ignore the keypads.  kb(7M) states that there are codes
# reserved for 64 function keys, 16 each in left, right, top and bottom.  Each
# keyboard type has a different number of function keys in different
# arrangements.  Using xkeycaps for reference:
#
# Type 3:  left 10, top 9, right 15
# ------
# kf1-kf9 are XK_F1-XK_F9
# There is no kf10 on this keyboard type.
# kf11-kf20 are keysyms XK_L1 through XK_L10.
# kf31-kf45 are keysyms XK_R1 through XK_R15.
#
# However, X's keysymdef.h is hard-coded to make
#       XK_L1==XK_F11 and
#       XK_R1==XK_F21,
# by someone who was unfamiliar with terminal types other than Sun's.  So
# xterm uses the internal X keysymbols, but the terminfo entry uses the Sun
# numbering scheme.
#
# Type 4:  left 11, top 12, right 15
# ------
# The left-keypad contains an unnumbered Help-key.
# The right-keypad also contains NumLock, Ins, Del, Enter, + and - keys which
# do not appear to be part of the R-sequence.
#
# Type 5:  left 9, top 12, right (more than one keypad)
# ------
# These keyboards do not use the same naming convention, look like a hybrid of
# the type 4 and IBM keyboards.
#
# XTerm resources:
# ---------------
# Set the modifyFunctionKeys resource to negative (-1) to make it simple to
# enter the higher function-key values using shift- and control-modifiers.
#
xterm-sun|xterm with sun function keys,
        kb2=\E[218zkcpy=\E[197zkdch1=\E[3zkend=\E[220zkf1=\E[224zkf10=\E[233z,
        kf11=\E[192zkf12=\E[193zkf13=\E[194zkf14=\E[195zkf15=\E[196z,
        kf17=\E[198zkf18=\E[199zkf19=\E[200zkf2=\E[225zkf20=\E[201zkf3=\E[226z,
        kf31=\E[208zkf32=\E[209zkf33=\E[210zkf34=\E[211zkf35=\E[212z,
        kf36=\E[213zkf38=\E[215zkf4=\E[227zkf40=\E[217zkf42=\E[219z,
        kf44=\E[221zkf45=\E[222zkf46=\E[234zkf47=\E[235zkf5=\E[228zkf6=\E[229z,
        kf7=\E[230zkf8=\E[231zkf9=\E[232zkfnd=\E[200zkhlp=\E[196zkhome=\E[214z,
        kich1=\E[2zknp=\E[222zkpp=\E[216zkund=\E[195zuse=xterm+kbs,
        use=ansi+apparrowsuse=xterm+nopcfkeysuse=xterm+nofkeys,

# Note: normally xterm supports modified function-keys as described in
#       XTerm - "Other" modified keys
#       https://invisible-island.net/xterm/modified-keys.html
#
# However, xterm-hp, xterm-sco and xterm-sun assume no modifiers.  Here is
# a simple script which demonstrates these descriptions:
#       #!/bin/sh
#       export TERM=xterm-$1
#       xterm \
#               -kt $1 \
#               -fs 16 -fa mono \
#               -title $TERM \
#               -tn $TERM \
#               -xrm '*modifyCursorKeys:-1' \
#               -xrm '*modifyFunctionKeys:-1' \
#               -e tack
# e.g., "foo sun" if the script is named "foo" -TD

xterm-hp|xterm with hpterm function keys,
        kclr=\EJkcub1=\EDkcud1=\EBkcuf1=\ECkcuu1=\EAkdch1=\EPkend=\EFkf1=\Ep,
        kf2=\Eqkf3=\Erkf4=\Eskf5=\Etkf6=\Eukf7=\Evkf8=\Ewkhome=\Ehkich1=\EQ,
        knp=\ESkpp=\ETuse=xterm+nofkeysuse=xterm+nopcfkeys,
#
# scoterm implements 48 function-keys using shift- and control-modifiers to
# multiple 12 function-keys.  X has a hard-coded limit of 35 function-keys,
# but xterm can represent larger values.
#
# XTerm resources:
# ---------------
# Set the modifyFunctionKeys resource to negative (-1) to make it simple to
# enter the higher function-key values using shift- and control-modifiers.
#
# Also, set ctrlFKeys resource to 12 (the default is 10) to make xterm see 48
# function-keys on a keyboard with 12 function-keys and 4 control/shift
# modifier combinations.
#
xterm-sco|xterm with SCO function keys,
        kbeg=\E[Ekdch1=^?kf1=\E[Mkf10=\E[Vkf11=\E[Wkf12=\E[Xkf13=\E[Ykf14=\E[Z,
        kf15=\E[akf16=\E[bkf17=\E[ckf18=\E[dkf19=\E[ekf2=\E[Nkf20=\E[f,
        kf21=\E[gkf22=\E[hkf23=\E[ikf24=\E[jkf25=\E[kkf26=\E[lkf27=\E[m,
        kf28=\E[nkf29=\E[okf3=\E[Okf30=\E[pkf31=\E[qkf32=\E[rkf33=\E[s,
        kf34=\E[tkf35=\E[ukf36=\E[vkf37=\E[wkf38=\E[xkf39=\E[ykf4=\E[P,
        kf40=\E[zkf41=\E[@kf42=\E[[kf43=\E[\\kf44=\E[]kf45=\E[\^kf46=\E[_,
        kf47=\E[`kf48=\E[{kf5=\E[Qkf6=\E[Rkf7=\E[Skf8=\E[Tkf9=\E[Ukich1=\E[L,
        kmous=\E[>Mknp=\E[Gkpp=\E[Iuse=vt100+noappuse=xterm+nofkeys,
#
# Other variants (these are all very old entries, from X11R5):
xterm-24|xterms|vs100|xterm terminal emulator (X Window System),
        lines#24use=xterm-old,
xterm-65|xterm with tall window 65x80 (X Window System),
        lines#65use=xterm-old,
xterm-bold|xterm with bold instead of underline (X Window System),
        sgr=
                %?
                        %p9
                        %t\016
                %e
                        \017
                %;
                B\E[0
                %?
                        %p6
                        %t;1
                %;
                %?
                        %p2
                        %t;1
                %;
                %?
                        %p1
                        %p3%|
                        %t;7
                %;
                m
,
        smso=\E[7msmul=\E[1muse=xterm-old,
xterm-boldso|xterm with bold for standout (X Window System),
        rmso=\E[msmso=\E[1muse=xterm-old,
xterm-mono|monochrome xterm,
        use=xterm-old,
#
# VTxxx terminals are usually set up so that full-screen applications will use
# the cursor application mode strings.  This is good for full-screen
# applications, including legacy applications which may have hard-coded
# behavior, but bad for interactive shells (e.g., tcsh, bash) which use arrow
# keys to scroll through a history of command strings.
#
# To see the difference between normal/application modes, consider this example:
#       + In normal (non-application) mode, the terminal transmits a down-arrow
#         as \E[C, which happens to echo as a down-arrow.
#       + In application mode the terminal transmits \EOC, which echoes as C.
#         That is because the \EO is the SS3 control, which says to use the
#         character from the G3 character set for the next cell.
#
# One example of hard-coded behavior would be for applications written to work
# with VT52 and VT100 terminals.  If the application's parser ignores 'O' and
# '?' characters after the escape, then the cursor and keypad strings for the
# two terminals are the same.  (Indeed, one of the first curses applications
# which I used did something like this to cover "ANSI" terminals -TD).
#
# To make this work (leaving the cursor keys in normal mode), we have to adjust
# the terminal initialization sequences:
#
#       smkx/rmkx set/reset the cursor and keypad application modes.  We retain
#               the latter (otherwise many applications fail).
#
#       smcup/rmcup set/restore cursor-addressing mode for full-screen
#               applications.  For xterm, this normally means the alternate
#               screen, which is not compatible with interactive shells.  Some
#               programs are "smart" and disable these.
#
xterm-noapp|xterm with cursor keys in normal mode,
        rmcup@, rmkx=\E>smcup@, smkx=\E=use=vt100+noappuse=xterm,

vt100+noapp|fragment with cursor keys in normal mode,
        kcub1=\E[Dkcud1=\E[Bkcuf1=\E[Ckcuu1=\E[Ause=vt100+noapp+pc,

xterm+acs|ISO-2022 alternate character-switching for xterm,
        acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~enacs@,
        rmacs=\E(Bsmacs=\E(0,

xterm+app|fragment with cursor keys in application mode,
        kcub1=\EODkcud1=\EOBkcuf1=\EOCkcuu1=\EOAuse=xterm+app+pc,

vt100+noapp+pc|fragment for noapp pc-style home/end,
        kend=\E[Fkhome=\E[H,

xterm+app+pc|fragment for app pc-style home/end,
        kend=\EOFkhome=\EOH,

vt220+pcedit|fragment for 6-key editing-keypad,
        kdch1=\E[3~kich1=\E[2~knp=\E[6~kpp=\E[5~use=xterm+pc+edit,

xterm+decedit|fragment for vt220 6-key editing-keypad,
        kdch1=\E[3~kich1=\E[2~knp=\E[6~kpp=\E[5~use=xterm+vt+edit,

xterm+pc+edit|fragment for pc-style editing keypad,
        kend=\E[4~khome=\E[1~,

xterm+vt+edit|fragment for vt220-style editing keypad,
        kfnd=\E[1~kslt=\E[4~,

xterm+alt1049|xterm 90 feature,
        rmcup=\E[?1049lsmcup=\E[?1049h,

xterm+titlestack|xterm 251 feature,
        rmcup=\E[23;0;0tsmcup=\E[22;0;0t,

xterm+alt+title|xterm 90 and 251 features combined,
        rmcup=\E[?1049l\E[23;0;0tsmcup=\E[?1049h\E[22;0;0t,

# The xterm ctrlFKeys resource defaults to 10, so without the "pc-style"
# feature, e.g., setting the modifyCursorKeys and modifyFunctionKeys resources
# to -1 to disable them, one gets 42 function-keys on a 12-function-key
# keyboard, e.g.,
# kf1                   = \E[11~
# kf11 shift f1         = \E[23~
# kf21 control f1       = \E[42~
# kf31 shift control f1 = \E[52~
xterm+nopcfkeys|fragment without PC-style fkeys,
        kf1=\E[11~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[32~kf19=\E[33~kf2=\E[12~,
        kf20=\E[34~kf21=\E[42~kf22=\E[43~kf23=\E[44~kf24=\E[45~kf25=\E[46~,
        kf26=\E[47~kf27=\E[48~kf28=\E[49~kf29=\E[50~kf3=\E[13~kf30=\E[51~,
        kf31=\E[52~kf32=\E[53~kf33=\E[54~kf34=\E[55~kf35=\E[56~kf36=\E[57~,
        kf37=\E[58~kf38=\E[59~kf39=\E[60~kf4=\E[14~kf40=\E[61~kf41=\E[62~,
        kf42=\E[63~kf5=\E[15~kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~,

# from development after ncurses 6.1:
# Xterm's emulation of the VT100 numeric keypad on a PC-keyboard runs into the
# problem that the keypad layout is different, and that the natural choice for
# PF1 is NumLock (which happens to be reserved for other use).  To work around
# that, PF1-PF4 are emulated via F1-F4, which leaves the "/", "*" and "+" not
# directly related to VT100.
#
# With the VT220 keypad block that uses the 1-9 keys as suggested in
# terminfo(5), the other keys can be handled with user-defined capabilities:
#
#   _______________________________________
#  | NumLock |    /    |    *    |    -    |
#  |         |   $Oo   |   $Oj   |   $OS   |
#  |_________|__kpDIV__|__kpMUL__|__kpSUB__|
#  |    7         8         9    |    +    |
#  |   $Ow   |   $Ox   |   $Oy   |   $Ok   |
#  |_ka1__K1_|_________|_ka3__K3_|  kpADD  |
#  |    4    |    5    |    6    |         |
#  |   $Ot   |   $Ou   |   $Ov   |         |
#  |_________|_kb2__K2_|_________|_________|
#  |    1    |    2    |    3    |         |
#  |   $Oq   |   $Or   |   $Os   |         |
#  |_kc1__K4_|_________|_kc3__K5_|  enter  |
#  |         0         |    .    |   $OM   |
#  |        $Op        |   $On   |         |
#  |_______kpZRO_______|__kpDOT__|_kent_@8_|
#
# ka2, kb1, kb3 and kc2 are extensions, as are the mixed-case names.
# There are no termcap equivalents for these extensions.
#
# kpCMA (comma) is used here for the VT100 keypad, which xterm emulates with
# shifted-keypad-plus, though normally that invokes a font-size change.
#
# Old versions of xterm, e.g., xterm-xfree86, documented \EOE as kb2, which
# does not fit into this layout.  The extension kp5 fits, but is not visible
# to termcap applications.  As an alternative, kbeg (which does have a termcap
# equivalent) is provided.

xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
        kbeg=\EOE, kp5=\EOE, kpADD=\EOk, kpCMA=\EOl, kpDIV=\EOo, kpDOT=\EOn, kpMUL=\EOj,
        kpSUB=\EOm, kpZRO=\EOpuse=vt220+keypad,

# from development after ncurses 5.2:
# A better adaptation to modern keyboards such as the PC's, which have a dozen
# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
# use the 5-key arrangement to model the arrow keys as suggested in the
# terminfo guidelines:
#   _______________________________________
#  |   PF1   |   PF2   |   PF3   |   PF4   |
#  |   $OP   |   $OQ   |   $OR   |   $OS   |
#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
#  |    7         8         9         -    |
#  |   $Ow   |   $Ox   |   $Oy   |   $Om   |
#  |_ka1__K1_|_________|_ka3__K3_|_________|
#  |    4    |    5    |    6    |    ,    |
#  |   $Ot   |   $Ou   |   $Ov   |   $Ol   |
#  |_________|_kb2__K2_|_________|_________|
#  |    1    |    2    |    3    |         |
#  |   $Oq   |   $Or   |   $Os   |  enter  |
#  |_kc1__K4_|_________|_kc3__K5_|  $OM    |
#  |         0         |   .     |         |
#  |        $Op        |  $On    |         |
#  |___________________|_________|_kent_@8_|
vt220+keypad|dec vt220 numeric keypad,
        ka1=\EOwka3=\EOykb2=\EOukc1=\EOqkc3=\EOskent=\EOMkf1=\EOPkf2=\EOQ,
        kf3=\EORkf4=\EOS, ka2=\EOx, kb1=\EOt, kb3=\EOv, kc2=\EOr,
#
# This should work for the commonly used "color xterm" variations (XFree86
# xterm, color_xterm, nxterm, rxvt).  Note that it does not set 'bce', so for
# XFree86 and and rxvt, some applications that use colors will be less
# efficient, and in a few special cases (with "smart" optimization) the wrong
# color will be painted in spots.
xterm-color|generic "ANSI" color xterm (X Window System),
        colors#8ncv@, pairs#64,
        op=\E[msetab=\E[4%p1%dmsetaf=\E[3%p1%dmuse=xterm-r6,
#
# vi may work better with this entry, because vi
# doesn't use insert mode much
xterm-ic|xterm-vi|xterm with insert character instead of insert mode,
        mir@,
        ich=\E[%p1%d@ich1=\E[@rmir@, smir@, use=xterm,
#
# This is used only for testing (it's not relevant to DEC VTxxx terminals, but
# to ncurses).
xterm-xmc|xterm with magic-cookie glitch,
        xmc#1use=xterm-new,
#
# This one was originally for testing ncurses.  While the ISO 6429 defines the
# REP control, none of the DEC VTxxx terminals (VT52 through VT525) support it.
#
# The feature's inclusion in xterm was prompted by changes in ncurses to
# support testing repeat_char by Alexander Lukyanov, since no readily-available
# terminal supported this:
#
# + Alexander's patch was integrated in ncurses 1996/09/28
# + xterm patch #32 1996/11/21 was released in XFree86 3.2A 1997/01/26
#
# In July 2017, the feature was added to xterm-new in ncurses, making this
# entry obsolete (but it is kept for reference).
xterm-rep|xterm with repeat-character control,
        rep=%p1%c\E[%p2%{1}%-%dbuse=xterm-new,
#
# This is mainly for testing xterm; the real VT220 will not let you switch
# character sets without first altering the keyboard language in the setup
# screen.  Some emulators allow this anyway.  (Note that these strings are
# normally used only for printers).  The parameter to csnm and scs is the same
# in both cases:  the keyboard language parameter returned by CSI ? 2 6 n.
xterm-nrc|xterm with VT220 national replacement character sets,
        csnm=
                %?
                        %p1%{1}%=
                        %tNorth\sAmerican
                %e
                        %p1%{2}%=
                        %tBritish
                %e
                        %p1%{3}%=
                        %tFlemish
                %e
                        %p1%{4}%=
                        %tFrench\sCanadian
                %e
                        %p1%{5}%=
                        %tDanish
                %e
                        %p1%{6}%=
                        %tFinnish
                %e
                        %p1%{7}%=
                        %tGerman
                %e
                        %p1%{8}%=
                        %tDutch
                %e
                        %p1%{9}%=
                        %tItalian
                %e
                        %p1%{10}%=
                        %tSwiss\s(French)
                %e
                        %p1%{11}%=
                        %tSwiss\s(German)
                %e
                        %p1%{12}%=
                        %tSwedish
                %e
                        %p1%{13}%=
                        %tNorwegian
                %e
                        %p1%{14}%=
                        %tFrench/Belgian
                %e
                        %p1%{15}%=
                        %tSpanish
                %;
,
        scs=
                %?
                        %p1%{1}%=
                        %t\E(B
                %e
                        %p1%{2}%=
                        %t\E(A
                %e
                        %p1%{3}%=
                        %t\E(R
                %e
                        %p1%{4}%=
                        %t\E(9
                %e
                        %p1%{5}%=
                        %t\E(E
                %e
                        %p1%{6}%=
                        %t\E(5
                %e
                        %p1%{7}%=
                        %t\E(K
                %e
                        %p1%{8}%=
                        %t\E(4
                %e
                        %p1%{9}%=
                        %t\E(Y
                %e
                        %p1%{10}%=
                        %t\E(=
                %e
                        %p1%{11}%=
                        %t\E(=
                %e
                        %p1%{12}%=
                        %t\E(7
                %e
                        %p1%{13}%=
                        %t\E(E
                %e
                        %p1%{14}%=
                        %t\E(R
                %e
                        %p1%{15}%=
                        %t\E(Z
                %;
,
        use=xterm-new,
#
# Foreground 0-15 maps (with toggles) into 30-37 & 90-97
# Background 0-15 maps (with toggles) into 40-47 & 100-107
#
# Originally I suppressed setaf/setab, since ANSI specifies only 8 colors, but
# Stephen Marley persuaded me to allow the "ANSI" color controls to extend to
# 16 colors.  (Note that ncurses 4.2 uses setf/setb from this description;
# however 5.0 selects either according to their availability).  - T.Dickey
#
# SVr4 curses does not use more than 8 colors anyway, so using 16 colors is
# either for terminfo-level applications or via ncurses.
xterm-16color|xterm with 16 colors,
        colors#16pairs#0x100,
        setab=\E[
                %?
                        %p1%{8}%<
                        %t
                        %p1%{40}%+
                %e
                        %p1%{92}%+
                %;
                %dm
,
        setaf=\E[
                %?
                        %p1%{8}%<
                        %t
                        %p1%{30}%+
                %e
                        %p1%{82}%+
                %;
                %dm
,
        setb=
                %p1%{8}%/%{6}%*%{4}%+\E[%d
                %p1%{8}%m%Pa
                %?%ga%{1}%=
                        %t4
                %e%ga%{3}%=
                        %t6
                %e%ga%{4}%=
                        %t1
                %e%ga%{6}%=
                        %t3
                %e%ga%d
                %;
                m
,
        setf=
                %p1%{8}%/%{6}%*%{3}%+\E[%d
                %p1%{8}%m%Pa
                %?%ga%{1}%=
                        %t4
                %e%ga%{3}%=
                        %t6
                %e%ga%{4}%=
                        %t1
                %e%ga%{6}%=
                        %t3
                %e%ga%d
                %;
                m
,
        use=xterm+256color2use=xterm+osc104use=xterm-new,

# xterm OSC 104 resets the color palette.  Using it as part of xterm+256color
# has the drawback that some of the xterm-alikes which use that building block
# require a different approach to rs1 -TD
xterm+osc104|reset color palette,
        oc=\E]104\007rs1=\Ec\E]104\007,

# "indexed color" is mentioned without definition in ISO 8613-6 (ITU T.416).
#
# This implementation uses a 256-element color map where the first 16 entries
# are shared with the aixterm-compatible colors (and in turn the first 8 are
# shared with the ANSI colors).  The three levels (256, 16, 8) account for the
# use of a conditional expression in setaf/setab which reduces the number of
# characters sent to the screen for typical applications.
#
# 256 colors should give 65536 pairs, but SVr4 (legacy) terminfo stores numbers
# in a signed short.  Most people will not notice problems with only 32767
# pairs.  With ncurses 6.1, numbers are stored in a signed integer (at least
# 32-bits), and the inconsistency regarding pairs is eliminated.
xterm+256color|original xterm 256-color feature,
        ccc,
        colors#0x100pairs#0x10000,
        initc=\E]4;
                %p1%d;rgb:
                %p2%{255}%*%{1000}%/%2.2X/
                %p3%{255}%*%{1000}%/%2.2X/
                %p4%{255}%*%{1000}%/%2.2X\E\\
,
        oc=\E]104\007,
        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
,
        setb@, setf@,
xterm+256color2|xterm 256-color feature,
        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
,
        use=xterm+256color,
xterm-256color|xterm with 256 colors,
        use=xterm+256color2use=xterm+osc104use=xterm-new,
xterm-88color|xterm with 88 colors,
        colors#88pairs#7744use=xterm-256color,

# "direct color" is mentioned without definition in ISO 8613-6 (ITU T.416).
#
# This is a particular implementation which assume 8-bit values for red, green,
# and blue.  Other encodings are possible; none are addressed by that standard.
#
# The "RGB" flag is an ncurses 6.1 extension which tells the library how to
# quickly compute the color-content for a given color value.
#
# Like xterm+256color, this uses a conditional expression.  But it does that
# for a different reason: to make it readily usable for applications which
# print text but also use RGB colors, it uses a color map for the usual ANSI
# colors (0-7) and RGB colors for the remaining range of the color value.
xterm+direct|xterm with direct-color indexing,
        RGB,
        colors#0x1000000pairs#0x10000, CO#8,
        initc@, op=\E[39;49m,
        setab=\E[
                %?
                        %p1%{8}%<
                        %t4
                        %p1%d
                %e48:2::
                        %p1%{65536}%/%d:
                        %p1%{256}%/%{255}%&%d:
                        %p1%{255}%&%d
                %;
                m
,
        setaf=\E[
                %?
                        %p1%{8}%<
                        %t3
                        %p1%d
                %e38:2::
                        %p1%{65536}%/%d:
                        %p1%{256}%/%{255}%&%d:
                        %p1%{255}%&%d
                %;
                m
,
        setb@, setf@,
xterm-direct|xterm with direct-color indexing,
        use=xterm+directuse=xterm,
#
# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
# To use it, your decTerminalID resource must be set to 200 or above, and the
# sunKeyboard resource set to true.
#
#       HTS     \E H    \210
#       RI      \E M    \215
#       SS3     \E O    \217
#       CSI     \E [    \233
#
xterm-8bit|xterm terminal emulator with 8-bit controls (X Window System),
        OTbs, ambcekmmc5imirmsgrnpcxenl, AX,
        colors#8cols#80it#8lines#24pairs#64,
        bel=^Gblink=\2335mbold=\2331mcbt=\233Zcivis=\233?25lclear=\233H\2332J,
        cnorm=\233?25l\233?25hcr=\rcsr=\233%i%p1%d;%p2%drcub=\233%p1%dDcub1=^H,
        cud=\233%p1%dBcud1=\ncuf=\233%p1%dCcuf1=\233Ccup=\233%i%p1%d;%p2%dH,
        cuu=\233%p1%dAcuu1=\233Acvvis=\233?12;25hdch=\233%p1%dPdch1=\233P,
        dl=\233%p1%dMdl1=\233Mech=\233%p1%dXed=\233Jel=\233Kel1=\2331K,
        flash=\233?5h$<100/>\233?5lhome=\233Hhpa=\233%i%p1%dGht=^Ihts=\210,
        ich=\233%p1%d@il=\233%p1%dLil1=\233Lind=\ninvis=\2338m,
        is2=\E[62"p\E\sG\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8ka1=\217w,
        ka3=\217ukb2=\217ykbeg=\217Ekc1=\217qkc3=\217skcbt=\233Zkcub1=\217D,
        kcud1=\217Bkcuf1=\217Ckcuu1=\217Akdch1=\2333~kend=\2334~kent=\217M,
        kf1=\23311~kf10=\23321~kf11=\23323~kf12=\23324~kf13=\23325~,
        kf14=\23326~kf15=\23328~kf16=\23329~kf17=\23331~kf18=\23332~,
        kf19=\23333~kf2=\23312~kf20=\23334~kf3=\23313~kf4=\23314~kf5=\23315~,
        kf6=\23317~kf7=\23318~kf8=\23319~kf9=\23320~khome=\2331~kich1=\2332~,
        kmous=\233Mknp=\2336~kpp=\2335~mc0=\233imc4=\2334imc5=\2335i, meml=\El,
        memu=\Emop=\23339;49mrc=\E8rev=\2337mri=\215rmam=\233?7l,
        rmcup=\233?1049lrmir=\2334lrmkx=\233?1l\E>rmso=\23327mrmul=\23324m,
        rs1=\Ecrs2=\E[62"p\E\sG\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
        sc=\E7setab=\2334%p1%dmsetaf=\2333%p1%dm,
        setb=\2334
                %?
                        %p1%{1}%=
                        %t4
                %e
                        %p1%{3}%=
                        %t6
                %e
                        %p1%{4}%=
                        %t1
                %e
                        %p1%{6}%=
                        %t3
                %e
                        %p1%d
                %;
                m
,
        setf=\2333
                %?
                        %p1%{1}%=
                        %t4
                %e
                        %p1%{3}%=
                        %t6
                %e
                        %p1%{4}%=
                        %t1
                %e
                        %p1%{6}%=
                        %t3
                %e
                        %p1%d
                %;
                m
,
        sgr=\2330
                %?
                        %p6
                        %t;1
                %;
                %?
                        %p2
                        %t;4
                %;
                %?
                        %p1
                        %p3%|
                        %t;7
                %;
                %?
                        %p4
                        %t;5
                %;
                %?
                        %p7
                        %t;8
                %;
                m
                %?
                        %p9
                        %t\E(0
                %e
                        \E(B
                %;
,
        sgr0=\2330m\E(Bsmam=\233?7hsmcup=\233?1049hsmir=\2334hsmkx=\233?1h\E=,
        smso=\2337msmul=\2334mtbc=\2333gu6=\233[%i%d;%dRu7=\E[6n,
        u8=\233[?%[;0123456789]cu9=\E[cvpa=\233%i%p1%dduse=xterm+acs,
        use=xterm+kbs,
#
xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
        OTbs, ambcekmmirmsgrnpcxenl, AX, XT,
        colors#8cols#80lines#24pairs#64,
        acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~bel=^G,
        civis=\E[?25lclear=\E[H\E[2Jcnorm=\E[?12l\E[?25hcr=\rcub1=^Hcud1=\n,
        cvvis=\E[?12;25hdch=\E[%p1%dPdch1=\E[Pech=\E[%p1%dXed=\E[Jel=\E[K,
        el1=\E[1Kenacs=\E(B\E)0flash=\E[?5h$<100/>\E[?5lhpa=\E[%i%p1%dG,
        ich=\E[%p1%d@ind=\nindn=\E[%p1%dSis2=\E[!p\E[?3;4l\E[4l\E>kDC=\E[3;2~,
        kEND=\E[1;2FkHOM=\E[1;2HkIC=\E[2;2~kLFT=\E[1;2DkNXT=\E[6;2~,
        kPRV=\E[5;2~kRIT=\E[1;2Ckb2=\EOEkcbt=\E[Zkdch1=\E[3~kend=\EOFkent=\EOM,
        kf1=\EOPkf10=\E[21~kf11=\E[23~kf12=\E[24~kf13=\EO2Pkf14=\EO2Q,
        kf15=\EO2Rkf16=\EO2Skf17=\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=\EO5Pkf26=\EO5Qkf27=\EO5Rkf28=\EO5Skf29=\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~kf37=\EO6Pkf38=\EO6Qkf39=\EO6Rkf4=\EOS,
        kf40=\EO6Skf41=\E[15;6~kf42=\E[17;6~kf43=\E[18;6~kf44=\E[19;6~,
        kf45=\E[20;6~kf46=\E[21;6~kf47=\E[23;6~kf48=\E[24;6~kf5=\E[15~,
        kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~kich1=\E[2~kmous=\E[Mknp=\E[6~,
        kpp=\E[5~, meml=\El, memu=\Emop=\E[39;49mri=\EMrin=\E[%p1%dTrmacs=^O,
        rmam=\E[?7lrmir=\E[4lrmkx=\E[?1l\E>rmso=\E[27mrmul=\E[24mrs1=\Ec,
        rs2=\E[!p\E[?3;4l\E[4l\E>setab=\E[4%p1%dmsetaf=\E[3%p1%dm,
        setb=\E[4
                %?
                        %p1%{1}%=
                        %t4
                %e
                        %p1%{3}%=
                        %t6
                %e
                        %p1%{4}%=
                        %t1
                %e
                        %p1%{6}%=
                        %t3
                %e
                        %p1%d
                %;
                m
,
        setf=\E[3
                %?
                        %p1%{1}%=
                        %t4
                %e
                        %p1%{3}%=
                        %t6
                %e
                        %p1%{4}%=
                        %t1
                %e
                        %p1%{6}%=
                        %t3
                %e
                        %p1%d
                %;
                m
,
        sgr=\E[0
                %?
                        %p6
                        %t;1
                %;
                %?
                        %p2
                        %t;4
                %;
                %?
                        %p1
                        %p3%|
                        %t;7
                %;
                %?
                        %p4
                        %t;5
                %;
                %?
                        %p7
                        %t;8
                %;
                m
                %?
                        %p9
                        %t\016
                %e
                        \017
                %;
,
        sgr0=\E[m\017smacs=^Nsmam=\E[?7hsmir=\E[4hsmkx=\E[?1h\E=u8=\E[?1;2c,
        vpa=\E[%i%p1%dd, ka2=\EOx, kb1=\EOt, kb3=\EOv, kc2=\EOruse=xterm+kbs,
        use=ansi+apparrowsuse=ansi+csruse=ansi+cupuse=ansi+enquse=ansi+idl,
        use=ansi+inittabsuse=ansi+localuse=ansi+ppuse=ansi+sgrbold,
        use=xterm+alt1049,

xterm-xfree86|xterm terminal emulator (XFree86 4.4 Window System),
        use=xterm-xf86-v44,
#
# Compatible with the R6 xterm, with the following changes:
#       + added acsc (perhaps some versions of tic assume the standard vt100
#         alternate character set)
#       + added u6, u7, u8, u9 strings for Daniel Weaver's tack program.
#       + added kmous string for ncurses.
#       + added khome/kend strings (which conflict with kfnd/kslt, see note).
xterm-r6|xterm X11R6 version,
        OTbs, amkmmirmsgrxenl,
        cols#80it#8lines#24,
        acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~bel=^G,
        bold=\E[1mclear=\E[H\E[2Jcr=\rcub=\E[%p1%dDcub1=^Hcud=\E[%p1%dBcud1=\n,
        cuf=\E[%p1%dCcuf1=\E[Ccuu=\E[%p1%dAcuu1=\E[Adch=\E[%p1%dPdch1=\E[P,
        dl=\E[%p1%dMdl1=\E[Menacs=\E)0ht=^Ihts=\EHil=\E[%p1%dLil1=\E[Lind=\n,
        is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8kcub1=\EODkcud1=\EOB,
        kcuf1=\EOCkcuu1=\EOAkf1=\E[11~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[32~,
        kf19=\E[33~kf2=\E[12~kf20=\E[34~kf3=\E[13~kf4=\E[14~kf5=\E[15~,
        kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~kmous=\E[M, meml=\El, memu=\Em,
        rev=\E[7mri=\EMrmacs=^Ormcup=\E[2J\E[?47l\E8rmir=\E[4lrmkx=\E[?1l\E>,
        rmso=\E[mrmul=\E[mrs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[?1;3;4;6l\E8,
        sgr0=\E[msmacs=^Nsmcup=\E7\E[?47hsmir=\E[4hsmkx=\E[?1h\E=smso=\E[7m,
        smul=\E[4mtbc=\E[3gu8=\E[?1;2cu9=\E[cuse=ansi+cpruse=ansi+csr,
        use=ansi+cupuse=ansi+eraseuse=xterm+kbsuse=xterm+decedit,
xterm-old|antique xterm version,
        use=xterm-r6,
#
# Compatible with the R5 xterm, with the following changes:
#       + changed 'blink=@', to 'blink@' (the former meant that "@" would start
#         a blink, the latter that it is not supported).
#       + changed kf1 through kf4 to correspond with actual usage.  Though X
#         supports keypad symbols for PF1 to PF4, and xterm interprets these
#         correctly, the F1 to F4 codes are commonly (but incorrectly) used.
#       + moved reset string from rs1 to rs2, to correlate better with termcap.
#       + make khome consistent with other entries.
#       + use rmul/smul, rmir/smir from termcap, but not rmcup/smcup because
#         not everyone wants the alternate screen.
#       + added u6, u7, u8, u9 strings for Daniel Weaver's tack program.
#       + added kmous string for ncurses.
xterm-r5|xterm R5 version,
        OTbs, amkmmsgrxenl,
        cols#80it#8lines#24,
        bel=^Gbold=\E[1mclear=\E[H\E[2Jcr=\rcub1=^Hcud1=\n,
        cup=\E[%i%p1%d;%p2%dHed=\E[Jel=\E[Khome=\E[Hht=^Ihts=\EHind=\n,
        kdch1=\E[3~kdl1=\E[31~kel=\E[8~kend=\E[4~kf0=\EOqkf1=\E[11~kf10=\E[21~,
        kf11=\E[23~kf12=\E[24~kf2=\E[12~kf3=\E[13~kf4=\E[14~kf5=\E[15~,
        kf6=\E[17~kf7=\E[18~kf8=\E[19~kf9=\E[20~khome=\E[1~kich1=\E[2~,
        kil1=\E[30~kmous=\E[Mknp=\E[6~kpp=\E[5~rev=\E[7mri=\EMrmkx=\E[?1l\E>,
        rmul=\E[mrs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h\E[m\E[r\E[2J\E[H,
        sgr=\E[
                %?
                        %p1
                        %t;7
                %;
                %?
                        %p2
                        %t;4
                %;
                %?
                        %p3
                        %t;7
                %;
                %?
                        %p4
                        %t;5
                %;
                %?
                        %p6
                        %t;1
                %;
                m
,
        sgr0=\E[msmkx=\E[?1h\E=smul=\E[4mtbc=\E[3gu8=\E[?1;2cuse=xterm+kbs,
        use=ansi+apparrowsuse=ansi+csruse=ansi+enquse=ansi+idcuse=ansi+idl,
        use=ansi+localuse=ansi+sgrso,

# DEC status-line is an extension for VT220, and standard with VT320 and up.
dec+sl|DEC VTxx status line,
        eslokhs,
        dsl=\E[0$~fsl=\E[0$}tsl=\E[2$~\E[1$}\E[%i%p1%d`,
#
#
# Customization begins here.
#
# This is the only entry which you should have to customize, since "xterm"
# is widely used for a variety of incompatible terminal emulations including
# color_xterm and rxvt.
xterm|X11 terminal emulator,
        use=xterm-new,
#       use=xterm-r6,

# This fragment is for people who cannot agree on what the backspace key
# should send.
xterm+kbs|fragment for backspace key,
        kbs=^H,
#       kbs=^?,