Eu desativo rotineiramente o Caps Lock e o respectivo modificador com um script, usando xmodmap
. Isso tudo funciona bem.
Às vezes, no entanto, por algum motivo desconhecido, o Caps Lock está ativo. Não tendo nenhuma tecla vinculada Caps_Lock
e nenhuma tecla vinculada para alternar o Lock
modificador, não posso desativar o Caps Lock a menos que eu redefina o mapa de teclas, pressione a tecla e, em seguida, mapeie-o novamente para a configuração desejada.
Então: Como posso desabilitar o Caps Lock (atualmente ativo) sem remapear as teclas e sem as teclas vinculadas ao trabalho?
Talvez uma ferramenta de linha de comando possa definir o estado?
Para quem estiver interessado, aqui está como meu script desativa a ativação acidental do Caps Lock pressionando uma tecla (nunca o habilito intencionalmente):
#!/bin/sh
# I never want to use Caps_Lock. Make Caps_Lock another Control_L...
xmodmap -e "remove Lock = Caps_Lock" 2> /dev/null
xmodmap -e "keysym Caps_Lock = Control_L" 2> /dev/null
xmodmap -e "add Control = Control_L" 2> /dev/null
Eu não conheço nenhum utilitário que faça isso (exceto talvez
xdotool key Caps_Lock
?), mas enquanto isso você pode compilar este pequeno programacc xkb_unlock.c -s -lX11 -o ./xkb_unlock
(desde que você tenha instalado um compilador e os pacotes de desenvolvimento libc & xorg) e usá-lo simplesmente como./xkb_unlock
.xkb_unlock.c
Por muitos anos,
xmodmap -e 'clear Lock'
funcionou bem para desativar o efeito de caps lock. O código xkb_unlock.c postado em outra resposta faz coisas semelhantes. Mas, infelizmente, na minha distribuição Linux moderna, isso não funciona mais. Você precisa usarsetxkbmap
, em vez dexmodmap
:Funciona como um encanto.