As ferramentas para manipular o layout do teclado nos consoles virtuais são loadkeys
, dumpkeys
e showkey
. Leia as manpages e informe-se sobre as complexidades.
Observe que essas ferramentas funcionam apenas em um console virtual, não em um emulador de terminal em um ambiente gráfico como o gnome. O aprendizado sobre a diferença lê esta pergunta e respostas: .
Aqui está um pequeno guia para fazer o que você quer:
-
Salvar seu layout de teclado atual:
$ dumpkeys > backup.kmap
Caso algo dê errado, você poderá restaurar seu mapa de teclado usando o comando:
$ sudo loadkeys backup.kmap
Se o teclado está tão bagunçado que você nem pode fazer isso, então sua única opção que não envolve a mágica antiga do kernel é reinicializar.
-
Verifique quais códigos de teclas são atribuídos às suas chaves:
$ showkey
Agora pressione a tecla ESC e a tecla CAPSLOCK. Os códigos de teclas devem aparecer na tela. Observe os códigos de teclas. No meu sistema o ESC possui o keycode 1 e o CAPSLOCK possui o keycode 58.
showkey
terminará após 10 segundos de inatividade (pelo menos no meu Ubuntu 10.04). -
Anote os nomes das teclas ESC e CAPSLOCK das dumpkeys:
$ dumpkeys | grep 1 ... keycode 1 = Escape ... $ dumpkeys | grep 58 ... keycode 58 = CtrlL_Lock ...
-
Observe a linha do mapa de teclado de dumpkeys:
$ dumpkeys | head -1 keymaps 0-127
-
Crie um arquivo de mapa de teclado que alterna ESC e CAPSLOCK:
keymaps 0-127 keycode 1 = CtrlL_Lock keycode 58 = Escape
-
Carregue o mapa de teclado:
$ sudo loadkeys swap_esc_capslock.kmap
-
Teste: testar a tecla CAPSLOCK é óbvio. Basta pressionar a tecla CAPSLOCK e verificar se outras teclas saem em maiúsculas. Para testar a tecla ESC, você pode usar CTRL + V seguido por ESC. Deve imprimir
^[
. CTRL + V faz o shell imprimir a próxima chave textual em vez de interpretá-la.
Para carregar essa modificação a cada reinicialização, coloque a seguinte linha no seu arquivo /etc/rc.local
:
/usr/bin/loadkeys /path/to/swap_esc_capslock.kmap
Informações coletadas de várias páginas, incluindo, mas não se limitando a: