Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 1 | .\"*************************************************************************** |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 2 | .\" Copyright 2018-2023,2024 Thomas E. Dickey * |
| 3 | .\" Copyright 1998-2011,2017 Free Software Foundation, Inc. * |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 4 | .\" * |
| 5 | .\" Permission is hereby granted, free of charge, to any person obtaining a * |
| 6 | .\" copy of this software and associated documentation files (the * |
| 7 | .\" "Software"), to deal in the Software without restriction, including * |
| 8 | .\" without limitation the rights to use, copy, modify, merge, publish, * |
| 9 | .\" distribute, distribute with modifications, sublicense, and/or sell * |
| 10 | .\" copies of the Software, and to permit persons to whom the Software is * |
| 11 | .\" furnished to do so, subject to the following conditions: * |
| 12 | .\" * |
| 13 | .\" The above copyright notice and this permission notice shall be included * |
| 14 | .\" in all copies or substantial portions of the Software. * |
| 15 | .\" * |
| 16 | .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * |
| 17 | .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * |
| 18 | .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * |
| 19 | .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * |
| 20 | .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * |
| 21 | .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * |
| 22 | .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * |
| 23 | .\" * |
| 24 | .\" Except as contained in this notice, the name(s) of the above copyright * |
| 25 | .\" holders shall not be used in advertising or otherwise to promote the * |
| 26 | .\" sale, use or other dealings in this Software without prior written * |
| 27 | .\" authorization. * |
| 28 | .\"*************************************************************************** |
| 29 | .\" |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 30 | .\" $Id: term.7,v 1.48 2024/03/16 15:35:01 tom Exp $ |
| 31 | .TH term 7 2024-03-16 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" Miscellaneous |
| 32 | .ie \n(.g \{\ |
| 33 | .ds `` \(lq |
| 34 | .ds '' \(rq |
| 35 | .\} |
| 36 | .el \{\ |
| 37 | .ie t .ds `` `` |
| 38 | .el .ds `` "" |
| 39 | .ie t .ds '' '' |
| 40 | .el .ds '' "" |
| 41 | .\} |
| 42 | . |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 43 | .ds d @TERMINFO@ |
| 44 | .SH NAME |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 45 | term \- |
| 46 | conventions for naming terminal types |
| 47 | .\"SH SYNOPSIS |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 48 | .SH DESCRIPTION |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 49 | The environment variable \fITERM\fP should normally contain the type |
| 50 | name of the terminal, |
| 51 | console or display-device type you are using. |
| 52 | This information |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 53 | is critical for all screen-oriented programs, including your editor and mailer. |
| 54 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 55 | A default \fITERM\fP value will be set on a per-line basis by either |
| 56 | \fB/etc/inittab\fP (e.g., System\-V-like Unices) |
| 57 | or \fB/etc/ttys\fP (BSD Unices). |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 58 | This will nearly always suffice for workstation and microcomputer consoles. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 59 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 60 | If you use a dialup line, the type of device attached to it may vary. |
| 61 | Older Unix systems pre-set a very dumb terminal type |
| 62 | like \*(``dumb\*('' or \*(``dialup\*('' on dialup lines. |
| 63 | Newer ones may pre-set \*(``vt100\*('', reflecting the prevalence of DEC |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 64 | VT100-compatible terminals and personal-computer emulators. |
| 65 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 66 | Modern telnets pass your \fITERM\fP environment variable from the local |
| 67 | side to the remote one. |
| 68 | There can be problems if the remote terminfo or termcap entry |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 69 | for your type is not compatible with yours, but this situation is rare and |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 70 | can almost always be avoided by explicitly exporting \*(``vt100\*('' |
| 71 | (assuming you are in fact using a VT100-superset console, |
| 72 | terminal, or terminal emulator). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 73 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 74 | In any case, you are free to override the system \fITERM\fP setting to |
| 75 | your taste in your shell profile. |
| 76 | The \fB@TSET@\fP(1) utility may be of assistance; |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 77 | you can give it a set of rules for deducing or requesting a terminal type based |
| 78 | on the tty device and baud rate. |
| 79 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 80 | Setting your own \fITERM\fP value may also be useful if you have created |
| 81 | a custom entry incorporating options |
| 82 | (such as visual bell or reverse-video) |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 83 | which you wish to override the system default type for your line. |
| 84 | .PP |
| 85 | Terminal type descriptions are stored as files of capability data underneath |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 86 | \*d. |
| 87 | To browse a list of all terminal names recognized by the system, do |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 88 | .sp |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 89 | @TOE@ | more |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 90 | .sp |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 91 | from your shell. |
| 92 | These capability files are in a binary format optimized for |
| 93 | retrieval speed (unlike the old text-based \fBtermcap\fP format they replace); |
| 94 | to examine an entry, you must use the \fB@INFOCMP@\fP(1M) command. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 95 | Invoke it as follows: |
| 96 | .sp |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 97 | @INFOCMP@ \fIentry_name\fP |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 98 | .sp |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 99 | where \fIentry_name\fP is the name of the type you wish to examine (and the |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 100 | name of its capability file the subdirectory of \*d named for its first |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 101 | letter). |
| 102 | This command dumps a capability file in the text format described by |
| 103 | \fBterminfo\fP(5). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 104 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 105 | The first line of a \fBterminfo\fP(5) description gives the names by which |
| 106 | terminfo knows a terminal, |
| 107 | separated by \*(``|\*('' (pipe-bar) characters with the last |
| 108 | name field terminated by a comma. |
| 109 | The first name field is the type's |
| 110 | \fIprimary name\fP, |
| 111 | and is the one to use when setting \fITERM\fP. |
| 112 | The last name field |
| 113 | (if distinct from the first) |
| 114 | is actually a description of the |
| 115 | terminal type (it may contain blanks; the others must be single words). |
| 116 | Name |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 117 | fields between the first and last (if present) are aliases for the terminal, |
| 118 | usually historical names retained for compatibility. |
| 119 | .PP |
| 120 | There are some conventions for how to choose terminal primary names that help |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 121 | keep them informative and unique. |
| 122 | Here is a step-by-step guide to naming |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 123 | terminals that also explains how to parse them: |
| 124 | .PP |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 125 | First, choose a root name. |
| 126 | The root will consist of a lower-case letter |
| 127 | followed by up to seven lower-case letters or digits. |
| 128 | You need to avoid using |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 129 | punctuation characters in root names, because they are used and interpreted as |
| 130 | filenames and shell meta-characters (such as !, $, *, ?, etc.) embedded in them |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 131 | may cause odd and unhelpful behavior. |
| 132 | The slash (/), or any other character |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 133 | that may be interpreted by anyone's file system (\e, $, [, ]), is especially |
| 134 | dangerous (terminfo is platform-independent, and choosing names with special |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 135 | characters could someday make life difficult for users of a future port). |
| 136 | The |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 137 | dot (.) character is relatively safe as long as there is at most one per root |
| 138 | name; some historical terminfo names use it. |
| 139 | .PP |
| 140 | The root name for a terminal or workstation console type should almost always |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 141 | begin with a vendor prefix (such as \fBhp\fP for Hewlett-Packard, \fBwy\fP for |
| 142 | Wyse, or \fBatt\fP for AT&T terminals), or a common name of the terminal line |
| 143 | (\fBvt\fP for the VT series of terminals from DEC, or \fBsun\fP for Sun |
| 144 | Microsystems workstation consoles, or \fBregent\fP for the ADDS Regent series. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 145 | You can list the terminfo tree to see what prefixes are already in common use. |
| 146 | The root name prefix should be followed when appropriate by a model number; |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 147 | thus \fBvt100\fP, \fBhp2621\fP, \fBwy50\fP. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 148 | .PP |
| 149 | The root name for a PC-Unix console type should be the OS name, |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 150 | i.e., \fBlinux\fP, \fBbsdos\fP, \fBfreebsd\fP, \fBnetbsd\fP. It should |
| 151 | \fInot\fP be \fBconsole\fP or any other generic that might cause confusion in a |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 152 | multi-platform environment! If a model number follows, it should indicate |
| 153 | either the OS release level or the console driver release level. |
| 154 | .PP |
| 155 | The root name for a terminal emulator (assuming it does not fit one of the |
| 156 | standard ANSI or vt100 types) should be the program name or a readily |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 157 | recognizable abbreviation of it (i.e., \fBversaterm\fP, \fBctrm\fP). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 158 | .PP |
| 159 | Following the root name, you may add any reasonable number of hyphen-separated |
| 160 | feature suffixes. |
| 161 | .TP 5 |
| 162 | 2p |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 163 | Has two pages of memory. |
| 164 | Likewise 4p, 8p, etc. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 165 | .TP 5 |
| 166 | mc |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 167 | Magic-cookie. |
| 168 | Some terminals (notably older Wyses) can only support one |
| 169 | attribute without magic-cookie lossage. |
| 170 | Their base entry is usually paired |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 171 | with another that has this suffix and uses magic cookies to support multiple |
| 172 | attributes. |
| 173 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 174 | \-am |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 175 | Enable auto-margin (right-margin wraparound). |
| 176 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 177 | \-m |
| 178 | Mono mode \- suppress color support. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 179 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 180 | \-na |
| 181 | No arrow keys \- termcap ignores arrow keys which are actually there on the |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 182 | terminal, so the user can use the arrow keys locally. |
| 183 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 184 | \-nam |
| 185 | No auto-margin \- suppress am capability. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 186 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 187 | \-nl |
| 188 | No labels \- suppress soft labels. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 189 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 190 | \-nsl |
| 191 | No status line \- suppress status line. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 192 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 193 | \-pp |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 194 | Has a printer port which is used. |
| 195 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 196 | \-rv |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 197 | Terminal in reverse video mode (black on white). |
| 198 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 199 | \-s |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 200 | Enable status line. |
| 201 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 202 | \-vb |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 203 | Use visible bell (flash) rather than beep. |
| 204 | .TP 5 |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 205 | \-w |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 206 | Wide; terminal is in 132-column mode. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 207 | .PP |
| 208 | Conventionally, if your terminal type is a variant intended to specify a |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 209 | line height, that suffix should go first. |
| 210 | So, for a hypothetical FuBarCo |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 211 | model 2317 terminal in 30-line mode with reverse video, best form would be |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 212 | \fBfubar\-30\-rv\fP (rather than, say, \*(``fubar\-rv\-30\*(''). |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 213 | .PP |
| 214 | Terminal types that are written not as standalone entries, but rather as |
| 215 | components to be plugged into other entries via \fBuse\fP capabilities, |
| 216 | are distinguished by using embedded plus signs rather than dashes. |
| 217 | .PP |
Steve Kondik | ae271bc | 2015-11-15 02:50:53 +0100 | [diff] [blame] | 218 | Commands which use a terminal type to control display often accept a \-T |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 219 | option that accepts a terminal name argument. |
| 220 | Such programs should fall back |
| 221 | on the \fITERM\fP environment variable when no \-T option is specified. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 222 | .SH FILES |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 223 | .TP |
| 224 | .I \*d |
| 225 | compiled terminal description database |
| 226 | .TP |
| 227 | .I /etc/inittab |
| 228 | tty line initialization (AT&T-like Unices) |
| 229 | .TP |
| 230 | .I /etc/ttys |
| 231 | tty line initialization (BSD-like Unices) |
| 232 | .SH PORTABILITY |
| 233 | For maximum compatibility with older System V Unices, names and aliases |
| 234 | should be unique within the first 14 characters. |
Amit Daniel Kachhap | e6a01f5 | 2011-07-20 11:45:59 +0530 | [diff] [blame] | 235 | .SH SEE ALSO |
micky387 | 9b9f5e7 | 2025-07-08 18:04:53 -0400 | [diff] [blame] | 236 | \fB\%curses\fP(3X), |
| 237 | \fB\%term\fP(5), |
| 238 | \fB\%terminfo\fP(5) |