Bug 101147

Summary: Elantech touchpad double Tap Time too short on ASUS Zenbook UX410UQ
Product: Wayland Reporter: mhbugreport
Component: libinputAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED MOVED QA Contact:
Severity: normal    
Priority: medium CC: peter.hutterer
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Screenshot of TouchpadTapSpeed-distance.gnuplot

Description mhbugreport 2017-05-22 23:03:12 UTC
Hi,
I am using libinput on an ASUS UX410UQ Elantech touchpad.
I am running Manjaro linux with kernal 4.9.27-1, and libinput version 1.7.2-1.

The double tap time is way too short, and I didn't find any way to set it. Here is my xinput list-props output : 

Device 'ELAN1200:00 04F3:3022 Touchpad':
	Device Enabled (139):	1
	Coordinate Transformation Matrix (141):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Tapping Enabled (277):	1
	libinput Tapping Enabled Default (278):	0
	libinput Tapping Drag Enabled (279):	1
	libinput Tapping Drag Enabled Default (280):	1
	libinput Tapping Drag Lock Enabled (281):	0
	libinput Tapping Drag Lock Enabled Default (282):	0
	libinput Tapping Button Mapping Enabled (283):	1, 0
	libinput Tapping Button Mapping Default (284):	1, 0
	libinput Accel Speed (285):	-0.500000
	libinput Accel Speed Default (286):	0.000000
	libinput Natural Scrolling Enabled (287):	1
	libinput Natural Scrolling Enabled Default (288):	0
	libinput Send Events Modes Available (262):	1, 1
	libinput Send Events Mode Enabled (263):	0, 0
	libinput Send Events Mode Enabled Default (264):	0, 0
	libinput Left Handed Enabled (289):	0
	libinput Left Handed Enabled Default (290):	0
	libinput Scroll Methods Available (291):	1, 1, 0
	libinput Scroll Method Enabled (292):	1, 0, 0
	libinput Scroll Method Enabled Default (293):	1, 0, 0
	libinput Click Methods Available (294):	1, 1
	libinput Click Method Enabled (295):	1, 0
	libinput Click Method Enabled Default (296):	1, 0
	libinput Middle Emulation Enabled (297):	0
	libinput Middle Emulation Enabled Default (298):	0
	libinput Disable While Typing Enabled (299):	1
	libinput Disable While Typing Enabled Default (300):	1
	Device Node (265):	"/dev/input/event10"
	Device Product ID (266):	1267, 12322
	libinput Drag Lock Buttons (301):	<no items>
	libinput Horizontal Scroll Enabled (302):	1
Comment 1 Peter Hutterer 2017-05-23 05:22:56 UTC
Record yourself tapping a few times with evemu-record, then grab the input-data-analysis and run this script please:
https://github.com/whot/input-data-analysis/blob/master/touchpad-tap-speed/touchpad-tap-speed.py

