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.)