在 Linux 中配置 Kensington Slimblade

在 Linux 中配置 Kensington Slimblade

我刚刚得到一个 Kensigton Slimblade 轨迹球,我正在尝试配置它。我正在根据我的旧 Logitech Marble 配置对其进行调整。

我想要的配置是:

  • 左下:左键单击
  • 左上:向后
  • 右上:右键单击和滚珠滚动锁定
  • 右下角:中键单击

到目前为止我可以设置的配置是:

  • 左下:左键单击
  • 左上:中键单击
  • 右上:右键单击和滚珠滚动锁定
  • 右下:向后

这是我的配置脚本:

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 1   

xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 2 8 4 5 6 7 

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

在运行此脚本之前,xev将按钮编号报告为:

Left-Bottom: 1, Left-Top: 2, Right-Top: 8, Right-Botom: 3

运行此脚本后:

Left-Bottom: 1, Left-Top: 2, Right-Top: 8, Right-Botom: 8

所以据我所知,xinput set-button-map改变按钮顺序。在页面中,我了解到第二个值对应于鼠标中键,第 8 个值对应于 Thumb1(通常与后退功能相关)。所以我想我应该使用数字 3 作为第二个元素,使用 2 作为第八个元素,如下所示:

xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 3 8 4 5 6 7 2

但现在左上角按钮有右键功能,左下按钮被禁用。xev现在报道

Left-Bottom: 1, Left-Top: 3, Right-Top: 2, Right-Botom: 8. 

有人知道我该如何按预期设置配置吗?我正在使用 Ubuntu 16.04。谢谢。

答案1

在我发布问题几分钟后,我找到了答案。如果有人需要的话(Mint 18/Ubuntu 16.04 的配置):

xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Middle Button Emulation" 8 0
7 8 9 
xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 8 2 4 5 6 7 3 2
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation" 8 1
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Button" 8 8
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput set-int-prop "Kensington Kensington Slimblade Trackball" "Evdev Wheel Emulation Timeout" 16 300

编辑

升级到 Mint 19(在家)和 Ubuntu 18.04(办公室)后,我发现上面的配置不起作用。 18.04 对此类设备使用不同的库 (libinput),即使我重新安装了 Evdev,某些选项也不起作用。经过痛苦的搜索,我找到了解决方案。在文件夹中创建扩展名为 .conf 的文件/usr/share/X11/xorg.conf.d/。就我而言,我将其命名为10-slimblade.conf.将此配置放入文件中:

Section "InputClass"
        Identifier "Kensington Kensington Slimblade Trackball"
        MatchProduct "Kensington Kensington Slimblade Trackball"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "ButtonMapping" "1 8 2 4 5 6 7 3 2"
        Option "ScrollButton" "8"
        Option "ScrollMethod" "button"
        Option "MiddleEmulation" "on"
EndSection

重新启动会话,就是这样。

答案2

非常感谢!补充一点,我发现轨迹球上的按钮是这样的:

---------
| 2 | 8 |
---------
| 1 | 3 |
---------

这是它们在字符串中的顺序ButtonMapping

LeftClick MiddleClick RightClick ScrollUp ScrollDown ScrollLeft ScrollRight Back Forward

所以,对我来说,我只想要底行的右和左,后排左上角和中间右上角:

Section "InputClass"
    Identifier "Kensington Kensington Slimblade Trackball"
    MatchProduct "Kensington Kensington Slimblade Trackball"
    MatchIsPointer "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
    Option "ScrollButton" "8"
    Option "ScrollMethod" "button"
EndSection

这里的文档不存在,所以这是我可以通过运行来拼凑的内容xev -event mouse


这是从按钮 ID 到其功能的映射:

按钮 功能
1 左键单击
2 中键单击
3 右键点击
4 向上滑动
5 向下滚动
6 向左滚动
7 向右滚动
8 后退
9 向前

答案3

漂亮,谢谢大家! :) 不过,必须稍作修改才能使其对我有用。由于在我的系统(Ubuntu 18.04)上,xinput 报告轨迹球如下:

$ xinput list | grep Kensington
⎜   ↳ Kensington Slimblade Trackball            id=14   [slave  pointer  (2)]

我必须MatchProduct根据上面的示例进行修改才能使其适合我。我还把它瘦了一点。在我看来,它看起来像这样并且对我有用:

Section "InputClass"
    Identifier "My Kensington Slimblade Trackball"
    MatchProduct "Kensington Slimblade Trackball"
    Option "ButtonMapping" "1 8 3 4 5 6 7 2 9"
    Option "ScrollButton" "8"
    Option "ScrollMethod" "button"
EndSection

相关内容