клавиатура A4tech, evdev и python
Имеется клавиатура a4tech с колесом прокрутки, подаёт нажатия клавиш с нестандартными кодами, зависящими от скорости вращения при прокрутке вниз и отпускания оных при прокрутке вверх. Для windows прилагается прога, для linux хочу реализовать с помощью эмуляции 4 и 5 кнопок мыши с xke.
Однвко при использовании модуля evdev (любой версии) получаю:
Traceback (most recent call last): File "./autokey/evdev.py", line 601, in <module> demo() File "./autokey/evdev.py", line 36, in demo dev = DeviceGroup(sys.argv[1:]) File "./autokey/evdev.py", line 146, in __init__ self.devices.append(Device(fileName)) File "./autokey/evdev.py", line 98, in __init__ self.readMetadata() File "./autokey/evdev.py", line 122, in readMetadata values = struct.unpack("iiiii", ioctl(self.fd, EVIOCGABS_512 + number, buffer))
Всякие autokey используют эту же приблуду.
Как мне обрабатывать evdev?
Изменил чуть-чуть строку в evdev.py,вместо ioctl поставил ' '*20. Теперь работает, однако кнопки не различает. Только реагирует на нажатия. А различает их ядро:
[ 817.600490] atkbd serio0: Use 'setkeycodes e01f <keycode>' to make it known. [ 817.613601] atkbd serio0: Unknown key released (translated set 2, code 0x9f on isa0060/serio0).
Если назначить кнопке код больше 256, засечь его не удаётся, если меньше - то вызывает странное поведение программ: после прокрутки вверх кнопка всегда зажата, а вниз - отпущена.
- Для комментирования войдите или зарегистрируйтесь
xbindkeys
Может xbindkeys ?
Для xbindkeys нужно назначить
Для xbindkeys нужно назначить коды клавиш (setkeycodes)
Какие коды можно безопасно использовать (свободные), чтоб не забиндить нужную клавишу?
Локальный оверлей растёт
угощайся
угощайся
заставить при получении некоего кода от клавиши эмулировать колесо можно овер xdotool
Здесь были линки но пришла Larry и их слизнула =)
Данный аккаунт забанен так как его владелец не умеет себя культурно вести на форуме. /// WBR alexxy
Спасибо конечно, ну там evdev
Спасибо конечно, ну там evdev похоже вообще ничего не генерирует, клавиши различает ядро и:
Так что патчи не нужны, нудно просто задать нужный код.
А вместо xdotool и xte в принципе подойдёт.
Локальный оверлей растёт