如何禁用鼠标上的前进/后退按钮

如何禁用鼠标上的前进/后退按钮

我的鼠标有一个不幸的特性。在左侧,就在我使用它时拇指轻轻坐的地方,有两个按钮非常敏感,只需用刷子轻轻一按就会发出咔哒声。

当然,我说的是讨厌的前进/后退按钮,如果在浏览器中按下这些按钮,可能会使观看长达一小时的 YouTube 视频变得更加困难。我有办法禁用它们吗?这件事会由 X 处理吗?

答案1

xev在终端中启动程序。将鼠标移动到xev窗口内;你会看到很多东西滚动过去。依次按下每个按钮。然后切换回终端窗口并按Ctrl+ Cxev显示每个输入事件的描述,特别ButtonPressButtonRelease鼠标单击事件的描述(您还将看到一些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 检查活动窗口是否是您的任何浏览器,并根据需要调用 xmodmap 来禁用/启用它,但这需要一些脚本编写:>

我认为没有理由让 7 以上的按钮保持启用状态,有什么原因吗?

答案3

您可以使用xev查找按钮映射到哪个键,并使用下面的代码(在 $HOME/.xsessionrc 中)将其映射到您不使用的东西。

xmodmap -e 'keycode THE_CODE_HERE = XF86Launch1'

或者,您应该能够从使用 Gnome/KDE 或任何其他现代桌面的 GUI 中执行此操作。

另一种选择是破解 xorg.conf 以删除按钮定义。

答案4

可以使用 xorg 配置文件来完成

这是禁用水平滚动的示例(保存新文件并重新启动)

纳米 /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

相关内容