The Single UNIX ® Specification, Version 2
Copyright © 1997 The Open Group

 Terminfo Source Format (ENHANCED CURSES)

The requirements in this chapter are in effect only for implementations that claim Enhanced Curses compliance.

The terminfo database contains a description of the capabilities of a variety of devices, such as terminals and printers. Devices are described by specifying a set of capabilities, by quantifying certain aspects of the device, and by specifying character sequences that effect particular results.

This chapter specifies the format of terminfo source files.

X/Open-compliant implementations must provide a facility that accepts source files in the format specified in this chapter as a means of entering information into the terminfo database. The facility for installing this information into the database is implementation-specific. A valid terminfo entry describing a given model of terminal can be added to terminfo on any X/Open-compliant implementation to permit use of the same terminal model.

Source File Syntax describes the syntax of terminfo source files. A grammar and lexical conventions appear in Formal Grammar . A list of all terminal capabilities defined by X/Open appears in Defined Capabilities . An example follows in Sample Entry . describes the specification of devices in general, such as video terminals. describes the specification of printers.

The terminfo database is often used by screen-oriented applications such as vi and Curses programs, as well as by some utilities such as ls and more. This usage allows them to work with a variety of devices without changes to the programs.

 Source File Syntax

Source files can use the ISO 8859-1 codeset. The behaviour when the source file is in another codeset is unspecified. Traditional practice has been to translate information from other codesets into the source file syntax.

terminfo source files consist of one or more device descriptions. Each description defines a mnemonic name for the terminal model. Each description consists of a header (beginning in column 1) and one or more lines that list the features for that particular device. Every line in a terminfo source file must end in a comma. Every line in a terminfo source file except the header must be indented with one or more white spaces (either spaces or tabs).

Entries in terminfo source files consist of a number of comma-separated fields. White space after each comma is ignored. Embedded commas must be escaped by using a backslash. The following example shows the format of a terminfo source file: delim $$ delim off The first line, commonly referred to as the header line, must begin in column one and must contain at least two aliases separated by vertical bars. The last field in the header line must be the long name of the device and it may contain any string.

Alias names must be unique in the terminfo database and they must conform to file naming conventions established by implementation-specific terminfo compilation utilities. Implementations will recognise alias names consisting only of characters from the portable filename character set except that implementations need not accept a first character of minus (-). For example, a typical restriction is that they cannot contain white space or slashes. There may be further constraints imposed on source file values by the implementation-specific terminfo compilation utilities. provides conventions for choosing alias names.

Each capability in terminfo is of one of the following types:

Capability names adhere to an informal length limit of five characters. Whenever possible, capability names are chosen to be the same as or similar to those specified by the ANSI X3.64-1979 standard. Semantics are also intended to match those of the ANSI standard.

All string capabilities may have padding specified, with the exception of those used for input. Input capabilities, listed under the Strings section in the following tables, have names beginning with key_. These capabilities are defined in <term.h>.

 Minimum Guaranteed Limits

All X/Open-compliant implementations support at least the following limits for the terminfo source file:

Source File Characteristic Minimum Guaranteed Value
Length of a line 1023 bytes
Length of a terminal alias 14 bytes
Length of a terminal model name 128 bytes
Width of a single field 128 bytes
Length of a string value 1000 bytes
Length of a string representing a numeric value 99 digits
Magnitude of a numeric value 0 up to and including 32767
An implementation may support higher limits than those specified above.

 Formal Grammar

The grammar and lexical conventions in this section together describe the syntax for terminfo terminal descriptions within a terminfo source file. A terminal description that satisfies the requirements of this section will be accepted by all implementations.

descriptions : START_OF_HEADER_LINE  rest_of_header_line feature_lines
          | descriptions START_OF_HEADER_LINE rest_of_header_line 
          | feature_lines
          ;
An ALIAS that begins in column one.  This is handled by the lexical analyzer.

rest_of_header_line : PIPE LONGNAME COMMA NEWLINE
          | aliases PIPE LONGNAME COMMA NEWLINE
          ;

feature_lines : start_feature_line rest_of_feature_line
          | feature_lines start_feature_line rest_of_feature_line
          ;

start_feature_line : START_FEATURE_LINE_BOOLEAN
A BOOLEAN feature that begins after column one but is the first
feature on the feature line.  This is handled by the lexical analyzer.
          | START_FEATURE_LINE_NUMERIC
