我正在寻找一种将wacom输入注入正在运行的X服务器的方法。我一开始就被困在寻找关于这个话题的任何资源上。
有很多关于如何注入击键和鼠标输入的信息,但这不是我想要的,它似乎不简单的wacom东西。
有人有关于这个话题的信息吗?
发布于 2016-01-23 18:22:55
在Linux上,各种输入设备生成一个各种事件。
例如,
Keyboards - EV_KEY
Mice - EV_REL
Tablets - EV_ABS任何特定输入设备支持/生成的事件都可以通过在系统上运行xinput来标识,输入设备与其连接如下:
xinput --list <name of the connected input device>通过连接Wacom tablet创建的输入设备示例列表:
$ > xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=14 [slave pointer (2)]
⎜ ↳ Wacom Intuos4 6x9 eraser id=17 [slave pointer (2)]
⎜ ↳ Wacom Intuos4 6x9 cursor id=18 [slave pointer (2)]
⎜ ↳ Wacom Intuos4 6x9 pad id=19 [slave pointer (2)]
⎜ ↳ Wacom Intuos4 6x9 stylus id=20 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]..and由4个Wacom设备中的一个支持/生成的输入事件列表,这些设备注册为从Wacom输入事件:
$ > xinput --list "Wacom Intuos4 6x9 eraser"
Wacom Intuos4 6x9 eraser id=17 [slave pointer (2)]
Reporting 8 classes:
Class originated from: 17
Buttons supported: 9
Button labels: None None None None None None None None None
Button state:
Class originated from: 17
Keycodes supported: 248
Class originated from: 17
Detail for Valuator 0:
Label: Abs X
Range: 0.000000 - 44704.000000
Resolution: 200000 units/m
Mode: absolute
Current value: 0.000000
Class originated from: 17
Detail for Valuator 1:
Label: Abs Y
Range: 0.000000 - 27940.000000
Resolution: 200000 units/m
Mode: absolute
Current value: 0.000000
Class originated from: 17
Detail for Valuator 2:
Label: Abs Pressure
Range: 0.000000 - 2048.000000
Resolution: 1 units/m
Mode: absolute
Current value: 0.000000
Class originated from: 17
Detail for Valuator 3:
Label: Abs Tilt X
Range: -64.000000 - 63.000000
Resolution: 1 units/m
Mode: absolute
Current value: 0.000000
Class originated from: 17
Detail for Valuator 4:
Label: Abs Tilt Y
Range: -64.000000 - 63.000000
Resolution: 1 units/m
Mode: absolute
Current value: 0.000000
Class originated from: 17
Detail for Valuator 5:
Label: Abs Tilt Y
Range: -64.000000 - 63.000000
Resolution: 1 units/m
Mode: absolute
Current value: 0.000000上面显示了9个按钮,以及每种类型的输入事件的对应min/max值的几个轴(由它们的标签所引用)。
例如,绝对x轴的最小/最大值为0- 44704单位,有20000个单位/米。据推测,EV_ABS类型的输入事件仅在X轴的此范围内生成。
一旦识别了由输入设备生成的事件类型,就很容易使用
uinput框架将假事件注入Xinput队列。一个简单的例子是可用的这里
当您打算模拟一个Wacom平板时,您可能需要注入一个典型的Wacom在使用时生成的所有输入事件。
xinput可用于监视由实际设备生成的输入事件的顺序和时间,如本回答所示。
https://stackoverflow.com/questions/34895938
复制相似问题