blob: a1aef0d51e57550aca8a764bb66cca93aa200ee7 [file] [log] [blame]
##############################################################################
# Copyright 2019,2020 Thomas E. Dickey #
# #
# 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, distribute #
# with modifications, 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 COPYRIGHT HOLDERS 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. #
##############################################################################
#
# Author: Thomas E. Dickey
#
# $Id: Caps-ncurses,v 1.8 2020/02/02 23:34:34 tom Exp $
#
#############################################################################
#
# TERMINFO EXTENSION CAPABILITIES
#
# This section is all comments (selected lines are copied/uncommented into
# specific "Caps" files). The section describes what capabilities need to be
# squeezed out to get down to the XSI Curses standard set. They are flagged
# with K.
#
# HP extensions
#
# These extensions follow ptr_non (replacing everything after it) in HP
# terminfo files. Except for memory_lock and memory_unlock, they are
# functionally identical to SVr4 extensions, but they make the binary format
# different. Grrr....
#
#memory_lock meml str ml - - ----K lock memory above cursor
#memory_unlock memu str mu - - ----K unlock memory
#plab_norm pln str pn - - ----- program label #1 to show string #2
#label_on smln str LO - - ----- turn on soft labels
#label_off rmln str LF - - ----- turn off soft labels
#key_f11 kf11 str F1 - - ----- F11 function key
#key_f12 kf12 str F2 - - ----- F12 function key
#key_f13 kf13 str F3 - - ----- F13 function key
#key_f14 kf14 str F4 - - ----- F14 function key
#key_f15 kf15 str F5 - - ----- F15 function key
#key_f16 kf16 str F6 - - ----- F16 function key
#key_f17 kf17 str F7 - - ----- F17 function key
#key_f18 kf18 str F8 - - ----- F18 function key
#key_f19 kf19 str F9 - - ----- F19 function key
#key_f20 kf20 str FA - - ----- F20 function key
#key_f21 kf21 str FB - - ----- F21 function key
#key_f22 kf22 str FC - - ----- F22 function key
#key_f23 kf23 str FD - - ----- F23 function key
#key_f24 kf24 str FE - - ----- F24 function key
#key_f25 kf25 str FF - - ----- F25 function key
#key_f26 kf26 str FG - - ----- F26 function key
#key_f27 kf27 str FH - - ----- F27 function key
#key_f28 kf28 str FI - - ----- F28 function key
#key_f29 kf29 str FJ - - ----- F29 function key
#key_f30 kf30 str FK - - ----- F30 function key
#key_f31 kf31 str FL - - ----- F31 function key
#key_f32 kf32 str FM - - ----- F32 function key
#key_f33 kf33 str FN - - ----- F33 function key
#key_f34 kf34 str FO - - ----- F34 function key
#key_f35 kf35 str FP - - ----- F35 function key
#key_f36 kf36 str FQ - - ----- F36 function key
#key_f37 kf37 str FR - - ----- F37 function key
#key_f38 kf38 str FS - - ----- F38 function key
#key_f39 kf39 str FT - - ----- F39 function key
#key_f40 kf40 str FU - - ----- F40 function key
#key_f41 kf41 str FV - - ----- F41 function key
#key_f42 kf42 str FW - - ----- F42 function key
#key_f43 kf43 str FX - - ----- F43 function key
#key_f44 kf44 str FY - - ----- F44 function key
#key_f45 kf45 str FZ - - ----- F45 function key
#key_f46 kf46 str Fa - - ----- F46 function key
#key_f47 kf47 str Fb - - ----- F47 function key
#key_f48 kf48 str Fc - - ----- F48 function key
#key_f49 kf49 str Fd - - ----- F49 function key
#key_f50 kf50 str Fe - - ----- F50 function key
#key_f51 kf51 str Ff - - ----- F51 function key
#key_f52 kf52 str Fg - - ----- F52 function key
#key_f53 kf53 str Fh - - ----- F53 function key
#key_f54 kf54 str Fi - - ----- F54 function key
#key_f55 kf55 str Fj - - ----- F55 function key
#key_f56 kf56 str Fk - - ----- F56 function key
#key_f57 kf57 str Fl - - ----- F57 function key
#key_f58 kf58 str Fm - - ----- F58 function key
#key_f59 kf59 str Fn - - ----- F59 function key
#key_f60 kf60 str Fo - - ----- F60 function key
#key_f61 kf61 str Fp - - ----- F61 function key
#key_f62 kf62 str Fq - - ----- F62 function key
#key_f63 kf63 str Fr - - ----- F63 function key
#
# IBM extensions
#
# These extensions follow ptr_non (replacing everything after it) in IBM
# terminfo files.
#
# The places in the box[12] capabilities correspond to acsc characters, here is
# the mapping:
#
# box1[0] = ACS_ULCORNER
# box1[1] = ACS_HLINE
# box1[2] = ACS_URCORNER
# box1[3] = ACS_VLINE
# box1[4] = ACS_LRCORNER
# box1[5] = ACS_LLCORNER
# box1[6] = ACS_TTEE
# box1[7] = ACS_RTEE
# box1[8] = ACS_BTEE
# box1[9] = ACS_LTEE
# box1[10] = ACS_PLUS
#
# The box2 characters are the double-line versions of these forms graphics.
#
#box_chars_1 box1 str bx - - ----K box characters primary set
#box_chars_2 box2 str by - - ----K box characters secondary set
#box_attr_1 batt1 str Bx - - ----K attributes for box1
#box_attr_2 batt2 str By - - ----K attributes for box2
#color_bg_0 colb0 str d0 - - ----K background color 0
#color_bg_1 colb1 str d1 - - ----K background color 1
#color_bg_2 colb2 str d2 - - ----K background color 2
#color_bg_3 colb3 str d3 - - ----K background color 3
#color_bg_4 colb4 str d4 - - ----K background color 4
#color_bg_5 colb5 str d5 - - ----K background color 5
#color_bg_6 colb6 str d6 - - ----K background color 6
#color_bg_7 colb7 str d7 - - ----K background color 7
#color_fg_0 colf0 str c0 - - ----K foreground color 0
#color_fg_1 colf1 str c1 - - ----K foreground color 1
#color_fg_2 colf2 str c2 - - ----K foreground color 2
#color_fg_3 colf3 str c3 - - ----K foreground color 3
#color_fg_4 colf4 str c4 - - ----K foreground color 4
#color_fg_5 colf5 str c5 - - ----K foreground color 5
#color_fg_6 colf6 str c6 - - ----K foreground color 6
#color_fg_7 colf7 str c7 - - ----K foreground color 7
#font_0 font0 str f0 - - ----- select font 0
#font_1 font1 str f1 - - ----- select font 1
#font_2 font2 str f2 - - ----- select font 2
#font_3 font3 str f3 - - ----- select font 3
#font_4 font4 str f4 - - ----K select font 4
#font_5 font5 str f5 - - ----K select font 5
#font_6 font6 str f6 - - ----K select font 6
#font_7 font7 str f7 - - ----K select font 7
#key_back_tab kbtab str k0 - - ----- backtab key
#key_do kdo str ki - - ----K do request key
#key_command kcmd str kd - - ----K command-request key
#key_command_pane kcpn str kW - - ----K command-pane key
#key_end kend str kw - - ----- end key
#key_help khlp str kq - - ----- help key
#key_newline knl str nl - - ----K newline key
#key_next_pane knpn str kv - - ----K next-pane key
#key_prev_cmd kppn str kp - - ----K previous-command key
#key_prev_pane kppn str kV - - ----K previous-pane key
#key_quit kquit str kQ - - ----K quit key
#key_select ksel str kU - - ----- select key
#key_scroll_left kscl str kz - - ----K scroll left
#key_scroll_right kscr str kZ - - ----K scroll right
#key_tab ktab str ko - - ----K tab key
#key_smap_in1 kmpf1 str Kv - - ----K special mapped key 1 input
#key_smap_out1 kmpt1 str KV - - ----K special mapped key 1 output
#key_smap_in2 kmpf2 str Kw - - ----K special mapped key 2 input
#key_smap_out2 kmpt2 str KW - - ----K special mapped key 2 output
#key_smap_in3 kmpf3 str Kx - - ----K special mapped key 3 input
#key_smap_out3 kmpt3 str KX - - ----K special mapped key 3 output
#key_smap_in4 kmpf4 str Ky - - ----K special mapped key 4 input
#key_smap_out4 kmpt4 str KY - - ----K special mapped key 4 output
#key_smap_in5 kmpf5 str Kz - - ----K special mapped key 5 input
#key_smap_out5 kmpt5 str KZ - - ----K special mapped key 5 output
#appl_defined_str apstr str za - - ----K application-defined string
# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
# the IBM manual pages, so the cap name strings are guesses. The terminfo
# names are almost certainly right, the termcap ones almost certainly wrong.
#key_smap_in6 kmpf6 str k! - - ----K special mapped key 6 input
#key_smap_out6 kmpt6 str K@ - - ----K special mapped key 6 output
#key_smap_in7 kmpf7 str k# - - ----K special mapped key 7 input
#key_smap_out7 kmpt7 str K$ - - ----K special mapped key 7 output
#key_smap_in8 kmpf8 str k% - - ----K special mapped key 8 input
#key_smap_out8 kmpt8 str K^ - - ----K special mapped key 8 output
#key_smap_in9 kmpf9 str k& - - ----K special mapped key 9 input
#key_smap_out9 kmpt9 str K* - - ----K special mapped key 9 output
# Undocumented capabilities end here
#key_sf1 ksf1 str S1 - - ----K special function key 1
#key_sf2 ksf2 str S2 - - ----K special function key 2
#key_sf3 ksf3 str S3 - - ----K special function key 3
#key_sf4 ksf4 str S4 - - ----K special function key 4
#key_sf5 ksf5 str S5 - - ----K special function key 5
#key_sf6 ksf6 str S6 - - ----K special function key 6
#key_sf7 ksf7 str S7 - - ----K special function key 7
#key_sf8 ksf8 str S8 - - ----K special function key 8
#key_sf9 ksf9 str S9 - - ----K special function key 9
#key_sf10 ksf10 str SA - - ----K special function key 10
# AIX version 3 documents different codes for F11, F12 and does not mention
# F13-F64. AIX version 4 uses the same naming for F0-F63 as above.
#key_f11 kf11 str k< - - ----- function key 11
#key_f12 kf12 str k> - - ----- function key 12
# Undocumented capabilities end here.
#key_action kact str kJ - - ----K sent by action key
# The IBM docs say these capabilities are for table-drawing, and are
# valid only for aixterm descriptions.
#enter_topline_mode topl str tp - - ----K start top-line mode
#enter_bottom_mode btml str bm - - ----K start bottom-line mode
#enter_rvert_mode rvert str rv - - ----K start right-vertical mode
#enter_lvert_mode lvert str lv - - ----K start left-vertical mode
#
#############################################################################
#
# ALIAS DECLARATIONS
#
# Here we set up aliases for translating extensions into standard terminfo.
#
#---------------------------------- Termcap aliases -------------------------
#
# BSD aliases:
#
# This is a common error in many termcap files. We'll get notified during
# translation when this (or any other alias) fires.
#
capalias sb sr BSD scroll text down
#
# AT&T extensions:
#
# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
# nonstandard capabilities. Its signature is the KM capability, used to name
# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
# set. Comments in the original, and a little cross-checking with other AT&T
# documentation, seem to establish the following mappings:
#
capalias BO mr AT&T enter_reverse_mode
capalias CI vi AT&T cursor_invisible
capalias CV ve AT&T cursor_normal
capalias DS mh AT&T enter_dim_mode
#capalias EE me AT&T exit_attribute_mode
capalias FE LF AT&T label_on
capalias FL LO AT&T label_off
capalias XS mk AT&T enter_secure_mode
#
# We comment out EE because the conflicting XENIX EE is more common in
# old entries.
#
# XENIX extensions:
#
# These are the ones we know how to translate directly:
#
capalias EE mh XENIX exit_attribute_mode
capalias GE ae XENIX exit_alt_charset_mode
capalias GS as XENIX enter_alt_charset_mode
capalias CF vi XENIX cursor_invis
capalias CO ve XENIX cursor_normal
capalias EN @7 XENIX key_end
capalias HM kh XENIX key_home
capalias LD kL XENIX key_dl
capalias PD kN XENIX key_npage
capalias PN po XENIX prtr_off
capalias PS pf XENIX prtr_on
capalias PU kP XENIX key_ppage
capalias RT @8 XENIX kent
capalias UP ku XENIX kcuu1
capalias G6 IGNORE XENIX double-ACS_ULCORNER
capalias G7 IGNORE XENIX double-ACS_LLCORNER
capalias G5 IGNORE XENIX double-ACS_URCORNER
capalias G8 IGNORE XENIX double-ACS_LRCORNER
capalias Gr IGNORE XENIX double-ACS_LTEE
capalias Gr IGNORE XENIX double-ACS_RTEE
capalias Gu IGNORE XENIX double-ACS_BTEE
capalias Gd IGNORE XENIX double ACS_TTEE
capalias Gh IGNORE XENIX double-ACS_HLINE
capalias Gv IGNORE XENIX double-ACS_VLINE
capalias Gc IGNORE XENIX double-ACS_PLUS
capalias GG IGNORE XENIX acs-glitch
#
# IBM extensions:
#
capalias kq %1 IBM key_help
#
# Iris extensions:
#
capalias HS mh IRIS enter_dim_mode
#
# Tektronix extensions:
#
capalias KA k; Tek key_f10
capalias KB F1 Tek key_f11
capalias KC F2 Tek key_f12
capalias KD F3 Tek key_f13
capalias KE F4 Tek key_f14
capalias KF F5 Tek key_f15
capalias BC Sb Tek set_background
capalias FC Sf Tek set_foreground
#
# There are also the following:
#
# XENIX XENIX variable name name clash with terminfo?
# ----- ------------------- -------------------------
# CL key_char_left
# CR key_char_right
# CW key_change_window
# HP ??
# LF key_linefeed label_off
# NU key_next_unlocked_cell
# PL ??
# PR ??
# RC key_recalc remove_clock
# RF key_toggle_ref req_for_input
# WL key_word_left
# WR key_word_right
#
# If you know what any of the question-marked ones mean, please tell us.
#
#--------------------------------- Terminfo aliases ------------------------
#
# IBM extensions:
#
infoalias font0 s0ds IBM set0_des_seq
infoalias font1 s1ds IBM set1_des_seq
infoalias font2 s2ds IBM set2_des_seq
infoalias font3 s3ds IBM set3_des_seq
infoalias kbtab kcbt IBM key_backtab
infoalias ksel kslt IBM key_select
#
# Some others are identical to SVr4/XPG4 capabilities, in particular:
# kcmd, kend, khlp, and kf11...kf63.
#
#############################################################################
# This is a table of ncurses user-definable capabilities which applications
# developers may have used. ncurses may use the table to check consistency of
# types/parameters. Applications may have defined others (such as screen's
# LP and NF), but where a standard capability is available, those alternatives
# are not listed here.
#
used_by ncurses
userdef E3 str - clears the terminal's scrollback buffer.
userdef RGB bool - use direct colors with 1/3 of color-pair bits per color.
userdef RGB num n use direct colors with given number of bits per color.
userdef RGB str - use direct colors with given bit-layout.
userdef TS str - like "tsl", but uses no parameter.
userdef U8 num n terminal does/does not support VT100 SI/SO when processing UTF-8 encoding.
userdef XM str n initialize alternate xterm mouse mode
userdef grbom str - disable real bold (not intensity bright) mode.
userdef gsbom str - enable real bold (not intensity bright) mode.
userdef xm str - mouse response, no parameters
userdef xm str n mouse response, p1 = y-ordinate
userdef xm str nn mouse response, p2 = x-ordinate
userdef xm str nnn mouse response, p3 = button
userdef xm str nnns mouse response, p4 = state, e.g., pressed or released
userdef xm str nnnsn mouse response, p5 = y-ordinate starting region
userdef xm str nnnsnn mouse response, p6 = x-ordinate starting region
userdef xm str nnnsnnn mouse response, p7 = y-ordinate ending region
userdef xm str nnnsnnnn mouse response, p8 = x-ordinate ending region
#
used_by screen
userdef AN bool - turn on autonuke.
userdef AX bool - understands ANSI set default fg/bg color (\E[39m / \E[49m).
userdef C0 str - use the string as a conversion table for font '0', like acsc.
userdef C8 bool - terminal shows bold as high-intensity colors.
userdef CE str - switch cursor-keys back to normal mode.
userdef CS str - switch cursor-keys to application mode.
userdef E0 str - switch charset 'G0' back to standard charset. Default is '\E(B'.
userdef G0 bool - terminal can deal with ISO 2022 font selection sequences.
userdef KJ str s set the encoding of the terminal.
userdef OL num n set the screen program's output buffer limit.
userdef S0 str s switch charset 'G0' to the specified charset. Default is '\E(%.'.
userdef TF bool - add missing capabilities to screen's termcap/info entry. (Set by default).
userdef WS str nn resize display. This capability has the desired width and height as arguments. SunView(tm) example: '\E[8;%d;%dt'.
userdef XC str s describe a translation of characters to strings depending on the current font.
userdef XT bool - terminal understands special xterm sequences (OSC, mouse tracking).
userdef Z0 str - change width to 132 columns.
userdef Z1 str - change width to 80 columns.
#
used_by tmux
userdef Cr str - restore the default cursor color.
userdef Cs str s set the cursor color.
userdef Csr str n change the cursor style, overriding Ss.
userdef Ms str ss store the current buffer in the host terminal's selection (clipboard).
userdef Se str - reset the cursor style to the terminal initial state.
userdef Smulx str n modify the appearance of underlines in VTE.
userdef Ss str n change the cursor style.
userdef rmxx str - reset ECMA-48 strikeout/crossed-out attributes.
userdef smxx str - set ECMA-48 strikeout/crossed-out attributes.
#
used_by xterm
userdef kDC3 str - alt delete-character
userdef kDC4 str - shift+alt delete-character
userdef kDC5 str - control delete-character
userdef kDC6 str - shift+control delete-character
userdef kDC7 str - alt+control delete-character
userdef kDN str - shift down-cursor
userdef kDN3 str - alt down-cursor
userdef kDN4 str - shift+alt down-cursor
userdef kDN5 str - control down-cursor
userdef kDN6 str - shift+control down-cursor
userdef kDN7 str - alt+control down-cursor
userdef kEND3 str - alt end
userdef kEND4 str - shift+alt end
userdef kEND5 str - control end
userdef kEND6 str - shift+control end
userdef kEND7 str - alt+control end
userdef kHOM3 str - alt home
userdef kHOM4 str - shift+alt home
userdef kHOM5 str - control home
userdef kHOM6 str - shift+control home
userdef kHOM7 str - alt+control home
userdef kIC3 str - alt insert-character
userdef kIC4 str - shift+alt insert-character
userdef kIC5 str - control insert-character
userdef kIC6 str - shift+control insert-character
userdef kIC7 str - alt+control insert-character
userdef kLFT3 str - alt left-cursor
userdef kLFT4 str - shift+alt left-cursor
userdef kLFT5 str - control left-cursor
userdef kLFT6 str - shift+control left-cursor
userdef kLFT7 str - alt+control left-cursor
userdef kNXT3 str - alt next
userdef kNXT4 str - shift+alt next
userdef kNXT5 str - control next
userdef kNXT6 str - shift+control next
userdef kNXT7 str - alt+control next
userdef kPRV3 str - alt previous
userdef kPRV4 str - shift+alt previous
userdef kPRV5 str - control previous
userdef kPRV6 str - shift+control previous
userdef kPRV7 str - alt+control previous
userdef kRIT3 str - alt right-cursor
userdef kRIT4 str - shift+alt right-cursor
userdef kRIT5 str - control right-cursor
userdef kRIT6 str - shift+control right-cursor
userdef kRIT7 str - alt+control right-cursor
userdef kUP str - shift up-cursor
userdef kUP3 str - alt up-cursor
userdef kUP4 str - shift+alt up-cursor
userdef kUP5 str - control up-cursor
userdef kUP6 str - shift+control up-cursor
userdef kUP7 str - alt+control up-cursor
userdef ka2 str - vt220-keypad extensions
userdef kb1 str - vt220-keypad extensions
userdef kb3 str - vt220-keypad extensions
userdef kc2 str - vt220-keypad extensions
#############################################################################