Как предотвратить интерпретацию клавиатуры текущим приложением?

Сожалею, что сообщаю вам, что это как раз наоборот. Оболочке необходимо сначала открыть свой ввод-вывод, а затем передать управление программе.

tee может оказаться полезным в этом случае: ./ write_file.py | tee -a ~ root / log> / dev / null

4
16.06.2017, 22:44
2 ответа

Если вы все равно читаете из /dev/input/eventX, просто выполните EVIOCGRABioctl для него. Вы можете легко выполнять ioctl в Perl . Не забудьте отпустить захват, когда ваша программа завершит работу.

Захват не позволит всем другим устройствам, включая X, считывать события с этого устройства.

Это чище, чем xinput, потому что вы также исключаете другие приложения, которые могут захотеть читать напрямую с устройства, и вы также можете контролировать продолжительность исключения (, пока работает ваше приложение ).

2
27.01.2020, 20:57

Вы можете отключить устройства ввода под X с помощью команды xinput. Запустите xinput list, чтобы получить список доступных устройств, затем xinput disable …, чтобы отключить устройство по имени или номеру.

Udev, вероятно, лучший способ, но X11 — это то, что я знаю навскидку.

1
27.01.2020, 20:57

Теги

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