使用热键+轨迹球模拟双向滚动

Woj*_*ilo 5 xorg mouse wayland scrolling

我已经构建了一个自定义键盘,拇指下有一个轨迹球,我想以这样的方式映射滚动行为,当我按下快捷键(如左 Alt)并旋转球时,它的行为应该像滚动。我在这里使用 Xorg,但我对寻找 X 和 Wayland 的解决方案非常感兴趣(如果解决方案涉及显示服务器)。

dir*_*rkt 0

用轨迹球模拟鼠标滚轮

您可以使用现有的驱动程序配置选项来完成与您想要的类似的操作,也可以编写自己的驱动程序。

Logitech M570是一款带有 USB 接收器的无线轨迹球。这意味着它将显示为 HID设备,并且鼠标事件将通过内核中的输入层提供,并且可以从相应的/dev/event设备读取。

X驱动程序反过来使用evdev驱动程序从该层读取事件,并将它们转换为X事件。我不熟悉 Wayland,但我认为它在那里也会有类似的工作方式。

1)evdev驱动程序已包含在轨迹球上模拟鼠标滚轮的选项,请参阅man evdev。最重要的是

选项“EmulateWheel”“布尔值”

启用/禁用“轮子”模拟。滚轮仿真意味着在按下特定真实按钮的同时移动鼠标时模拟按钮按下/释放事件。滚轮按钮事件(通常为按钮 4 和 5)通常用于滚动。车轮仿真对于通过轨迹球获得类似车轮的行为非常有用。

选项“EmulateWheelButton”“整数”

指定必须按住哪个按钮才能启用车轮模拟模式。当此按钮按下时,X 和/或 Y 指针移动将生成为 XAxisMapping 和 YAxisMapping 设置指定的按钮按下/释放事件。如果按钮为 0 并且 EmulateWheel 打开,则设备的任何运动都会转换为滚轮事件。默认值:4。

因此,这可以使用轨迹球按钮而不是键盘快捷键来工作(因为驱动程序只能看到来自鼠标的事件,而不是来自键盘的事件),并且会将移动转换为滚轮事件,而不是旋转

2)通过修改几个现有的驱动程序来编写自己的驱动程序。您需要组合键盘和鼠标的驱动程序,以便按键可以触发滚轮模拟。

内核输入层的源代码位于drivers/input内核树中。

evdev X 驱动程序的源代码位于xorg/driver/xf86-input-evdev/tree/src/evdev.c中。

键盘驱动程序取决于您使用的键盘类型。