termcap(5) base de datos con características de terminales

DESCRIPCIÓN

/etc/termcap es un fichero ASCII que contiene las características de multitud de tipos de terminales. Los programas pueden leer termcap para encontrar los códigos de escape particulares que se necesitan para controlar los atributos visuales del terminal en uso (otros aspectos del terminal son controlados a través de stty). La base de datos termcap se indiza a partir de la variable de entorno TERM.

Las entradas en termcap se deben definir en una sola línea lógica, usando `\' para suprimir el carácter de nueva línea. Los campos están separados por `:'. El primer campo de cada entrada comienza en el margen izquierdo y contiene una lista de nombres para el terminal, separados por un vestigio del sistema V6, donde existía una gran base de datos de sistema de 16 bits (equivalentes a estos dos caracteres) por terminal. Este nombre puede estar formado por letras mayúsculas o minúsculas. El segundo subcampo contiene el nombre, en letras minúsculas, usado por la variable de entorno TERM. Algunas características seleccionables del hardware deben marcarse añadiendo un guión y un sufijo a este nombre (véase un ejemplo más abajo). Algunos sufijos comunes son w (más de 80 caracteres por línea), am (márgenes automáticos), nam (sin márgenes automáticos) y rv (visualización en vídeo inverso). El tercer subcampo contiene un nombre largo y descriptivo para la entrada de la base de datos.

Los campos siguientes contienen las características del terminal; cualquier línea siguiente de características se debe sangrar mediante un tabulador a partir del margen izquierdo.

Aunque no hay un orden establecido, se sugiere escribir primero las características booleanas, luego las numéricas y para finalizar las características de cadena, cada una de ellas ordenada alfabéticamente sin importar mayúsculas o minúsculas. Las características para funciones similares se pueden escribir en la misma línea.

Ejemplo:

