libinput Acer c720 Observations

Wade Berrier wberrier at gmail.com
Fri Jun 5 15:31:15 PDT 2015


Hello,

I'm running libinput 0.17 on Fedora 22 (compiled and installed the
rawhide src.rpm) on an Acer c720 chromebook.  The observations below
also apply to 0.15 that shipped with the distro, but I upgraded to see
if it changed the behavior.

The trackpad doesn't quite "feel right".  Here's some of the main
observations compared to when using the trackpad with ChromeOS and/or
the cmt driver:

1. the pointer is very "fidgety".  Relatively small movements move the
   pointer around quite a bit.  If I adjust the pointer speed to the minimum
   (using "Mouse & Touchpad" gui) these small controlled movements seem
   much more accurate.  But, then it takes several "swipes" to move the
   pointer to the other side of the screen.

2. at first it seemed that no matter what "pointer speed" setting I
   tried, finger distance always covered the same amount of screen
   distance, no matter the finger velocity.  ie: no acceleration
   handling.  I came across [1] and realized that wasn't the case.
   After additional tinkering, I was able to affect screen distance
   with finger speed, but it seemed very difficult to get into that
   state/window.

In short, the lowest pointer speed feels natural in localized
scenarios requiring high precision (ie: clicking on tiny stuff).  But,
when swiping faster to travel to the other side of the screen, a 40%
setting seems to "feel" about right.  It's interesting that ChromeOS
gets away with not even having a pointer speed adjustment.

3. the pointer moves around when doing "hard clicks".  Both on the way
   down and the way up.  It seems like ChromeOS "locks" the pointer in
   place during this case.  Without this, my 5 year old son is unable
   to hard click a button, whereas he's able to on ChromeOS.  Also
   interesting, is that in ChromeOS I can roll my fingertip in circles
   and the pointer barely, if at all, moves.  So, I guess this is an
   issue whether I'm clicking or not.

4. I get spurious pointer movement and clicks from my right palm while my
   hands are in typing position.  The feature of disabling the mouse
   while typing partially helps. Also, the trackpad isn't centered
   between my hands on the c720, possibly making it only happen with my
   right hand.  On ChromeOS, I can tap my palm all over the pad and
   will get an occasional click but no pointer movement.

As an aside, it sounds like the mouse team at google pressure
calibrates [2] their hardware.  Is libinput normalizing pressure in
addition to dpi?  If so, does the hardware database also include
information for device specific pressure calibration?

I realize this is all highly subjective to muscle memory and personal
preference, but I think it can be useful to compare to the excellent
experience that the ChromeOS driver offers.

So, where do I go from here?  Are my observations specific to the
c720?  Is there something I can try out or tweak?  If it were easy to
use the xf86-cmt driver on fedora [3] I probably would, but given
wayland will be using libinput it would be nice to get libinput
working nicely on this trackpad.

Wade

1. http://who-t.blogspot.com/2014/07/pointer-acceleration-in-libinput.html
2. https://plus.google.com/+HughGreenberg/posts/RfWqFAh7YHq - Andrew
   de los Reyes Jul 15, 2014
3. https://bugzilla.redhat.com/show_bug.cgi?id=1100947
-------------- next part --------------
# EVEMU 1.2
# Input device name: "Cypress APA Trackpad (cyapa)"
# Input device ID: bus 0x18 vendor 0000 product 0000 version 0x01
# Supported events:
#   Event type 0 (EV_SYN)
#     Event code 0 (SYN_REPORT)
#     Event code 1 (SYN_CONFIG)
#     Event code 2 (SYN_MT_REPORT)
#     Event code 3 (SYN_DROPPED)
#     Event code 4 ((null))
#     Event code 5 ((null))
#     Event code 6 ((null))
#     Event code 7 ((null))
#     Event code 8 ((null))
#     Event code 9 ((null))
#     Event code 10 ((null))
#     Event code 11 ((null))
#     Event code 12 ((null))
#     Event code 13 ((null))
#     Event code 14 ((null))
#   Event type 1 (EV_KEY)
#     Event code 272 (BTN_LEFT)
#     Event code 325 (BTN_TOOL_FINGER)
#     Event code 328 (BTN_TOOL_QUINTTAP)
#     Event code 330 (BTN_TOUCH)
#     Event code 333 (BTN_TOOL_DOUBLETAP)
#     Event code 334 (BTN_TOOL_TRIPLETAP)
#     Event code 335 (BTN_TOOL_QUADTAP)
#   Event type 3 (EV_ABS)
#     Event code 0 (ABS_X)
#       Value    867
#       Min        0
#       Max      870
#       Fuzz       0
#       Flat       0
#       Resolution 10
#     Event code 1 (ABS_Y)
#       Value    274
#       Min        0
#       Max      470
#       Fuzz       0
#       Flat       0
#       Resolution 10
#     Event code 24 (ABS_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 47 (ABS_MT_SLOT)
#       Value      0
#       Min        0
#       Max       14
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 53 (ABS_MT_POSITION_X)
#       Value      0
#       Min        0
#       Max      870
#       Fuzz       0
#       Flat       0
#       Resolution 10
#     Event code 54 (ABS_MT_POSITION_Y)
#       Value      0
#       Min        0
#       Max      470
#       Fuzz       0
#       Flat       0
#       Resolution 10
#     Event code 57 (ABS_MT_TRACKING_ID)
#       Value      0
#       Min        0
#       Max    65535
#       Fuzz       0
#       Flat       0
#       Resolution 0
#     Event code 58 (ABS_MT_PRESSURE)
#       Value      0
#       Min        0
#       Max      255
#       Fuzz       0
#       Flat       0
#       Resolution 0
# Properties:
#   Property  type 0 (INPUT_PROP_POINTER)
#   Property  type 2 (INPUT_PROP_BUTTONPAD)
N: Cypress APA Trackpad (cyapa)
I: 0018 0000 0000 0001
P: 05 00 00 00 00 00 00 00
B: 00 0b 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 01 00 00 00 00 00
B: 01 20 e5 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 01 00 00 00 00 00 00 00 00
B: 02 00 00 00 00 00 00 00 00
B: 03 03 00 00 01 00 80 60 06
B: 04 00 00 00 00 00 00 00 00
B: 05 00 00 00 00 00 00 00 00
B: 11 00 00 00 00 00 00 00 00
B: 12 00 00 00 00 00 00 00 00
B: 14 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
B: 15 00 00 00 00 00 00 00 00
A: 00 0 870 0 0 10
A: 01 0 470 0 0 10
A: 18 0 255 0 0 0
A: 2f 0 14 0 0 0
A: 35 0 870 0 0 10
A: 36 0 470 0 0 10
A: 39 0 65535 0 0 0
A: 3a 0 255 0 0 0


More information about the wayland-devel mailing list