[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    TERMCAP(5) manual page Table of Contents

Name

termcap - terminal capability database

Description

The termcap database is an obsolete facility for describing the capabilities of character-cell terminals and printers. It is retained only for capability with old programs; new ones should use the terminfo(5) database and associated libraries.

/etc/termcap is an ASCII file (the database master) that lists the capabilities of many different types of terminals. Programs can read termcap to find the particular escape codes needed to control the visual attributes of the terminal actually in use. (Other aspects of the terminal are handled by stty(1) .) The termcap database is indexed on the TERM environment variable.

Termcap entries must be defined on a single logical line, with aq\aq used to suppress the newline. Fields are separated by aq:aq. The first field of each entry starts at the left-hand margin, and contains a list of names for the terminal, separated by aq|aq.

The first subfield may (in BSD termcap entries from versions 4.3 and prior) contain a short name consisting of two characters. This short name may consist of capital or small letters. In 4.4BSD termcap entries this field is omitted.

The second subfield (first, in the newer 4.4BSD format) contains the name used by the environment variable TERM. It should be spelled in lowercase letters. Selectable hardware capabilities should be marked by appending a hyphen and a suffix to this name. See below for an example. Usual suffixes are w (more than 80 characters wide), am (automatic margins), nam (no automatic margins), and rv (reverse video display). The third subfield contains a long and descriptive name for this termcap entry.

Subsequent fields contain the terminal capabilities; any continued capability lines must be indented one tab from the left margin.

Although there is no defined order, it is suggested to write first boolean, then numeric, and then string capabilities, each sorted alphabetically without looking at lower or upper spelling. Capabilities of similar functions can be written in one line.


Example for:

Head line: vt|vt101|DEC VT 101 terminal in 80 character mode:\
Head line: Vt|vt101-w|DEC VT 101 terminal in (wide) 132 character mode:\
Boolean: :bs:\
Numeric: :co#80:\
String: :sr=\E[H:\

Boolean capabilities


5i    Printer will not echo on screen
am    Automatic margins which means automatic line wrap
bs    Control-H (8 dec.) performs a backspace
bw    Backspace on left margin wraps to previous line and right margin
da    Display retained above screen
db    Display retained below screen
eo    A space erases all characters at cursor position
es    Escape sequences and special characters work in status line
gn    Generic device
hc    This is a hardcopy terminal
HC    The cursor is hard to see when not on bottom line
hs    Has a status line
hz    Hazeltine bug, the terminal can not print tilde characters
in    Terminal inserts null bytes, not spaces, to fill whitespace
km    Terminal has a meta key
mi    Cursor movement works in insert mode
ms    Cursor movement works in standout/underline mode
NP    No pad character
NR    ti does not reverse te
nx    No padding, must use XON/XOFF
os    Terminal can overstrike
ul    Terminal underlines although it can not overstrike
xb    Beehive glitch, f1 sends ESCAPE, f2 sends ^C
xn    Newline/wraparound glitch
xo    Terminal uses xon/xoff protocol
xs    Text typed over standout text will be displayed in standout
xt    Teleray glitch, destructive tabs and odd standout mode

Numeric capabilities


co    Number of columns
dB    Delay in milliseconds for backspace on hardcopy terminals
dC    Delay in milliseconds for carriage return on hardcopy terminals
dF    Delay in milliseconds for form feed on hardcopy terminals
dN    Delay in milliseconds for new line on hardcopy terminals
dT    Delay in milliseconds for tabulator stop on hardcopy terminals
dV    Delay in milliseconds for vertical tabulator stop on
    hardcopy terminals
it    Difference between tab positions
lh    Height of soft labels
lm    Lines of memory
lw    Width of soft labels
li    Number of lines
Nl    Number of soft labels
pb    Lowest baud rate which needs padding
sg    Standout glitch
ug    Underline glitch
vt    virtual terminal number
ws    Width of status line if different from screen width

String capabilities


!1    shifted save key
!2    shifted suspend key
!3    shifted undo key
#1    shifted help key
#2    shifted home key
#3    shifted input key
#4    shifted cursor left key
%0    redo key
%1    help key
%2    mark key
%3    message key
%4    move key
%5    next-object key
%6    open key
%7    options key
%8    previous-object key
%9    print key
%a    shifted message key
%b    shifted move key
%c    shifted next key
%d    shifted options key
%e    shifted previous key
%f    shifted print key
%g    shifted redo key
%h    shifted replace key
%i    shifted cursor right key
%j    shifted resume key
&0    shifted cancel key
&1    reference key
&2    refresh key
&3    replace key
&4    restart key
&5    resume key
&6    save key
&7    suspend key
&8    undo key
&9    shifted begin key
*0    shifted find key
*1    shifted command key
*2    shifted copy key
*3    shifted create key
*4    shifted delete character
*5    shifted delete line
*6    select key
*7    shifted end key
*8    shifted clear line key
*9    shifted exit key
@0    find key
@1    begin key
@2    cancel key
@3    close key
@4    command key
@5    copy key
@6    create key
@7    end key
@8    enter/send key
@9    exit key
al    Insert one line
AL    Insert %1 lines
ac    Pairs of block graphic characters to map alternate character set
ae    End alternative character set
as    Start alternative character set for block graphic characters
bc    Backspace, if not ^H
bl    Audio bell
bt    Move to previous tab stop
cb    Clear from beginning of line to cursor
cc    Dummy command character
cd    Clear to end of screen
ce    Clear to end of line
ch    Move cursor horizontally only to column %1
cl    Clear screen and cursor home
cm    Cursor move to row %1 and column %2 (on screen)
CM    Move cursor to row %1 and column %2 (in memory)
cr    Carriage return
cs    Scroll region from line %1 to %2
ct    Clear tabs
cv    Move cursor vertically only to line %1
dc    Delete one character
DC    Delete %1 characters
dl    Delete one line
DL    Delete %1 lines
dm    Begin delete mode
do    Cursor down one line
DO    Cursor down #1 lines
ds    Disable status line
eA    Enable alternate character set
ec    Erase %1 characters starting at cursor
ed    End delete mode
ei    End insert mode
ff    Formfeed character on hardcopy terminals
fs    Return character to its position before going to status line
F1    The string sent by function key f11
F2    The string sent by function key f12
F3    The string sent by function key f13
...    ...
F9    The string sent by function key f19
FA    The string sent by function key f20
FB    The string sent by function key f21
...    ...
FZ    The string sent by function key f45
Fa    The string sent by function key f46
Fb    The string sent by function key f47
...    ...
Fr    The string sent by function key f63
hd    Move cursor a half line down
ho    Cursor home
hu    Move cursor a half line up
i1    Initialization string 1 at login
i3    Initialization string 3 at login
is    Initialization string 2 at login
ic    Insert one character
IC    Insert %1 characters
if    Initialization file
im    Begin insert mode
ip    Insert pad time and needed special characters after insert
iP    Initialization program
K1    upper left key on keypad
K2    center key on keypad
K3    upper right key on keypad
K4    bottom left key on keypad
K5    bottom right key on keypad
k0    Function key 0
k1    Function key 1
k2    Function key 2
k3    Function key 3
k4    Function key 4
k5    Function key 5
k6    Function key 6
k7    Function key 7
k8    Function key 8
k9    Function key 9
k;    Function key 10
ka    Clear all tabs key
kA    Insert line key
kb    Backspace key
kB    Back tab stop
kC    Clear screen key
kd    Cursor down key
kD    Key for delete character under cursor
ke    turn keypad off
kE    Key for clear to end of line
kF    Key for scrolling forward/down
kh    Cursor home key
kH    Cursor hown down key
kI    Insert character/Insert mode key
kl    Cursor left key
kL    Key for delete line
kM    Key for exit insert mode
kN    Key for next page
kP    Key for previous page
kr    Cursor right key
kR    Key for scrolling backward/up
ks    Turn keypad on
kS    Clear to end of screen key
kt    Clear this tab key
kT    Set tab here key
ku    Cursor up key
l0    Label of zeroth function key, if not f0
l1    Label of first function key, if not f1
l2    Label of first function key, if not f2
...    ...
la    Label of tenth function key, if not f10
le    Cursor left one character
ll    Move cursor to lower left corner
LE    Cursor left %1 characters
LF    Turn soft labels off
LO    Turn soft labels on
mb    Start blinking
MC    Clear soft margins
md    Start bold mode
me    End all mode like so, us, mb, md, and mr
mh    Start half bright mode
mk    Dark mode (Characters invisible)
ML    Set left soft margin
mm    Put terminal in meta mode
mo    Put terminal out of meta mode
mp    Turn on protected attribute
mr    Start reverse mode
MR    Set right soft margin
nd    Cursor right one character
nw    Carriage return command
pc    Padding character
pf    Turn printer off
pk    Program key %1 to send string %2 as if typed by user
pl    Program key %1 to execute string %2 in local mode
pn    Program soft label %1 to show string %2
po    Turn the printer on
pO    Turn the printer on for %1 (<256) bytes
ps    Print screen contents on printer
px    Program key %1 to send string %2 to computer
r1    Reset string 1 to set terminal to sane modes
r2    Reset string 2 to set terminal to sane modes
r3    Reset string 3 to set terminal to sane modes
RA    disable automatic margins
rc    Restore saved cursor position
rf    Reset string filename
RF    Request for input from terminal
RI    Cursor right %1 characters
rp    Repeat character %1 for %2 times
rP    Padding after character sent in replace mode
rs    Reset string
RX    Turn off XON/XOFF flow control
sa    Set %1 %2 %3 %4 %5 %6 %7 %8 %9 attributes
SA    enable automatic margins
sc    Save cursor position
se    End standout mode
sf    Normal scroll one line
SF    Normal scroll %1 lines
so    Start standout mode
sr    Reverse scroll
SR    scroll back %1 lines
st    Set tabulator stop in all rows at current column
SX    Turn on XON/XOFF flow control
ta    move to next hardware tab
tc    Read in terminal description from another entry
te    End program that uses cursor motion
ti    Begin program that uses cursor motion
ts    Move cursor to column %1 of status line
uc    Underline character under cursor and move cursor right
ue    End underlining
up    Cursor up one line
UP    Cursor up %1 lines
us    Start underlining
vb    Visible bell
ve    Normal cursor visible
vi    Cursor invisible
vs    Standout cursor
wi    Set window from line %1 to %2 and column %3 to %4
XF    XOFF character if not ^S

There are several ways of defining the control codes for string capabilities:

Every normal character represents itself, except aq^aq, aq\aq, and aq%aq.

A ^x means Control-x. Control-A equals 1 decimal.

\x means a special code. x can be one of the following characters:

E Escape (27)
n Linefeed (10)
r Carriage return (13)
t Tabulation (9)
b Backspace (8)
f Form feed (12)
0 Null character. A \xxx specifies the octal character xxx.
i
Increments parameters by one.
r
Single parameter capability
+
Add value of next character to this parameter and do binary output
2
Do ASCII output of this parameter with a field with of 2
d
Do ASCII output of this parameter with a field with of 3
%
Print a aq%aq

If you use binary output, then you should avoid the null character (aq\0aq) because it terminates the string. You should reset tabulator expansion if a tabulator can be the binary output of a parameter.

Warning:
The above metacharacters for parameters may be wrong, they document Minix termcap which may not be compatible with Linux termcap.

The block graphic characters can be specified by three string capabilities:

as
start the alternative charset
ae
end it
ac
pairs of characters. The first character is the name of the block graphic symbol and the second characters is its definition.

The following names are available:


+    right arrow (>)
,    left arrow (<)
.    down arrow (v)
0    full square (#)
I    lantern (#)
-    upper arrow (^)
’    rhombus (+)
a    chess board (:)
f    degree (’)
g    plus-minus (#)
h    square (#)
j    right bottom corner (+)
k    right upper corner (+)
l    left upper corner (+)
m    left bottom corner (+)
n    cross (+)
o    upper horizontal line (-)
q    middle horizontal line (-)
s    bottom horizontal line (_)
t    left tee (+)
u    right tee (+)
v    bottom tee (+)
w    normal tee (+)
x    vertical line (|)
~    paragraph (???)

The values in parentheses are suggested defaults which are used by curses, if the capabilities are missing.

See Also

ncurses(3) , termcap(3) , terminfo(5)

Colophon

This page is part of release 3.78 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/.


Table of Contents