Control-Up, Baixo, Esquerda, Direita como teclas extras

1

Existe alguma maneira de fazer com que as teclas de setas atuem de maneira diferente enquanto a tecla de controle é pressionada. No meu sistema ^ -Up e Up geram o mesmo código ...

    
por Chris2048 18.02.2010 / 21:53

3 respostas

2

Do meu /etc/personal-linux-console.map:

# Up
control keycode 103 = F69

# Left
control keycode 105 = F71

...
string F69 = "3<Cu>"
string F71 = "3<Cl>"

Do meu /etc/rc.local:

 loadkeys -q /etc/personal-linux-console.map

Eu escolhi esses valores arbitrariamente. Agora, no console do Linux, o Control-Up enviará os cinco caracteres Escape- < -C-u- & gt ;, e assim por diante. Você diz ao readline como quer interpretar isso no seu arquivo ~ / .inputrc.

Com o X, existem vários lugares para ajustar as coisas. Algumas alterações que você pode fazer com xmodmap . Dependendo de como você inicia o X, você pode salvar seus comandos xmodmap em ~ / .Xmodmap ou / etc / X11 / Xmodmap e tê-los carregados automaticamente. Algumas mudanças serão muito complicadas para o xmodmap, e você precisará escrever arquivos de definição XKB (estes residem em / usr / share / X11 / xkb na minha máquina). Estes são muito peludos e mal documentados. Você deve encontrar o que poucos docs e tutoriais existem por Googling. Em cerca de um ano, devemos ver uma nova geração de XKB implantada, por isso não sei quanto faz sentido investir tempo na aprendizagem do formato antigo.

Eu não sei se é possível fazer teclas de controle com comandos xmodmaps. Eu acho que é. Eu costumava ter o meu em arquivos XKB personalizados (eu precisava dos arquivos XKB de qualquer maneira, para algumas coisas.) Agora eu tenho as teclas de controle configuradas nos arquivos de configuração do meu terminal X (urxvt). Eu uso o mesmo escape de seqüência arbitrariamente escolhido- < -C-u- > para controle, e assim por diante, para que eu possa usar as configurações no meu arquivo .inputrc (para readline) e para outros programas de terminal (mutt, elinks e assim por diante).

Para algumas redefinições de chave, também é útil escrever seus próprios arquivos terminfo para que os aplicativos com reconhecimento de terminologia sejam mais capazes de identificá-los / reconhecê-los. Eu não faço isso para minhas configurações de seta de controle. Mas, por exemplo, se você tiver alguma chave definida para gerar a saída Escape- < -S-U- & gt ;, talvez queira usar um arquivo terminfo que declara essa string como sendo a tecla "Undo". Então, em alguns aplicativos, você poderá se referir a essa chave como "Desfazer", independentemente do que for dito no teclado físico.

É complexo. Não há solução geral mais simples. (Embora se você estivesse preocupado apenas com algumas chaves, em alguns aplicativos, você pode ignorar parte da complexidade.)

    
por 19.02.2010 / 03:39
0

Sob o console, você pode usar dumpkeys para inspecionar a tabela de translação e as teclas de carga para alterá-la (por exemplo, aqui para mapeá-las para as teclas de função adicionais F13-F16):

box# dumpkeys
...
keycode 103 = Up
keycode 105 = Left
keycode 106 = Right
keycode 108 = Down
...

box# loadkeys <<EOF
control keycode 103 = F13
control keycode 105 = F14
control keycode 106 = F15
control keycode 108 = F16
EOF
    
por 18.02.2010 / 22:25
0

Coloque o putty no modo de emulação xterm se ele puder fazer isso, em vez do VT100. Se não for possível emular xterm, mude para um emulador que possa. O VT100 não pode fazer as seqüências de teclas desejadas, ponto final.

    
por 19.02.2010 / 03:54