Você pode tentar obter informações com xset :
xset q | grep Caps
Resultado:
00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
Mas se não houver X, você pode tentar kbdinfo :
kbdinfo gkbled
Resultado:
scrolllock:off numlock:on capslock:off
Editar:
Se você quiser alterar os estados com xset
, verifique a seguir answer .
Ou você pode mudar de estado usando xdotool :
xdotool key Caps_Lock
Para o notificador na tela, você pode verificar key-mon .
Você também pode tentar seguir o script:
#!/bin/bash
#lockkey.sh
sleep .2
case $1 in
'num')
mask=2
key="Num"
;;
'caps')
mask=1
key="Caps"
;;
esac
value="$(xset q | grep 'LED mask' | awk '{ print $NF }')"
if [ $(( 0x$value & 0x$mask )) == $mask ]
then
output="$key Lock is on"
else
output="$key Lock is off"
fi
notify-send "$output"
Você pode copiar o script em /usr/local/bin
e ligar Caps para executá-lo como:
/usr/local/bin/lockkey.sh caps
e / ou Num como:
/usr/local/bin/lockkey.sh num