Мое автоматическое приложение должно реагировать на нажатия клавиш, но только когда к системе подключен определенный тип клавиатуры. Это будет цифровая клавиатура, подключенная через USB.
Я уже узнал, как обнаружить подключение / отключение клавиатуры, используя libusb / libudev. И кажется, что захват клавиш с любого устройства HID тоже не так уж и сложен, хотя требует привилегий root, которых я бы хотел избежать …
Сложность в том, что я не хочу, чтобы система Linux «использовала» эту цифровую клавиатуру обычным способом, то есть не принимала ввод от нее при входе в систему. Я также не хочу полностью отключать входы в систему, вход в систему все еще должен быть возможен с использованием «обычной» клавиатуры. Я понятия не имею, как это сделать. Любое предложение приветствуется.
Я думаю, что вам придется заставить дополнительную клавиатуру выступать в качестве устройства HID другого типа, возможно, совсем другого типа. Затем ваше приложение может открыть это специальное устройство (которое не будет использоваться для обычного ввода с клавиатуры, так как оно не отображается как обычная клавиатура) и принять ввод с него.
Я не очень много знаю об устройствах HID, за исключением того, что они, кажется, охватывают очень широкий диапазон функциональных возможностей (например, байтовый или битовый цифровой ввод / вывод), поэтому должна быть возможность найти подходящий класс устройств.
Если у вас нет никакого способа изменить то, как цифровая клавиатура описывает себя для программного обеспечения USB, вы не получите ничего с этим, если он скажет «Я — клавиатура», то он будет рассматриваться как клавиатура.
Других решений пока нет …