リスクブザーをシミュレートするアプリケーションを作成したいと思います。ホストコンピュータは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。