UPD: Всем спасибо за советы, решение в итоге такое: компилируем мою прежнюю утилитку захвата выбранной клавиатуры: keyboardoid и пишем такой скрипт, который запускает сканирование клавиш:
#!/bin/sh
if [ "$1" = "" ] ; then sudo ./keyboardoid "0b9b:4012" "$0 %c"
else
if [ "$1" = "9" ] ; then A="space" ; else A="BackSpace" ; fi
xdotool key --window `xdotool search --name qiv | tail -1` $A
fi
C устройства приходят коды 9 и 3 (так видит коды keyboardoid), и если 9, то в окно qiv отправляется пробел — листать слайды вперед, а если вторая кнопка — то backspace, листать назад.
БЫЛО:
Товарищ Игорь дал мне парочку таких лазерных указок. Девайс не только лазерная указка, но по нажатию двух кнопочек на корпусе генерирует как USB-клавитура события клавиш «стрелка вверх» и «стрелка вниз». Что, видимо, удобно для чтения лекций со слайдами и проектором. Но комбинация клавиш меня не устраивает (в qiv листаются картинки другими кнопками), а работа с девайсиками, изображающими USB-клавиатуру в Линуксе, напротив, вызывает у меня интерес. Поэтому возник вопрос — а вообще какой-то технологией можно взять под контроль нажатия «кнопок» и переназначить их по пути к приложению? Варианты мне видятся такие:
1. Научиться самому передавать событие «нажата кнопка X» в конкретное приложение. Как перехватывать одну из клавиатур я уже знаю, а вот можно ли подсовывать якобы события клавиатуры какому-то одному конкретному приложению — пока не знаю.
2. Научиться переназначать клавиши одной из имеющихся клавиатур. Переназначить кнопки в Линуксе несложно — есть специальный конфиг, это я даже на Андроиде делал, когда у меня был Droid 4 с физической клавиатурой. Но здесь проблема в том, что основную клавиатуру как раз трогать не надо, речь про устройство номер 0b9b:4012
Есть идеи?
PS: Никакой насущной необходимости нет, советы по приобретению других девайсов или других листалок слайдов не нужны: интересует лишь сама технология в юниксах. Читать лекции со слайдами или иным способом использовать эту безделушку пока не планирую. Кстати если кому нужна — у меня парочка таких есть еще, могу поделиться.
это перепост заметки, оригинал находится на моем сайте: http://lleo.me/dnevnik/2019/03/10