我有一个 ThinkPad USB 键盘,我希望能够使用中键单击来粘贴和滚动。
这适用于我的 ThinkPad 笔记本电脑。在笔记本电脑上,如果按住中键按钮的时间足够短,那么当释放它时,它会被解释为“粘贴。” 当保持时间较长时,它被解释为“滚动”。
问题是,使用 USB 键盘时,按下中间按钮时会做出粘贴决定按下,不是当它是释放,所以如果我尝试通过中键单击滚动,它将首先粘贴,然后在我按住它时滚动(尽管有趣的是,如果我已经移动光标,则不会发生这种粘贴,这是我当前的解决方法)。
有没有办法告诉 X11 在释放中间按钮时粘贴而不是按下(根据按住的时间决定滚动而不是粘贴)?
答案1
尝试使用以下命令启用滚动模拟,该命令在多种型号的指点杆键盘上运行良好:
dev="TPPS/2 IBM TrackPoint"
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Axes" 8 6 7 4 5
xinput --set-int-prop "$dev" "Evdev Wheel Emulation Button" 8 2
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 1
如果您不喜欢这样,可以使用以下命令撤消它
xinput --set-int-prop "$dev" "Evdev Wheel Emulation" 8 0
您可能需要根据您的键盘型号调整开发。跑步
xinput --list | grep TrackPoint
查看您的指点设备的名称。
答案2
这对我来说很有效/etc/X11/xorg.conf.d/20-thinkpad.conf
:
Section "InputClass"
Identifier "Trackpoint Wheel Emulation"
MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
MatchDevicePath "/dev/input/event*"
Option "EmulateWheel" "true"
Option "EmulateWheelButton" "2"
Option "Emulate3Buttons" "false"
Option "XAxisMapping" "6 7"
Option "YAxisMapping" "4 5"
EndSection
重要的部分是MatchProduct
条目,其中还包括 USB 键盘。您可以/var/log/Xorg.0.log
通过 grep for找到键盘产品字符串(II) evdev:
。
答案3
我的新 Lenovo ThinkPad Trackpoint Keyboard II 也遇到了类似的问题。
对我有用的是更新到内核 5.19 并加载内核hid-lenovo
模块。支持 Lenovo ThinkPad Trackpoint 键盘 II仅登陆内核 5.19。
现在,单击中间按钮时不需要的粘贴消失了,我什至可以使用 TrackPoint 水平滚动! \o/