![使用 WACOM 数位板笔滚动](https://linux22.com/image/50385/%E4%BD%BF%E7%94%A8%20WACOM%20%E6%95%B0%E4%BD%8D%E6%9D%BF%E7%AC%94%E6%BB%9A%E5%8A%A8.png)
我有一支带按钮的 wacom 笔。按下按钮移动笔时如何触发滚动?
根据xev
,下面的触发事件是运动通知与状态0x200。
如果这不是微不足道的,我的一个想法是构建一个服务来从某个地方读取这些事件并将它们转换为其他事件。这样,我也可以定义手势。通过这种方法:
- 我在哪里可以阅读它们?
- 我如何写回事件?
- 有没有检测手势的库?
MotionNotify 事件,序列号 33,合成 NO,窗口 0xc00001, 根0x2ce,子w 0x0,时间695630659,(349,181),根:(1255,185), 状态 0x0,is_hint 0,same_screen YES ButtonPress 事件,序列号 33,合成号,窗口 0xc00001, 根0x2ce,子w 0x0,时间695630659,(349,181),根:(1255,185), 状态 0x0,按钮 2,same_screen YES MotionNotify 事件,序列号 33,合成 NO,窗口 0xc00001, 根0x2ce,子w 0x0,时间695630667,(348,183),根:(1254,187), 状态 0x200,is_hint 0,same_screen YES MotionNotify 事件,序列号 33,合成 NO,窗口 0xc00001, 根0x2ce,子w 0x0,时间695630675,(347,184),根:(1253,188), 状态 0x200,is_hint 0,same_screen YES ... MotionNotify 事件,序列号 33,合成 NO,窗口 0xc00001, 根0x2ce,子w 0x0,时间695632069,(327,486),根:(1233,490), 状态 0x200,is_hint 0,same_screen YES ButtonRelease事件,序列号33,合成NO,窗口0xc00001, 根0x2ce,子w 0x0,时间695632069,(327,486),根:(1233,490), 状态 0x200,按钮 2,same_screen YES
答案1
我遇到了这个问题的一个更简单的变体:将鼠标上的额外按键转换为键盘/鼠标按钮组合,以允许将它们绑定在窗口管理器中以移动/调整窗口大小。也许我的代码可以作为您的起点:
https://gist.github.com/CyberShadow/ae30a8d9f86c170c2451c3dd7edb649c
这个想法的要点是,它从我的鼠标/dev/input/...
设备捕获输入事件,有选择地修改它们,然后将它们写回/dev/uinput
.