Виртуальная клавиатура Linux и evdev

Я пишу программное обеспечение для Linux, которое использует libevdev для обработки ввода.

К моему удивлению, все виртуальные экранные клавиатуры, которые я обнаружил, имитируют высокоуровневые события X Window Server. Таким образом, они не распознаются udev, не появляются в папке /dev/input и не видны evtest.

Есть ли для этого достаточно низкоуровневая программная клавиатура? Или, может быть, какой-то трюк для этого?


person Alprog    schedule 01.09.2016    source источник


Ответы (1)


Есть веская причина, почему это делается таким образом. Устройства /dev/input — это устройства, которые имеют какой-либо физический (электрический, оптический и/или механический) вход. Они преобразуются диском ядра Linux во что-то, что генерирует EV_EVENTS. Эти события обрабатываются драйвером xf86_input_evdev во входных данных X11, которые понимает сервер. Поскольку вы можете генерировать входные данные X11 из программы X11, довольно сложно создать драйвер устройства, который с одной стороны принимает входные данные от приложения X11, а генерирует входные данные с другой. Таким образом, хотя это и не невозможно, создание одного или двух драйверов для этой цели требует много работы.

person Community    schedule 30.10.2017