| .\"*************************************************************************** |
| .\" Copyright (c) 1998-2010,2011 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.23 2011/12/17 23:32:17 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 (e.g., 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 \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 \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). |