O que é o modo de teclado bruto?

27

Nas combinações de teclas sysrq mágicas , existe a combinação alt+sysrq+rque, de acordo com a wikipedia, faz o seguinte:

Alterne o teclado do modo bruto, o modo usado por programas como X11 e svgalib, para o modo XLATE

O que é o modo bruto? e qual é o modo XLATE?

Posso voltar ao modo bruto depois de passar para o modo XLATE?

Como posso saber em que modo meu teclado está?

lesmana
fonte

Respostas:

23

Quando você pressiona uma tecla do teclado, ele envia um código numérico para o computador, chamado código de verificação. O código de digitalização informa ao computador qual tecla foi pressionada; por exemplo, em um teclado americano típico, a Atecla envia o código de escaneamento 30 quando você o pressiona (e 158 quando você o solta). O driver do teclado relata esses códigos diretamente aos aplicativos quando o teclado está no modo bruto ("bruto" significa não processado, direto do teclado). Alguns programas usam o modo bruto e fazem seu próprio processamento de teclado; o servidor X é o mais proeminente.

A maioria dos programas espera que, quando você pressiona a Atecla, o programa lê o caractere a(ASCII 97), e quando você pressiona Shift+ Ao programa lê A(ASCII 65) e quando você pressiona Ctrl+ Ao programa lê o Ctrl+Acaractere (ASCII 1). Teclas que não possuem caracteres associados enviam seqüências de escape, por exemplo , \e[Apara Left, onde \eestá o caractere ESC (ASCII 27). O driver do teclado executa essa conversã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 insiram caracteres, com o custo de não ter acesso a nuances como “tecla Shift esquerda pressionada” ou Ctrl + Shift + A, diferente de Ctrl + A.

A kbd_modepermite alternar entre os modos, e mostra o modo atual, se você chamá-lo sem qualquer argumento.

As combinações mágicas de teclas SysRq destinam-se a recuperar de várias situações desagradáveis. Uma das combinações de teclas é Alt+SysRq+Kmatar todos os programas no console virtual atual; se esse programa colocar o teclado no modo bruto, não será possível digitar no prompt de login (que geralmente aparecerá, dependendo da configuração do sistema). Pressionar Alt+SysRq+Rrestaura o modo ASCII usual (fora de X), onde você pode digitar caracteres.

Gilles 'SO- parar de ser mau'
fonte
9

Você pode definir qual tipo de código seu teclado envia. Isso é feito através do modo do 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 eventos importantes como a tecla Shift esquerda pressionada, se ele pode simplesmente obter os códigos de escaneamento das teclas pressionadas.

echox
fonte