| .\"*************************************************************************** |
| .\" Copyright 2018-2023,2024 Thomas E. Dickey * |
| .\" Copyright 1998-2016,2017 Free Software Foundation, Inc. * |
| .\" * |
| .\" 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. * |
| .\"*************************************************************************** |
| .\" |
| .\" $Id: terminfo.head,v 1.65 2024/04/20 21:14:00 tom Exp $ |
| .TH terminfo 5 2024-04-20 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "File formats" |
| .ie \n(.g \{\ |
| .ds `` \(lq |
| .ds '' \(rq |
| .ds ' \(aq |
| .ds ^ \(ha |
| .ds ~ \(ti |
| .\} |
| .el \{\ |
| .ie t .ds `` `` |
| .el .ds `` "" |
| .ie t .ds '' '' |
| .el .ds '' "" |
| .ds ' ' |
| .ds ^ ^ |
| .ds ~ ~ |
| .\} |
| . |
| .de bP |
| .ie n .IP \(bu 4 |
| .el .IP \(bu 2 |
| .. |
| . |
| .ds d @TERMINFO@ |
| .SH NAME |
| \fB\%terminfo\fP \- |
| terminal capability database |
| .SH SYNOPSIS |
| \*d/*/* |
| .SH DESCRIPTION |
| .I Terminfo |
| is a database describing terminals, |
| used by screen-oriented programs such as |
| \fBnvi\fP(1), |
| \fBlynx\fP(1), |
| \fBmutt\fP(1), |
| and other curses applications, |
| using high-level calls to libraries such as \fBcurses\fP(3X). |
| It is also used via low-level calls by non-curses applications |
| which may be screen-oriented (such as \fB@CLEAR@\fP(1)) |
| or non-screen (such as \fB@TABS@\fP(1)). |
| .PP |
| .I 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. |
| .PP |
| This document describes |
| .I \%ncurses |
| version @NCURSES_MAJOR@.@NCURSES_MINOR@ |
| (patch @NCURSES_PATCH@). |
| .SS "\fIterminfo\fP Entry Syntax" |
| Entries in |
| .I terminfo |
| consist of a sequence of fields: |
| .bP |
| Each field ends with a comma \*(``,\*('' |
| (embedded commas may be |
| escaped with a backslash or written as \*(``\e054\*(''). |
| .bP |
| White space between fields is ignored. |
| .bP |
| The first field in a \fIterminfo\fP entry begins in the first column. |
| .bP |
| Newlines and leading whitespace (spaces or tabs) |
| may be used for formatting entries for readability. |
| These are removed from parsed entries. |
| .IP |
| The \fB@INFOCMP@\fP \fB\-f\fP and \fB\-W\fP options rely on this to |
| format if-then-else expressions, |
| or to enforce maximum line-width. |
| The resulting formatted terminal description can be read by \fB@TIC@\fP. |
| .bP |
| The first field for each terminal gives the names which are known for the |
| terminal, separated by \*(``|\*('' characters. |
| .IP |
| The first name given is the most common abbreviation for the terminal |
| (its primary name), |
| the last name given should be a long name fully identifying the terminal |
| (see \fBlongname\fP(3X)), |
| and all others are treated as synonyms (aliases) for the primary terminal name. |
| .IP |
| X/Open Curses advises that 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. |
| .IP |
| This implementation is not so strict; |
| it allows mixed case in the primary name and aliases. |
| If the last name has no embedded blanks, |
| it allows that to be both an alias and a verbose name |
| (but will warn about this ambiguity). |
| .bP |
| Lines beginning with a \*(``#\*('' in the first column are treated as comments. |
| .IP |
| While comment lines are valid at any point, the output of \fB@CAPTOINFO@\fP |
| and \fB@INFOTOCAP@\fP (aliases for \fB@TIC@\fP) |
| will move comments so they occur only between entries. |
| .PP |
| 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: |
| .PP |
| .TS |
| center; |
| Lb Lb Lb |
| L L Lx. |
| Suffix Example Meaning |
| _ |
| \-\fInn\fP aaa\-60 Number of lines on the screen |
| \-\fIn\fPp c100\-4p Number of pages of memory |
| \-am vt100\-am With automargins (usually the default) |
| \-m ansi\-m Mono mode; suppress color |
| \-mc wy30\-mc Magic cookie; spaces when highlighting |
| \-na c100\-na No arrow keys (leave them in local) |
| \-nam vt100\-nam Without automatic margins |
| \-nl hp2621\-nl No status line |
| \-ns hp2626\-ns No status line |
| \-rv c100\-rv Reverse video |
| \-s vt100\-s Enable status line |
| \-vb wy370\-vb Use visible bell instead of beep |
| \-w vt100\-w Wide mode (> 80 columns, usually 132) |
| .TE |
| .PP |
| For more on terminal naming conventions, see the \fBterm\fP(7) manual page. |
| .SS "\fIterminfo\fP Capabilities Syntax" |
| The terminfo entry consists of several \fIcapabilities\fP, |
| i.e., features that the terminal has, |
| or methods for exercising the terminal's features. |
| .PP |
| After the first field (giving the name(s) of the terminal entry), |
| there should be one or more \fIcapability\fP fields. |
| These are Boolean, numeric or string names with corresponding values: |
| .bP |
| Boolean capabilities are true when present, false when absent. |
| There is no explicit value for Boolean capabilities. |
| .bP |
| Numeric capabilities have a \*(``#\*('' following the name, |
| then an unsigned decimal integer value. |
| .bP |
| String capabilities have a \*(``=\*('' following the name, |
| then an string of characters making up the capability value. |
| .IP |
| String capabilities can be split into multiple lines, |
| just as the fields comprising a terminal entry can be |
| split into multiple lines. |
| While blanks between fields are ignored, |
| blanks embedded within a string value are retained, |
| except for leading blanks on a line. |
| .PP |
| Any capability can be \fIcanceled\fP, |
| i.e., suppressed from the terminal entry, |
| by following its name with \*(``@\*('' |
| rather than a capability value. |
| .SS "Similar Terminals" |
| If there are two very similar terminals, one (the variant) can be defined as |
| being just like the other (the base) with certain exceptions. |
| In the |
| definition of the variant, the string capability \fBuse\fP can be given with |
| the name of the base terminal: |
| .bP |
| The capabilities given before |
| .B use |
| override those in the base type named by |
| .BR use . |
| .bP |
| If there are multiple \fBuse\fP capabilities, they are merged in reverse order. |
| That is, the rightmost \fBuse\fP reference is processed first, then the one to |
| its left, and so forth. |
| .bP |
| Capabilities given explicitly in the entry override |
| those brought in by \fBuse\fP references. |
| .PP |
| A capability can be canceled by placing \fBxx@\fP to the left of the |
| use reference that imports it, where \fIxx\fP is the capability. |
| For example, the entry |
| .RS |
| .PP |
| 2621\-nl, smkx@, rmkx@, use=2621, |
| .RE |
| .PP |
| defines a 2621\-nl that does not have the \fBsmkx\fP or \fBrmkx\fP capabilities, |
| and hence does not turn on the function key labels when in visual mode. |
| This is useful for different modes for a terminal, or for different |
| user preferences. |
| .PP |
| An entry included via \fBuse\fP can contain canceled capabilities, |
| which have the same effect as if those cancels were inline in the |
| using terminal entry. |
| .SS "Predefined Capabilities" |
| .\" Head of terminfo man page ends here |
| .ps -1 |