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.