マウスの進む/戻るボタンを無効にする方法


36

私のマウスには残念な機能があります。使用しているときに親指が非常に優しく座っている左側、右側には、非常に敏感な2つのボタンがあり、ブラシだけでクリックできます。

もちろん、ブラウザーで押した場合、その1時間のyoutubeビデオの視聴がさらに難しくなる厄介な進む/戻るボタンについて話しています。それらを無効にする方法はありますか?これはXで処理されますか?


2
を使用してオフにできると確信していますがxinput、詳細はわかりません
...-pbm

この質問と回答は、またThinkPadのキーボードの上に例えば、キーボード上の戻る/進むボタンに適用されます
ダニエルS.スターリング

回答:


43

xevターミナルでプログラムを起動します。xevウィンドウ内でマウスを動かします。多くのものがスクロールして表示されます。各ボタンを順番に押します。次に、ターミナルウィンドウに戻り、Ctrl+ を押しCます。xevショーは、各入力イベントの説明は、特に、ButtonPressおよびButtonReleaseマウスクリックのために(あなたはまた、数表示されますMotionNotifyマウスの動きや他のイベントのために)。

進むボタンと戻るボタンがマウスボタン、おそらくボタン8と9にマッピングされている可能性があります。

ButtonPress event, serial 29, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100159, (166,67), root:(1769,98),
    state 0x0, button 8, same_screen YES

その場合は、可能であれば、これらのボタンをブラウザの別のアクションに再マッピングします。または、ブラウザが反応しない別のボタン番号にボタンを再マッピングするか、システムレベルでボタンを完全に無効にすることができます。これを行うには、これらの行を次のファイルに配置します~/.Xmodmap

! Remap button 8 to 10 and disable button 9.
pointer = 1 2 3 4 5 6 7 10 0

コマンドでテストしxmodmap ~/.Xmodmapます。ほとんどのデスクトップ環境とウィンドウマネージャーは、ログイン時にこのコマンドを自動的に実行します。そうでない場合は、Xの起動時に実行されるように調整します。

これらのボタンを押すと、マウスがキーボードイベントを送信する可能性もあります。

KeyPress event, serial 32, synthetic NO, window 0x2e00001,
    root 0x105, subw 0x0, time 2889100963, (957,357), root:(2560,388),
    state 0x0, keycode 166 (keysym 0x1008ff26, XF86Back), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

その場合、次のような行を次のように配置し~/.Xmodmapます。

keycode 166 = NoSymbol
keycode 167 = NoSymbol

2
質問と回答の両方に感謝します。ちなみに、xev出力の狂気を軽減するには、単にgrepを介してパイプしxev | grep -A2 ButtonPressます。これにより、すべてのマウスモーションイベント、フォーカスイベントなどがButtonPress残り、ここで必要なイベントのみが表示されます。
ランバート14

ありがとうございました!それは数秒で助けました!:-)
ブライアン・ハーク

これはウェイランドでも機能します!
レイフォス

2

あなたは使用することができxev、キーはにマップボタンをマッピングした見つけ、あなたが使用していない何かにそれをマップするために($ HOME / .xsessionrcに)以下のコードを使用します。

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

あるいは、Gnome / KDEまたはその他の最新のデスクトップを使用するGUIからそれを行うことができるはずです。

さらに別のオプションは、ボタン定義を削除するためにxorg.confをハックすることです。


1

それを修正するための簡単なコマンドであり、他の回答と実際には違いはありません:

xmodmap -e "pointer = 1 2 3 4 5 6 7 0 0 0 0 0 0" #the fix

検査

xmodmap -pp # check the changes
xterm -e xev # test the nullified buttons

# to restore in case you are going to play some game that uses them
xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13"

起動アプリにfix cmdを配置できます。

xdotoolを使用してアクティブウィンドウがブラウザのいずれかであるかどうかを確認し、オンデマンドでxmodmapを呼び出して無効化/有効化することをお勧めしますが、それにはスクリプトが必要です:>

7を超えるボタンを有効にする理由はありませんでした。


0

xorg configファイルで実行できます

水平スクロールを無効にする例を次に示します(新しいファイルを保存して再起動します)

nano /etc/X11/xorg.conf.d/40-libinput-mouse-left-right.conf

Section "InputClass"
        Identifier "Logitech catchall"
        MatchIsPointer  "on"
        Driver "libinput"
        Option "HorizontalScrolling" "false"
EndSection

その他の便利なコマンド

xinput list
xinput list-props 15

この質問のために、xorg configファイルを使用してボタンを再マップすることができます

Section "InputClass"
    # ...
    Option "ButtonMapping" "1 9 3 4 5 6 7 8 2"
    # ...
EndSection

0

xmodmap(WeylandではなくXで)コマンドを試行していて、でエラーが発生BadValue (integer parameter out of range for operation)X_SetPointerMappingている場合は、xinput代わりに使用する必要があります。xinputパラメーターなしで実行してデバイスIDを取得し(ポインターを探して)、次に実行します

xinput set-button-map [pointer-device-id] 1 2 3 4 5 0 0 0 0

私の場合、マウスはデバイス#4でした。ボタン6と7を8と9にして、作業を進めたり戻したりする必要があったので、

xinput set-button-map 4 1 2 3 4 5 8 9 8 9

(私は、ボタン8,9を保持また、ケースI変更マウスに8,9にマッピング。)

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