loadkeys tem (quase) nenhum efeito

1

Estou rodando o CentOS 6.4 no vagrant e depois fazendo um SSH errante na caixa. Eu tenho tentado fazer o backspace funcionar corretamente por um tempo agora (como chronicled aqui: Terminal do Centos Configurando Backspace e Ctrl-h Corretamente )

Como parte disso, estou tentando usar loadkeys para modificar as ações no mapa de teclas - mas isso não parece funcionar muito bem. Então, como root, eu fiz o seguinte (como especificado aqui ):

[root@localhost vagrant]# dumpkeys -f  | grep -iE string
...
string F9 = "3[20~"
string F10 = "3[21~"
...

[root@localhost vagrant]# echo 'string F10 = "foo" ' | loadkeys   # to make F10 print "foo"

[root@localhost vagrant]# dumpkeys -f  | grep -iE string   # verify that keymap is changed
...
string F9 = "3[20~"
string F10 = "foo"
...

Agora digite F10. Isso continua me dando o caractere ~ em vez de imprimir foo . Este é o comportamento original antes de as teclas de atalho serem chamadas - então parece que as teclas de carga não têm efeito algum?

    
por Rohith 02.10.2014 / 11:08

1 resposta

1

loadkeys reprograma o emulador de terminal embutido no kernel, via solicitações ioctl() através de um dispositivo de terminal virtual do kernel. Você não está usando o emulador de terminal quando se conecta à máquina via ssh . De fato, você não está envolvido em nenhum emulador de terminal, kernel ou espaço de usuário, de forma alguma.

O emulador de terminal em sua máquina local é o que a tecla de função de mapeamento pressiona nas seqüências de controle. É claro que loadkeys não está reprogramando o emulador de terminal que está sendo executado em uma máquina completamente diferente no final local da sua conexão ssh .

Se você não tivesse executado loadkeys como superusuário, teria recebido a mensagem de erro útil de que, quando executado da sessão de login ssh loadkeys não encontrou um terminal virtual do kernel para conversar, porque não estava envolvido nessa sessão de login.

    
por 27.01.2015 / 16:58