A NUMERIC feature that begins after column one but is the first
feature on the feature line.  This is handled by the lexical analyzer.
          | START_FEATURE_LINE_STRING
A STRING feature that begins after column one but is the first
feature on the feature line.  This is handled by the lexical analyzer.
          ;

rest_of_feature_line : features COMMA NEWLINE
          | COMMA NEWLINE
          ;

features : COMMA feature
          | features COMMA feature
          ;

aliases : PIPE ALIAS
          | aliases PIPE ALIAS
          ;

feature : BOOLEAN
          | NUMERIC
          | STRING
          ;

The lexical conventions for terminfo descriptions are as follows:

  1. White space consists of the ' ' and <tab> character.

  2. An ALIAS may contain any graph characters other than ',','/' and '|'. Graph characters are those characters for which isgraph() returns non-zero.

  3. A LONGNAME may contain any print characters other than ',' and '|'. Print characters are those characters for which isprint() returns non-zero.

  4. A BOOLEAN feature may contain any print characters other than ',', '=', and '#'.

  5. A NUMERIC feature consists of:

    1. A name which may contain any print character other than ',', '=', and '#'.

    2. The '#' character.

    3. A positive integer which conforms to the C language convention for integer constants.

  6. A STRING feature consists of:

    1. A name which may contain any print character other than ',', '=', and '#'.

    2. The '=' character.

    3. A string which may contain any print characters other than ','.

  7. White space immediately following a ',' is ignored.

  8. Comments consist of <bol>, optional whitespace, a required '#', and a terminating <eol>.

  9. A header line must begin in column one.

  10. A feature line must not begin in column one.

  11. Blank lines are ignored.

 Defined Capabilities

X/Open defines the capabilities listed in the following table. All X/Open-compliant implementations must accept each of these capabilities in an entry in a terminfo source file. Implementations use this information to determine how properly to operate the current terminal. In addition, implementations return any of the current terminal's capabilities when the application calls the query functions listed in Source File Syntax (in the cases where the following table lists a Termcap code) and Source File Syntax .

The table of capabilities has the following columns:

Variable
Names for use by the Curses functions that operate on the terminfo database. These names are reserved and the application must not define them.
Capname
The short name for a capability specified in the terminfo source file. It is used for updating the source file and by the tput command.
Termcap
Codes provided for compatibility with older applications. These codes are TO BE WITHDRAWN. Because of this, not all Capnames have Termcap codes.
 Booleans

Cap- Term-
Variable name cap Description
auto_left_margin bw bw cub1 wraps from column 0 to last column
auto_right_margin am am Terminal has automatic margins
back_color_erase bce ut Screen erased with background colour
can_change ccc cc Terminal can re-define existing colour
ceol_standout_glitch xhp xs Standout not erased by overwriting (hp)
col_addr_glitch xhpa YA Only positive motion for hpa/mhpa caps
cpi_changes_res cpix YF Changing character pitch changes resolution
cr_cancels_micro_mode crxm YB Using cr turns off micro mode
dest_tabs_magic_smso xt xt Destructive tabs, magic smso char (t1061)
eat_newline_glitch xenl xn Newline ignored after 80 columns (Concept)
erase_overstrike eo eo Can erase overstrikes with a blank
generic_type gn gn Generic line type (e.g., dialup, switch)
hard_copy hc hc Hardcopy terminal
hard_cursor chts HC Cursor is hard to see
has_meta_key km km Has a meta key (shift, sets parity bit)
has_print_wheel daisy YC Printer needs operator to change
character set
has_status_line hs hs Has extra "status line"
hue_lightness_saturation hls hl Terminal uses only HLS colour
notation (Tektronix)
insert_null_glitch in in Insert mode distinguishes nulls
lpi_changes_res lpix YG Changing line pitch changes resolution
memory_above da da Display may be retained above the screen
memory_below db db Display may be retained below the screen
move_insert_mode mir mi Safe to move while in insert mode
move_standout_mode msgr ms Safe to move in standout modes
needs_xon_xoff nxon nx Padding won't work, xon/xoff required
no_esc_ctlc xsb xb Beehive (f1=escape, f2=ctrl C)
no_pad_char npc NP Pad character doesn't exist
non_dest_scroll_region ndscr ND Scrolling region is nondestructive
non_rev_rmcup nrrmc NR smcup does not reverse rmcup
over_strike os os Terminal overstrikes on hard-copy terminal
prtr_silent mc5i 5i Printer won't echo on screen
row_addr_glitch xvpa YD Only positive motion for vpa/mvpa caps
semi_auto_right_margin sam YE Printing in last column causes cr
status_line_esc_ok eslok es Escape can be used on the status line
tilde_glitch hz hz Hazeltine; can't print tilde (~)
transparent_underline ul ul Underline character overstrikes
xon_xoff xon xo Terminal uses xon/xoff handshaking

 Numbers

