O que é o modo de teclado não processado?

25

Nas combinações de teclas magic sysrq , há a combinação alt+sysrq+r que, de acordo com a wikipedia, faz o seguinte :

Switch the keyboard from raw mode, the mode used by programs such as X11 and svgalib, to XLATE mode

O que é o modo raw? e o que é o modo XLATE?

Posso voltar ao modo raw depois de mudar para o modo XLATE?

Como posso saber em que modo meu teclado está?

    
por lesmana 12.07.2011 / 17:15

2 respostas

21

Quando você pressiona uma tecla no teclado, ele envia um código numérico ao computador, chamado código de verificação. O código de verificação informa ao computador qual tecla foi pressionada; por exemplo, em um teclado típico dos EUA, a tecla A envia o código de verificação 30 quando você o pressiona (e 158 ao liberá-lo). O driver do teclado reporta esses códigos diretamente aos aplicativos quando o teclado está no modo raw (“raw” significa não processado, direto do teclado). Alguns programas usam o modo raw e processam o próprio teclado; o servidor X é o mais proeminente.

A maioria dos programas espera que quando você pressiona a tecla A , o programa leia o caractere a (ASCII 97), e quando você pressionar Shift + A o programa lê A (ASCII 65), e quando você pressiona Ctrl + A , o programa lê o caractere Ctrl+A (ASCII 1) . Chaves que não têm caracteres associados enviam sequências de escape, e. \e[A para Esquerda , em que \e é o caractere ESC (ASCII 27). O driver do teclado executa esta tradução quando o teclado está no modo ASCII, também chamado de modo XLATE (abreviação de “translate”). O modo XLATE permite que os aplicativos façam a entrada de caracteres, ao custo de não ter acesso a nuances como “tecla Shift esquerda pressionada” ou Ctrl + Shift + A, diferentemente de Ctrl + A.

O kbd_mode permite alternar entre os modos e mostra o modo atual se você invocá-lo sem qualquer argumento.

As combinações de teclas mágicas SysRq são destinadas a recuperar de várias situações desagradáveis. Uma das combinações de teclas é Alt+SysRq+K para matar todos os programas no console virtual atual; se esse programa colocar o teclado no modo raw, você não poderá digitar no prompt de login (que geralmente aparecerá, dependendo da configuração do sistema). Pressionar Alt+SysRq+R restaura o modo ASCII usual (fora de X) onde você pode digitar caracteres.

    
por 13.07.2011 / 00:12
7

Você pode definir o tipo de código que seu teclado envia. Isso é feito através do modo de teclado. Você pode alterar o modo de um teclado com kbd_mode .

Estas são as opções da página de manual:

   -s: scancode mode (RAW),
   -k: keycode mode (MEDIUMRAW),
   -a: ASCII mode (XLATE),
   -u: UTF-8 mode (UNICODE).

É muito mais fácil para um desenvolvedor capturar os principais eventos, como a tecla Shift pressionada, se ele puder simplesmente obter os scancodes das teclas pressionadas.

    
por 12.07.2011 / 22:45