(You'll need to set up PYTHONPATH to point at the repository root)

That produces a bunch of gnuplot files with data, have a look at those and see what times you're using for tapping.
Comment 2 Peter Hutterer 2017-05-23 05:23:18 UTC
doh, this was suppoed to be NEEDINFO, not resolved...
Comment 3 mhbugreport 2017-05-23 20:22:31 UTC
(In reply to Peter Hutterer from comment #1)
> Record yourself tapping a few times with evemu-record, then grab the
> input-data-analysis and run this script please:
> https://github.com/whot/input-data-analysis/blob/master/touchpad-tap-speed/
> touchpad-tap-speed.py
> 
> (You'll need to set up PYTHONPATH to point at the repository root)
> 
> That produces a bunch of gnuplot files with data, have a look at those and
> see what times you're using for tapping.

I have cloned the git repository, and tried running touchpad-tap-speed.py, after having recorded some tap events using evemu-record :

   sudo evemu-record > touchpad-doubletap.txt

   ...

   python touchpad-tap-speed.py

Outputs : 
  
Traceback (most recent call last):
  File "touchpad-tap-speed.py", line 11, in <module>
    from shared import *
  File "../shared/__init__.py", line 6, in <module>
    import evemu
ModuleNotFoundError: No module named 'evemu'

Which is weird since I have evemu installed, and already run evemu-record.

Where is the problem ?
Comment 4 Peter Hutterer 2017-05-23 21:01:42 UTC
looks like you're missing the python bindings for evemu. On Fedora, they're in the evemu-devel package, I guess Manjaro has a similar package.
Comment 5 mhbugreport 2017-05-25 18:01:55 UTC
(In reply to Peter Hutterer from comment #4)
> looks like you're missing the python bindings for evemu. On Fedora, they're
> in the evemu-devel package, I guess Manjaro has a similar package.

Okay, I ran the script with python2 instead of python, seems that it was the problem.

I have attached the screenshot of TouchpadTapSpeed-times.gnuplot.

Does it have enough information ? It seems to me that this plot only contains information about the time for press-release for a single tap, not the time that separates the two taps of a double-tap. Am I wrong ?
Comment 6 mhbugreport 2017-05-25 18:03:00 UTC
Created attachment 131516 [details]
Screenshot of TouchpadTapSpeed-distance.gnuplot
Comment 7 Peter Hutterer 2017-05-25 22:16:23 UTC
Thanks, much appreciated. And now I'm face-palming a bit - yes, this one does not handle doubletaps. Sorry about that. I'll get a debugging script sorted for that asap.
Comment 8 Peter Hutterer 2017-06-12 22:45:03 UTC
ok, finally have something in place to measure this. It's not perfect yet so my apologies for making you play guinea pig.

https://github.com/whot/libinput/tree/wip/touchpad-measure-doubletap

Build it, then run libinput-measure-touchpad-tap --tap-count=2 (directly in the builddir) and look at the statistics. That should tell us a few things already, otherwise run with --format=dat and attach the output here.
Comment 9 mhbugreport 2017-07-24 12:32:55 UTC
(In reply to Peter Hutterer from comment #8)
> ok, finally have something in place to measure this. It's not perfect yet so
> my apologies for making you play guinea pig.
> 
> https://github.com/whot/libinput/tree/wip/touchpad-measure-doubletap
> 
> Build it, then run libinput-measure-touchpad-tap --tap-count=2 (directly in
> the builddir) and look at the statistics. That should tell us a few things
> already, otherwise run with --format=dat and attach the output here.

Hi. Sorry for the late answer.

The issue is that libinput is already installed, so I am wondering whether building from your repository will mess up my already existing installation.

In other words is there a way for the two libinputs to coexist. If so then I will perform your suggested test.

Cheers !
Comment 10 Peter Hutterer 2017-07-28 06:27:04 UTC
you don't need to install libinput to run that tool you can run it directly from the git build directory.
Comment 11 mhbugreport 2017-07-31 13:06:14 UTC
(In reply to Peter Hutterer from comment #10)
> you don't need to install libinput to run that tool you can run it directly
> from the git build directory.

Thanks for your answer.
So I build libinput locally using : 

$> git clone https://github.com/whot/libinput.git
$> cd libinput
$> meson --prefix=$HOME/libinput/libinput_build builddir/
$> ninja -C builddir/
$> sudo ninja -C builddir/ install

then 
$> cd $HOME/libinput/libinput_build/libexec/libinput
$> sudo ./libinput-measure-touchpad-tap --tap-count=2 --format=dat

An I get

./libinput-measure-touchpad-tap: unrecognized option '--tap-count=2'
Usage: libinput measure touchpad-tap [--help] [/dev/input/event0]

Did I do something wrong ?
Comment 12 Peter Hutterer 2017-08-15 05:53:10 UTC
sorry for the delay, I was on holidays. Looks like you didn't check out the right branch, you need a 'git checkout -b wip/touchpad-measure-doubletap'. Also, as mentioned above, you can skip the ninja install step. Having said that, I have plans of rewriting that bit in python to make it easier to maintain. Should get to this over the next few days, it might be worth waiting.
Comment 13 mhbugreport 2017-09-04 18:46:27 UTC
(In reply to Peter Hutterer from comment #12)
> sorry for the delay, I was on holidays. Looks like you didn't check out the
> right branch, you need a 'git checkout -b wip/touchpad-measure-doubletap'.
> Also, as mentioned above, you can skip the ninja install step. Having said
> that, I have plans of rewriting that bit in python to make it easier to
> maintain. Should get to this over the next few days, it might be worth
> waiting.

Okay, I'll wait ! Cheers.
Comment 14 mhbugreport 2017-11-13 13:33:56 UTC
(In reply to Peter Hutterer from comment #12)
> sorry for the delay, I was on holidays. Looks like you didn't check out the
> right branch, you need a 'git checkout -b wip/touchpad-measure-doubletap'.
> Also, as mentioned above, you can skip the ninja install step. Having said
> that, I have plans of rewriting that bit in python to make it easier to
> maintain. Should get to this over the next few days, it might be worth
> waiting.

Any news on the touchpad-measure-doubletap tool ?
Comment 15 Peter Hutterer 2017-11-16 05:13:23 UTC
sorry, completely swamped. I just sent the patch for replacing the tool with a python version to the list. It doesn't do double-tap yet though.

https://lists.freedesktop.org/archives/wayland-devel/2017-November/035843.html
Comment 16 Peter Hutterer 2017-11-17 01:12:23 UTC
The patch above was pushed as fca003d30, any help with adding the bits to measure doubletap timeouts would be appreciated. It's python now which makes things a lot easier
Comment 17 Peter Hutterer 2018-01-16 06:42:00 UTC
fwiw, I'm looking for help with the double tap time measure tool, I don't seem to have enough time for anything these days
Comment 18 GitLab Migration User 2018-06-05 09:58:31 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/libinput/libinput/issues/8.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.