waylandweston

Convert weston-calibrator values to LIBINPUT_CALIBRATION_MATRIX


How do I convert the calibration values from the weston-calibrator tool to the corresponding LIBINPUT_CALIBRATION_MATRIX.

I found one link that offers a guide on how to do that. Unfortunately, this does not work for me. The resulting matrix causes my touchscreen to not register any touches at all, once applied. I have some difficulty understanding some aspects of the guide, especially:

Note that these last values have a different meaning in X.Org/libinput: here, it seems, the values are multiplied by the device width/height, so instead of the height/width, use 1.

I have no idea, where the author wants me to put this '1'.

My calibration values from weston-calibrator are (3 runs):

I can successfully apply a LIBINPUT_CALIBRATION_MATRIX via udev rules:
ENV{ID_USB_SERIAL}=="DIALOGUE_INC_PenMount_USB", ENV{LIBINPUT_CALIBRATION_MATRIX}="1 0 0 0 1 1

I am just missing the correct conversion.


Solution

  • I have found out that we just needed to divide the third value by the width of the display, and the sixth by its height.

    So, for our 1920x1080 display: