[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

multitouch / touchscreen support in Debian



Hi,

I am interested in some basic touchscreen / multitouch support on my
xfce desktop. There are two actions I am particularly interested in
(single touch handled as 'click', and two-finger scroll), but I wouldn't
say no to more. I want this in every application, not just some browser
(even scroll in xterm). Essentially I want at least touchpad
functionality using my touchscreen.

My system: a Thinkpad T440s. Touchpad works fine, but that is using
the synaptics driver, while the touchscreen in question (Elan) has to
use something else. The screen doesn't speak synaptics, and touches
aren't button presses. More technical details below.

I can get a single touch to work as click when using the evdev xorg
driver. But that doesn't seem to understand anything more than that: no
scrolling, no more elaborate gestures.

When I try the xorg 'multitouch' driver, I get the screen apparently
fully recognized by xorg (see below), but I don't see any events when
testing it (xinput test), and also nothing actually happens. Note that
the kernel event interface spits out events happily, and mtdev-test
seems to work fine too (also see below).

My question is mainly in which direction I should look. Google wasn't
particularly helpful, as most hits point to Ubuntu (no, I don't want to
switch to Ubuntu). The recommended solution there seems to be either
Unity, or a tool called touchegg, which doesn't appear to exist in
Debian, nor seems someone interested in it. The only time someone asked
here about it doesn't have a solution or useful pointer.

From what I read all over the net (several hours of search) is that I
apparently need something that translates the touch events into other,
events that traditional applications can deal with (like a mouse button
press or a scroll event). Is this correct? Is there something for that
in Debian?

Also: should I see multitouch events using 'xinput test', or does this
only display 'traditional events'?

Thanks, Frank

[1] https://lists.debian.org/debian-user/2013/01/msg00800.html

technical details:

from syslog:

usb 1-1.5: Product: Touchscreen
usb 1-1.5: Manufacturer: ELAN
input: ELAN Touchscreen as /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.5/1-1.5:1.0/0003:04F3:0224.0063/input/input119
hid-multitouch 0003:04F3:0224.0063: input,hiddev0,hidraw0: USB HID v1.10 Device [ELAN Touchscreen] on usb-0000:00:1d.0-1.5/input0

from Xorg.0.log:

(II) XINPUT: Adding extended input device "ELAN Touchscreen" (type: TOUCHPAD, id 10)
(II) device control: init
(**) Option "Device" "/dev/input/event11"
(II) multitouch: devname: ELAN Touchscreen
(II) multitouch: devid: 4f3 224 110
(II) multitouch: caps: mtdata
(II) multitouch: 0: min: 0 max: 255
(II) multitouch: 1: min: 0 max: 255
(II) multitouch: 4: min: 0 max: 1
(II) multitouch: 5: min: 0 max: 3968
(II) multitouch: 6: min: 0 max: 2240
(II) multitouch: 9: min: 0 max: 65535
(II) pointer_control
(**) ELAN Touchscreen: (accel) keeping acceleration scheme 1
(II) pointer_property
(II) pointer_property
(**) ELAN Touchscreen: (accel) acceleration profile 0
(II) pointer_property
(II) pointer_property
(**) ELAN Touchscreen: (accel) acceleration factor: 2.000
(**) ELAN Touchscreen: (accel) acceleration threshold: 4
(II) device control: on
(II) pointer_property
(II) pointer_property
(II) config/udev: Adding input device ELAN Touchscreen (/dev/input/mouse0)
(II) No input driver specified, ignoring this device.
(II) This device may have been added with another device file.

mtdef-test with single tap:

# mtdev-test /dev/input/event11 
supported mt events:
   ABS_MT_SLOT
   ABS_MT_TOUCH_MAJOR
   ABS_MT_TOUCH_MINOR
   ABS_MT_ORIENTATION
   ABS_MT_POSITION_X
   ABS_MT_POSITION_Y
   ABS_MT_TRACKING_ID
014dd171410c 00 3 0039 278
014dd171410c 00 3 0035 3229
014dd171410c 00 3 0036 936
014dd171410c 00 3 003c 3229
014dd171410c 00 3 003d 936
014dd171410c 00 1 014a 1
014dd171410c 00 3 0000 3229
014dd171410c 00 3 0001 936
014dd171410c 00 0 0000 0
014dd1714114 00 3 0030 4
014dd1714114 00 0 0000 0
014dd171412c 00 3 0039 -1
014dd171412c 00 1 014a 0
014dd171412c 00 0 0000 0

xinput test: no activity at all

# xinput list-props 10
Device 'ELAN Touchscreen':
        Device Enabled (135):   1
        Coordinate Transformation Matrix (137): 1.000000, 0.000000,
0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
        Device Accel Profile (264):     0
        Device Accel Constant Deceleration (265):       1.000000
        Device Accel Adaptive Deceleration (266):       1.000000
        Device Accel Velocity Scaling (267):    10.000000

# xinput --list
⎡ Virtual core pointer                          id=2    [master pointer(3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer(2)]
⎜   ↳ ELAN Touchscreen                          id=10   [slave  pointer(2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer(2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     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=11   [slave  keyboard(3)]
    ↳ ThinkPad Extra Buttons                    id=14   [slave  keyboard(3)]

# cat /dev/input/event11
<lots of "garbage" upon screen touches>

Attachment: signature.asc
Description: Digital signature


Reply to: