我刚刚得到一个 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