вариант через
evtest
для начала смотрим на каких ивентах висят нужные нам клава и мышка
для примера, у меня это 8(мыш) и 11(клава), нужно будет найти и подставить свои
$ 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, для мышки(event8) и клавиатуры(event11) после запуска которых по истечению указанного времени в timeout, здесь 10s (секунд), команда отработает и выдаст результат, а именно, количество нажатий клавиш за отведённый период времени.
(timeout 10s evtest /dev/input/event8 | grep --line-buffered -E 'EV_KEY.*0$' | wc -l)
(timeout 10s evtest /dev/input/event11 | grep --line-buffered -E 'EV_KEY.*0$' | wc -l | { read a;echo $[a-1]; })
однострочники довольно похожи, и помимо отличий в ивентах, для клавиатуры результат уменьшен на единицу, так как учитывается лишнее нажатие на ентер при первоначальном запуске команды.