Я написал о том, как я получил свой Infinity IN-USB-1 (AKA "VEC USB Footpedal") для отправки произвольных ключевых символов под X в моем блоге:
Использование педали VEC / Infinity USB в качестве клавиатуры под Linux
(Он также должен работать для IN-USB-2 и, возможно, некоторых других моделей ножных контроллеров USB, продаваемых VEC и P.I. Engineering и их клонами.)
Вот более короткая версия:
Получите X, чтобы распознать педаль
Педаль является HID-совместимым USB-устройством, и ядро без проблем обнаруживает его и делает его события доступными для пространства пользователя через узел /dev/input/eventX
. Чтобы увидеть, что вы можете запустить программу evtest
(в Debian: sudo apt install evtest
). Так что не нужно , чтобы перейти на уровень HID, чтобы использовать ножные педали.
Проблема в том, что udev не помечает его как клавиатуру или мышь, поэтому X игнорирует его. Это можно исправить с помощью файла правил udev, состоящего из одной строки (спасибо Parlatype разработчику Габору Карсею за предоставление этого решения в Parlatype Issue 28 ):
ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{idVendor}=="05f3", ATTRS{idProduct}=="00ff", ENV{ID_INPUT_KEYBOARD}="1"
Поместите эту строку в файл с именем /etc/udev/rules.d/10-vec-usb-footpedal.rules
. Не нужно ничего перезагружать, udev должен автоматически определить файл.
Теперь, когда вы отключаете и снова подключаете USB-педаль, она должна распознаваться X (и отправлять события кнопки мыши). Чтобы проверить, запустите xev
.
Переназначение ключей с помощью udev hwdb
Наличие педали, которая посылает только щелчки мышью, вероятно, не то, что вам нужно. Эти коды клавиш, отправленные педальными переключателями, можно переназначить с помощью файла udev hwdb.
Создайте файл в /etc/udev/hwdb.d/
(я поставил мой в /etc/udev/hwdb.d/60-usb-footpedal.hwdb
), содержащий следующие строки:
/etc/udev/hwdb.d/60-usb-footpedal.hwdb
evdev:input:b*v05F3p00FF*
KEYBOARD_KEY_90001=f14
KEYBOARD_KEY_90002=f15
KEYBOARD_KEY_90003=f16
На этот раз нам нужно сообщить системе обновить двоичный файл hwdb:
$ sudo systemd-hwdb update
А затем отключите и снова подключите устройство.
Первая строка файла hwdb соответствует нашему устройству (поставщик 05F3
, продукт 00FF
), а последующие строки отображают код (шестнадцатеричный) в код ключа. Я выбрал функциональные клавиши F14, F15 и F16, но список доступных кодов клавиш определен в / usr / include / linux / input-event-codes.h ; чтобы использовать имена #defined в этом файле в качестве кодов клавиш hwdb, просто преобразуйте их в нижний регистр и удалите префикс key_
.
По умолчанию (pc + us) раскладка клавиатуры xkb на моем компьютере соответствует F14
, F15
и F16
для клавиш XF86Launch5
, XF86Launch6
и XF86Launch7
соответственно. Если вы откроете xev
сейчас и нажмете педали, вы должны увидеть, как эти клавиши выдаются. Используя эти ключевые символы, каждый педальный переключатель может быть отображен как горячая клавиша на рабочем столе или в оконном менеджере.
Вы также можете переназначить символы XF86*
на другие ключи, используя что-то вроде xmodmap. Для получения более подробной информации, в том числе о том, как получить ключи для сопоставления в vim, больше ссылок на документацию, указатели на прямое чтение устройства HID, если хотите, и решение для Mac OS X, см. Мое сообщение в блоге
Footcontroller
Еще одна вещь, которую я упомяну, это программа на Python footcontroller , которая считывает события с устройства evdev (/ dev / input / eventX) и может быть настроена на выдачу нажатий клавиш (через xdotool) или запуск скрипты в ответ на наступление на педали. Его можно использовать вместо xmodmap, чтобы заставить вашу педаль отправлять любое нажатие клавиши.