キーボードによるEvdevホイールシミュレーション

キーボードによるEvdevホイールシミュレーション

私はXInputマウスホイールエミュレーションが大好きです! Evdevホイールエミュレーションは、次のコマンドを実行して任意のマウスボタンで有効にできます(9はEvdevホイールエミュレーションをトリガーするマウスボタンです)。

xinput set-prop $DEVICE_ID "Evdev Wheel Emulation Button" 9

私は約5年間この機能を使用してきましたが、この素晴らしい機能を実装してくれたxorgの人々に感謝します。今、トリガーをマウスボタンからキーボードキーに変更したいと思います。 「H」キーを押しているときにトリガーシミュレーションを有効にし、魔法「H」がオフになったときにトリガーシミュレーションを無効にしたいとします。どうすればいいですか?

機能しないテスト済みソリューション

キーボードキーをマウスボタン9にマップしようとしましたが、ボタン9を押しても機能しません。 Evdevがマウスボタンを合成して刺激を与えるようではありません。私は魔法の「H」キーを押したときに実行され、xdotool mousedpown 9キーxdotool mouseup 9を離したときに実行されるスクリプトを作成しました。ボタンを9から1に変更(左クリックとも呼ばれる)して、スクリプトが実行する必要があることを確認することができます。 。

答え1

最も簡単な方法は、uinputモジュールとPythonを使ってダミーポインタを作成することです。次に、キーボードでキーを押すと、仮想ポインタにマウスボタンをエクスポートするスクリプトを作成します。

私は完全な説明を書いた。ブログ。詳細が必要な場合は確認できます。

関連情報