私のマウスには残念な機能があります。左側、右側に親指を置いたときの優しいところに、2つのボタンがあり、非常に敏感なので、ブラシを押すだけでクリックできます。
もちろん、ブラウザで押すと、その1時間のYouTube動画をもっと見るのが難しくなる厄介な進む/戻るボタンについて話しています。それらを無効にする方法はありますか?これはXによって処理されますか?
ターミナルでプログラム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
xev
を使用してボタンがマップするキーを見つけ、以下のコード($ HOME/.xsessionrc内)を使用して、使用していないものにマップすることができます。
xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'
または、Gnome/KDEまたはその他の最新のデスクトップを使用するGUIからそれを実行できるはずです。
さらに別のオプションは、xorg.confをハックしてボタン定義を削除することです。
xmodmap
コマンド(WeylandではなくX上)を試していて、_X_SetPointerMapping
_でBadValue (integer parameter out of range for operation)
エラーが発生する場合は、xinput
を使用する必要があるかもしれません。代わりに。パラメーターなしでxinput
を実行してデバイスIDを取得し(ポインターに対応する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を保持しましたまたマウスを変更した場合に備えて、8と9にマップしました。)
それを修正するための簡単なコマンドであり、他の回答とそれほど違いはありません。
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"
スタートアップアプリに修正コマンドを配置できます。
xdotoolを使用してアクティブウィンドウがブラウザーのいずれかであるかどうかを確認し、オンデマンドでxmodmapを呼び出して無効化/有効化することをお勧めしますが、スクリプトを実行する必要があります。
7以上のボタンを有効にしておく理由はありませんでした。理由はありますか?
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