Isso é muito mais complicado do que deveria, mas aqui está minha tentativa.
No nível mais básico, o kernel sabe reconhecer dispositivos de teclado e entende o conceito de um mapa de teclas da consola . Essa é a maneira mais simples de configurar o 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.
Uma vez que você entra 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.
- O Xorg fala diretamente com o dispositivo de teclado, ignorando o kernel e ignorando o mapa de teclas especificado no console.
- O Xorg permite que você defina algumas opções específicas para o seu teclado no arquivo xorg.conf, embora as distribuições atuais do Linux tentem executar o melhor possível sem qualquer arquivo xorg.conf. Dependendo da sua versão do Xorg, você pode precisar especificar o seu XkbLayout dentro de uma seção
InputClass
(para versões mais recentes do Xorg) ou uma seçãoInputDevice
(para versões mais antigas). - Existem várias camadas específicas de interpretação no Xorg quando uma tecla é pressionada.
- No nível mais básico, cada evento de pressionamento de tecla é representado por um código numérico.
- O XkbModel combinado com o XkbLayout é usado para associar um determinado código de tecla a um evento de chave real. Por exemplo, no teclado, o código 50 gera
Shift_L
. - Opcionalmente, você pode especificar vários XkbLayouts para um teclado e, em seguida, usar
XkbOptions
(lista completa geralmente armazenada em/usr/share/X11/xkb/rules
) para configurar como alternar os layouts. (Isso é útil se, digamos, você estiver tentando se ensinar Dvorak ou quiser alternar entre os layouts de teclado em inglês e russo). - Cada código de acesso pode ser interpretado de várias maneiras, dependendo de quais modificadores estão sendo mantidos.
xmodmap
permite que você veja quais eventos principais serão enviados com base nos modificadores que estão sendo mantidos.