web-dev-qa-db-ja.com

libinputでマウスのデバウンスを無効にする方法

新しいマウス(栄光のモデルo)を手に入れただけで、ダブルクリック(1回クリックすると2クリック)できますが、ウィンドウで2クリックしか登録できません。私はいくつかの調査を行いましたが、デフォルトでlibinputがダブルクリックを防止していると確信しています。ダブルクリックをキャンセルしようとしないようにする方法はありますか?ほとんどの人がダブルクリックを防ぐのは便利ですが、Minecraftでダブルクリックしてより高いCPSを得られるようにしたいので、誤ってダブルクリックを取得することはありません。

2
Custard

コメントでのディスカッションを回答として再投稿するだけです。

まず、混乱を避けるために、OPにはダブルクリック用のハードウェアボタンがありません。むしろ、彼らが言及していたダブルクリックは、マウスの左ボタンをそのような特別な方法でタップしたときに跳ね返り、2回のクリックを引き起こすことです。マウスでも再現できました。

これはほとんど望ましい動作ではないため、libinputにはデバウンスアルゴリズムが用意されており、そのようなバウンスを検出して破棄します。 (そして記録のためだけです:ハードウェアのダブルクリックボタンでうまく動作します)。 OPはローカルで無効にできるかどうか尋ねました。

それは確かに奇妙なサブシステムを介して可能です。先に進む前に、 ドキュメントを引用する が必要です:

ローカルの一時的な回避策として、libinputは/etc/libinput/local-overrides.quirksファイルを読み取ります。ユーザーはこのファイルにセクションを追加して、ローカルデバイスのデバイスの癖を追加できますが、すべての変更を上流に送信する必要があることに注意してください。どんなときも。

警告:モデルの癖は内部APIであり、いつでも変更される可能性があります。後方互換性は保証されません。ローカルオーバーライドは、ディストリビューションがlibinputパッケージを更新するまでのみ使用してください。

したがって、癖サブシステムは構成APIではありません。気まぐれで解決できる問題がある場合、気まぐれはおそらくアップストリームになる必要があります。

そうは言っても、/etc/libinput/local-overrides.quirksファイルに配置された次のコードはOPに役立ちました。

[SINOWEALTH Wired Gaming Mouse]
MatchName=SINOWEALTH Wired Gaming Mouse
ModelBouncingKeys=1

マウスモデル名は、libinput list-devices | grep Device出力からの名前です。これが機能するには、libinputが少なくとも1.12.0バージョンである必要があります(OPの場合、libinput 1.15.0で機能しました)

3
Hi-Angel