.\"***************************************************************************
.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
.\" Copyright 1998-2011,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: term.7,v 1.48 2024/03/16 15:35:01 tom Exp $
.TH term 7 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" Miscellaneous
.ie \n(.g \{\
.ds `` \(lq
.ds '' \(rq
.\}
.el \{\
.ie t .ds `` ``
.el   .ds `` ""
.ie t .ds '' ''
.el   .ds '' ""
.\}
.
.ds d @TERMINFO@
.SH NAME
term \-
conventions for naming terminal types
.\"SH SYNOPSIS
.SH DESCRIPTION
The environment variable \fITERM\fP should normally contain the type
name of the terminal,
console or display-device type you are using.
This information
is critical for all screen-oriented programs, including your editor and mailer.
.PP
A default \fITERM\fP value will be set on a per-line basis by either
\fB/etc/inittab\fP (e.g., System\-V-like Unices)
or \fB/etc/ttys\fP (BSD Unices).
This will nearly always suffice for workstation and microcomputer consoles.
.PP
If you use a dialup line, the type of device attached to it may vary.
Older Unix systems pre-set a very dumb terminal type
like \*(``dumb\*('' or \*(``dialup\*('' on dialup lines.
Newer ones may pre-set \*(``vt100\*('', reflecting the prevalence of DEC
VT100-compatible terminals and personal-computer emulators.
.PP
Modern telnets pass your \fITERM\fP environment variable from the local
side to the remote one.
There can be problems if the remote terminfo or termcap entry
for your type is not compatible with yours, but this situation is rare and
can almost always be avoided by explicitly exporting \*(``vt100\*(''
(assuming you are in fact using a VT100-superset console,
terminal, or terminal emulator).
.PP
In any case, you are free to override the system \fITERM\fP setting to
your taste in your shell profile.
The \fB@TSET@\fP(1) utility may be of assistance;
you can give it a set of rules for deducing or requesting a terminal type based
on the tty device and baud rate.
.PP
Setting your own \fITERM\fP value may also be useful if you have created
a custom entry incorporating options
(such as visual bell or reverse-video)
which you wish to override the system default type for your line.
.PP
Terminal type descriptions are stored as files of capability data underneath
\*d.
To browse a list of all terminal names recognized by the system, do
.sp
        @TOE@ | more
.sp
from your shell.
These capability files are in a binary format optimized for
retrieval speed (unlike the old text-based \fBtermcap\fP format they replace);
to examine an entry, you must use the \fB@INFOCMP@\fP(1M) command.
Invoke it as follows:
.sp
        @INFOCMP@ \fIentry_name\fP
.sp
where \fIentry_name\fP is the name of the type you wish to examine (and the
name of its capability file the subdirectory of \*d named for its first
letter).
This command dumps a capability file in the text format described by
\fBterminfo\fP(5).
.PP
The first line of a \fBterminfo\fP(5) description gives the names by which
terminfo knows a terminal,
separated by \*(``|\*('' (pipe-bar) characters with the last
name field terminated by a comma.
The first name field is the type's
\fIprimary name\fP,
and is the one to use when setting \fITERM\fP.
The last name field
(if distinct from the first)
is actually a description of the
terminal type (it may contain blanks; the others must be single words).
Name
fields between the first and last (if present) are aliases for the terminal,
usually historical names retained for compatibility.
.PP
There are some conventions for how to choose terminal primary names that help
keep them informative and unique.
Here is a step-by-step guide to naming
terminals that also explains how to parse them:
.PP
First, choose a root name.
The root will consist of a lower-case letter
followed by up to seven lower-case letters or digits.
You need to avoid using
punctuation characters in root names, because they are used and interpreted as
filenames and shell meta-characters (such as !, $, *, ?, etc.) embedded in them
may cause odd and unhelpful behavior.
The slash (/), or any other character
that may be interpreted by anyone's file system (\e, $, [, ]), is especially
dangerous (terminfo is platform-independent, and choosing names with special
characters could someday make life difficult for users of a future port).
The
dot (.) character is relatively safe as long as there is at most one per root
name; some historical terminfo names use it.
.PP
The root name for a terminal or workstation console type should almost always
begin with a vendor prefix (such as \fBhp\fP for Hewlett-Packard, \fBwy\fP for
Wyse, or \fBatt\fP for AT&T terminals), or a common name of the terminal line
(\fBvt\fP for the VT series of terminals from DEC, or \fBsun\fP for Sun
Microsystems workstation consoles, or \fBregent\fP for the ADDS Regent series.
You can list the terminfo tree to see what prefixes are already in common use.
The root name prefix should be followed when appropriate by a model number;
thus \fBvt100\fP, \fBhp2621\fP, \fBwy50\fP.
.PP
The root name for a PC-Unix console type should be the OS name,
i.e., \fBlinux\fP, \fBbsdos\fP, \fBfreebsd\fP, \fBnetbsd\fP.  It should
\fInot\fP be \fBconsole\fP or any other generic that might cause confusion in a
multi-platform environment!  If a model number follows, it should indicate
either the OS release level or the console driver release level.
.PP
The root name for a terminal emulator (assuming it does not fit one of the
standard ANSI or vt100 types) should be the program name or a readily
recognizable abbreviation of it (i.e., \fBversaterm\fP, \fBctrm\fP).
.PP
Following the root name, you may add any reasonable number of hyphen-separated
feature suffixes.
.TP 5
2p
Has two pages of memory.
Likewise 4p, 8p, etc.
.TP 5
mc
Magic-cookie.
Some terminals (notably older Wyses) can only support one
attribute without magic-cookie lossage.
Their base entry is usually paired
with another that has this suffix and uses magic cookies to support multiple
attributes.
.TP 5
\-am
Enable auto-margin (right-margin wraparound).
.TP 5
\-m
Mono mode \- suppress color support.
.TP 5
\-na
No arrow keys \- termcap ignores arrow keys which are actually there on the
terminal, so the user can use the arrow keys locally.
.TP 5
\-nam
No auto-margin \- suppress am capability.
.TP 5
\-nl
No labels \- suppress soft labels.
.TP 5
\-nsl
No status line \- suppress status line.
.TP 5
\-pp
Has a printer port which is used.
.TP 5
\-rv
Terminal in reverse video mode (black on white).
.TP 5
\-s
Enable status line.
.TP 5
\-vb
Use visible bell (flash) rather than beep.
.TP 5
\-w
Wide; terminal is in 132-column mode.
.PP
Conventionally, if your terminal type is a variant intended to specify a
line height, that suffix should go first.
So, for a hypothetical FuBarCo
model 2317 terminal in 30-line mode with reverse video, best form would be
\fBfubar\-30\-rv\fP (rather than, say, \*(``fubar\-rv\-30\*('').
.PP
Terminal types that are written not as standalone entries, but rather as
components to be plugged into other entries via \fBuse\fP capabilities,
are distinguished by using embedded plus signs rather than dashes.
.PP
Commands which use a terminal type to control display often accept a \-T
option that accepts a terminal name argument.
Such programs should fall back
on the \fITERM\fP environment variable when no \-T option is specified.
.SH FILES
.TP
.I \*d
compiled terminal description database
.TP
.I /etc/inittab
tty line initialization (AT&T-like Unices)
.TP
.I /etc/ttys
tty line initialization (BSD-like Unices)
.SH PORTABILITY
For maximum compatibility with older System V Unices, names and aliases
should be unique within the first 14 characters.
.SH SEE ALSO
\fB\%curses\fP(3X),
\fB\%term\fP(5),
\fB\%terminfo\fP(5)
