After a little futile hacking, I realised that . . . I would need to properly map the HHK keyboard so that I could use the various meta-keys. Thus began my descent into hell.
Doug Palmer, An Unreliable Guide to XKB Configuration
Estou tentando configurar o Konsole para emitir sequências de escape no estilo VT220 a partir do teclado numérico quando o modo de teclado numérico de aplicativos estiver ativado (por exemplo, por echoti smkx
). Em particular, as seguintes seqüências de controle devem ser a saída sob as condições descritas:
link
É preciso estar ciente de que inserir a variável de ambiente TERM
é o mesmo que mentir para o shell sobre os recursos do terminal e geralmente deve ser evitado. Basta definir TERM=xterm-vt220
como insuficiente e causar um comportamento inesperado.
Eu tenho uma solução simples, mas parcial. O Konsole permite a configuração de suas associações de teclas de terminal na forma de arquivos .keytab
. As seguintes adições são efetivas, salvas em .local/share/konsole/VT220.keytab
:
keyboard "VT220"
key 0+KeyPad+AppCursorKeys : "\EOp"
key 1+KeyPad+AppCursorKeys : "\EOq"
key 2+KeyPad+AppCursorKeys : "\EOr"
key 3+KeyPad+AppCursorKeys : "\EOs"
key 4+KeyPad+AppCursorKeys : "\EOt"
key 5+KeyPad+AppCursorKeys : "\EOu"
key 6+KeyPad+AppCursorKeys : "\EOv"
key 7+KeyPad+AppCursorKeys : "\EOw"
key 8+KeyPad+AppCursorKeys : "\EOx"
key 9+KeyPad+AppCursorKeys : "\EOy"
key ++KeyPad+AppCursorKeys : "\EOk"
key *+KeyPad+AppCursorKeys : "\EOj"
key .+KeyPad+AppCursorKeys : "\EOn"
key -+KeyPad+AppCursorKeys : "\EOm"
key Enter+KeyPad : "\EOM"
Com essas combinações de teclas aplicadas (juntamente com quaisquer outras que possam estar presentes), konsole
emitirá as mesmas seqüências de controle que xterm
quando o modo de teclado de aplicativo estiver habilitado e NumLock estiver ativado. Essas sequências são úteis para aplicativos que esperam a emulação de VT220, pois identificam de maneira exclusiva as teclas digitadas no teclado numérico, permitindo que funções arbitrárias sejam vinculadas a elas.
Uma chave do teclado comum está faltando na minha configuração: /
(Qt :: Key_Slash). O editor de ligação de chave gráfica do Konsole não parece reconhecer qualquer referência a essa chave, seja por nome ou expressa como um literal. Se for escrito manualmente no arquivo .keytab
, o Konsole irá ignorá-lo e a linha não aparecerá no editor da GUI. Isso deixa um buraco muito chato no meu teclado, onde exatamente uma chave é teimosamente improgramável.
Eu prefiro não entrar nas ervas daninhas com xkb
e amigos; mas é claro que baunilha xterm
faz tudo isso fora da caixa, demonstrando que não é necessário mexer nas combinações de teclas em um nível tão baixo neste caso. Parece, em vez disso, que o Konsole (ou QT) está fazendo algo único e com o snowflakey no topo do X.
Pergunta: É possível no Konsole reconectar a tecla /
do teclado numérico a uma sequência de controle diferente? Alternativamente, esse é o ponto em que algo que opera em um nível diferente (como terminfo
, xkb
ou xterm-keys
de tmux
) seria mais eficaz? Eu, talvez, enlouqueci?
Qualquer percepção de outros intrépidos comandantes de console seria apreciada.