マウスの前後ボタンを無効にする方法

マウスの前後ボタンを無効にする方法

私のマウスには不幸な性質があります。私が使用したときに親指が少し触れる左右には非常に敏感なボタンが2つありますが、ブラシを軽く押すだけでもカチッと音がします。

もちろん、ブラウザでタップすると、1時間分のYouTube動画を視聴するのが難しくなる可能性がある迷惑な前後ボタンについて話しています。無効にする方法はありますか?この問題はXが処理しますか?

答え1

xevターミナルでプログラムを起動します。ウィンドウの内側にマウスを動かすと、スクロールする多くのxevコンテンツが表示されます。各ボタンを順番に押します。次にターミナルウィンドウに戻り、Ctrl+を押しますCxev各入力イベントの説明、特にマウスクリックイベントの説明を表示します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

問題を解決するクイックコマンドは、他の答えと変わりません。

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"

起動アプリケーションに回復cmdを置くことができます。

より良いアプローチは、xdotoolを使用してアクティブウィンドウがブラウザの1つであることを確認し、xmodmapを呼び出して必要に応じて無効/有効にすることです。しかし、ここではいくつかのスクリプトが必要です。 >

7以上のボタンを有効にする理由はありません。理由がありますか?

答え3

xevボタンがマップされたキーを見つけ、以下のコード($ HOME / .xsessionrcにあります)を使用して、未使用のキーにマップできます。

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

または、Gnome / KDEまたは他の最新のデスクトップを使用してGUIでこれを行うことができる必要があります。

別のオプションは、xorg.confをハッキングしてボタン定義を削除することです。

答え4

これはxorg設定ファイルを使用して行うことができます。

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

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設定ファイルを使用してボタンを再マッピングできます。ここに例があります。

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

関連情報