TERMCAP(5)

NOME
termcap - banco de dados das funcionalidades do terminal

DESCRIÇÃO
O banco de dados termcap é uma facilidade já obsoleta de descrever as funcionalidades de terminais e impressoras em modo caracter. É mantido somente para compatibilidade com velhos programas; novos programas devem usar a base de dados terminfo(5) e bibliotecas associadas.

/etc/termcap é um arquivos ASCII (a base da dados principal) que lista as funcionalidades de cada tipo diferente de terminal. Programas podem ler o termcap e encontrar os códigos de fuga necessários para controlar os atributos visuais de um terminal em uso. (Outros aspectos do terminal são administrados por stty). A base termcap está indexada pela variável de ambiente TERM.

As entradas de termcap devem ser definidas em uma linha lógica única, com `\' usado para suprimir nova linha. Campos são separados por `:'. O primeiro campo de cada entrada começa com a margem esquerda e contém uma lista de nomes de terminal separados por '|'.

O primeiro subcampo pode (em entradas termcap BSD a partir das versões 4.3 em diante) conter um pequeno nome de dois caracteres. Este nome pode ser constituído de letras maiúsculas ou minúsculas. No termcap 4.4BSD as entradas deste campo são omitidas.

O segundo subcampo (primeiro no novo formato 4.4.BSD) contém o nome usado pela variável de ambiente TERM. Deve ser escrito em letras minúsculas. Capacidades de hardware selecionáveis devem ser marcadas através de um hífen e um sufixo no nome. Veja abaixo um exemplo. Sufixos tradicionais usam w (mais de 80 caracteres de largura), am (margens automáticas), nam (sem margens automáticas) e rv (vídeo reverso). O terceiro campo contém um longo e descritivo nome para a entrada em termcap.

Campos subseqüentes contém as capacidades de terminal; qualquer linha continuada deve ser indentada com uma tabulação na margem esquerda.

Apesar de não haver ordem definida, é sugerido escrever as funcionalidades na seguinte ordem: booleanas, numéricas e finalmente alfanuméricas, em ordem alfabética sem atentar para maiúsculas e minúsculas. Funcionalidades de função similar podem ser escritas em uma única linha.

Exemplo de:

