Gostaria que o Terminfo para meu terminal (rxvt-unicode) funcionasse, para que, quando eu ssh do Linux para o macOS, as teclas Home/End e outras funcionassem corretamente.
Normalmente, para fazer isso com um host remoto Linux, eu uso um script como o seguinte:
ssh "$1" 'mkdir -p ~/.terminfo/r'
for f in /usr/share/terminfo/r/rxvt-unicode{,-256color}
do
scp "$f" "$1":.terminfo/r/
done
No entanto, isso não está funcionando com o macOS.
Quando eu corro screen
, primeiro eu estava recebendo "TERM muito longo - desculpe".
Depois de atualizá-lo para a versão brew (4.06.02), agora estou recebendo "Não é possível encontrar a entrada terminfo para 'rxvt-unicode-256color'."
TERM
está definido corretamente como rxvt-unicode-256color
, e ~/.terminfo/r/rxvt-unicode-256color
existe.
Correr screen
com TERMINFO=$HOME/.terminfo/
também não tem efeito.
A execução (como
screen
no macOS) revelou o seguinte:dtruss
strace
Por alguma razão,
screen
está usando a representação hexadecimal da primeira letra em vez de simplesmente a primeira letra para espalhar a estrutura doterminfo
diretório.Então, para consertar, tive que executar:
Tudo parece funcionar agora.
ncurses usa 2 caracteres para sistemas de arquivos (como MacOS e OS/2) onde os nomes de arquivos preservam maiúsculas de minúsculas / não diferenciam maiúsculas de minúsculas . Isso está documentado no
NEWS
arquivo . A Apple, a propósito, fornece uma versão antiga do ncurses (5.7) que ainda é nova o suficiente para esse recurso.Os aplicativos portáteis não devem depender de nenhuma organização específica do banco de dados do terminal...
A propósito, as entradas terminfo atuais para xterm-256color não funcionarão bem com o antigo sistema básico ncurses 5.7, pois o valor dos pares de cores excede os limites. O efeito sobre rxvt-unicode depende de como a fonte foi construída. Isso é mencionado no FAQ :
Em seu computador linux, descompile o terminfo com o
infocmp
qual geralmente é empacotado com oncurses
pacote e salve em um arquivo temporário. Você pode então SCP este arquivo para o seu mac.Em seguida, no seu mac, use o
tic
comando para compilar o arquivo e ele também colocará a saída no lugar certo em seu diretório pessoal:Atualmente, esse local final do arquivo é,
~/.terminfo/72/rxvt-unicode-256color
mas isso pode mudar no futuro.