Tecla F1 do programa como ^ [[A em vez de ^ [OP in xterm

1

Recebi uma tarefa para converter nosso antigo sistema telnet para ssh por motivos de segurança. Temos poucas unidades manuais que nossos funcionários usam que executam uma conexão telnet com o servidor e executam um programa de maldições.

O problema que enfrentei é que o estranho software de telnet que eles estavam usando antes de se conectar estava lendo as teclas de função diferentes do que o ssh + xterm está lendo agora.

No programa curses que é executado, quando o usuário pressiona F1 , ele deve enviar ^[[A ( 1B 5B 5B 41 em hexadecimal) e o programa lê e faz as coisas. No entanto, ele está recebendo atualmente ^[OP (que eu acho que é 1B 5B 4F 50 ).

Eu encontrei todos os tipos de coisas enquanto pesquiso este problema, mas nenhum deles parece ser o que eu preciso, porque eu não sei o que o ^[[A deveria estar no keysym.

Com inputrc , tentei

^[OP: ^[[A

Mas isso apenas retorna um erro dizendo que ^[[A é um comando desconhecido.

xmodmap não parece ajudar a murchar porque está procurando por um nome e não tenho ideia do que deveria ser. Eu também tenho que fazer isso com F2 para F9 também.

O ambiente que estou usando é um dispositivo Linux realmente restrito que está executando uma caixa aberta.

    
por godofgrunts 21.02.2018 / 19:21

1 resposta

0

xterm permite que você traduza uma chave em uma sequência de caracteres. Isso é feito configurando recursos, por exemplo:

XTerm*VT100.Translations: #override\n\
 <Key>F1: string(0x1b) string("[A")\n\
 <Key>F2: string(0x1b) string("[B")\n

Normalmente, você pode colocar essas linhas em seu arquivo ~/.Xdefaults e ele é lido pelo servidor na inicialização. Mais dinamicamente, você pode carregá-lo ou recarregá-lo no servidor em execução com

xrdb -merge <~/.Xdefaults
    
por 21.02.2018 / 19:44