MAN page from Fedora 8 ncurses-5.6-12.20070812.fc8.x86_64.rpm


Section: File Formats (5)


terminfo - terminal capability data base 




Terminfois a data base describing terminals, used by screen-oriented programs such asnvi(1),rogue(1)and libraries such ascurses(3X).Terminfodescribes terminals by giving a set of capabilities which theyhave, by specifying how to perform screen operations, and byspecifying padding requirements and initialization sequences.This describes ncursesversion 5.6 (patch 20070812).

Entries interminfoconsist of a sequence of `,' separated fields (embedded commas may beescaped with a backslash or notated as \054).White space after the `,' separator is ignored.The first entry for each terminal gives the names which are known for theterminal, separated by `|' characters.The first name given is the most common abbreviation for the terminal,the last name given should be a long name fully identifying the terminal,and all others are understood as synonyms for the terminal name.All names but the last should be in lower case and contain no blanks;the last name may well contain upper case and blanks for readability.

Lines beginning with a `#' in the first column are treated as comments.While comment lines are legal at any point, the output of captoinfoand infotocap (aliases for tic)will move comments so they occur only between entries.

Newlines and leading tabs may be used for formatting entries for readability.These are removed from parsed entries.The infocmp -f option relies on this to format if-then-else expressions:the result can be read by tic.

Terminal names (except for the last, verbose entry) shouldbe chosen using the following conventions.The particular piece of hardware making up the terminal shouldhave a root name, thus ``hp2621''.This name should not contain hyphens.Modes that the hardware can be in, or user preferences, shouldbe indicated by appending a hyphen and a mode suffix.Thus, a vt100 in 132 column mode would be vt100-w.The following suffixes should be used where possible:

-nnNumber of lines on the screenaaa-60
-npNumber of pages of memoryc100-4p
-amWith automargins (usually the default)vt100-am
-mMono mode; suppress color ansi-m
-mcMagic cookie; spaces when highlightingwy30-mc
-naNo arrow keys (leave them in local)c100-na
-namWithout automatic margins vt100-nam
-nlNo status line att4415-nl
-nsNo status line hp2626-ns
-rvReverse video c100-rv
-sEnable status line vt100-s
-vbUse visible bell instead of beepwy370-vb
-wWide mode (> 80 columns, usually 132)vt100-w

For more on terminal naming conventions, see the term(7) manual page. 


The following is a complete table of the capabilities included in aterminfo description block and available to terminfo-using code. In eachline of the table,

The variable is the name by which the programmer (at the terminfo level)accesses the capability.

The capname is the short name used in the text of the database,and is used by a person updating the database.Whenever possible, capnames are chosen to be the same as or similar tothe ANSI X3.64-1979 standard (now superseded by ECMA-48, which usesidentical or very similar names). Semantics are also intended to matchthose of the specification.

The termcap code is the oldtermcapcapability name (some capabilities are new, and have names which termcapdid not originate).Capability names have no hard length limit, but an informal limit of 5characters has been adopted to keep them short and to allow the tabs inthe source fileCapsto line up nicely.

Finally, the description field attempts to convey the semantics of thecapability. You may find some codes in the description field:

indicates that padding may be specified
in the description field indicates that the string is passed through tparm withparms as given (#i).
indicates that padding may vary in proportion to the number oflines affected
indicates the ith parameter.

These are the boolean capabilities:

auto_left_marginbwbwcub1 wraps from column 0 to last column
auto_right_marginamamterminal has automatic margins
back_color_erasebceutscreen erased with background color
can_changecccccterminal can re-define existing colors
ceol_standout_glitchxhpxsstandout not erased by overwriting (hp)
col_addr_glitchxhpaYAonly positive motion for hpa/mhpa caps
cpi_changes_rescpixYFchanging character pitch changes resolution
cr_cancels_micro_modecrxmYBusing cr turns off micro mode
dest_tabs_magic_smsoxtxttabs destructive, magic so char (t1061)
eat_newline_glitchxenlxnnewline ignored after 80 cols (concept)
erase_overstrikeeoeocan erase overstrikes with a blank
generic_typegngngeneric line type
hard_copyhchchardcopy terminal
hard_cursorchtsHCcursor is hard to see
has_meta_keykmkmHas a meta key (i.e., sets 8th-bit)
has_print_wheeldaisyYCprinter needs operator to change character set
has_status_linehshshas extra status line
hue_lightness_saturationhlshlterminal uses only HLS color notation (Tektronix)
insert_null_glitchinininsert mode distinguishes nulls
lpi_changes_reslpixYGchanging line pitch changes resolution
memory_abovedadadisplay may be retained above the screen
memory_belowdbdbdisplay may be retained below the screen
move_insert_modemirmisafe to move while in insert mode
move_standout_modemsgrmssafe to move while in standout mode
needs_xon_xoffnxonnxpadding will not work, xon/xoff required
no_esc_ctlcxsbxbbeehive (f1=escape, f2=ctrl C)
no_pad_charnpcNPpad character does not exist
non_dest_scroll_regionndscrNDscrolling region is non-destructive
non_rev_rmcupnrrmcNRsmcup does not reverse rmcup
over_strikeososterminal can overstrike
prtr_silentmc5i5iprinter will not echo on screen
row_addr_glitchxvpaYDonly positive motion for vpa/mvpa caps
semi_auto_right_marginsamYEprinting in last column causes cr
status_line_esc_okeslokesescape can be used on the status line
tilde_glitchhzhzcannot print ~'s (hazeltine)
transparent_underlineululunderline character overstrikes
xon_xoffxonxoterminal uses xon/xoff handshaking

These are the numeric capabilities:

columnscolsconumber of columns in a line
init_tabsitittabs initially every # spaces
label_heightlhlhrows in each label
label_widthlwlwcolumns in each label
lineslineslinumber of lines on screen or page
lines_of_memorylmlmlines of memory if > line. 0 means varies
magic_cookie_glitchxmcsgnumber of blank characters left by smso or rmso
max_attributesmamamaximum combined attributes terminal can handle
max_colorscolorsComaximum number of colors on screen
max_pairspairspamaximum number of color-pairs on the screen
maximum_windowswnumMWmaximum number of defineable windows
no_color_videoncvNCvideo attributes that cannot be used with colors
num_labelsnlabNlnumber of labels on screen
padding_baud_ratepbpblowest baud rate where padding needed
virtual_terminalvtvtvirtual terminal number (CB/unix)
width_status_linewslwsnumber of columns in status line

The following numeric capabilities are present in the SVr4.0 term structure,but are not yet documented in the man page. They came in with SVr4'sprinter support.

bit_image_entwiningbitwinYonumber of passes for each bit-image row
bit_image_typebitypeYptype of bit-image device
buffer_capacitybufszYanumbers of bytes buffered before printing
buttonsbtnsBTnumber of buttons on mouse
dot_horz_spacingspinhYcspacing of dots horizontally in dots per inch
dot_vert_spacingspinvYbspacing of pins vertically in pins per inch
max_micro_addressmaddrYdmaximum value in micro_..._address
max_micro_jumpmjumpYemaximum value in parm_..._micro
micro_col_sizemcsYfcharacter step size when in micro mode
micro_line_sizemlsYgline step size when in micro mode
number_of_pinsnpinsYhnumbers of pins in print-head
output_res_charorcYihorizontal resolution in units per line
output_res_horz_inchorhiYkhorizontal resolution in units per inch
output_res_lineorlYjvertical resolution in units per line
output_res_vert_inchorviYlvertical resolution in units per inch
print_ratecpsYmprint rate in characters per second
wide_char_sizewidcsYncharacter step size when in double wide mode

These are the string capabilities:

acs_charsacscacgraphics charset pairs, based on vt100
back_tabcbtbtback tab (P)
bellbelblaudible signal (bell) (P)
carriage_returncrcrcarriage return (P*) (P*)
change_char_pitchcpiZAChange number of characters per inch to #1
change_line_pitchlpiZBChange number of lines per inch to #1
change_res_horzchrZCChange horizontal resolution to #1
change_res_vertcvrZDChange vertical resolution to #1
change_scroll_regioncsrcschange region to line #1 to line #2 (P)
char_paddingrmprPlike ip but when in insert mode
clear_all_tabstbcctclear all tab stops (P)
clear_marginsmgcMCclear right and left soft margins
clear_screenclearclclear screen and home cursor (P*)
clr_bolel1cbClear to beginning of line
clr_eolelceclear to end of line (P)
clr_eosedcdclear to end of screen (P*)
column_addresshpachhorizontal position #1, absolute (P)
command_charactercmdchCCterminal settable cmd character in prototype !?
create_windowcwinCWdefine a window #1 from #2,#3 to #4,#5
cursor_addresscupcmmove to row #1 columns #2
cursor_downcud1dodown one line
cursor_homehomehohome cursor (if no cup)
cursor_invisiblecivisvimake cursor invisible
cursor_leftcub1lemove left one space
cursor_mem_addressmrcupCMmemory relative cursor addressing, move to row #1 columns #2
cursor_normalcnormvemake cursor appear normal (undo civis/cvvis)
cursor_rightcuf1ndnon-destructive space (move right one space)
cursor_to_lllllllast line, first column (if no cup)
cursor_upcuu1upup one line
cursor_visiblecvvisvsmake cursor very visible
define_chardefcZEDefine a character #1, #2 dots wide, descender #3
delete_characterdch1dcdelete character (P*)
delete_linedl1dldelete line (P*)
dial_phonedialDIdial number #1
dis_status_linedsldsdisable status line
display_clockdclkDKdisplay clock
down_half_linehdhdhalf a line down
ena_acsenacseAenable alternate char set
enter_alt_charset_modesmacsasstart alternate character set (P)
enter_am_modesmamSAturn on automatic margins
enter_blink_modeblinkmbturn on blinking
enter_bold_modeboldmdturn on bold (extra bright) mode
enter_ca_modesmcuptistring to start programs using cup
enter_delete_modesmdcdmenter delete mode
enter_dim_modedimmhturn on half-bright mode
enter_doublewide_modeswidmZFEnter double-wide mode
enter_draft_qualitysdrfqZGEnter draft-quality mode
enter_insert_modesmirimenter insert mode
enter_italics_modesitmZHEnter italic mode
enter_leftward_modeslmZIStart leftward carriage motion
enter_micro_modesmicmZJStart micro-motion mode
enter_near_letter_qualitysnlqZKEnter NLQ mode
enter_normal_qualitysnrmqZLEnter normal-quality mode
enter_protected_modeprotmpturn on protected mode
enter_reverse_moderevmrturn on reverse video mode
enter_secure_modeinvismkturn on blank mode (characters invisible)
enter_shadow_modesshmZMEnter shadow-print mode
enter_standout_modesmsosobegin standout mode
enter_subscript_modessubmZNEnter subscript mode
enter_superscript_modessupmZOEnter superscript mode
enter_underline_modesmulusbegin underline mode
enter_upward_modesumZPStart upward carriage motion
enter_xon_modesmxonSXturn on xon/xoff handshaking
erase_charsechecerase #1 characters (P)
exit_alt_charset_modermacsaeend alternate character set (P)
exit_am_modermamRAturn off automatic margins
exit_attribute_modesgr0meturn off all attributes
exit_ca_modermcuptestrings to end programs using cup
exit_delete_modermdcedend delete mode
exit_doublewide_moderwidmZQEnd double-wide mode
exit_insert_modermireiexit insert mode
exit_italics_moderitmZREnd italic mode
exit_leftward_moderlmZSEnd left-motion mode
exit_micro_modermicmZTEnd micro-motion mode
exit_shadow_modershmZUEnd shadow-print mode
exit_standout_modermsoseexit standout mode
exit_subscript_modersubmZVEnd subscript mode
exit_superscript_modersupmZWEnd superscript mode
exit_underline_modermulueexit underline mode
exit_upward_moderumZXEnd reverse character motion
exit_xon_modermxonRXturn off xon/xoff handshaking
fixed_pausepausePApause for 2-3 seconds
flash_hookhookfhflash switch hook
flash_screenflashvbvisible bell (may not move cursor)
form_feedffffhardcopy terminal page eject (P*)
from_status_linefslfsreturn from status line
goto_windowwingoWGgo to window #1
hanguphupHUhang-up phone
init_1stringis1i1initialization string
init_2stringis2isinitialization string
init_3stringis3i3initialization string
init_fileififname of initialization file
init_progiprogiPpath name of program for initialization
initialize_colorinitcIcinitialize color #1 to (#2,#3,#4)
initialize_pairinitpIpInitialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
insert_characterich1icinsert character (P)
insert_lineil1alinsert line (P*)
insert_paddingipipinsert padding after inserted character
key_a1ka1K1upper left of keypad
key_a3ka3K3upper right of keypad
key_b2kb2K2center of keypad
key_backspacekbskbbackspace key
key_begkbeg@1begin key
key_btabkcbtkBback-tab key
key_c1kc1K4lower left of keypad
key_c3kc3K5lower right of keypad
key_cancelkcan@2cancel key
key_catabktbckaclear-all-tabs key
key_clearkclrkCclear-screen or erase key
key_closekclo@3close key
key_commandkcmd@4command key
key_copykcpy@5copy key
key_createkcrt@6create key
key_ctabkctabktclear-tab key
key_dckdch1kDdelete-character key
key_dlkdl1kLdelete-line key
key_downkcud1kddown-arrow key
key_eickrmirkMsent by rmir or smir in insert mode
key_endkend@7end key
key_enterkent@8enter/send key
key_eolkelkEclear-to-end-of-line key
key_eoskedkSclear-to-end-of-screen key
key_exitkext@9exit key
key_f0kf0k0F0 function key
key_f1kf1k1F1 function key
key_f10kf10k;F10 function key
key_f11kf11F1F11 function key
key_f12kf12F2F12 function key
key_f13kf13F3F13 function key
key_f14kf14F4F14 function key
key_f15kf15F5F15 function key
key_f16kf16F6F16 function key
key_f17kf17F7F17 function key
key_f18kf18F8F18 function key
key_f19kf19F9F19 function key
key_f2kf2k2F2 function key
key_f20kf20FAF20 function key
key_f21kf21FBF21 function key
key_f22kf22FCF22 function key
key_f23kf23FDF23 function key
key_f24kf24FEF24 function key
key_f25kf25FFF25 function key
key_f26kf26FGF26 function key
key_f27kf27FHF27 function key
key_f28kf28FIF28 function key
key_f29kf29FJF29 function key
key_f3kf3k3F3 function key
key_f30kf30FKF30 function key
key_f31kf31FLF31 function key
key_f32kf32FMF32 function key
key_f33kf33FNF33 function key
key_f34kf34FOF34 function key
key_f35kf35FPF35 function key
key_f36kf36FQF36 function key
key_f37kf37FRF37 function key
key_f38kf38FSF38 function key
key_f39kf39FTF39 function key
key_f4kf4k4F4 function key
key_f40kf40FUF40 function key
key_f41kf41FVF41 function key
key_f42kf42FWF42 function key
key_f43kf43FXF43 function key
key_f44kf44FYF44 function key
key_f45kf45FZF45 function key
key_f46kf46FaF46 function key
key_f47kf47FbF47 function key
key_f48kf48FcF48 function key
key_f49kf49FdF49 function key
key_f5kf5k5F5 function key
key_f50kf50FeF50 function key
key_f51kf51FfF51 function key
key_f52kf52FgF52 function key
key_f53kf53FhF53 function key
key_f54kf54FiF54 function key
key_f55kf55FjF55 function key
key_f56kf56FkF56 function key
key_f57kf57FlF57 function key
key_f58kf58FmF58 function key
key_f59kf59FnF59 function key
key_f6kf6k6F6 function key
key_f60kf60FoF60 function key
key_f61kf61FpF61 function key
key_f62kf62FqF62 function key
key_f63kf63FrF63 function key
key_f7kf7k7F7 function key
key_f8kf8k8F8 function key
key_f9kf9k9F9 function key
key_findkfnd@0find key
key_helpkhlp%1help key
key_homekhomekhhome key
key_ickich1kIinsert-character key
key_ilkil1kAinsert-line key
key_leftkcub1klleft-arrow key
key_llkllkHlower-left key (home down)
key_markkmrk%2mark key
key_messagekmsg%3message key
key_movekmov%4move key
key_nextknxt%5next key
key_npageknpkNnext-page key
key_openkopn%6open key
key_optionskopt%7options key
key_ppagekppkPprevious-page key
key_previouskprv%8previous key
key_printkprt%9print key
key_redokrdo%0redo key
key_referencekref&1reference key
key_refreshkrfr&2refresh key
key_replacekrpl&3replace key
key_restartkrst&4restart key
key_resumekres&5resume key
key_rightkcuf1krright-arrow key
key_saveksav&6save key
key_sbegkBEG&9shifted begin key
key_scancelkCAN&0shifted cancel key
key_scommandkCMD*1shifted command key
key_scopykCPY*2shifted copy key
key_screatekCRT*3shifted create key
key_sdckDC*4shifted delete-character key
key_sdlkDL*5shifted delete-line key
key_selectkslt*6select key
key_sendkEND*7shifted end key
key_seolkEOL*8shifted clear-to-end-of-line key
key_sexitkEXT*9shifted exit key
key_sfkindkFscroll-forward key
key_sfindkFND*0shifted find key
key_shelpkHLP#1shifted help key
key_shomekHOM#2shifted home key
key_sickIC#3shifted insert-character key
key_sleftkLFT#4shifted left-arrow key
key_smessagekMSG%ashifted message key
key_smovekMOV%bshifted move key
key_snextkNXT%cshifted next key
key_soptionskOPT%dshifted options key
key_spreviouskPRV%eshifted previous key
key_sprintkPRT%fshifted print key
key_srkrikRscroll-backward key
key_sredokRDO%gshifted redo key
key_sreplacekRPL%hshifted replace key
key_srightkRIT%ishifted right-arrow key
key_srsumekRES%jshifted resume key
key_ssavekSAV!1shifted save key
key_ssuspendkSPD!2shifted suspend key
key_stabkhtskTset-tab key
key_sundokUND!3shifted undo key
key_suspendkspd&7suspend key
key_undokund&8undo key
key_upkcuu1kuup-arrow key
keypad_localrmkxkeleave 'keyboard_transmit' mode
keypad_xmitsmkxksenter 'keyboard_transmit' mode
lab_f0lf0l0label on function key f0 if not f0
lab_f1lf1l1label on function key f1 if not f1
lab_f10lf10lalabel on function key f10 if not f10
lab_f2lf2l2label on function key f2 if not f2
lab_f3lf3l3label on function key f3 if not f3
lab_f4lf4l4label on function key f4 if not f4
lab_f5lf5l5label on function key f5 if not f5
lab_f6lf6l6label on function key f6 if not f6
lab_f7lf7l7label on function key f7 if not f7
lab_f8lf8l8label on function key f8 if not f8
lab_f9lf9l9label on function key f9 if not f9
label_formatflnLflabel format
label_offrmlnLFturn off soft labels
label_onsmlnLOturn on soft labels
meta_offrmmmoturn off meta mode
meta_onsmmmmturn on meta mode (8th-bit on)
micro_column_addressmhpaZYLike column_address in micro mode
micro_downmcud1ZZLike cursor_down in micro mode
micro_leftmcub1ZaLike cursor_left in micro mode
micro_rightmcuf1ZbLike cursor_right in micro mode
micro_row_addressmvpaZcLike row_address #1 in micro mode
micro_upmcuu1ZdLike cursor_up in micro mode
newlinenelnwnewline (behave like cr followed by lf)
order_of_pinsporderZeMatch software bits to print-head pins
orig_colorsococSet all color pairs to the original ones
orig_pairopopSet default pair to its original value
pad_charpadpcpadding char (instead of null)
parm_dchdchDCdelete #1 characters (P*)
parm_delete_linedlDLdelete #1 lines (P*)
parm_down_cursorcudDOdown #1 lines (P*)
parm_down_micromcudZfLike parm_down_cursor in micro mode
parm_ichichICinsert #1 characters (P*)
parm_indexindnSFscroll forward #1 lines (P)
parm_insert_lineilALinsert #1 lines (P*)
parm_left_cursorcubLEmove #1 characters to the left (P)
parm_left_micromcubZgLike parm_left_cursor in micro mode
parm_right_cursorcufRImove #1 characters to the right (P*)
parm_right_micromcufZhLike parm_right_cursor in micro mode
parm_rindexrinSRscroll back #1 lines (P)
parm_up_cursorcuuUPup #1 lines (P*)
parm_up_micromcuuZiLike parm_up_cursor in micro mode
pkey_keypfkeypkprogram function key #1 to type string #2
pkey_localpflocplprogram function key #1 to execute string #2
pkey_xmitpfxpxprogram function key #1 to transmit string #2
plab_normplnpnprogram label #1 to show string #2
print_screenmc0psprint contents of screen
prtr_nonmc5ppOturn on printer for #1 bytes
prtr_offmc4pfturn off printer
prtr_onmc5poturn on printer
pulsepulsePUselect pulse dialing
quick_dialqdialQDdial number #1 without checking
remove_clockrmclkRCremove clock
repeat_charreprprepeat char #1 #2 times (P*)
req_for_inputrfiRFsend next input char (for ptys)
reset_1stringrs1r1reset string
reset_2stringrs2r2reset string
reset_3stringrs3r3reset string
reset_filerfrfname of reset file
restore_cursorrcrcrestore cursor to position of last save_cursor
row_addressvpacvvertical position #1 absolute (P)
save_cursorscscsave current cursor position (P)
scroll_forwardindsfscroll text up (P)
scroll_reverserisrscroll text down (P)
select_char_setscsZjSelect character set, #1
set_attributessgrsadefine video attributes #1-#9 (PG9)
set_backgroundsetbSbSet background color #1
set_bottom_marginsmgbZkSet bottom margin at current line
set_bottom_margin_parmsmgbpZlSet bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
set_clocksclkSCset clock, #1 hrs #2 mins #3 secs
set_color_pairscpspSet current color pair to #1
set_foregroundsetfSfSet foreground color #1
set_left_marginsmglMLset left soft margin at current column.  See smgl. (ML is not in BSD termcap).

set_left_margin_parmsmglpZmSet left (right) margin at column #1
set_right_marginsmgrMRset right soft margin at current column
set_right_margin_parmsmgrpZnSet right margin at column #1
set_tabhtsstset a tab in every row, current columns
set_top_marginsmgtZoSet top margin at current line
set_top_margin_parmsmgtpZpSet top (bottom) margin at row #1
set_windowwindwicurrent window is lines #1-#2 cols #3-#4
start_bit_imagesbimZqStart printing bit image graphics
start_char_set_defscsdZrStart character set definition #1, with #2 characters in the set
stop_bit_imagerbimZsStop printing bit image graphics
stop_char_set_defrcsdZtEnd definition of character set #1
subscript_characterssubcsZuList of subscriptable characters
superscript_characterssupcsZvList of superscriptable characters
tabhttatab to next 8-space hardware tab stop
these_cause_crdocrZwPrinting any of these characters causes CR
to_status_linetsltsmove to status line, column #1
tonetoneTOselect touch tone dialing
underline_charucucunderline char and move past it
up_half_linehuhuhalf a line up
user0u0u0User string #0
user1u1u1User string #1
user2u2u2User string #2
user3u3u3User string #3
user4u4u4User string #4
user5u5u5User string #5
user6u6u6User string #6
user7u7u7User string #7
user8u8u8User string #8
user9u9u9User string #9
wait_tonewaitWAwait for dial-tone
xoff_characterxoffcXFXOFF character
xon_characterxoncXNXON character
zero_motionzeromZxNo motion for subsequent character

The following string capabilities are present in the SVr4.0 term structure,but were originally not documented in the man page.

alt_scancode_escscesaS8Alternate escape for scancode emulation
bit_image_carriage_returnbicrYvMove to beginning of same row
bit_image_newlinebinelZzMove to next row of the bit image
bit_image_repeatbirepXyRepeat bit image cell #1 #2 times
char_set_namescsnmZyProduce #1'th item from list of character set names
code_set_initcsinciInit sequence for multiple codesets
color_namescolornmYwGive name for color #1
define_bit_image_regiondefbiYxDefine rectangualar bit image region
device_typedevtdvIndicate language/codeset support
display_pc_chardispcS1Display PC character #1
end_bit_image_regionendbiYyEnd a bit-image region
enter_pc_charset_modesmpchS2Enter PC character display mode
enter_scancode_modesmscS4Enter PC scancode mode
exit_pc_charset_modermpchS3Exit PC character display mode
exit_scancode_modermscS5Exit PC scancode mode
get_mousegetmGmCurses should get button events, parameter #1 not documented.
key_mousekmousKmMouse event has occurred
mouse_infominfoMiMouse status information
pc_term_optionspctrmS6PC terminal options
pkey_plabpfxlxlProgram function key #1 to type string #2 and show string #3
req_mouse_posreqmpRQRequest mouse position
scancode_escapescescS7Escape for scancode emulation
set0_des_seqs0dss0Shift to codeset 0 (EUC set 0, ASCII)
set1_des_seqs1dss1Shift to codeset 1
set2_des_seqs2dss2Shift to codeset 2
set3_des_seqs3dss3Shift to codeset 3
set_a_backgroundsetabABSet background color to #1, using ANSI escape
set_a_foregroundsetafAFSet foreground color to #1, using ANSI escape
set_color_bandsetcolorYzChange to ribbon color #1
set_lr_marginsmglrMLSet both left and right margins to #1, #2. (ML is not in BSD termcap).
set_page_lengthslinesYZSet page length to #1 lines
set_tb_marginsmgtbMTSets both top and bottom margins to #1, #2

The XSI Curses standard added these. They are some post-4.1versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.The ncurses termcap names for them are invented; according to theXSI Curses standard, they have no termcap names. If your compiled terminfoentries use these, they may not be binary-compatible with System V terminfoentries after SVr4.1; beware!

enter_horizontal_hl_modeehhlmXhEnter horizontal highlight mode
enter_left_hl_modeelhlmXlEnter left highlight mode
enter_low_hl_modeelohlmXoEnter low highlight mode
enter_right_hl_modeerhlmXrEnter right highlight mode
enter_top_hl_modeethlmXtEnter top highlight mode
enter_vertical_hl_modeevhlmXvEnter vertical highlight mode
set_a_attributessgr1sADefine second set of video attributes #1-#6
set_pglen_inchslengthsLYI Set page length to #1 hundredth of an inch

A Sample Entry

The following entry, describing an ANSI-standard terminal, is representativeof what a terminfo entry for a modern terminal typically looks like.

ansi|ansi/pc-term compatible with color,        mc5i,        colors#8, ncv#3, pairs#64,        cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,        cuu=\E[%p1%dA, dch=\E[%p1%dP, dl=\E[%p1%dM,        ech=\E[%p1%dX, el1=\E[1K, hpa=\E[%p1%dG, ht=\E[I,        ich=\E[%p1%d@, il=\E[%p1%dL, indn=\E[%p1%dS, .indn=\E[%p1%dT,        kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,        kcuf1=\E[C, kcuu1=\E[A, kf1=\E[M, kf10=\E[V,        kf11=\E[W, kf12=\E[X, kf2=\E[N, kf3=\E[O, kf4=\E[P,        kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,        kich1=\E[L, mc4=\E[4i, mc5=\E[5i, nel=\r\E[S,        op=\E[37;40m, rep=%p1%c\E[%p2%{1}%-%db,        rin=\E[%p1%dT, s0ds=\E(B, s1ds=\E)B, s2ds=\E*B,        s3ds=\E+B, setab=\E[4%p1%dm, setaf=\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;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,        sgr0=\E[0;10m, tbc=\E[2g, u6=\E[%d;%dR, u7=\E[6n,        u8=\E[?%[;0123456789]c, u9=\E[c, vpa=\E[%p1%dd,

Entries may continue onto multiple lines by placing white space atthe beginning of each line except the first.Comments may be included on lines beginning with ``#''.Capabilities interminfoare of three types:Boolean capabilities which indicate that the terminal hassome particular feature, numeric capabilities giving the size of the terminalor the size of particular delays, and stringcapabilities, which give a sequence which can be used to perform particularterminal operations.


Types of Capabilities

All capabilities have names.For instance, the fact thatANSI-standard terminals haveautomatic margins(i.e., an automatic return and line-feedwhen the end of a line is reached) is indicated by the capability am.Hence the description of ansi includes am.Numeric capabilities are followed by the character `#' and then a positive value.Thus cols, which indicates the number of columns the terminal has,gives the value `80' for ansi.Values for numeric capabilities may be specified in decimal, octal or hexadecimal,using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).

