caps lock led não funciona no console Linux

caps lock led não funciona no console Linux

Quando mudo para um TTY e ligo o caps lock, o LED de caps lock do teclado não acende. No X funciona bem. Quando eu ativo o caps lock e depois mudo para um TTY e pressiono caps lock (no TTY), o LED permanece aceso (mesmo que o TTY mantenha seu próprio controle do caps lock). Parece que os TTYs não se importam nem um pouco com o LED.

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

Estou usando o Debian jessie (atualizado com frequência) arch: amd64

Responder1

Este é um Debian de longa dataerro. Parece estar relacionado a um kernel subjacenteerroque já foi corrigido há muito tempo. O problema parece ter sido que Caps_Locknão funcionou para caracteres não ASCII, então a solução alternativa foi mapear Shift_Lockou CtrlL_Lockusar a tecla Caps Lock.

No lado Debian, o problema é criado por ckbcompwhich é usado console-setuppara criar o mapa de teclas do console a partir da descrição do teclado XKB. Observe que o código original mencionado no relatório de bug Shift_Lockparece ter sido substituído por um código diferente que muda para CtrlL_Lock. Se estiver interessado, você pode pesquisar os usos da broken_capsvariável no ckbcompscript Perl.

Não tenho ideia se o código ainda é necessário por algum motivo, talvez valha a pena dar uma olhada no relatório de bug. No entanto, a solução alternativa é inserir a seguinte linha /etc/kbd/remape ela deve ser corrigida após a 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 ttysessão:

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

Atualizar

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

dumpkeys | sed s/CtrlL_Lock/Caps_Lock/ | loadkeys

Responder2

Encontrei soluções para Debian 6 e Debian 7.

Debian 6

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

keycode 58 = Caps_Lock

Então corrasetupcon

Debian 7

Coloque o seguinte no final do /etc/default/keyboardscript:

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

Então corrasetupcon

Observe que há dois espaços entre o código-chave e 58. O redirecionamento para /dev/nullapenas suprime a irritante saída do console.

informação relacionada