A maior parte da pergunta está no título, mas para elaborar um pouco:
Na maioria dos Linux que posso find /usr/share/terminfo -type f
. Mas na máquina Solaris que tenho por perto - esse diretório nem existe.
Eu poderia percorrer uma lista de terminais e fazer algo como:
for TERM in xterm xtermc xterm-color xterm-256color screen rxvt
do
tput cols >/dev/null 2>/dev/null && echo "$TERM available"
done
Mas é lento. Alguma opção para descobrir o caminho usado pelas tput
definições de terminal e executar "me encontrar"?
O programa infocmp no sistema "any" que suporta terminfo mostra o nome do caminho onde encontra a descrição do terminal atual. Por exemplo (AIX neste caso):
Para ncurses, é mais complicado, porque você pode ter vários bancos de dados terminfo e as entradas não precisam ser arquivos individuais. Um único banco de dados e um arquivo por entrada é o padrão , para compatibilidade com sistemas Unix.
A
-D
opção para tic e infocmp (adicionada no final de 2011 ) é uma maneira de mostrar as informações extras. Por exemplo, no meu Debian7, eu posso ver isso:Na minha máquina FreeBSD 10, eu uso bancos de dados hash:
Como alternativa, pode-se usar o
toe
programa para produzir um relatório de todas as entradas de terminal disponíveis. O uso das opções-s
e-a
permite combinar coisas (como oconflict
programa):fonte
No Linux, você pode usar
strace
para ver qual sistema chama um programa usa. A seguir, listaremos todas as chamadas do sistema "open (2)" e as filtraremossed
para mostrar, esperançosamente, o arquivo terminfo usadotput
para traduzir o recurso terminfo do terminal atual.Observe que essa expressão sed supõe que seus arquivos terminfo estejam armazenados em um caminho com o padrão "terminfo" nele. Se isso lhe preocupa, você pode usar uma suposição diferente e escolher a última chamada de sistema "aberta".
Finalmente, você pode simplesmente despejar a lista de caminhos de pesquisa terminfo usando
infocmp -D
outic -D
. Eles listarão seus caminhos de pesquisa terminfo compilados. Esses são os mesmos caminhos pesquisados por maldições.fonte
Eu estava enfrentando o mesmo problema com um Zyxel NSA310
a solução que funcionou para mim foi
conselhos foram dados aqui:
https://better-coding.com/solved-xterm-256color-unknown-terminal-type/
fonte