私のマウスには残念な機能があります。使用しているときに親指が非常に優しく座っている左側、右側には、非常に敏感な2つのボタンがあり、ブラシだけでクリックできます。
もちろん、ブラウザーで押した場合、その1時間のyoutubeビデオの視聴がさらに難しくなる厄介な進む/戻るボタンについて話しています。それらを無効にする方法はありますか?これはXで処理されますか?
私のマウスには残念な機能があります。使用しているときに親指が非常に優しく座っている左側、右側には、非常に敏感な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
出力の狂気を軽減するには、単にgrepを介してパイプしxev | grep -A2 ButtonPress
ます。これにより、すべてのマウスモーションイベント、フォーカスイベントなどがButtonPress
残り、ここで必要なイベントのみが表示されます。
あなたは使用することができxev
、キーはにマップボタンをマッピングした見つけ、あなたが使用していない何かにそれをマップするために($ HOME / .xsessionrcに)以下のコードを使用します。
xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'
あるいは、Gnome / KDEまたはその他の最新のデスクトップを使用するGUIからそれを行うことができるはずです。
さらに別のオプションは、ボタン定義を削除するためにxorg.confをハックすることです。
それを修正するための簡単なコマンドであり、他の回答と実際には違いはありません:
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を超えるボタンを有効にする理由はありませんでした。
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
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にマッピング。)
xinput
、詳細はわかりません