通过键盘进行 Evdev 轮模拟

通过键盘进行 Evdev 轮模拟

我喜欢 XInput 鼠标滚轮模拟! Evdev Wheel Emulation 可以通过运行以下命令在任何鼠标按钮上启用(9 是触发 Evdev Wheel Emulation 的鼠标按钮)

xinput set-prop $DEVICE_ID "Evdev Wheel Emulation Button" 9

我使用它已经近 5 年了,非常感谢 xorg 人员实现了这个伟大的功能。现在我想将触发器从鼠标按钮更改为键盘键。假设我想在按住“H”键时启用触发模拟,并在释放魔法“H”时禁用触发模拟。我怎样才能做到这一点?

经测试无效的解决方案

我尝试将键盘按键映射到鼠标按钮 9,但按按钮 9 无法实现此目的。看起来 Evdev 不会通过合成鼠标按键来刺激。我创建了一个脚本,当按下神奇的“H”键时,它会运行xdotool mousedpown 9xdotool mouseup 9在释放该键时运行。我可以通过将按钮从 9 更改为 1(也称为左键单击)来确认脚本执行其应执行的操作,并看到按住键盘上的“H”将按住左键单击,但对 Evdev 仿真没有希望

答案1

最简单的方法是使用 uinput 模块和 python 创建一个虚拟指针。然后创建一个脚本,在键盘上按键时在虚拟指针中发出鼠标按钮。

我写了一个完整的解释博客。如果您需要更多详细信息,您可以查看

相关内容