terminfo(5) -- Linux man page



terminfo - terminal capability data base  




Terminfo is a data base describing terminals, used by screen-oriented programs such as nvi(1), rogue(1) and libraries such as curses(3X). Terminfo describes terminals by giving a set of capabilities which they have, by specifying how to perform screen operations, and by specifying padding requirements and initialization sequences.

Entries in terminfo consist of a sequence of `,' separated fields (embedded commas may be escaped 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 the terminal, 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 captoinfo and 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) should be chosen using the following conventions. The particular piece of hardware making up the terminal should have a root name, thus ``hp2621''. This name should not contain hyphens. Modes that the hardware can be in, or user preferences, should be 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 a terminfo description block and available to terminfo-using code. In each line 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 to the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses identical or very similar names). Semantics are also intended to match those of the specification.

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

Finally, the description field attempts to convey the semantics of the capability. 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 with parms as given (#i).
indicates that padding may vary in proportion to the number of lines affected
indicates the ith parameter.

These are the boolean capabilities:

has_print_wheeldaisyYC printer needs operator to change character set
has_status_linehshs has extra status line
hue_lightness_saturationhlshl terminal uses only HLS color notation (Tektronix)

insert mode distinguishes nulls