Nel*_*ira 7 linux ubuntu xinput
我刚买了一个 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
Run Code Online (Sandbox Code Playgroud)
在运行此脚本之前,xev将按钮编号报告为:
Left-Bottom: 1, Left-Top: 2, Right-Top: 8, Right-Botom: 3
Run Code Online (Sandbox Code Playgroud)
运行此脚本后:
Left-Bottom: 1, Left-Top: 2, Right-Top: 8, Right-Botom: 8
Run Code Online (Sandbox Code Playgroud)
所以AFAIK,xinput set-button-map改变按钮顺序。在该页面中,我了解到,第二个值相当于鼠标中键,以及第8到Thumb1(通常与后退功能)。所以我想我应该像这样使用数字 3 作为第二个元素和 2 作为第 8 个元素:
xinput set-button-map "Kensington Kensington Slimblade Trackball" 1 3 8 4 5 6 7 2
Run Code Online (Sandbox Code Playgroud)
但是现在左上角的按钮有右键单击功能,左下角的按钮被禁用。xev现在报道
Left-Bottom: 1, Left-Top: 3, Right-Top: 2, Right-Botom: 8.
Run Code Online (Sandbox Code Playgroud)
任何人都知道我如何按照我的意图设置配置?我正在使用 Ubuntu 16.04。谢谢。
在我发布问题几分钟后,我找到了答案。如果有人需要的话(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
Run Code Online (Sandbox Code Playgroud)
编辑
升级到 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
Run Code Online (Sandbox Code Playgroud)
重新启动会话,就是这样。