Cap- Term-
Variable name cap Description
bit_image_entwining bitwin Yo Number of passes for each bit-map row
bit_image_type bitype Yp Type of bit image device
buffer_capacity bufsz Ya Number of bytes buffered before printing
buttons btns BT Number of buttons on the mouse
columns cols co Number of columns in a line
dot_horz_spacing spinh Yc Spacing of dots horizontally in dots per inch
dot_vert_spacing spinv Yb Spacing of pins vertically in pins per inch
init_tabs it it Tabs initially every # spaces
label_height lh lh Number of rows in each label
label_width lw lw Number of columns in each label
lines lines li Number of lines on a screen or a page
lines_of_memory lm lm Lines of memory if > lines; 0 means varies
max_attributes ma ma Maximum combined video attributes terminal can display
magic_cookie_glitch xmc sg Number of blank characters left by smso or rmso
max_colors colors Co Maximum number of colours on the screen
max_micro_address maddr Yd Maximum value in micro_..._address
max_micro_jump mjump Ye Maximum value in parm_..._micro
max_pairs pairs pa Maximum number of colour-pairs on the screen
maximum_windows wnum MW Maximum number of definable windows
micro_col_size mcs Yf Character step size when in micro mode
micro_line_size mls Yg Line step size when in micro mode
no_color_video ncv NC Video attributes that can't be used with colours
num_labels nlab Nl Number of labels on screen (start at 1)
number_of_pins npins Yh Number of pins in print-head
output_res_char orc Yi Horizontal resolution in units per character
output_res_line orl Yj Vertical resolution in units per line
output_res_horz_inch orhi Yk Horizontal resolution in units per inch
output_res_vert_inch orvi Yl Vertical resolution in units per inch
padding_baud_rate pb pb Lowest baud rate where padding needed
print_rate cps Ym Print rate in characters per second
virtual_terminal vt vt Virtual terminal number
wide_char_size widcs Yn Character step size when in double-wide mode
width_status_line wsl ws Number of columns in status line

 Strings

Cap- Term-
Variable name cap Description
acs_chars acsc ac Graphic charset pairs aAbBcC
alt_scancode_esc scesa S8 Alternate escape for scancode emulation
(default is for VT100)
back_tab cbt bt Back tab
bell bel bl Audible signal (bell)
bit_image_carriage_return bicr Yv Move to beginning of same row
bit_image_newline binel Zz Move to next row of the bit image
bit_image_repeat birep Xy Repeat bit-image cell #1 #2 times
carriage_return cr cr Carriage return
change_char_pitch cpi ZA Change number of characters per inch
change_line_pitch lpi ZB Change number of lines per inch
change_res_horz chr ZC Change horizontal resolution
change_res_vert cvr ZD Change vertical resolution
change_scroll_region csr cs Change to lines #1 through #2 (VT100)
char_padding rmp rP Like ip but when in replace mode
char_set_names csnm Zy Returns a list of character set names
clear_all_tabs tbc ct Clear all tab stops
clear_margins mgc MC Clear all margins (top, bottom,
and sides)
clear_screen clear cl Clear screen and home cursor
clr_bol el1 cb Clear to beginning of line, inclusive
clr_eol el ce Clear to end of line
clr_eos ed cd Clear to end of display
code_set_init csin ci Init sequence for multiple codesets
color_names colornm Yw Give name for colour #1
column_address hpa ch Set horizontal position to absolute #1
command_character cmdch CC Terminal settable cmd character
in prototype
create_window cwin Define win #1 to go from #2,#3 to #4,#5
cursor_address cup cm Move to row #1 col #2
cursor_down cud1 do Down one line
cursor_home home ho Home cursor (if no cup)
cursor_invisible civis vi Make cursor invisible
cursor_left cub1 le Move left one space.
cursor_mem_address mrcup CM Memory relative cursor addressing
cursor_normal cnorm ve Make cursor appear normal
(undo vs/vi)
cursor_right cuf1 nd Non-destructive space (cursor or
carriage right)
cursor_to_ll ll ll Last line, first column (if no cup)
cursor_up cuu1 up Upline (cursor up)
cursor_visible cvvis vs Make cursor very visible
define_bit_image_region defbi Yx Define rectangular bit-image region
define_char defc ZE Define a character in a character set
delete_character dch1 dc Delete character
delete_line dl1 dl Delete line
device_type devt dv Indicate language/codeset support
dial_phone dial DI Dial phone number #1
dis_status_line dsl ds Disable status line
display_clock dclk DK Display time-of-day clock
display_pc_char dispc S1 Display PC character
down_half_line hd hd Half-line down (forward 1/2 linefeed)
ena_acs enacs eA Enable alternate character set
end_bit_image_region endbi Yy End a bit-image region
enter_alt_charset_mode smacs as Start alternate character set
enter_am_mode smam SA Turn on automatic margins
enter_blink_mode blink mb Turn on blinking
enter_bold_mode bold md Turn on bold (extra bright) mode
enter_ca_mode smcup ti String to begin programs that use cup
enter_delete_mode smdc dm Delete mode (enter)
enter_dim_mode dim mh Turn on half-bright mode
enter_doublewide_mode swidm ZF Enable double wide printing
enter_draft_quality sdrfq ZG Set draft quality print
enter_horizontal_hl_mode ehhlm Turn on horizontal highlight mode
enter_insert_mode smir im Insert mode (enter)
enter_italics_mode sitm ZH Enable italics
enter_left_hl_mode elhlm Turn on left highlight mode
enter_leftward_mode slm ZI Enable leftward carriage motion
enter_low_hl_mode elohlm Turn on low highlight mode
enter_micro_mode smicm ZJ Enable micro motion capabilities
enter_near_letter_quality snlq ZK Set near-letter quality print
enter_normal_quality snrmq ZL Set normal quality print
enter_pc_charset_mode smpch S2 Enter PC character display mode
enter_protected_mode prot mp Turn on protected mode
enter_reverse_mode rev mr Turn on reverse video mode
enter_right_hl_mode erhlm Turn on right highlight mode
enter_scancode_mode smsc S4 Enter PC scancode mode
enter_secure_mode invis mk Turn on blank mode (characters invisible)
enter_shadow_mode sshm ZM Enable shadow printing
enter_standout_mode smso so Begin standout mode
enter_subscript_mode ssubm ZN Enable subscript printing
enter_superscript_mode ssupm ZO Enable superscript printing
enter_top_hl_mode ethlm Turn on top highlight mode
enter_underline_mode smul us Start underscore mode
enter_upward_mode sum ZP Enable upward carriage motion
enter_vertical_hl_mode evhlm Turn on vertical highlight mode
enter_xon_mode smxon SX Turn on xon/xoff handshaking
erase_chars ech ec Erase #1 characters
exit_alt_charset_mode rmacs ae End alternate character set
exit_am_mode rmam RA Turn off automatic margins
exit_attribute_mode sgr0 me Turn off all attributes
exit_ca_mode rmcup te String to end programs that use cup
exit_delete_mode rmdc ed End delete mode
exit_doublewide_mode rwidm ZQ Disable double wide printing
exit_insert_mode rmir ei End insert mode
exit_italics_mode ritm ZR Disable italics
exit_leftward_mode rlm ZS Enable rightward (normal)
carriage motion
exit_micro_mode rmicm ZT Disable micro motion capabilities
exit_pc_charset_mode rmpch S3 Disable PC character display mode
exit_scancode_mode rmsc S5 Disable PC scancode mode
exit_shadow_mode rshm ZU Disable shadow printing
exit_standout_mode rmso se End standout mode
exit_subscript_mode rsubm ZV Disable subscript printing
exit_superscript_mode rsupm ZW Disable superscript printing
exit_underline_mode rmul ue End underscore mode
exit_upward_mode rum ZX Enable downward (normal)
carriage motion
exit_xon_mode rmxon RX Turn off xon/xoff handshaking
fixed_pause pause PA Pause for 2-3 seconds
flash_hook hook fh Flash the switch hook
flash_screen flash vb Visible bell (may move cursor)
form_feed ff ff Hardcopy terminal page eject
from_status_line fsl fs Return from status line
get_mouse getm Gm Curses should get button events
goto_window wingo WG Go to window #1
hangup hup HU Hang-up phone
init_1string is1 i1 Terminal or printer initialisation string
init_2string is2 is Terminal or printer initialisation string
init_3string is3 i3 Terminal or printer initialisation string
init_file if if Name of initialisation file
init_prog iprog iP Path name of program for initialisation
initialize_color initc IC Set colour #1 to RGB #2, #3, #4
initialize_pair initp Ip Set colour-pair #1 to fg #2, bg #3
insert_character ich1 ic Insert character
insert_line il1 al Add new blank line
insert_padding ip ip Insert pad after character inserted

