Sempre tive problemas em entender a maneira como o mapeamento do teclado e coisas relacionadas são reunidas no Linux.
Quando as coisas quebram, meu sangue ferve se eu tiver que vasculhar intermináveis listas de e-mails desatualizadas e postagens de fóruns para encontrar QUE um comando ou linha de inputrc que corrige meu problema.
Existem problemas clássicos como backspace que não funciona no vim ou Ctrl
+ setas no bash até que você mude o tipo de terminal. Ou um problema que encontrei recentemente, em que uma instalação nova do Debian @
tecla realmente imprime "
, e "
imprime @
(layout de teclado errado?)
Apenas olhar para arquivos e ferramentas não ajuda muito. inputrc? xmodmap? setxkbmap? configuração do console? Onde eu começo a realmente entender como funciona para não ter que recorrer a comandos duvidosos de alguém para consertar meus problemas de teclado?
Isso é muito mais complicado do que deveria ser, mas aqui está a minha tentativa.
No nível mais básico, o kernel sabe como reconhecer dispositivos de teclado e entende o conceito de mapa de teclado do console . Esta é a maneira mais simples de configurar seu teclado e há apenas uma variável a ser considerada, mas essas configurações afetam apenas a entrada do teclado no console de texto do Linux.
Depois de entrar no Xorg, as coisas ficam um pouco mais complicadas, mas na verdade faz algum sentido. O Xorg tem várias noções específicas que são muito importantes para entender.
InputClass
(para versões mais recentes do Xorg) ou uma seção InputDevice
(para versões mais antigas).Shift_L
.XkbOptions
(lista completa normalmente armazenada em /usr/share/X11/xkb/rules
) para configurar como alternar layouts. (Isso é útil se, digamos, você estiver tentando aprender Dvorak sozinho, ou se quiser alternar entre os layouts de teclado em inglês e russo).xmodmap
permite que você veja quais eventos chave serão enviados com base em quais modificadores estão sendo mantidos.Atualmente, o console e o X podem funcionar juntos.
Não sei se isso está completamente padronizado ainda, mas no Debian Unstable (e presumivelmente outras distros com Xorg e ferramentas de console atualizadas), /etc/default/keyboard
permite que você use a sintaxe do estilo X para configurar o teclado no console e no X - pelo menos se você estiver usando ferramentas do console e configuração do console. O resto é conforme descrito acima.
Existem problemas clássicos, como backspace não funciona no vim ...
Talvez você esteja falando sobre o comportamento do vim de excluir com backspace apenas os caracteres que você digitou na edição atual, e impedindo que você faça isso com caracteres já presentes antes de entrar no modo de edição.
Esse comportamento é alterado pela configuração:
set backspace=indent,eol,start