Ubuntu 14.04 - Несколько ручек Griffin Technology Powermate Knobs

У меня была аналогичная проблема. Для меня установка cifs-utils устранила проблему.

1
13.04.2017, 15:22
1 ответ

Вы можете запрограммировать элементы управления каждого USB-устройства, сканируя сообщаемые события.

Как запустить сценарий оболочки при событии устройства ввода

Просто создайте сценарий для каждого из ваших устройств и запустите его в фоновом режиме. Вы также можете опросить поток событий на выбранном вами языке программирования. Идея того, как обрабатывать входной поток, содержится в связанной статье.

Если вам нужно указать устройство по тому, к какому порту оно подключено, попробуйте использовать путь /dev/by -или /dev/by -id, и если вы хотите сделать его настраиваемым, вы можете перебрать все входные данные и вывести имя:cat /proc/bus/input/devices

Я копирую и вставляю для потомков:

#!/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.

0
28.01.2020, 01:38

Теги

Похожие вопросы