The "key_" strings are sent by specific keys. The "key_" descriptions include the macro, defined in <curses.h>, for the code returned by getch() when the key is pressed (see getch()).

Cap- Term-
Variable name cap Description
key_a1 ka1 K1 upper left of keypad
key_a3 ka3 K3 upper right of keypad
key_b2 kb2 K2 center of keypad
key_backspace kbs kb sent by backspace key
key_beg kbeg 1
key_btab kcbt kB sent by back-tab key
key_c1 kc1 K4 lower left of keypad
key_c3 kc3 K5 lower right of keypad
key_cancel kcan 2
key_catab ktbc ka sent by clear-all-tabs key
key_clear kclr kC sent by clear-screen or erase key
key_close kclo 3
key_command kcmd 4
key_copy kcpy 5
key_create kcrt 6
key_ctab kctab kt sent by clear-tab key
key_dc kdch1 kD sent by delete-character key
key_dl kdl1 kL sent by delete-line key
key_down kcud1 kd sent by terminal down-arrow key
key_eic krmir kM sent by rmir or smir in insert mode
key_end kend 7
key_enter kent 8
key_eol kel kE sent by clear-to-end-of-line key
key_eos ked kS sent by clear-to-end-of-screen key
key_exit kext 9
key_f0 kf0 k0 sent by function key f0
key_f1 kf1 k1 sent by function key f1
. . . .
. . . .
. . . .
key_f62 kf62 Fq sent by function key f62
key_f63 kf63 Fr sent by function key f63
key_find kfnd 0
key_help khlp %1 sent by help key
key_home khome kh sent by home key
key_ic kich1 kI sent by ins-char/enter ins-mode key
key_il kil1 kA sent by insert-line key
key_left kcub1 kl sent by terminal left-arrow key
key_ll kll kH sent by home-down key
key_mark kmrk %2 sent by mark key
key_message kmsg %3 sent by message key
key_mouse kmous Km 0631, Mouse event has occured
key_move kmov %4 sent by move key
key_next knxt %5 sent by next-object key
key_npage knp kN sent by next-page key
key_open kopn %6 sent by open key
key_options kopt %7 sent by options key
key_ppage kpp kP sent by previous-page key
key_previous kprv %8 sent by previous-object key
key_print kprt %9 sent by print or copy key
key_redo krdo %0 sent by redo key
key_reference kref &1 sent by ref(erence) key
key_refresh krfr &2 sent by refresh key
key_replace krpl &3 sent by replace key
key_restart krst &4 sent by restart key
key_resume kres &5 sent by resume key
key_right kcuf1 kr sent by terminal right-arrow key
key_save ksav &6 sent by save key
key_sbeg kBEG &9 sent by shifted beginning key
key_scancel kCAN &0 sent by shifted cancel key
key_scommand kCMD *1 sent by shifted command key
key_scopy kCPY *2 sent by shifted copy key
key_screate kCRT *3 sent by shifted create key
key_sdc kDC *4 sent by shifted delete-char key
key_sdl kDL *5 sent by shifted delete-line key
key_select kslt *6 sent by select key
key_send kEND *7 sent by shifted end key
key_seol kEOL *8 sent by shifted clear-line key
key_sexit kEXT *9 sent by shifted exit key
key_sf kind kF sent by scroll-forward/down key
key_sfind kFND *0 sent by shifted find key
key_shelp kHLP #1 sent by shifted help key
key_shome kHOM #2 sent by shifted home key
key_sic kIC #3 sent by shifted input key
key_sleft kLFT #4 sent by shifted left-arrow key
key_smessage kMSG %a sent by shifted message key
key_smove kMOV %b sent by shifted move key
key_snext kNXT %c sent by shifted next key
key_soptions kOPT %d sent by shifted options key
key_sprevious kPRV %e sent by shifted prev key
key_sprint kPRT %f sent by shifted print key
key_sr kri kR sent by scroll-backward/up key
key_sredo kRDO %g sent by shifted redo key
key_sreplace kRPL %h sent by shifted replace key
key_sright kRIT %i sent by shifted right-arrow key
key_srsume kRES %j sent by shifted resume key
key_ssave kSAV !1 sent by shifted save key
key_ssuspend kSPD !2 sent by shifted suspend key
key_stab khts kT sent by set-tab key
key_sundo kUND !3 sent by shifted undo key
key_suspend kspd &7 sent by suspend key
key_undo kund &8 sent by undo key
key_up kcuu1 ku sent by terminal up-arrow key
keypad_local rmkx ke Out of "keypad-transmit" mode
keypad_xmit smkx ks Put terminal in "keypad-transmit" mode
lab_f0 lf0 l0 Labels on function key f0 if not f0
lab_f1 lf1 l1 Labels on function key f1 if not f1
lab_f2 lf2 l2 Labels on function key f2 if not f2
lab_f3 lf3 l3 Labels on function key f3 if not f3
lab_f4 lf4 l4 Labels on function key f4 if not f4
lab_f5 lf5 l5 Labels on function key f5 if not f5
lab_f6 lf6 l6 Labels on function key f6 if not f6
lab_f7 lf7 l7 Labels on function key f7 if not f7
lab_f8 lf8 l8 Labels on function key f8 if not f8
lab_f9 lf9 l9 Labels on function key f9 if not f9
lab_f10 lf10 la Labels on function key f10 if not f10
label_format fln Lf Label format
label_off rmln LF Turn off soft labels
label_on smln LO Turn on soft labels
meta_off rmm mo Turn off "meta mode"
meta_on smm mm Turn on "meta mode" (8th bit)
micro_column_address mhpa ZY Like column_address for micro adjustment
micro_down mcud1 ZZ Like cursor_down for micro adjustment
micro_left mcub1 Za Like cursor_left for micro adjustment
micro_right mcuf1 Zb Like cursor_right for micro adjustment
micro_row_address mvpa Zc Like row_address for micro adjustment
micro_up mcuu1 Zd Like cursor_up for micro adjustment
mouse_info minfo Mi Mouse status information
newline nel nw Newline (behaves like cr followed by lf)
order_of_pins porder Ze Matches software bits to print-head pins
orig_colors oc oc Set all colour(-pair)s to the original ones
orig_pair op op Set default colour-pair to the original one
pad_char pad pc Pad character (rather than null)
parm_dch dch DC Delete #1 chars
parm_delete_line dl DL Delete #1 lines
parm_down_cursor cud DO Move down #1 lines.
parm_down_micro mcud Zf Like parm_down_cursor for micro adjust.
parm_ich ich IC Insert #1 blank chars
parm_index indn SF Scroll forward #1 lines.
parm_insert_line il AL Add #1 new blank lines
parm_left_cursor cub LE Move cursor left #1 spaces
parm_left_micro mcub Zg Like parm_left_cursor for micro adjust.
parm_right_cursor cuf RI Move right #1 spaces.
parm_right_micro mcuf Zh Like parm_right_cursor for micro adjust.
parm_rindex rin SR Scroll backward #1 lines.
parm_up_cursor cuu UP Move cursor up #1 lines.
parm_up_micro mcuu Zi Like parm_up_cursor for micro adjust.
pc_term_options pctrm S6 PC terminal options
pkey_key pfkey pk Prog funct key #1 to type string #2
pkey_local pfloc pl Prog funct key #1 to execute string #2
pkey_plab pfxl xl Prog key #1 to xmit string #2 and show string #3
pkey_xmit pfx px Prog funct key #1 to xmit string #2
plab_norm pln pn Prog label #1 to show string #2
print_screen mc0 ps Print contents of the screen
prtr_non mc5p pO Turn on the printer for #1 bytes
prtr_off mc4 pf Turn off the printer
prtr_on mc5 po Turn on the printer
pulse pulse PU Select pulse dialing
quick_dial qdial QD Dial phone number #1, without progress detection
remove_clock rmclk RC Remove time-of-day clock
repeat_char rep rp Repeat char #1 #2 times
req_for_input rfi RF Send next input char (for ptys)
req_mouse_pos reqmp RQ Request mouse position report
reset_1string rs1 r1 Reset terminal completely to sane modes
reset_2string rs2 r2 Reset terminal completely to sane modes
reset_3string rs3 r3 Reset terminal completely to sane modes
reset_file rf rf Name of file containing reset string
restore_cursor rc rc Restore cursor to position of last sc
row_address vpa cv Set vertical position to absolute #1
save_cursor sc sc Save cursor position
scancode_escape scesc S7 Escape for scancode emulation
scroll_forward ind sf Scroll text up
scroll_reverse ri sr Scroll text down
select_char_set scs Zj Select character set
set0_des_seq s0ds s0 Shift into codeset 0 (EUC set 0, ASCII)
set1_des_seq s1ds s1 Shift into codeset 1
set2_des_seq s2ds s2 Shift into codeset 2
set3_des_seq s3ds s3 Shift into codeset 3
set_a_attributes sgr1 Define second set of video attributes #1-#6
set_a_background setab AB Set background colour to #1 using ANSI escape
set_a_foreground setaf AF Set foreground colour to #1 using ANSI escape
set_attributes sgr sa Define first set of video attributes #1-#9
set_background setb Sb Set background colour to #1
set_bottom_margin smgb Zk Set bottom margin at current line
set_bottom_margin_parm smgbp Zl Set bottom margin at line #1 or #2
lines from bottom
set_clock sclk SC Set clock to hours (#1), minutes (#2), seconds (#3)
set_color_band setcolor Yz Change to ribbon colour #1
set_color_pair scp sp Set current colour pair to #1
set_foreground setf Sf Set foreground colour to #1
set_left_margin smgl ML Set left margin at current column
set_left_margin_parm smglp Zm Set left (right) margin at column #1 (#2)
set_lr_margin smglr ML Sets both left and right margins
set_page_length slines YZ Set page length to #1 lines
set_pglen_inch slength YI Set page length to #1 hundredth of an inch
set_right_margin smgr MR Set right margin at current column
set_right_margin_parm smgrp Zn Set right margin at column #1
set_tab hts st Set a tab in all rows, current column
set_tb_margin smgtb MT Sets both top and bottom margins
set_top_margin smgt Zo Set top margin at current line
set_top_margin_parm smgtp Zp Set top (bottom) margin at line #1 (#2)
set_window wind wi Current window is lines #1-#2 cols #3-#4
start_bit_image sbim Zq Start printing bit image graphics
start_char_set_def scsd Zr Start definition of a character set
stop_bit_image rbim Zs End printing bit image graphics
stop_char_set_def rcsd Zt End definition of a character set
subscript_characters subcs Zu List of "subscript-able" characters
superscript_characters supcs Zv List of "superscript-able" characters
tab ht ta Tab to next 8-space hardware tab stop
these_cause_cr docr Zw Printing any of these chars causes cr
to_status_line tsl ts Go to status line, col #1
tone tone TO Select touch tone dialing
user0 u0 u0 User string 0
user1 u1 u1 User string 1
user2 u2 u2 User string 2
user3 u3 u3 User string 3
user4 u4 u4 User string 4
user5 u5 u5 User string 5
user6 u6 u6 User string 6
user7 u7 u7 User string 7
user8 u8 u8 User string 8
user9 u9 u9 User string 9
underline_char uc uc Underscore one char and move past it
up_half_line hu hu Half-line up (reverse 1/2 linefeed)
wait_tone wait WA Wait for dial tone
xoff_character xoffc XF X-off character
xon_character xonc XN X-on character
zero_motion zerom Zx No motion for the subsequent character

 Sample Entry

The following entry describes the AT&T 610 terminal.

610|610bct|ATT610|att610|AT&T610;80column;98key keyboard,
	am, eslok, hs, mir, msgr, xenl, xon,
	cols#80, it#8, lh#2, lines#24, lw#8, nlab#8, wsl#80,
	acsc="aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
	bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z,
	civis=\E[?25l, clear=\E[H\E[J, cnorm=\E[?25h\E[?12l,
	cr=\r, csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\b,
	cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
	cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
	cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
	dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
	flash=\E[?5h$<200>\E[?5l, fsl=\E8, home=\E[H, ht=\t,
	ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED, .ind=\ED$<9>,
	invis=\E[8m,
	is1=\E[8;0 | \E[?3;4;5;13;15l\E[13;20l\E[?7h\E[12h\E(B\E)0,
	is2=\E[0m^O, is3=\E(B\E)0, kLFT=\E[\s@, kRIT=\E[\sA,
	kbs=^H, kcbt=\E[Z, kclr=\E[2J, kcub1=\E[D, kcud1=\E[B,
	kcuf1=\E[C, kcuu1=\E[A, kfP=\EOc, kfP0=\ENp,
	kfP1=\ENq, kfP2=\ENr, kfP3=\ENs, kfP4=\ENt, kfI=\EOd,
	kfB=\EOe, kf4=\EOf, kf=\EOg, kf6=\EOh, kf7=\EOi,
	kf8=\EOj, kf9=\ENo, khome=\E[H, kind=\E[S, kri=\E[T,
	ll=\E[24H, mc4=\E[?4i, mc5=\E[?5i, nel=\EE,
	pfxl=\E[%p1%d;%p2%l%02dq%?%p1%{9}%<%t\s\s\sF%p1%1d\s\s\s\s\s
\s\s\s\s\s\s%;%p2%s,
	pln=\E[%p1%d;0;0;0q%p2%:-16.16s, rc=\E8, rev=\E[7m,
	ri=\EM, rmacs=^O, rmir=\E[4l, rmln=\E[2p, rmso=\E[m,
	rmul=\E[m, rs2=\Ec\E[?3l, sc=\E7,
	sgr=\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p4%t;5%;
%?%p3%p1% | %t;7%;%?%p7%t;8%;m%?%p9%t^N%e^O%;,
	sgr0=\E[m^O, smacs=^N, smir=\E[4h, smln=\E[p,
	smso=\E[7m, smul=\E[4m, tsl=\E7\E[25;%i%p1%dx,

 Types of Capabilities in the Sample Entry

The sample entry shows the formats for the three types of terminfo capabilities: Boolean, numeric, and string. All capabilities specified in the terminfo source file must be followed by commas, including the last capability in the source file. In terminfo source files, capabilities are referenced by their capability names (as shown in the Capname column of the previous tables).
 Boolean Capabilities
A boolean capability is true if its Capname is present in the entry, and false if its Capname is not present in the entry.

The `@' character following a Capname is used to explicitly declare that a boolean capability is false, in situations described in .

 Numeric Capabilities
Numeric capabilities are followed by the character `#' and then a positive integer value. The example assigns the value 80 to the cols numeric capability by coding:

cols#80

Values for numeric capabilities may be specified in decimal, octal or hexadecimal, using normal C-language conventions.
 String Capabilities
String-valued capabilities such as el (clear to end of line sequence) are listed by the Capname, an `=', and a string ended by the next occurrence of a comma.

A delay in milliseconds may appear anywhere in such a capability, preceded by $ and enclosed in angle brackets, as in el=\EK$<3>. The Curses implementation achieves delays by outputting to the terminal an appropriate number of system-defined padding characters. The tputs() function provides delays when used to send such a capability to the terminal.

The delay can be any of the following: a number, a number followed by an asterisk, such as 5*, a number followed by a slash, such as 5/, or a number followed by both, such as 5*/.

The following notation is valid in terminfo source files for specifying special characters:

Notation Represents Character
^x Control-x (for any appropriate x)
\a Alert
\b Backspace
\E or \e An ESCAPE character
\f Form feed
\l Linefeed
\n Newline
\r Carriage return
\s Space
\t Tab
\^ Caret (^)
\\ Backslash (\)
\, Comma (,)
\: Colon (:)
\0 Null
\nnn Any character, specified as three octal digits
(See the XBD specification, General Terminal Interface  .)

 Commented-out Capabilities
Sometimes individual capabilities must be commented out. To do this, put a period before the capability name. For example, see the second ind in the example in Sample Entry . Note that capabilities are defined in a left-to-right order and, therefore, a prior definition will override a later definition.

UNIX ® is a registered Trademark of The Open Group.
Copyright © 1997 The Open Group
[ Main Index | XSH | XCU | XBD | XCURSES | XNS ]