Привет.
Может, кто тут разбирается, и даст умный совет?
Есть девайс. Мышка (надевается на палец, но это не суть) с двумя
кнопками. USB, ноутбук, т.е. она в него воткнута существенно не всегда.
Я хочу на ней (и именно на ней, и без залезания в отсутствующий у меня в
системе за ненадобностью xorg.conf) при ее втыкании включать эмуляцию
средней кнопки.
Я умею: сказать
$ xinput --list
⎡ Virtual core pointer id=2[master pointer (3)]
⎜ ↳ Virtual core XTEST pointerid=4[slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPadid=14 [slave pointer (2)]
⎜ ↳ USB OPTICAL MOUSEid=10 [slave pointer (2)]
...
(ну, клавиатура неинтересна)
и на основании этой информации
$ xinput --set-prop 10 'Evdev Middle Button Emulation' 1
и мне не сложно заскриптовать комбинацию. Хотя называется она, конечно,
офигительно информативно, блин. Но хочется это делать при втыкании, а
не непонятно когда. А вот как правильно обнаружить втыкание?
Предупреждаю сразу: исходя из того, что оно мне надо в иксах, вариант
udev-правила получается кривым, поскольку xinput запускается, вообще
говоря, на одном хосте, а мышка втыкается в другой. Впрочем, если в
этой ситуации Xinput extension отваливается сам по себе, то этот вопрос
отпадает. Но чисто по логике-то не с чего, это все же не shared memory.
Раз сам X-сервер втыкание определяет, то где-то оно у него должно бы
появляться-то...
Но на худой конец сойдет и решение, где терминал и сессия на одном
хосте. Нет, я даже могу придумать схему в духе udev кидает событие в
dbus, скрипт его ждет, и если видит, то дергает xinput, но как-то это
кривовато, очень хочется верить, что существует какой-то более прямой
путь получить нужную информацию, непосредственно из X-сервера. Однако,
сходу не удалось задать гуглу правильный вопрос.
Я даже выяснил методом Мана и Тыка, что можно попросить xinput слушать
Core Pointer, и из его вывода отфильтровать добавление девайса, но более
избирательно в нем не предусмотрено, а вывода там - на каждое движение
мышки. Это, прямо скажем, перебор. И кроме того, xinput для этого окно
создает, хотя, в отличие от xev, реагирует на движения мышки и вне этого
окна.
Нет, опять же, отсюда понятно, что можно взять библиотеку, почитать
хедера, документацию на расширение я как раз сумел нагуглить, и вперед.
Но может, этот велосипед уже изобрели?
--
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: https://lists.debian.org/87k3c8tp1w@wizzle.ran.pp.ru