Finally, string valued capabilities, such as el (clear to end of linesequence) are given by the two-character code, an `=', and then a stringending at the next following `,'.

A number of escape sequences are provided in the string valued capabilitiesfor easy encoding of characters there.Both \E and \emap to an ESCAPE character,^x maps to a control-x for any appropriate x, and the sequences\n \l \r \t \b \f \s givea newline, line-feed, return, tab, backspace, form-feed, and space.Other escapes include \^ for ^,\\ for \,\, for comma,\: for :,and \0 for null.(\0 will produce \200, which does not terminate a string but behavesas a null character on most terminals, providing CS7 is specified.See stty(1).)Finally, characters may be given as three octal digits after a \.

A delay in milliseconds may appear anywhere in a string capability, enclosed in$<..> brackets, as in el=\EK$<5>, and padding characters are supplied bytputsto provide this delay.The delay must be a number with at most one decimalplace of precision; it may be followed by suffixes `*' or '/' or both.A `*'indicates that the padding required is proportional to the number of linesaffected by the operation, and the amount given is the per-affected-unitpadding required.(In the case of insert character, the factor is still thenumber oflinesaffected.) Normally, padding is advisory if the device has the xoncapability; it is used for cost computation but does not trigger delays.A `/'suffix indicates that the padding is mandatory and forces a delay of the givennumber of milliseconds even on devices for which xon is present toindicate flow control.