Head line: vt|vt101|DEC VT 101 terminal em modo de 80 caracteres:\
Head line: Vt|vt101-w|DEC VT 101 em modo de 132 caracteres (amplo):\
Boolean: :bs:\
Numeric: :co#80:\
String: :sr=\E[H:\

  Capacidades Booleanas
5i	Impressora não ecoará na tela
am	margens automáticas o que significa quebra automática de linhas
bs	Control-H (8 dec.) executa um retrocesso
bw	Retrocesso na margem esquerda retorna para a linha anterior na margem direita
da	Apresentação mantida em cima da tela
db	Apresentação mantida em baixo da tela
eo	Um espaço apaga todos os caracteres na posição do cursor
es	Seqüências de fuga e caracteres especiais funcionam na linha de status
gn	Dipositivo genérico
hc	Esta é uma cópia exata do terminal
HC	O cursor é difícil de visualizar quando não está na linha de base
hs	Tem uma linha de status
hz	Problema de Hazeltine, o terminal não pode imprimir o caracter til
in	Terminal insere nulos e não espaços para preencher espaços vazios
km	Terminal tem meta teclas
mi	O movimento de cursor funciona no modo de inserção
ms	O movimento de cursor funciona no modo padrão de saída e sublinhado
NP	Sem caracter pad
NR	ti não reverte em te
nx	Deve-se usar XON e XOFF
os	Terminal pode riscar
ul	Terminal sublinha apesar de não poder riscar
xb	f1 envia ESCAPE, f2 envia ^C
xn	Nova linha, quebra de linha
xo	Terminal usa protocolo xon/xoff
xs	Texto digitado na saída padrão será apresentado na saída padrão
xt	Tabulações destrutivas e modo de saída abaixo do padrão

  Capacidades Numéricas
co	Número de Colunas
dB	Espera em milisegundos para retrocessos em terminais hardcopy
dC	Espera em milisegundos para retorno de linha em terminais hardcopy
dF	Espera em milisegundos para alimentação de formulário em terminais hardcopy
dN	Espera em milisegundos para nova linha em terminais hardcopy
dT	Espera em milisegundos para finalizador de tabulações em terminais hardcopy
dV	Espera em milisegundos para tabulação vertical em terminais hardcopy
it	Diferença entre posições de tabulações
lh	Altura de etiquetas de campos
lm	Linhas da memória
lw	Largura de etiquetas de campos
li	Número de linhas
Nl	Número de etiquetas de campos
pb	Menor velocidade que necessita de ajuste automático
sg	Estilo da saída
ug	Estilo sublinhado
vt	Número de terminais virtuais
ws	Largura da linha de status é diferente da largura da tela

  Capacidades Alfanuméricas
!1	Tecla alternativa de salvamento
!2	Tecla alternativa de suspensão
!3	Tecla alternativa desfazer
#1	Tecla alternativa de ajuda
#2	Tecla alternativa de início
#3	Tecla alternativa de entrada
#4	Tecla alternativa de cursor esquerdo
%0	Tecla refazer
%1	Tecla de ajuda
%2	Tecla de marcação
%3	Tecla de mensagem
%4	Tecla de movimentação
%5	Tecla de próximo objeto
%6	Tecla de abertura
%7	Tecla de opções
%8	Tecla de objeto anterior
%9	Tecla de impressão
%a	Tecla alternativa de mensagem
%b	Tecla alternativa de movimentação
%c	Tecla alternativa de próximo
%d	Tecla alternativa de opções
%e	Tecla alternativa de prévio
%f	Tecla alternativa de impressão
%g	Tecla alternativa para refazer
%h	Tecla alternativa de substituição
%i	Tecla alternativa de cursor direito
%j	Tecla alternativa de finalização
&0	Tecla alternativa de cancelamento
&1	Tecla de referência
&2	Tecla de atualização
&3	Tecla de substituição
&4	Tecla de reinicialização
&5	Tecla de finalização
&6	Tecla de salvamento
&7	Tecla de suspensão
&8	Tecla de desfazer
&9	Tecla alternativa de início
*0	Tecla alternativa de busca
*1	Tecla alternativa de comando
*2	Tecla alternativa de cópia
*3	Tecla alternativa de criação
*4	Tecla alternativa de apagar
*5	Linha alternativa de apagar
*6	Tecla de seleção
*7	Tecla alternativa de final
*8	Tecla alternativa de limpeza de linha
*9	Tecla alternativa de saída
@0	Tecla de procurar
@1	Tecla de começo
@2	Tecla de cancelar
@3	Tecla de fechar
@4	Tecla de comando
@5	Tecla de cópia
@6	Tecla de criar
@7	Tecla de fim
@8	Tecla de entrada/enviar
@9	Tecla de saída
al	Inserir nova linha
AL	Indentar %1 linhas
ac	Pares de blocos de caracteres gráficos para mapear conjuntos de caracteres alternados
ae	Final de conjunto de caracteres alternativos
as	Inicia um conjunto de caracteres alternativos para blocos de caracteres gráficos
bc	Retrocesso, se não for ^H
bl	Campainha
bt	Mover para a tabulação anterior
cb	Limpar do início da linha até o cursor
cc	Comando caracter sem efeito
cd	Limpar até o final da tela
ce	Limpar até o final da linha
ch	Mover o cursor horizontalmente somente na coluna %1
cl	Limpar a tela e mover o cursor para seu início
cm	Cursor move-se para linha %1 e coluna %2 (na tela)
CM	Cursor move-se para linha %1 e coluna %2 (em memória)
cr	Retorno do carro
cs	Região de paginação da linha %1 para %2
ct	Limpar tabulações
cv	Mover o cursor verticalmente somente na linha %1
dc	Apagar um caracter
DC	Apagar %1 caracteres
dl	Apagar uma linha
DL	Apagar %1 linhas
dm	Iniciar modo apagar
do	Desce o cursos uma linha
DO	Desce o cursos  #1 linhas
ds	Desabilita linha de status
eA	Habilita conjunto de caracteres alternativos
ec	Apaga %1 caracteres a partir do cursor
ed	Fim do modo apagar
ei	Fim do modo de inserção
ff	Caracter de alimentação de formulário em terminais de hardcopy
fs	Caracter de retorno para sua posição antes de ir para a linha de status
F1	Caracteres enviados pela tecla de função f11
F2	Caracteres enviados pela tecla de função f12
F3	Caracteres enviados pela tecla de função f13
...	...
F9	Caracteres enviados pela tecla de função f19
FA	Caracteres enviados pela tecla de função f20
FB	Caracteres enviados pela tecla de função f21
...	...
FZ	Caracteres enviados pela tecla de função f45
Fa	Caracteres enviados pela tecla de função f46
Fb	Caracteres enviados pela tecla de função f47
...	...
Fr	Caracteres enviados pela tecla de função f63
hd	Move o cursor meia linha para baixo
ho	move o cursor para o início da tela
hu	Move o cursor meia linha para cima
i1	Caracteres de inicialização 1 no acesso
i3	Caracteres de inicialização 3 no acesso
is	Caracteres de inicialização 2 no acesso
ic	Inserir um caracter
IC	Inserir %1 caracteres
if	Arquivo de inicialização
im	Iniciar modo de inserção
ip	Inserir intervalo e necessidade de caracteres especiais após inserção
iP	Programa de inicialização
K1	Tecla de canto superior esquerdo do teclado
K2	Tecla de centro do teclado
K3	Tecla de canto superior direito do teclado
K4	Tecla de canto inferior esquerdo do teclado
K5	Tecla de canto inferior direito do teclado
k0	Tecla de função 0
k1	Tecla de função 1
k2	Tecla de função 2
k3	Tecla de função 3
k4	Tecla de função 4
k5	Tecla de função 5
k6	Tecla de função 6
k7	Tecla de função 7
k8	Tecla de função 8
k9	Tecla de função 9
k;	Tecla de função 10
ka	Limpar todas as teclas de tabulação
kA	Tecla de inserção de linha
kb	Tecla de retrocesso
kB	Tecla de tabulação para trás
kC	Tecla de limpar tela
kd	Tecla para descer o cursor
kD	Tecla para apagar o caracter sob o cursor
kE	Tecla para limpar o fim da linha
kF	Tecla para paginação para frente e para trás
kh	Tecla de início da tela
kH	Tecla de cursor para baixo
kI	Tecla de modo de inserção e inserção de caracter
kl	Tecla esquerda de cursor
kL	Tecla para apagar linha
kM	Tecla de finalização de modo de inserção
kN	Tecla de próxima página
kP	Tecla de página anterior
kr	Tecla direita de cursor
kR	Tecla de paginação para frente e para trás
ks	Ativa teclado auxiliar
kS	Tecla de limpeza até o fim da tela
kt	Tecla de limpeza de tabulação
kT	Tecla de inserção de tabulação
ku	Tecla de cursor para cima
l0	Tecla de função de etiqueta n, se diferente de f0
l1	Etiqueta da primeira tecla de função, se diferente de f1
l2	Etiqueta da segunda tecla de função, se diferente de f2
...	...
la	Etiqueta da décima tecla de função, se diferente de f10
le	Move o cursos para esquerda um caracter
ll	Move cursor para o canto inferior esquerdo
LE	Move o cursor para a esquerda %1 caracteres
LF	Desativa etiquetas
LO	Ativa etiquetas
mb	Inicia a piscar
MC	Limpa margens
md	Inicia negrito
me	Finaliza todos os modos como so, us, mb, md e mr
mh	Inicia modo de brilho mediano
mk	Modo escuro (caracteres invisíveis)
ML	Configura margem esquerda
mm	Coloca o terminal em modo meta
mo	Retira o terminal em modo meta
mp	Aciona o atributo de proteção
mr	Inicia modo reverso
MR	Configura margem direita
nd	Move o cursor à direita um caracter
nw	Comando de retorno de carro
pc	Caracter especial
pf	Desliga impressora
pk	Tecla de programa %1 para enviar caracteres %2 se tecladas pelo usuário
pl	Tecla de programa %1 para executar  %2 em modo local
pn	Tecla de programa de etiquete %1 para apresentar texto %2
po	Liga a impressora
pO	Liga a impressora para %1 (<256) bytes
ps	Imprime o conteúdo da tela na impressora
px	Tecla de programa %1 para enviar o texto %2 para o computador
r1	Reinicializa texto 1 para configurar o terminal em modo normal
r2	Reinicializa texto 2 para configurar o terminal em modo normal
r3	Reinicializa texto 3 para configurar o terminal em modo normal
RA	Desabilita margens automáticas
rc	Restaura a posição salva do cursor
rf	Reinicializa o texto do nome do arquivo
RF	Solicita uma entrada a partir do terminal
RI	Mover o cursor para direita %1 caracteres
rp	Repete o caracter %1 por %2 vezes
rP	Ajustes após enviar um caracter em modo de substituição
rs	Reinicializa texto
RX	Desabilita o controle de fluxo XON/XOFF
sa	Inicializa os atributos %1 %2 %3 %4 %5 %6 %7 %8 %9
SA	Habilita margens automáticas
sc	Salva a posição do cursor
se	Finaliza modo de saída
sf	Paginação normal de uma linha
SF	Paginação normal de %1 linhas
so	Iniciar modo de saída
sr	Paginação reversa
SR	Paginação para trás de %1 linhas
st	Configura a parada do tabulador em todas as linhas da coluna atual
SX	Habilita o controle de fluxo XON/XOFF
ta	Mover para a próxima tabulação de hardware
tc	Ler a descrição do terminal a partir de outra entrada
te	Finalizar programa que usa movimento de cursor
ti	Iniciar programa que usa movimento de cursor
ts	Mover o cursor para o coluna %1 da linha de status
uc	Sublinhar o caracter sob o cursor e mover o cursor luminoso
ue	Final de sublinhado
up	Mover o cursor para cima 1 linha
UP	Mover o cursor para cima %1 linhas
us	Iniciar sublinhado
vb	Campainha visível
ve	Cursor normal visível
vi	Cursor invisível
vs	Cursor na área de saída
wi	Configura janela da linha %1 até %2 e coluna %3 até %4
XF	Caracter XOFF diferente de  ^S

Há diversas maneiras de definir os códigos de controle para as capacidades alfanuméricas.

Caracteres normais com exceção de '^','\' e '%' representam eles próprios.

Um '^x' significa Control-x. Control-A é igual a 1 decimal.

\x significa um código especial. X pode ser um dos seguintes caracteres:
    E Fuga (27)
    n Alimentação de linha (10)
    r Retorno de carro (13)
    t Tabulação (9)
    b Retrocesso (8)
    f Alimentação de formulário (12)
    0 Caracter nulo . Um \xxx especifica o caracter octal xxx.

i   Incrementa parâmetros em um.

r   Capacidade de um único parâmetro.

+   Adiciona o valor do próximo caracter ao parâmetro e gera uma saída binária

2   Gera uma saída em ASCII deste parâmetro com um campo de 2

d   Gera uma saída em ASCII deste parâmetro com um campo de 2

%   Lista um '%'

Caso se utilize saída binária, então o caracter nulo deve ser evitado porque termina com um caracter especial. Deve-se reinicializar a expansão do tabulador caso este possa ser uma saída binária de um parâmetro.

Atenção:
    Os metacacteres acima para parâmetros podem estar errados, eles documentam o termcap do Minix o qual pode não se totalmente compatível com o Linux termcap.

O bloco de caracteres gráficos pode ser especificado com três funcionalidades de texto,

as  inicia um conjunto de caracteres alternativo

ae  finaliza

ac  pares de caracter. O primeiro caracter é o nome do símbolo do bloco gráfico e o segundo caracter é a sua definição.

Estão disponíveis os seguintes nomes:

+	seta para direita (>)
,	seta para esquerda (<)
.	seta para baixo (v)
0	quadrado completo (#)
I	latern (#)
-	seta para cima (^)
'	buraco (+)
a	tabuleiro de xadrez (:)
f	grau (')
g	mais-menos (#)
h	quadrado (#)
j	canto inferior direito (+)
k	canto superior direito (+)
l	canto superior esquerdo (+)
m	canto inferior esquerdo (+)
n	cruz (+)
o	linha superior horizontal (-)
q	linha mediana horizontal (-)
s	linha inferior horizontal (_)
t	tee esquerdo (+)
u	tee direito (+)
v	tee inferior (+)
w	tee normal (+)
x	linha vertical (|)
~	parágrafo (???)

Os valores em parênteses são padrões sugeridos os quais podem ser usados por curses, caso as capacidades não estejam disponíveis.

VEJA TAMBÉM
termcap(3), curses(3), terminfo(5)

TRADUZIDO POR LDP-BR em 21/08/2000.
André L. Fassone Canova <lonelywolf@blv.com.br> (tradução) Roberto Selbach Teixeira <robteix@zaz.com.br> (revisão)