Encontrei isso depois de procurar por um problema semelhante. Desde que é um ano velho eu poderia também responder de qualquer maneira.
Como na pergunta se você usa xset led named "Scroll Lock"
, ele habilitará leds e xset -led named "Scroll Lock"
desativará os leds do teclado. Se você examinar o xset --help
menciona que xset q
imprime as informações de status atual.
Aqui está uma amostra truncada do stdout no terminal:
Keyboard Control:
auto repeat: on key click percent: 0 LED mask: 00000002
XKB indicators:
00: Caps Lock: off 01: Num Lock: on 02: Scroll Lock: off
03: Compose: off 04: Kana: off 05: Sleep: off
06: Suspend: off 07: Mute: off 08: Misc: off
09: Mail: off 10: Charging: off 11: Shift Lock: off
12: Group 2: off 13: Mouse Keys: off
A string Scroll lock: off
só estará presente na saída se e somente se o Scroll Lock estiver desligado, então podemos usar o grep para verificar esta string.
xset q | grep "Scroll Lock: off"
funciona muito bem para nossos propósitos. Então, em um script de shell, podemos verificar a string nula para ver quando ela está ativa.
#!/bin/sh
result=$(xset q | grep "Scroll Lock: off")
if [ -z "$result" ]; then # Scroll Lock must be on
echo "Off"
xset -led named "Scroll Lock"
else
echo "On"
xset led named "Scroll Lock"
fi
Então, se você quiser, basta usar o gerenciador de janelas ou a configuração do ambiente de área de trabalho para executar esse script quando pressionar o controle de rolagem.