将后退/前进绑定到鼠标按钮

将后退/前进绑定到鼠标按钮

我有一个带有 5 个按钮的基本罗技鼠标:左键、右键、左滚轮、滚轮、右滚轮。

我以前用左右滚轮在浏览器或导航器中来回移动。现在这个不行了。我找到了很多解决办法,有人告诉我安装这个或那个程序,但似乎都不管用。

答案1

  1. 安装包xautomation,我们需要命令xte

    sudo apt-get install xautomation
    
  2. 安装包x11-utils,我们需要命令xev

    sudo apt-get install x11-utils
    
  3. 检查两个鼠标按钮的代码。

    • xev在终端中启动命令:

      xev
      
    • 将鼠标移到新窗口中

    • 按下wheel leftwheel right

    就我而言,请注意输出button 6button 7

    ButtonRelease event, serial 36, synthetic NO, window 0x2e00001,
        root 0x233, subw 0x0, time 9222464, (94,21), root:(1774,85),
        state 0x10, button 6, same_screen YES
    
    ButtonPress event, serial 36, synthetic NO, window 0x2e00001,
        root 0x233, subw 0x0, time 9223854, (94,21), root:(1774,85),
        state 0x10, button 7, same_screen YES
    
  4. 编辑您的xbindkeys配置,例如:

    nano ~/.xbindkeysrc
    

    并添加以下几行

    "xte 'keydown Alt_L' 'keydown Left' 'keyup Left' 'keyup Alt_L'"
         b:6
    
    "xte 'keydown Alt_L' 'keydown Right' 'keyup Right' 'keyup Alt_L'"
         b:7
    

    用您的输出数字替换b:6和。b:7xev

    • man xte

      key k
            Press and release key k
      
      keydown  k
            Press key k down
      
      keyup k
            Release key k
      
  5. 终止所有xbindkeys进程:

    killall xbindkeys
    
  6. 使用您的配置重新启动xbindkeys,例如:

    xbindkeys -f ~/.xbindkeysrc
    

答案2

修复 Logitech G900 上的滚动速度和后退/前进按钮(这个应该相同):

xev对我的鼠标不起作用,我xinput首先使用命令找出鼠标的设备 ID。要列出输入设备:

 # xinput 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G900                id=8    [slave  pointer  (2)]
⎜   ↳ Logitech Gaming Mouse G900                id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ HD Pro Webcam C920                        id=11   [slave  keyboard (3)]
    ↳ Logitech Gaming Mouse G900                id=12   [slave  keyboard (3)]
    ↳ Apple Inc. Magic Keyboard with Numeric Keypad id=10   [slave  keyboard (3)]

然后使用xinput test 8(这是鼠标 ID,9 没有给出任何输出)找出侧面按钮实际上是按钮 8 和 9(只需按下它们并查看输出以查看您按了哪些按钮)。

我之前已经安装了 imwheel 来调整鼠标滚动速度

创建一个像这样的 .imwheelrc:

cat >~/.imwheelrc<<EOF
".*"
None, Up, Button4, 5 
None, Down, Button5, 5
None, Thumb1, Alt_L|Left
None, Thumb2, Alt_L|Right
EOF

意思是".*",将该配置用于所有 x-windows。例如,如果您只想在 chrome 中使用该配置,则可以在此处插入"^google-chrome$"

您可以使用xprop WM_CLASS | grep -o '"[^"]*"' | head -n 1然后单击窗口来获取应在配置中的名称。

None第一列的部分表示无需同时按住任何修饰键(例如 、 、 )即可注册鼠标按钮Shift点击CtrlAlt

Button4 和 Button5 通常是鼠标滚轮。5行尾定义滚动速度(越高越快,越低越慢)

我不知道这是什么ThumbN意思。

Alt_L|Left模拟按住左键Alt(Alt_L),然后按左箭头 (←) 键返回浏览器。使用 KP_Left 代替 Left 也可以。

killall imwheel使用和重新启动 imwheel imwheel

注意:您必须重新打开窗口才能生效。

要查找按钮名称,请使用列表xmodmap -pke或其中的图形界面xkeycaps

我使用了许多来源。以下是其中一些来源: 另一篇关于同一主题的帖子 还有关于鼠标 示例 imwheelrc 文件

答案3

多鼠标按钮说明请点击此处xorg.conf 信息在这里

本质上,你只是在摆弄 xinput。(或者使用 imwheel 获得更多选项。)

首先,打开终端。列出您的输入设备:

# show all input devices
xinput list

你会得到类似这样的结果:

$ xinput list
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Natural® Ergonomic Keyboard 4000        id=11   [slave  pointer  (2)]
⎜   ↳ Evoluent VerticalMouse 4                  id=12   [slave  pointer  (2)]

我有一个 Evoluent VerticalMouse。您可以看到标识符编号为 12:“id=12”。

我可以用以下方法测试我的鼠标:

# show all input from device with identifier number 12
xinput test 12

现在,当我移动鼠标或单击时,我会在终端中得到输出,告诉我按下了哪个按钮。按Ctrl-c结束测试。

如果您的后退/前进按钮没有输出,请尝试使用 set-button-map 将按钮映射重置为默认值。请注意,我使用的是通过以下方式输出的设备名称xinput list

xinput set-button-map "Evoluent VerticalMouse 4" 1 2 3 4 5 6 7 8 9 10 11 12 13 14

现在尝试xinput test使用您的 ID 运行。如果您在这里得到正确的按钮响应,那么您只需要找出您想要的映射并更新您的 xorg.conf。(我还不知道如何做到这一点。)

答案4

经过一番努力后,我发现要让拇指下方的两个小三角形按钮(拇指轮旁边)用作 Logitech MX Master 的后退/前进功能,我必须:

安装imwheel,然后编辑~/.imwheelrc成如下所示:

".*"
None,      Up,   Button4, 5
None,      Down, Button5, 5
Control_L, Up,   Control_L|Button4
Control_L, Down, Control_L|Button5
Shift_L,   Up,   Shift_L|Button4
Shift_L,   Down, Shift_L|Button5
None, Thumb1  , Alt_L|Left
None, Thumb2  , Alt_L|Right

底部的两行意味着按下两个拇指按钮中较低的一个(显然是“Thumb1”)而不按住任何修饰键(例如ShiftCtrlAlt)(即“无”部分)应该模拟按住左 Alt 键(Alt_L),然后按左箭头()键返回浏览器。

类似地,“Thumb2”行生成左 Alt 键加右箭头,以向前移动。

看起来有很多不同的方法可以做到这一点,但这是我在 Ubuntu 18.04 中发现并对我有用的方法。我在解释手册页告诉imwheel我做什么时遇到了一些麻烦,所以我希望这对某些人有所帮助。

编辑.imwheelrc文件后,不要忘记重新启动imwheel以使更改生效:

sudo imwheel -k

相关内容