Sometimes individual capabilities must be commented out.To do this, put a period before the capability name.For example, see the secondindin the example above.


Fetching Compiled Descriptions

If the environment variable TERMINFO is set, it is interpreted as the pathnameof a directory containing the compiled description you are working on.Onlythat directory is searched.

If TERMINFO is not set, the ncurses version of the terminfo reader codewill instead look in the directory $HOME/.terminfofor a compiled description.If it fails to find one there, and the environment variable TERMINFO_DIRS isset, it will interpret the contents of that variable as a list of colon-separated directories to be searched (an empty entry is interpreted as acommand to search /usr/share/terminfo).If no description is found in any of theTERMINFO_DIRS directories, the fetch fails.

If neither TERMINFO nor TERMINFO_DIRS is set, the last place tried will be thesystem terminfo directory, /usr/share/terminfo.

(Neither the $HOME/.terminfo lookups nor TERMINFO_DIRS extensions aresupported under stock System V terminfo/curses.)


Preparing Descriptions

We now outline how to prepare descriptions of terminals.The most effective way to prepare a terminal description is by imitatingthe description of a similar terminal interminfoand to build up a description gradually, using partial descriptionswithvior some other screen-oriented program to check that they are correct.Be aware that a very unusual terminal may expose deficiencies inthe ability of theterminfofile to describe itor bugs in the screen-handling code of the test program.

