caps lock não funcionou no console do Linux

5

Quando eu alterno para um TTY e ligo o caps lock, o LED de caps lock do meu teclado não está ligado. No X funciona bem. Quando eu ativo caps lock e, em seguida, mudo para um TTY e, em seguida, pressiono caps lock (no TTY), o LED permanece ligado (mesmo que o TTY mantenha sua própria faixa de caps lock). Então parece que os TTYs não se importam com o LED.

Posso de alguma forma ativar o LED em TTYs? É muito chato ser forçado a digitar algo sem saber se o caps lock está ativado.

Estou usando o arco do Debian jessie (freqüentemente atualizado): amd64

    
por Kritzefitz 12.06.2014 / 20:36

2 respostas

7

Este é um bug de longa data. Parece estar relacionado a um bug do kernel subjacente, que há muito tempo já é consertado. O problema parece ter sido que Caps_Lock não funcionou para caracteres não-ASCII, portanto, a solução alternativa era mapear Shift_Lock ou CtrlL_Lock para a tecla caps lock.

No lado do Debian, o problema é criado por ckbcomp , que é usado por console-setup para criar o mapa de teclas do console a partir da descrição do teclado XKB. Observe que o código original referenciado no relatório de erros usando Shift_Lock parece ter sido substituído por um código diferente que alterna para CtrlL_Lock . Se você estiver interessado, poderá pesquisar os usos da variável broken_caps no script ckbcomp Perl.

Eu não tenho idéia se o código ainda é necessário por qualquer motivo, talvez valha a pena bater o relatório de bug. No entanto, a solução é colocar a seguinte linha em /etc/kbd/remap e deve ser corrigida após uma reinicialização:

s/CtrlL_Lock/Caps_Lock/

Ou para uma correção temporária até a próxima reinicialização, execute o seguinte em uma sessão tty :

dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | sudo loadkeys

Atualizar

Parece que /etc/kbd/remap só é realmente usado se setupcon não estiver disponível. Uma solução melhor é apenas colocar a seguinte linha em /etc/rc.local :

dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys
    
por 13.06.2014 / 00:32
3

Eu encontrei soluções para o Debian 6 e Debian 7.

Debian 6

Coloque o seguinte no final do arquivo /etc/console-setup/remap.inc :

keycode 58 = Caps_Lock

Em seguida, execute setupcon

Debian 7

Coloque o seguinte no final do script /etc/default/keyboard :

dumpkeys | sed -e "s/keycode  58 = CtrlL_Lock/keycode  58 = Caps_Lock/" | \
   loadkeys 2>&1 >/dev/null

Em seguida, execute setupcon

Observe que há dois espaços entre o código de acesso e o código 58. O redirecionamento para /dev/null apenas suprime a saída de console irritante.

    
por 21.10.2014 / 17:27