Отключить устройство с помощью libinput

Добавьте строку отладки echo $ {hoption} после ее считывания, чтобы убедиться, что она установлена ​​правильно.
Также помещайте эхо в каждый случай, указывающий, что вы достигли этого случая.

В этом случае, поскольку вы ищете только один символ, я бы использовал чтение в этом способ:

read -r -n 1 hoption

Флаг -n 1 указывает чтению ждать только 1 символ и не ждать новой строки. флаг -r отключает обработку специальных символов. В общем, вы всегда должны использовать -r , если у вас нет явной причины не делать этого - иначе может возникнуть странное поведение.

Я протестировал сценарий, и похоже, что он получает значение hoption, по крайней мере, в моей среде (без каких-либо изменений). Если приведенное выше не решает вашу проблему, какое сообщение об ошибке вы получаете?

4
28.08.2017, 03:32
2 ответа

Я не знаю ни одного метода, использующего libinput, но вы можете сделать эксклюзивный захват устройства /dev/input/event*, которое соответствует Юбикей. Это работает на уровне ввода ядра с ioctlи не позволяет любому другому приложению (например, Wayland, использующему libinput) обрабатывать события с этого устройства.

Обычно любая программа, которая намеревается использовать функции Yubikey, должна выполнять захват, но вы можете проверить это с помощью evtest --grabи выбора Yubikey, или evtest --grab / dev/input/eventX, если вы знаете устройство или символическую ссылку на него.

ioctl— это EVIOCGRAB, определенный в /usr/include/linux/input.hна случай, если вы захотите использовать его из программы. Также работает с Python и другими языками сценариев, которые могут выполнять iotctls.

0
27.01.2020, 21:02

Между прочим, свойство LIBINPUT_IGNORE_DEVICEudev может быть назначено устройствам, которые следует игнорировать. Подробная документация здесь:

https://wayland.freedesktop.org/libinput/doc/latest/device-configuration-via-udev.html#ignoring-devices

1
27.01.2020, 21:02

Теги

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