轨迹球最酷的事情之一是,按下用户定义的按钮后,球可以用于 2D 滚动。我有一个 Elecom Huge 轨迹球并想对其进行配置xinput
(这样我就不需要重新加载 Xorg)。我想使用该Forward
按钮并重新映射它,以便按下该按钮时可以使用该球进行滚动。如果没有发生滚动,我还希望该按钮充当中间按钮。
答案1
使用时xinput list
可以通过名称轻松识别 Elecom 设备。在本例中,名称字符串是ELECOM TrackBall Mouse HUGE TrackBall
。由于 Elecom 设备同时报告为指针和键盘,pointer:
因此需要附加前缀。
接下来,需要识别相关按钮的按钮 ID。使用xev
它很容易看出按钮(与和Forward
相邻的按钮)具有 ID 。剩下要做的就是启用滚动方法并选择滚动按钮。以下两行可以实现这一点:Fn1
Fn2
9
xinput set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall" 'libinput Button Scrolling Button' 9
xinput set-prop "pointer:ELECOM TrackBall Mouse HUGE TrackBall" 'libinput Scroll Method Enabled' 0 0 1
此时,我们已根据需要配置了滚动,但该按钮尚未用作中间按钮。为了修改此行为,我们重新映射按钮,以便按钮9
报告为2
(中):
xinput set-button-map $(xinput list --id-only "pointer:ELECOM TrackBall Mouse HUGE TrackBall") \
1 2 3 4 5 6 7 8 2 10 11 12
为了使这些设置永久有效,可以将上述行放置~/.xinitrc
在 Xorg 会话开始时运行。
答案2
@wojciech-gac 的回答是这个问题的正确答案。
为了完整起见,我想为那些寻求相同功能但更愿意在 Xorg 服务器中配置它的人分享等效的配置。
.conf
在其中之一创建一个文件Xorg 配置路径。例如:
/etc/X11/xorg.conf.d/99-elecom-huge-scroll.conf
并将这些内容放入其中:
Section "InputClass"
Identifier "Elecom HUGE scroll config"
MatchDriver "libinput"
MatchVendor "ELECOM"
MatchProduct "HUGE TrackBall"
Option "ScrollMethod" "button"
Option "ScrollButton" "9"
Option "ButtonMapping" "1 2 3 4 5 6 7 8 2 10 11 12"
EndSection