.\"***************************************************************************
.\" Copyright (c) 1998-2006,2007 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.18 2007/06/02 20:40:07 tom Exp $
.TH term 7
.ds n 5
.ds d @TERMINFO@
.SH NAME
term \- conventions for naming terminal types
.SH DESCRIPTION
.PP
The environment variable \fBTERM\fR 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 \fBTERM\fR value will be set on a per-line basis by either
\fB/etc/inittab\fR (Linux and System-V-like UNIXes) or \fB/etc/ttys\fR (BSD
UNIXes).  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 \fBTERM\fR 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 \fBTERM\fR setting to your
taste in your shell profile.  The \fBtset\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 \fBTERM\fR 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\fR format they replace);
to examine an entry, you must use the \fB@INFOCMP@\fR(1M) command.
Invoke it as follows:
.sp
	@INFOCMP@ \fIentry-name\fR
.sp
where \fIentry-name\fR 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\fR(\*n).
.PP
The first line of a \fBterminfo\fR(\*n) 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\fR, and is the one to use when setting \fBTERM\fR.  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\fR for Hewlett-Packard, \fBwy\fR for
Wyse, or \fBatt\fR for AT&T terminals), or a common name of the terminal line
(\fBvt\fR for the VT series of terminals from DEC, or \fBsun\fR for Sun
Microsystems workstation consoles, or \fBregent\fR 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\fR, \fBhp2621\fR, \fBwy50\fR.
.PP
The root name for a PC-Unix console type should be the OS name,
i.e. \fBlinux\fR, \fBbsdos\fR, \fBfreebsd\fR, \fBnetbsd\fR.  It should
\fInot\fR be \fBconsole\fR 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\fR, \fBctrm\fR).
.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\fR (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 \fBTERM\fR environment variable when no -T option is specified.
.SH PORTABILITY
For maximum compatibility with older System V UNIXes, names and aliases
should be unique within the first 14 characters.
.SH FILES
.TP 5
\*d/?/*
compiled terminal capability data base
.TP 5
/etc/inittab
tty line initialization (AT&T-like UNIXes)
.TP 5
/etc/ttys
tty line initialization (BSD-like UNIXes)
.SH SEE ALSO
\fBcurses\fR(3X), \fBterminfo\fR(\*n), \fBterm\fR(\*n).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End:
