Подтвердить что ты не робот

Как я могу узнать, какой из /dev/input/eventX (X = 0..7) имеет поток ввода Linux?

Я пытаюсь захватить ввод клавиатуры/мыши linux, и я читаю события, как /dev/input/event2. Но кажется, что ввод иногда направляется на /dev/input/event2, иногда на /dev/input/event3. Интересно, есть ли место, где я могу узнать, какой из потоков имеет вход?

4b9b3361

Ответ 1

Просто наткнулся на это - довольно поздно.

Вы можете узнать имена и другие атрибуты разных устройств, используя:

cat /proc/bus/input/devices

Ответ 2

Использование evtest очень полезно. Он может отображать все ваши устройства ввода по имени и позволяет отслеживать события каждого устройства.

Ответ 3

Чтобы узнать, перейдите к /dev/input/by-id или /dev/input/by-path и выполните ls -l, чтобы узнать, какая символьная ссылка указывает на event<*>.

Кроме того, я думал, что было бы полезно всем, кто попадает на эту страницу, чтобы найти это полезное ссылка в некоторый код, который захватывает события клавиатуры.

Ответ 4

Запустите это в терминале, он будет работать нормально:

cat /proc/bus/input/devices | awk '/keyboard/{for(a=0;a>=0;a++){getline;{if(/kbd/==1){ print 
$NF;exit 0;}}}}'

Источник

Ответ 5

Я знаю, что немного поздно ответить, но надеюсь, что это полезно для друзей.

"mice" содержит входные данные мыши, но чтобы найти файл, связанный с клавиатурой, нам нужно проверить файлы в папке "by-path", имена файлов клавиатуры заканчиваются на "event-kbd". Нам нужно найти ссылки на клавиатуры, а затем мы можем найти файл событий клавиатуры. Следующие команды могут сделать это автоматически для нас:

kbdEvents=($(ls /dev/input/by-path | grep "event-kbd"))     
for forCounter in "${kbdEvents[@]}"
do
    eventFile=$(readlink --canonicalize "/dev/input/by-path/${forCounter}")     
    # do anything ...
done

Этот код является частью кода для перерыва на моем личном сайте: mazKnez.com