更新:现在中键单击模拟不再起作用,所以我比以往任何时候都更加陷入困境。按下按钮 1 和 3 就像按下中间按钮一样充当滚轮。
我有一个带有轨迹点的联想键盘,但需要能够中键单击和拖动。虽然大多数文章都说如何启用滚轮模拟,但我遇到了相反的问题:滚动功能默认情况下处于打开状态,我无法将其关闭。我可以通过中间仿真来解决这个问题,但这很尴尬,因为我需要用两只手来做。以下是报告的属性:
$ xinput list-props 'pointer:Lenovo ThinkPad Compact USB Keyboard with TrackPoint'
Device 'Lenovo ThinkPad Compact USB Keyboard with TrackPoint':
Device Enabled (155): 1
Coordinate Transformation Matrix (157): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
libinput Natural Scrolling Enabled (290): 0
libinput Natural Scrolling Enabled Default (291): 0
libinput Scroll Methods Available (292): 0, 0, 1
libinput Scroll Method Enabled (293): 0, 0, 0
libinput Scroll Method Enabled Default (294): 0, 0, 1
libinput Button Scrolling Button (295): 2
libinput Button Scrolling Button Default (296): 2
libinput Middle Emulation Enabled (297): 0
libinput Middle Emulation Enabled Default (298): 0
libinput Accel Speed (299): 0.000000
libinput Accel Speed Default (300): 0.000000
libinput Accel Profiles Available (301): 1, 1
libinput Accel Profile Enabled (302): 1, 0
libinput Accel Profile Enabled Default (303): 1, 0
libinput Left Handed Enabled (304): 0
libinput Left Handed Enabled Default (305): 0
libinput Send Events Modes Available (275): 1, 0
libinput Send Events Mode Enabled (276): 0, 0
libinput Send Events Mode Enabled Default (277): 0, 0
Device Node (278): "/dev/input/event24"
Device Product ID (279): 6127, 24647
libinput Drag Lock Buttons (306): <no items>
libinput Horizontal Scroll Enabled (307): 0
Evdev Wheel Emulation (391): 0
您可以看到我已经禁用了可用的滚动方法和水平滚动。甚至还添加了 Evdev 属性。唯一可能仍然有帮助的明显事情是更改滚动按钮(属性 295),但我无法让它工作:
$ xinput set-int-prop 'pointer:Lenovo ThinkPad Compact USB Keyboard with TrackPoint' 295 8 3
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 131 (XInputExtension)
Minor opcode of failed request: 57 ()
Serial number of failed request: 19
Current serial number in output stream: 20
我正在使用 Arch Linux。在理想的情况下,我可以找到一个动态解决方案,让我可以使用 shell 脚本随意启用和禁用滚轮。但出于绝望,我也对涉及 xorg.conf 的解决方案或其他需要重新启动 X 服务器以启用或禁用轮子的方法感兴趣。
答案1
尝试这个:
xinput set-prop <device> 295 3
这似乎不是一个 int 道具。
答案2
对于轨迹点 libinput 默认为按钮滚动,通常称为鼠标滚轮模拟或虚拟滚动。更改此值取决于您的窗口管理器,但它将反映该 libinput api。
例如,在 sway 中,您可以调用swaymsg -t get_inputs -r
来获取系统输入的 json 列表、它们的标识符以及当前应用的 libinput 设置。然后您可以使用它们来设置所需的滚动方法。例如,我的相关设备是'2:10:TPPS/2_Elan_TrackPoint'
。如果我想禁用按钮滚动,我可以将 更改scroll_method
为其他按键事件on_button_down
,也可以将 或设置scroll_button
为disable
另一个按键事件(这里的默认值是 274,对应于我的鼠标中键);您可以使用上一个命令检查默认值,get_inputs
以便可以打开和关闭该行为。一如既往地看到手册页更多细节。