@JeffSchaller, спасибо за правки.
На основе ответа @IporSircer (спасибо! ), мне удалось создать следующий скрипт:
#!/bin/bash
device='/dev/input/by-id/usb-Targus_Laser_Presentation_Remote-if02-event-kbd'
event_blank='*code 48 (KEY_B), value 1*'
event_esc='*code 1 (KEY_ESC), value 1*'
event_f5='*code 63 (KEY_F5), value 1*'
event_prev='*code 104 (KEY_PAGEUP), value 1*'
event_next='*code 109 (KEY_PAGEDOWN), value 1*'
evtest "$device" | while read line; do
case $line in
($event_blank) echo "BLANK SCREEN" ;;
($event_f5) echo "F5" ;;
($event_esc) echo "ESCAPE" ;;
($event_prev) echo "PREVIOUS" ;;
($event_next) echo "NEXT" ;;
esac
done
С помощью evtest
мне удалось узнать номер события /dev/input/event18
для устройства, но этот номер может различаться в зависимости от устройств в вашей системе и порядка их подключения
Из-за этого я использовал udevadm info /dev/input/event18
, чтобы узнать уникальный идентификатор устройства
S: input/by-id/usb-Targus_Laser_Presentation_Remote-if02-event-kbd
Наконец, снова используя evtest
, я смог перехватить все события с устройства, чтобы использовать их в операторе case
.