вариант через
evtest
для начала смотрим на каких ивентах висят нужные нам клава и мышка
для примера, у меня здесь мышь на
event8 а клава на
event11
$ evtest
No device specified, trying to scan all of /dev/input/event*
Not running as root, no devices may be available.
Available devices:
/dev/input/event0: Power Button
/dev/input/event1: Power Button
/dev/input/event10: Rapoo Rapoo Gaming Mouse Consumer Control
/dev/input/event11: A4tech A4tech KB
/dev/input/event12: A4tech A4tech KB System Control
/dev/input/event13: A4tech A4tech KB Consumer Control
/dev/input/event14: HID 1d57:ad02 Keyboard
/dev/input/event15: HID 1d57:ad02 Mouse
/dev/input/event16: PC Speaker
/dev/input/event17: HD-Audio Generic Rear Mic
/dev/input/event18: HD-Audio Generic Front Mic
/dev/input/event19: HD-Audio Generic Line
/dev/input/event2: Video Bus
/dev/input/event20: HD-Audio Generic Line Out
/dev/input/event21: HD-Audio Generic Front Headphone
/dev/input/event22: keyd virtual keyboard
/dev/input/event23: keyd virtual pointer
/dev/input/event3: Video Bus
/dev/input/event4: SEM Trust Numpad
/dev/input/event5: SEM Trust Numpad Consumer Control
/dev/input/event6: SEM Trust Numpad System Control
/dev/input/event7: Rapoo Rapoo Gaming Mouse
/dev/input/event8: Rapoo Rapoo Gaming Mouse
/dev/input/event9: Rapoo Rapoo Gaming Mouse System Control
Select the device event number [0-23]:
для проверки укажите ваш номер в "
Select the device event number [...]" и посмотрите будет ли генерироваться вывод при нажатии клавиш на нужной клаве/мыше
запомните этот номер, ниже он будет использоваться в bash-однострочнике как
eventX (где X замените на свой)
далее два варианта по подсчету нажатий
вариант 1
выдаст результат только по истечению времени указанного в
timeout
(timeout 10s evtest /dev/input/eventX | grep --line-buffered -E 'EV_KEY.*0$' | wc -l)
вариант 2
значение будет выводиться сразу во время нажатия
evtest /dev/input/eventX |awk '/EV_KEY.*0$/,count++{system("tput dl1");printf "Нажатий: "count-1}'