2

I'm not sure if the following issue is a bug or just a limitation of the xinput usage.

The setup is the following. Two nvidia graphic cards, configured on xscreen0 are 4 touchscreens and on xscreen1 are 2 screens of which only 1 is touch.

With adjusting of the transformation matrix I was able to adjust the touch devices according to their position. Everything works fine as long the touch devices are on xscreen0 (DISPLAY=:0.0) as soon as I'm trying to add the touch device of the xscreen1, I get a really strange behaviour.

Every screen is 1920x1080, one screen on xscreen0 is turned 90° and they're aligned all under each other.

Now to the issue:

If I assign with xinput to DISPLAY=:0.1 the touch device to the screen with the correct transformation matrix, it in general has the right coordiantes, because if I touch at one point and move my mouse afterwards the mousepointer starts moving exactly from the position I had touched.

HOWEVER the mouse click event is not on the right position, it completly jumps out of screen and keeps being there as long as I try to move a window with the touchscreen (that's how I saw where the mouse movement jumps to).

So that means I can't actually use the touch of the touchscreen since the click event and movement and other things don't work properly. So my question is, is there a possibility to tell the system that this specific touch device is assigned to xscreen1. Like in the xorg.conf or with another paramter change of xinput?

Info:

xinput_calibrator doesn't work properly at all aswell, that's why I'm doing it manually via xinput.

xinput version is 1.6.1

With evtest I see that the touch device provides the correct coordinates

Also assigning the touch device to one screen that is on xscreen0 works without any issue and mouse click also works fine then.

Edit: Added the device props, maybe I'm missing something.

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
0

HOWEVER the mouse click event is not on the right position, it completely jumps out of screen and keeps being there as long as I try to move a window with the touchscreen (that's how I saw where the mouse movement jumps to).

Congratulations, you seem to have found a bug. If when moving your finger it displays the right coordinates and when you then tap to click the coordinates of the click event do not have the same coordinates, then you have found a bug.

Please report this. If you could reproduce with just one touch screen on 0:0 and one on 0:1, that would make it easier to test.

Another question, is the touch screen rotated 90° ? This might then be related to that, you could try without rotating it ... apart from that, it reeks like a bug.

Please goto https://en.opensuse.org/openSUSE:Submitting_bug_reports and report the bug.

  • Has nothing to do with the rotation, I just mentioned it since it is needed for the transformation matrix calculation. The rotated screen is on xscreen0 and is working fine. Like I mentioned the other screen is also working fine as long I define it as xscreen0. The issue is with the mousepointer being defined only on xscreen0 and the touch device being slaved to it. So the question still stands how one would change that touch device to be on xscreen1 or as asked if that alone is a limitation to xinput only being able to communicate with xscreen0. – Ziazis Jul 13 '17 at 13:12
  • 1
    Hm, now I think I misunderstood ... I thought that xinput --test device correctly prints out coordinates when you move your finger over the touch panel, but that when you click it screws up the coordinates, is that the case or am I a bit confused? Maybe you could provide the command line args you use for xinput. – thecarpy Jul 13 '17 at 13:50
  • Yes a[0] and a[1] both change their values depening on how you move around with your finger. – Ziazis Jul 13 '17 at 14:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.