To get the padding for insert line right (if the terminal manufacturerdid not document it) a severe test is to edit a large file at 9600 baud,delete 16 or so lines from the middle of the screen, then hit the `u'key several times quickly.If the terminal messes up, more padding is usually needed.A similar test can be used for insert character.


Basic Capabilities

The number of columns on each line for the terminal is given by thecols numeric capability.If the terminal is a CRT, then thenumber of lines on the screen is given by the lines capability.If the terminal wraps around to the beginning of the next line whenit reaches the right margin, then it should have the am capability.If the terminal can clear its screen, leaving the cursor in the homeposition, then this is given by the clear string capability.If the terminal overstrikes(rather than clearing a position when a character is struck over)then it should have the os capability.If the terminal is a printing terminal, with no soft copy unit,give it bothhcandos.(osapplies to storage scope terminals, such as TEKTRONIX 4010series, as well as hard copy and APL terminals.)If there is a code to move the cursor to the left edge of the currentrow, give this ascr.(Normally this will be carriage return, control M.)If there is a code to produce an audible signal (bell, beep, etc)give this asbel.

If there is a code to move the cursor one position to the left(such as backspace) that capability should be given ascub1.Similarly, codes to move to the right, up, and down should begiven ascuf1,cuu1,andcud1.These local cursor motions should not alter the text they pass over,for example, you would not normally use `cuf1= ' because thespace would erase the character moved over.

A very important point here is that the local cursor motio