Não, porque isso não é feito pelo shell Z.
Eventos brutos de criação / interrupção do teclado são fornecidos pelo dispositivo de teclado. Eles são processados por um emulador de terminal - seja aquele embutido no kernel do sistema operacional ou um GUI, como xterm
, gnome-terminal
, lxterminal
e assim por diante. O emulador de terminal converte os eventos do teclado em seqüências de caracteres e os empurra para o lado "mestre" de um pseudo-terminal ou o lado "mestre" (geralmente oculto) de um console virtual. Eles passam pela disciplina de linha de terminal, e somente então faz o shell Z ver o resultado, como entrada lida do lado "escravo" do pseudo-terminal / console virtual.
As chaves "lock" e "modifier" não são tratadas na disciplina de linha. Pense nos dias de terminais reais (em vez de "pseudo" e "virtuais") ligados por linhas seriais para entender isso. Os caracteres que passam pela linha serial do terminal para o sistema já já tinham os modificadores aplicados. caps lock mais a já foi traduzido para "A" pelo terminal, e é isso que é enviado pelo terminal e o que chega na disciplina de linha. (Da mesma forma, control e c já foi traduzido pelo terminal para o caractere ETX
do ASCII.)
Então, para ajustar o que caps lock - ou mesmo qualquer outro modificador -, você precisa ajustar o terminal . No seu caso, você tem que ajustar qualquer emulador de terminal que esteja usando.
- Com os emuladores de terminal baseados no X Window System, você pode ter uma boa aparência com mapeamentos de teclado X, já que há uma camada de X entre o dispositivo de teclado bruto e o programa emulador de terminal.
- Com os emuladores de terminal integrados em sistemas operacionais, geralmente há um sistema de mapeamento de teclado bastante diferente, envolvendo uma camada de mapeamento de código-chave-de-caracteres do sistema operacional no kernel do sistema operacional, com a qual você pode brincar. Ele varia muito de kernel para kernel (ou seja, Linux para BSD), e as ferramentas que você executa para ajustá-lo variam bastante, desde a distribuição Linux até a distribuição Linux (por exemplo, de
localectl
adpkg-reconfigure console-setup
ainvoke-rc.d console-screen.sh
). >
Mas como isso altera o comportamento do seu terminal , ele afetará todos os programas que receberem entrada desse terminal. Para um emulador de terminal GUI, ele afetará todo programa que você executa que recebe sua entrada desse pseudo-terminal. Para o emulador de terminal no kernel que lida com os consoles virtuais, ele afetará cada programa que recebe sua entrada do console virtual.
Ele não afetará todo o sistema, mas afetará muito mais do que você deseja, o que é apenas para afetar o shell Z.
Leitura adicional
- Andries Brouwer (2002-10-12). "2. Generalidades do teclado". O Teclado Linux e o HOW-TO do Console . versão 2.13. Projeto de documentação do Linux.