I am running Ubuntu 12.04 on a lenovo X220 tablet and I want to get a feel of what multitouch applications/games are available. I installed anything mentioning multitouch from the repository, for example here are some of the game I installed:
- Planarity
- Multitet
- Sponc
- EMPCommand
However, my multitouch input is not correctly being registered by these application. In some cases touch inputs show at the very edges of the screen regardless of where I touch and in some other cases no input seem to be registered or at least visible in the game. I dont know yet if this is a bug or if I am missing an application or setting.
I tried calibrating the multitouch device using Calibrate Touchscreen tool, but that did not resolve this issue.
Here is some more information about my multitouch device. First let look at the output of xinput list:
:~$ xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 E6 Pen stylus id=10 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 E6 Finger touch id=11 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=14 [slave pointer (2)]
⎜ ↳ Wacom ISDv4 E6 Pen eraser id=16 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=12 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=15 [slave keyboard (3)]
The multitouch screen is being registered as a pointer device. Right now evtest
or ntview
can not access the device yet.
Next, I disabled the xinput device:
~$ xinput set-prop 11 'Device Enabled' 0
Now evtest is able to access the touch events. Here is a example snippet of the output, I was touching the top left corner area:
Event: time 1336532858.731191, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 62
Event: time 1336532858.731201, -------------- SYN_REPORT ------------
Event: time 1336532859.983263, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 35
Event: time 1336532859.983265, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 61
Event: time 1336532859.983272, type 3 (EV_ABS), code 0 (ABS_X), value 33
Event: time 1336532859.983274, -------------- SYN_REPORT ------------
Event: time 1336532860.663216, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 36
Event: time 1336532860.663218, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 58
Also mtview works now, here is a snippet from its output:
:~$ sudo mtview /dev/input/event13
map: 0.000000 0.000000 0.000000 0.000000 1366.000000 768.000000
map: 50.000000 52.000000 0.000000 0.000000 1366.000000 768.000000
map: 634.000000 52.000000 0.000000 0.000000 1366.000000 768.000000
map: 99.000000 74.000000 0.000000 0.000000 1366.000000 768.000000
map: 49.000000 52.000000 0.000000 0.000000 1366.000000 768.000000
map: 0.000000 0.000000 0.000000 0.000000 1366.000000 768.000000
map: 49.000000 52.000000 0.000000 0.000000 1366.000000 768.000000
map: 49.000000 24.000000 0.000000 0.000000 1366.000000 768.000000
In the mtview painting based interface, I can brush with a maximum of two fingers, so my guess is that this multitouch device doesnt really support more that two simultaneous touch events, but I am not 100% sure about that yet.
The pointer decive based on multitouch input seems to work perfectly fine and I can interact with non-multitouch applications. However none of the applications that are built to use multitouch input seem to work yet.
Disclaimer: I had mentioned this issue in another question previously, but then I realized it was probably worthy of its own question.
not reproducible