跨 2 个显卡的触摸设备

跨 2 个显卡的触摸设备

我不确定以下问题是错误还是只是 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并报告错误。

相关内容