向后/向前绑定到鼠标按钮


13

我有一个基本的Logitech鼠标,带有5个按钮:左,右,左滚轮,滚轮,右滚轮。

我曾经在浏览器或导航器中使用左右滚轮来回前进。现在这不起作用。人们发现要安装此程序或那样的程序,我发现很多解决方案似乎都行不通。


您能否为我们提供更多有关您尝试过的内容以及失败原因的详细信息?
guntbert

我只是尝试了三种不同的程序来映射键和/或键盘快捷键(一个是ccsm插件,另一个是我在软件中心下载的工具,最后一个也是)。但说实话,我忘记了他们的名字,现在我升级到12.10,所以我怀疑是否能找到他们=)
Brent Roose

请通过编辑问题来提供其他信息。评论可能/将丢失一些时间。
guntbert

Answers:


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

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

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

    • xev在终端中启动命令:

      xev
      
    • 在新窗口中移动鼠标

    • 向左按下车轮向右车轮

    就我而言,请注意输出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:6b:7你的号码xev输出

    • man xte

      key k
            Press and release key k
      
      keydown  k
            Press key k down
      
      keyup k
            Release key k
      
  5. 杀死所有kbindkeys进程

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

    xbindkeys -f ~/.xbindkeysrc
    

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。(我还不知道该怎么做。)


0

使用鼠标的前进和后退按钮上下滚动

首先,安装所需的软件包:

$ sudo apt install x11-utils xbindkeys xautomation

接下来,使用xev提供的x11-utils来检测鼠标的后退和前进按钮的确切按钮号。

$ xev |grep -A2 ButtonPress

对于我的有线垂直Anker鼠标,后退和前进分别是按钮8和9。

ButtonPress event, serial 37, synthetic NO, window 0x3600001,
    root 0x1da, subw 0x0, time 1708382, (68,54), root:(939,498),
    state 0x10, button 8, same_screen YES
--
ButtonPress event, serial 37, synthetic NO, window 0x3600001,
    root 0x1da, subw 0x0, time 1711030, (69,48), root:(940,492),
    state 0x10, button 9, same_screen YES

有线垂直Anker鼠标

继续.xbindkeysrc在主目录中创建一个隐藏文件,其内容如下:

"xte 'keydown Down'"
b:8

"xte 'keyup Down'"
b:8 + Release

"xte 'keydown Up'"
b:9

"xte 'keyup Up'"
b:9 + Release

xte命令由xautomation软件包提供。

最后,从桌面注销并再次登录,以使这些更改生效。现在,您可以通过按住鼠标的后退和前进按钮在浏览器和其他程序中上下滚动。


0

经过多番努力后,我发现要使拇指下方的两个小三角形按钮(拇指轮旁边)与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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.