Aqui estão minhas primeiras e quintas tentativas. O primeiro é decente se você não precisar alterar o atraso. Parece haver alguns problemas com certas combinações de teclas, mas não tenho certeza do que está causando isso.
Método 1, em ~/.xbindkeysrc
:
keystate_scrolllock = enable
"xdotool click 1"
Scroll_Lock
Método 5:
keystate_scrolllock = enable
"/home/USER/infinite_clicks.sh event16 KEY_SCROLLLOCK 0.1 &"
Scroll_Lock
Com infinite_clicks.sh
sendo:
#!/bin/bash
kbd=$1 #"event16"
key=$2 #"KEY_SCROLLLOCK"
delay=$3 #"0.1"
fn='basename "$0"'
if [ $# -le 1 ]; then
echo "Usage: $fn input_device key_name delay"
echo "Example: $fn event16 KEY_SCROLLLOCK 0.1"
echo "Must run as superuser."
exit 1
fi
# do not start if already started
if [[ $(pidof -o %PPID -x $fn) ]]; then
exit 0
fi
while true; do
# this is why you need to use sudo/superuser
evtest --query /dev/input/$kbd EV_KEY $key
# get evtest return code, if it's 0 the key is up
if [[ "$?" -eq "0" ]]; then
break
fi
xdotool click 1 &
sleep "$delay"
done
exit 0
Com este código, você também precisa executar xbindkeys como sudo xbindkeys -f ~/.xbindkeysrc
Você pode encontrar o número do seu evento de teclado usando sudo evtest
e, em seguida, encontrar os nomes das chaves usando sudo evtest /dev/input/eventXXX
usando o número do evento.