0

私は pygtk プログラムを作成して、アプリケーション全体でキーボードのステータスとマウスのクリックを監視しました (つまり、私のアプリケーションだけではありません)。これは、Micah Dowty による evdev を使用します。これは、基本的に /dev/input/event* を監視して出力し、ユーザーに情報を表示できるように情報をデコードします。

このプログラムは、USB キーボードとマウスでは完全に機能しますが、ルートとして実行している場合でも、USB Wacom (またはシリアル Wacom) では機能しません。使用中の Wacom の /dev/input/* ノードのいずれからもイベントが発生しません。私のWacomだけでなく、ポッドキャスト「Meet the Gimp」(RolfとPhilippe)の連中も何も得られません.

コードはhttp://code.google.com/p/key-monにあります。

テストするには、次のようなものを実行できます。

sudo ./evdev.py /dev/input/event0 

たとえば、マウスを動かしたりキーボードをクリックしたりすると、event0 に接続されているすべてのイベントが発生するはずです。

4

1 に答える 1

0

これは、入力デバイスを完全に制御するXが原因であり、イベントを自分で読み取ることはできません。あなたはこれらの2つの問題の1つを持っているかもしれません:

  1. 「キャッチオール」は実際にデバイスを取得しています。/var/log/Xorg.0.logに、次のような行が表示されます。

    Stantum MTP USBコントローラー:InputClass「evdevタッチスクリーンキャッチオール」の適用

    もちろん、wacomの場合。それが本当なら、あなたはあなたを編集することによって「タッチスクリーン」キャッチオールを無効にすることができ/usr/share/X11/xorg.conf.d/10-evdev.conf、そしてタッチスクリーンについて話しているセクションを削除することができます。

  2. たぶん、Wacomセクションに収まるので、を編集して/usr/share/X11/xorg.conf.d/50-wacom.conf、デバイスに一致する適切なセクションを削除します。

もちろん、両方の問題がクリーンな方法で解決されるわけではなく、Xイベントとカーネルイベントを同時に機能させることはできません。(私はWacomで解決策を見つけたことがありません。誰かが持っているなら、共有してください!)

于 2011-03-04T00:49:42.280 に答える