tias / xinput_calibrator

A generic touchscreen calibration program for X.Org
http://www.freedesktop.org/wiki/Software/xinput_calibrator
Other
136 stars 105 forks source link

Add support for libinput #77

Open kreijack opened 5 years ago

kreijack commented 5 years ago

libinput is replacing the old evdev interface in Xorg. Unfortunately this is not handled very wheel by xinput_calibrator. This pull request, adds support for libinput. So xinput_calibrator is able to calibrate even when libinput replace evdev.

Moreover a tool called uinput-touch-simulation.c is added to simulate a touch screen using the uinput interface.

tianon commented 5 years ago

This is exactly what I was looking for out of xinput_calibrator! :heart:

I tested this out to see if it would work with a Dell Laptop touchscreen (shows up as ELAN Touchscreen in xinput), and got the following error when trying to run it:

$ xinput_calibrator -v
DEBUG: XInputExtension version is 2.3
DEBUG: Skipping virtual master devices and devices without axis valuators.
DEBUG: Skipping device 'Virtual core XTEST pointer' id=4, does not report Absolute events.
DEBUG: Skipping device 'SynPS/2 Synaptics TouchPad' id=16, does not report Absolute events.
DEBUG: Skipping device 'DLL07BF:01 06CB:7A13 Touchpad' id=13, does not report Absolute events.
DEBUG: Selected device: ELAN Touchscreen
DEBUG: Not usbtouchscreen calibrator: Not a usbtouchscreen device
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  131 (XInputExtension)
  Minor opcode of failed request:  37 (X_ChangeDeviceProperty)
  Serial number of failed request:  17
  Current serial number in output stream:  18

This was on a pretty stock Debian Stretch system, with no extra ./configure arguments. Happy to provide more details if it'd be helpful! Thanks for working on this. :+1:

kreijack commented 5 years ago

Hi, could you be try https://github.com/kreijack/xinput_calibrator.git the 'devel' branch (commit b82b479 ) ? I am not sure if this will solve; however this is my latest update. If this will not solve, I will add some debug code to sorter out the issue. Please let me know if this will help you.

BR G.Baroncelli

tianon commented 5 years ago

That works, and outputs an appropriate transformation matrix! :smile:

(Still get multi-monitor issues as described in #61, but that's expected with the rest of xinput_calibrator's code. :heart:)

b0o commented 5 years ago

This worked to fix #68 for me! Thank you @kreijack

ingmar commented 4 years ago

This patch made xinput_calibrator actually work at all on Ubuntu 18.04. The generated xorg.d section works too. Thanks 👍

thetrebor commented 4 years ago

is there any way for me to get a version of the binary with this pull request merged? I do not have a unix build env set up and want to avoid having to re-implement this in python to include on a prototype of a kiosk. Thank you all.