マウスの中ボタンを無効にする


17

そこで、他のさまざまな質問を調べてみましたが、それらは主に中央のマウスペーストを無効にすることに焦点を当てています。

基本的に、Logitech G500の中央のマウスボタンは壊れており、ランダムに「クリック」し続けているため、仕事をする機会がめちゃくちゃになっています。

無効にする方法はありますか?または、何にもマッピングしませんか?

これが重複している場合は、ありがとうございます。

xinput list 出力:

⎡ Virtual core pointer id=2 [master pointer (3)]
⎜   ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜   ↳ Turtle Beach Turtle Beach PX3 (XBOX) id=8 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=9 [slave pointer (2)]
⎜   ↳ Logitech G500s Laser Gaming Mouse id=10 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=12 [slave pointer (2)]
⎜   ↳ Razer Razer DeathStalker id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
    ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
    ↳ Power Button id=6 [slave keyboard (3)]
    ↳ Power Button id=7 [slave keyboard (3)]
    ↳ Razer Razer DeathStalker id=11 [slave keyboard (3)]

このコマンドxinput list | grep 'id='を実行して、出力をポストします。
ヘリオ

このマウスには、このマウス用の2つのデバイスIDがあります。XINPUTテスト9を実行した後、私のマウス中ボタンのIDは2です
トム・ハミルトンStubber

回答:


24

これらのコマンドを実行します。

xinput set-button-map 9 1 0 3
xinput set-button-map 10 1 0 3

説明@Yehosefからの寄贈 ):

最初の番号はポインターのIDです(多くの場合、1つしかありません。この場合、2つ、9および10がありました)。

次の数字は、1番目、2番目、3番目(つまり、左、中央、右)のマウスボタンで行うことです。「1 0 3」は、左ボタンで左クリック(アクション1)を実行し、中央ボタンで何も実行せず、右ボタンで右クリック(アクション3)を実行することを示しています。中央のボタンも左クリックしたい場合は、「1 1 3」を使用できます。左右のアクションを切り替えたい場合は、「3 0 1」を使用できます。詳細については、https://wiki.ubuntu.com/X/Config/Inputを参照してください


どうもありがとう、これを調べようとすると非常にイライラしていました。
トムハミルトンスタブバー

1
ありがとう!不思議な人のために-9/10はマウスの入力IDであり、1 0 3は1番目、2番目、3番目のマウスボタンのマッピングです。すべてのボタンに同じことをさせたい場合は1 1 1を使用し、左右のボタンを切り替えたい場合は3 0 1を使用します
。– Yehosef

@Yehosef:ありがとう!OPがコマンドを実行したときに何が起こっているのか説明しませんでした。新しい詳細な回答を作成して、pingを送信してください。これは興味深い説明です。
ヘリオ

@Helio私は別の答えはありません-興味のある人のための単なる説明です。回答を編集して、この情報を含めることができます。私はあなたの答えを編集することを考えていました-人々が私の答えに余分な詳細を追加するとき、私は一般的にそれが好きではありません-だから私は控えました:)
Yehosef

2
それで、最初の数をどのように決定するのですか?実行xinput list | grep 'id='して、マウス/タッチパッドに最も似ているものを探しますか?それが正しいかどうかを決定する決定的な方法はありますか?
Kvothe

2

次の手順は、Ubuntu Wikiの情報に基づいてい ます(「スクロールホイールマウスでの中央マウスボタンの貼り付けの無効化」というタイトルまで下にスクロールします)。

まず、入力デバイスをリストして、ポインターのIDを決定します。

xinput list | grep 'id='

ポインタの名前を含む行を探します。「id =」の直後にデバイスのidもあります。たとえば、このデバイスのidは10です。

Lenovo ThinkPad Compact USB Keyboard with TrackPoint    id=10   [slave  pointer  (2)]

次に、そのデバイスの現在のボタンマップを取得します(デバイスのID(10)を使用します)。

xinput get-button-map 10

出力:

1 2 3 4 5 6 7 8 9

これは、ポインターボタンのアクションへのマッピングです。番号はアクションコードを表し、ボタンは位置を表します。

2番目のマップに興味があります-番号2はアクション「中央ボタンクリック」に対応し、その位置-実際の中央ボタンに。

アクションをトリガーする中央ボタンを無効にするにxinput set-button-mapは、デバイスのIDと更新されたマップでコマンドを使用します(新しいアクションコードは0-アクションなし)。マップ全体を配置する必要はありません-関心のあるボタンで十分になるまでマップします(残りは更新されません)。

 xinput set-button-map 10 1 0

それでおしまい。


これは、Ubuntu 18.04を搭載したLenovo Thinkpad T580のタッチパッドで機能しました
ラッセルイングランド

0

set-button-mapミドルクリック機能を無効にします。左クリックと右クリックを使用して中クリックをエミュレートし(マウスを使用して貼り付けてタブで開くなど)、マウスホイールのクリックを無効にするには、libinputにパッチを適用します。

--- a/src/evdev.c   2019-09-22 17:15:13.498880044 +0300
+++ a/src/evdev.c   2019-09-22 17:15:18.062860221 +0300
@@ -1861,6 +1861,8 @@
    /* Logitech Marble Mouse claims to have a middle button */
    if (device->model_flags & EVDEV_MODEL_LOGITECH_MARBLE_MOUSE)
        libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
+
+   libevdev_disable_event_code(device->evdev, EV_KEY, BTN_MIDDLE);
 }

 static void
  • mkdir deb; cd deb; apt source libinput; sudo apt build-dep libinput
  • 上記のパッチを次の名前で保存します libinput-1.XX.Y/debian/patches/middle.diff
  • 追加middle.diffしますdebian/patches/series
  • dpkg-buildpackage -us -uc -b
  • sudo dpkg -i ../libinput10_*.deb
  • Xorgを再起動するか、マシンを再起動します

およびを使用xinput listxinput set-prop 11 "libinput Middle Emulation Enabled" 1て、左+右のエミュレーションを有効にします。11はからのデバイス番号でxinput listあり、set-propコマンドをに追加できます~/.xstartup

または、再構築を回避するには、libinput .quirksファイル(未テスト)を使用します。

[My Mouse]
MatchUdevType=mouse
AttrEventCodeDisable=BTN_MIDDLE;
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.