Línea de cabecera: vt|vt101|Terminal DEC VT 101 en modo 80 carac.:\
Línea de cabecera: Vt|vt101-w|Terminal DEC VT 101 en modo 132 carac.:\
Booleano:                  :bs:\
Numérico:                  :co#80:\
Cadena de caracteres:      :sr=\E[H:\

Características Booleanas

5i      La impresora no producirá eco en pantalla
am      Márgenes automáticos (ajuste automático de palabras en la línea)
bs      Control-H (8 en decimal) realiza un retroceso
bw      Retroceso en margen izquierdo vuelve a línea anterior, margen
        derecho
da      La visualización se guarda por encima de la pantalla
db      La visualización se guarda por debajo de la pantalla
eo      Un espacio borra cualquier carácter en la posición del cursor
es      Las secuencias de escape y los caracteres especiales funcionan en
        la línea de estado
gn      Dispositivo genérico
hc      Este es un terminal hardcopy (terminal que genera copia impresa)
HC      El cursor es difícil de ver cuando no está en la última línea
hs      Tiene línea de estado
hz      Error Hazeltine, el terminal no puede imprimir caracteres con
        tilde
in      El terminal inserta caracteres nulos, no espacios, para rellenar
        los espacios en blanco
km      El terminal tiene una metatecla
mi      El movimiento del cursor funciona en modo Inserción
ms      El movimiento del cursor funciona en modo Resaltado/Subrayado
NP      No hay carácter de relleno
NR      La secuencia 'ti' no deshace el efecto de 'te'
nx      No hay relleno, debe usarse el control de flujo XON/XOFF
os      El terminal puede mostrar texto en Negrita
ul      El terminal puede mostrar texto Subrayado pero no Negrita
xb      Error Beehive, F1 envía ESCAPE, F2 envía ^C
xn      Error de recorte al final de línea
xo      El terminal usa control de flujo XON/XOFF
xs      El texto tecleado sobre texto Resaltado aparecerá Resaltado
xt      Error Teleray, Tabuladores destructivos y modo Resaltado "raro"

Características numéricas

co      Número de columnas
dB      Retraso en milisegundos para un retroceso en terminales hardcopy
dC      Retraso en milisegundos para un retorno de carro en terminales
        hardcopy
dF      Retraso en milisegundos para un salto de página en terminales
        hardcopy
dN      Retraso en milisegundos para un salto de línea en terminales
        hardcopy
dT      Retraso en milisegundos para un tabulador en terminales hardcopy
dV      Retraso en milisegundos para un tabulador vertical en terminales
        hardcopy
it      Diferencia entre posiciones de tabulación
lh      Altura de las etiquetas software
lm      Líneas de memoria
lw      Anchura de las etiquetas software
li      Número de líneas
Nl      Número de etiquetas software
pb      Velocidad (en baudios) mínima que necesita relleno
sg      Variación (glitch) en el resaltado
ug      Variación (glitch) en el subrayado 
vt      Número de terminal virtual
ws      Ancho de la línea de estado (cuando difiere del ancho de la
        pantalla)

Características de cadena

!1      MAYUS + tecla <salvar>
!2      MAYUS + tecla <suspender>
!3      MAYUS + tecla <deshacer>
#1      MAYUS + tecla <ayuda>
#2      MAYUS + tecla <inicio> (home)
#3      MAYUS + tecla <entrada> (input)
#4      MAYUS + tecla <mover cursor a la izquierda>
%0      tecla <rehacer>
%1      tecla <ayuda>
%2      tecla <marcar>
%3      tecla <mensaje>
%4      tecla <mover>
%5      tecla <objeto siguiente>
%6      tecla <abrir>
%7      tecla <opciones>
%8      tecla <objeto anterior>
%9      tecla <imprimir>
%a      MAYUS + tecla <mensaje>
%b      MAYUS + tecla <mover>
%c      MAYUS + tecla <siguiente>
%d      MAYUS + tecla <opciones>
%e      MAYUS + tecla <anterior>
%f      MAYUS + tecla <imprimir>
%g      MAYUS + tecla <rehacer>
%h      MAYUS + tecla <reemplazar>
%i      MAYUS + tecla <mover cursor a la derecha>
%j      MAYUS + tecla <reanudar>
&0      MAYUS + tecla <cancelar>
&1      tecla <referencia>
&2      tecla <refrescar>
&3      tecla <reemplazar>
&4      tecla <reiniciar>
&5      tecla <reanudar>
&6      tecla <salvar>
&7      tecla <suspender>
&8      tecla <deshacer>
&9      MAYUS + tecla <inicio>
*0      MAYUS + tecla <encontrar>
*1      MAYUS + tecla <orden>
*2      MAYUS + tecla <copiar>
*3      MAYUS + tecla <crear>
*4      MAYUS + <borrar carácter>
*5      MAYUS + <borrar línea>
*6      tecla <seleccionar>
*7      MAYUS + tecla <fin>
*8      MAYUS + tecla <borrar línea>
*9      MAYUS + tecla <salir>
@0      tecla <encontrar>
@1      tecla <inicio>
@2      tecla <cancelar>
@3      tecla <cerrar>
@4      tecla <orden>
@5      tecla <copiar>
@6      tecla <crear>
@7      tecla <fin>
@8      tecla <introducir/enviar>
@9      tecla <salir>
al      Insertar una línea
AL      Insertar %1 líneas
ac      Pares de caracteres gráficos de bloque para "mapear" el conjunto
        alternativo de caracteres
ae      Finalizar conjunto alternativo de caracteres
as      Iniciar conjunto alternativo de caracteres para caracteres
        gráficos de bloque
bc      Retroceso, si no es ^H
bl      Campana acústica
bt      Mover a la marca de tabulación previa
cb      Borrar desde el inicio de línea hasta la posición del cursor
cc      Carácter de orden falsa
cd      Limpiar hasta el final de la pantalla
ce      Limpiar hasta el final de la línea
ch      Mover el cursor sólo horizontalmente hasta la columna %1
cl      Limpiar la pantalla y colocar el cursor en la posición original
cm      Mover el cursor a la fila %1 y la columna %2 (de la pantalla)
CM      Mover el cursor a la fila %1 y la columna %2 (de la memoria)
cr      Retorno de carro
cs      Desplazar el contenido de la región que va de la línea %1 a la %2
ct      Borrar tabuladores
cv      Mover el cursor sólo verticalmente hasta la línea %1
dc      Borrar un carácter
DC      Borrar %1 caracteres
dl      Borrar una línea
DL      Borrar %1 líneas
dm      Iniciar modo "borrar"
do      Mover el cursor una línea hacia abajo
DO      Mover el cursor #1 líneas hacia abajo
ds      Desactivar la línea de estado
eA      Activar un conjunto de caracteres alternativo
ec      Borrar %1 caracteres comenzando en la posición del cursor
ed      Finalizar modo "borrar"
ei      Finalizar modo "inserción"
ff      Carácter de salto de página en terminales hardcopy
fs      Regresa el carácter a su posición antes de ir a la línea de
        estado
F1      Cadena enviada por la tecla de función f11
F2      Cadena enviada por la tecla de función f12
F3      Cadena enviada por la tecla de función f13
...   ...
F9      Cadena enviada por la tecla de función f19
FA      Cadena enviada por la tecla de función f20
FB      Cadena enviada por la tecla de función f21
...   ...
FZ      Cadena enviada por la tecla de función f45
Fa      Cadena enviada por la tecla de función f46
Fb      Cadena enviada por la tecla de función f47
...   ...
Fr      Cadena enviada por la tecla de función f63
hd      Mover el cursor media línea hacia abajo
ho      Mover el cursor a su posición inicial (home)
hu      Mover el cursor media línea hacia arriba
i1      Cadena 1 de inicialización en el momento del login
i3      Cadena 3 de inicialización en el momento del login
is      Cadena 2 de inicialización en el momento del login
ic      Insertar un carácter
IC      Insertar %1 caracteres
if      Fichero de inicialización
im      Comenzar modo "inserción"
ip      Después de una inserción, introducir tiempo de relleno y se
        necesitan caracteres especiales
iP      Programa de inicialización
K1      Tecla <arriba a la izquierda> en el miniteclado (keypad)
K2      Tecla <centro> en el miniteclado
K3      Tecla <arriba a la derecha> en el miniteclado
K4      Tecla <abajo a la izquierda> en el miniteclado
K5      Tecla <abajo a la derecha> en el miniteclado
k0      Tecla 0 de función
k1      Tecla 1 de función
k2      Tecla 2 de función
k3      Tecla 3 de función
k4      Tecla 4 de función
k5      Tecla 5 de función
k6      Tecla 6 de función
k7      Tecla 7 de función
k8      Tecla 8 de función
k9      Tecla 9 de función
k;      Tecla 10 de función
ka      Tecla <borrar todos los tabuladores>
kA      Tecla <insertar línea>
kb      Tecla <retroceso>
kB      Retroceder una marca de tabulación
kC      Tecla <Borrar pantalla>
kd      Tecla <mover el cursor hacia abajo>
kD      Tecla para borrar el carácter bajo el cursor
ke      Desactivar miniteclado (keypad)
kE      Tecla <borrar hasta el final de línea>
kF      Tecla <desplazar hacia adelante/abajo>
kh      Tecla <mover cursor a su posición inicial (home)>
kH      Tecla <mover cursor hacia abajo>
kI      Tecla <Insertar carácter/Modo "inserción">
kl      Tecla <mover cursor hacia la izquierda>
kL      Tecla <borrar línea>
kM      Tecla <salir de modo "inserción">
kN      Tecla <página siguiente>
kP      Tecla <página anterior>
kr      Tecla <mover cursor hacia la derecha>
kR      Tecla <desplazar atrás/arriba>
ks      Activar miniteclado (keypad)
kS      Tecla <borrar hasta el final de la pantalla>
kt      Tecla <borrar este tabulador>
kT      Tecla <fijar tabulador aquí>
ku      Tecla <mover cursor hacia arriba>
l0      Etiqueta de la tecla 0 de función, si no es f0
l1      Etiqueta de la tecla 1 de función, si no es f1
l2      Etiqueta de la tecla 2 de función, si no es f2
...   ...
la      Etiqueta de la tecla 10 de función, si no es f10
le      Mover el cursor a la izquierda un carácter
ll      Mover el cursor a la esquina inferior izquierda
LE      Mover el cursor a la izquierda %1 caracteres
LF      Desactivar las etiquetas software
LO      Activar las etiquetas software
mb      Comenzar parpadeo
MC      Borrar los márgenes software
md      Comenzar modo "negrita"
me      Finalizar los modos so, us, mb, md y mr
mh      Comenzar modo "brillo medio"
mk      Modo "oculto" (caracteres invisibles)
ML      Fijar margen software izquierdo
mm      Poner el terminal en modo "meta"
mo      Sacar el terminal del modo "meta"
mp      Activar atributo protegido
mr      Comenzar modo "inverso"
MR      Fijar margen software derecho
nd      Mover el cursor a la derecha un carácter
nw      Orden de retorno de carro
pc      Carácter de relleno
pf      Desactivar la impresora
pk      Programar la tecla %1 para enviar la cadena %2 como si hubiera
        sido tecleada por el usuario
pl      Programar la tecla %1 para ejecutar la cadena %2 en modo local
pn      Programar la etiqueta software %1 para mostrar la cadena %2
po      Activar la impresora
pO      Activar la impresora para %1 (<256) bytes
ps      Imprimir el contenido de la pantalla en la impresora
px      Programar la tecla %1 para enviar la cadena %2 al ordenador
r1      Cadena 1 de inicialización para colocar el terminal en modos de
        depuración
r2      Cadena 2 de inicialización para colocar el terminal en modos de
        depuración
r3      Cadena 3 de inicialización para colocar el terminal en modos de
        depuración
RA      Desactivar los márgenes automáticos
rc      Recuperar la posición guardada del cursor
rf      Cadena de inicialización de nombre de fichero
RF      Solicitar entrada (input) de la terminal
RI      Mover el cursor a la derecha %1 caracteres
rp      Repetir %2 veces el carácter %1
rP      Rellenar después del carácter enviado en modo reemplazamiento
rs      Reiniciar cadena
RX      Desactivar el control de flujo XON/XOFF
sa      Dar valor a los atributos %1 %2 %3 %4 %5 %6 %7 %8 %9
SA      Activar márgenes automáticos
sc      Guardar la posición del cursor
se      Finalizar el modo resaltado
sf      Desplazar de la forma habitual una línea
SF      Desplazar de la forma habitual %1 líneas
so      Comenzar modo "resaltado"
sr      Desplazar de forma inversa
SR      Desplazar hacia atrás %1 líneas
st      Fijar un tabulador en todas las filas de la columna actual
SX      Activar el control de flujo XON/XOFF
ta      Mover al siguiente tabulador hardware
tc      Leer la descripción de la terminal desde otra entrada
te      Terminar programa que usa el movimiento del cursor
ti      Comenzar programa que usa el movimiento del cursor
ts      Mover el cursor a la columna %1 de la línea de estado
uc      Subrayar el carácter bajo el cursor y mover el cursor a la
        derecha
ue      Terminar subrayado
up      Subir el cursor una línea
UP      Subir el cursor %1 líneas
us      Comenzar subrayado
vb      Campana visible
ve      Cursor visible normal
vi      Cursor invisible
vs      Cursor resaltado
wi      Fijar la ventana de la línea %1 a la %2 y de la columna %3 a la
        %4
XF      El carácter XOFF no es ^S

Hay varias formas de definir los códigos de control para las características de cadena:

Los caracteres normales se representan a si mismos, excepto '^','\' y '%'.

\x significa código especial. x puede ser uno de los siguientes caracteres:

E Escape (27)
n Alimentación (salto) de línea (10)
r Retorno de carro (13)
t Tabulación (9)
b Retroceso (8)
f Salto de página (12)
0 Carácter nulo. \xxx especifica el carácter xxx en octal.
i
Incrementa los parámetros en uno.
r
Característica de parámetro único
+
Añade el valor del siguiente carácter a este parámetro y produce una salida binaria
2
Produce una salida ASCII de este parámetro con un ancho de campo de 2
d
Produce una salida ASCII de este parámetro con un ancho de campo de 3
%
Muestra un '%'

Si utiliza salida binaria, debería evitar el carácter nulo ya que se interpreta como el final de la cadena. Si un tabulador puede ser la salida binaria de un parámetro, debe reajustar la expansión de tabuladores.

Atención:
Los metacaracteres anteriores para los parámetros pueden ser incorrectos, ya que documentan el termcap de Minix que puede no ser compatible con el termcap de Linux.

Los caracteres gráficos de bloque se pueden especificar mediante tres características de cadena:

as
comienza el conjunto de caracteres alternativo
ae
lo finaliza
ac
pares de caracteres. El primer carácter es el nombre del símbolo gráfico de bloque y el segundo carácter es su definición.

Los siguientes nombres están disponibles:

+       flecha derecha (>)
,       flecha izquierda (<)
.       flecha abajo (v)
0       cuadrado relleno (#)
I       linterna (#)
-       flecha arriba (^)
'       rombo (+)
a       tablero de ajedrez (:)
f       grado (')
g       mas-menos (#)
h       cuadrado (#)
j       esquina inferior derecha (+)
k       esquina superior derecha (+)
l       esquina superior izquierda (+)
m       esquina inferior izquierda (+)
n       cruce (+)
o       línea horizontal superior (-)
q       línea horizontal media (-)
s       línea horizontal inferior (_)
t       cruce por la izquierda (+)
u       cruce por la derecha (+)
v       cruce por abajo (+)
w       cruce por arriba (+)
x       línea vertical (|)
~       párrafo (???)

Los valores entre paréntesis son los valores por defecto utilizados por curses cuando no se encuentran las características.