我不确定以下问题是错误还是只是 xinput 使用的限制。
设置如下。两张 nvidia 显卡,在 xscreen0 上配置为 4 个触摸屏,在 xscreen1 上配置为 2 个屏幕,其中只有 1 个是触摸屏。
通过调整变换矩阵,我能够根据触摸设备的位置来调整它们。只要触摸设备位于 xscreen0 (DISPLAY=:0.0) 上,一切都会正常工作,当我尝试添加 xscreen1 的触摸设备时,我会得到一个非常奇怪的行为。
每个屏幕都是 1920x1080,xscreen0 上的一个屏幕旋转 90°,并且它们彼此对齐。
现在来说说这个问题:
如果我用 xinput 将触摸设备分配DISPLAY=:0.1
给具有正确变换矩阵的屏幕,它通常具有正确的坐标,因为如果我触摸一点并随后移动鼠标,则鼠标指针开始从我触摸的位置精确移动。
然而,鼠标单击事件不在正确的位置,只要我尝试用触摸屏移动窗口,它就会完全跳出屏幕并一直存在(这就是我看到鼠标移动跳转到的位置的方式)。
所以这意味着我实际上无法使用触摸屏的触摸,因为点击事件和移动以及其他事情无法正常工作。所以我的问题是,是否有可能告诉系统这个特定的触摸设备被分配给xscreen1。就像在 xorg.conf 中或 xinput 的另一个参数更改一样?
信息:
xinput_calibrator 也根本无法正常工作,这就是我通过 xinput 手动执行此操作的原因。
xinput版本是1.6.1
通过 evtest,我看到触摸设备提供了正确的坐标
此外,将触摸设备分配到 xscreen0 上的一个屏幕也可以正常工作,并且鼠标单击也可以正常工作。
编辑:添加了设备道具,也许我遗漏了一些东西。
Device 'AFO Co., Ltd. AFO TCM10J-400 HID':
Device Enabled (153): 1
Coordinate Transformation Matrix (155): 1.000000, 0.000000, 0.000000, 0.000000, 0.147540, 0.704920, 0.000000, 0.000000, 1.000000
Device Accel Profile (304): 0
Device Accel Constant Deceleration (305): 1.000000
Device Accel Adaptive Deceleration (306): 1.000000
Device Accel Velocity Scaling (307): 10.000000
Device Product ID (296): 9590, 3
Device Node (297): "/dev/input/event24"
Evdev Axis Inversion (308): 0, 0
Evdev Axis Calibration (309): <no items>
Evdev Axes Swap (310): 0
Axis Labels (311): "Abs MT Position X" (302), "Abs MT Position Y" (303), "None" (0), "None" (0)
Button Labels (312): "Button Unknown" (299), "Button Unknown" (299), "Button Unknown" (299), "Button Wheel Up" (159), "Button Wheel Down" (160)
Evdev Scrolling Distance (313): 0, 0, 0
Evdev Middle Button Emulation (314): 0
Evdev Middle Button Timeout (315): 50
Evdev Third Button Emulation (316): 0
Evdev Third Button Emulation Timeout (317): 1000
Evdev Third Button Emulation Button (318): 3
Evdev Third Button Emulation Threshold (319): 20
Evdev Wheel Emulation (320): 0
Evdev Wheel Emulation Axes (321): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (322): 10
Evdev Wheel Emulation Timeout (323): 200
Evdev Wheel Emulation Button (324): 4
Evdev Drag Lock Buttons (325): 0
答案1
然而,鼠标单击事件不在正确的位置,只要我尝试用触摸屏移动窗口,它就会完全跳出屏幕并一直存在(这就是我看到鼠标移动跳到的位置的方式)。
恭喜你,你似乎发现了一个错误。如果当移动手指时它显示正确的坐标,而当您点击单击时,单击事件的坐标没有相同的坐标,那么您就发现了一个错误。
请报告此事。如果您可以仅用一个触摸屏在 0:0 上进行再现,然后用一个触摸屏在 0:1 上进行再现,那么测试就更容易了。
还有一个问题,触摸屏是旋转90°吗?这可能与此相关,你可以尝试不旋转它......除此之外,它散发着臭味。
请转到https://en.opensuse.org/openSUSE:Submitting_bug_reports并报告错误。