Перехватывать и отправлять нажатия клавиш с Python на Linux - PullRequest
3 голосов
/ 27 сентября 2011

Я ищу способ перехватить все сигналы клавиатуры, прежде чем они достигнут активного приложения. Затем я хочу интерпретировать и сопоставлять нажатия клавиш перед отправкой их в текущее активное приложение.

Библиотека Python была бы великолепна, но C / C ++ также подойдет.

1 Ответ

1 голос
/ 27 сентября 2011

Я предполагаю, что вы используете систему с X (org). Если не то, что можно сделать, так и уровень evdev, но это уже другая история.

Две части в вашем вопросе:

  1. перехват всех ключевых событий -> XGrabKeyboard ()
  2. отправка ключевых событий в активное приложение: я бы использовал libfakekey, это немного хакерский хакер (он динамически перераспределяет часть текущей таблицы ключей для отправки KeySym, который вы хотите отправить), но это сработало для меня (небольшой совет, дон не забудьте переназначить как нажатия клавиш, так и события отпускания клавиш: p).

Конечно, в вашем приложении, захватывающем клавиатуру, вам придется слушать KeyEvents из X и отправлять оттуда ключи.

...