複数のマウスを異なる入力として使用するPython / Wayland / Linuxアプリケーションを作成するには?

複数のマウスを異なる入力として使用するPython / Wayland / Linuxアプリケーションを作成するには?

リスクブザーをシミュレートするアプリケーションを作成したいと思います。ホストコンピュータはN個のマウスに接続され、各プレイヤーのブザーとして機能します。

それは何ですか?最も単純なこのアプリケーションをPythonで書く方法は?理想的な解決策は、新しい物理ハードウェアの改ざんや作成を防ぐことです。

私が考慮しているオプション:

  • USBデバイスは、オペレーティングシステムからプレーンテキストストリームとして読み取られると聞きました。しかし、どこ?
  • 各ボタンを別のキーにバインドし、キーボードイベントを受け取ることもできます。マウス-0の右クリックをキー-0にバインドし、マウス-1の右クリックをキー-1にバインドできますか?それとも、すべての右クリックが同じキーにバインドされていますか?

いろいろな選択肢がありますが、最も簡単なものは何ですか?また、私が読むほとんどの内容はX11(xinput thisまたはxev that)についてです。 Waylandでも同じことをどうすればいいですか?

答え1

複数のUSBマウスを接続すると、それぞれと同じ名前の新しいデバイスとして表示されます/dev/input/event9。ユーティリティは、evtestこれらすべてのデバイスを対話形式で一覧表示し、表示されるデバイスタイプを追加します。例:

/dev/input/event9:      Logitech USB Optical Mouse

それから実行すると

evtest --grab /dev/input/event9

マウスを動かすか、ボタンをクリックするたびにデータが印刷されるのを見ることができます。また、--grabこれらのイベントがウェイランド(またはX11)サーバーに送信されなくなります。

スクリプトを書いてゲームを実装したり、このパッケージを使ってPython3でプログラムで同じことをすることもできます。 evdev

関連情報