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 $
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.
This document describes \%ncurses version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
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:
Suffix Example Meaning |
-nn aaa-60 Number of lines on the screen |
-np 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) |
For more on terminal naming conventions, see the term(7) manual page.
After the first field (giving the name(s) of the terminal entry), there should be one or more capability 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.
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.Any capability can be canceled, i.e., suppressed from the terminal entry, by following its name with \*(``@\*('' rather than a capability value.
A capability can be canceled by placing xx@ to the left of the use reference that imports it, where xx is the capability. For example, the entry
2621-nl, smkx@, rmkx@, use=2621,
defines a 2621-nl that does not have the smkx or rmkx 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.
An entry included via use can contain canceled capabilities, which have the same effect as if those cancels were inline in the using terminal entry.