Bug 99283 - No click methods on MacBookPro3,1
Summary: No click methods on MacBookPro3,1
Status: RESOLVED FIXED
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: All Linux (All)
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-01-05 15:13 UTC by Matt Oliveri
Modified: 2017-02-09 01:16 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments
Excerpted output of libinput-list-devices (487 bytes, text/plain)
2017-01-05 15:13 UTC, Matt Oliveri
Details
Output of xinput list-props (1.36 KB, text/plain)
2017-01-05 15:16 UTC, Matt Oliveri
Details
evemu recording of an attempted two-finger click (37.11 KB, text/plain)
2017-01-05 15:18 UTC, Matt Oliveri
Details
Output of udevadm info (1.27 KB, text/plain)
2017-01-05 15:20 UTC, Matt Oliveri
Details

Description Matt Oliveri 2017-01-05 15:13:43 UTC
Created attachment 128771 [details]
Excerpted output of libinput-list-devices

Using Fedora 25, with libinput handling the "appletouch" trackpad of my MacBookPro3,1. The trackpad is 100x48mm. It has a single physical button separate from the sensitive surface.

I would like to press the button with two fingers on the pad to get a right click. As far as I understand, this should be enabled by setting the "clickfinger" click method. However, libinput seems to believe my appletouch does not support any click methods. (See the attached output of libinput-list-devices or xinput list-props.)

I'm positive the hardware supports this. It works in Mac OS X, and on Ubuntu Xenial with synaptics.

Notes:
1) This touchpad needs the same EVDEV_ABS overrides as some other old appletouches, but isn't currently in the hwdb:
# MacBookPro3,1 (Mid/Late 2007)
evdev:input:b0003v05ACp021A*
 EVDEV_ABS_00=256:1471:12
 EVDEV_ABS_01=256:831:12

2) The LIBINPUT_ATTR_SIZE_HINT is wrong for this touchpad. Probably isn't a serious problem.

While I'm here, will there be a threshold before two-finger scrolling kicks in, once clickfinger is enabled? I found that my unsuccesful right clicks scrolled surprisingly far.

More attachments coming right up...
Comment 1 Matt Oliveri 2017-01-05 15:16:42 UTC
Created attachment 128772 [details]
Output of xinput list-props

Nothing about click methods shows up in xinput list-props.
Comment 2 Matt Oliveri 2017-01-05 15:18:31 UTC
Created attachment 128773 [details]
evemu recording of an attempted two-finger click
Comment 3 Matt Oliveri 2017-01-05 15:20:03 UTC
Created attachment 128774 [details]
Output of udevadm info
Comment 4 Matt Oliveri 2017-01-05 15:54:54 UTC
libinput version: 1.5.3-1.fc25  x86_64

/sys/class/dmi/id/modalias:
dmi:bvnAppleInc.:bvrMBP31.88Z.0070.B07.0803051658:bd03/05/08:svnAppleInc.:pnMacBookPro3,1:pvr1.0:rvnAppleInc.:rnMac-F42388C8:rvrPVT:cvnAppleInc.:ct2:cvrMac-F42388C8:
Comment 5 Peter Hutterer 2017-01-06 05:29:52 UTC
whoah. that thing is still alive? impressive :)

Yeah, agree, this needs handling but should be fairly trivial, you can tag the device with the hwdb as special LIBINPUT_MODEL_APPLE_TOUCHPAD_ONEBUTTON or so, then put the matching exceptions into evdev-mt-touchpad-buttons.c so that on this device clickfinger is always enabled by default.

Please have a go at it, I'm seriously bottlenecking.
Comment 6 Peter Hutterer 2017-01-10 05:20:09 UTC
found some spare cycles
https://lists.freedesktop.org/archives/wayland-devel/2017-January/032581.html
Comment 7 Matt Oliveri 2017-01-14 08:57:27 UTC
How do you recommend I try this?
Comment 8 Matt Oliveri 2017-01-14 09:48:33 UTC
The instructions here:
https://wayland.freedesktop.org/libinput/doc/latest/building_libinput.html

look like they could clobber system files. I suppose the idea is to clobber just libinput... Is it safe to be using a different version than the package manager thinks? How would I revert to the actual packaged version?

Is there some gotcha with installing to /usr/local? Oh hmm, maybe the X module won't use it from there... How nasty would it be to make it work from there?

Sorry for being paranoid.
Comment 9 Matt Oliveri 2017-01-14 09:51:08 UTC
Is clobbering system files the usual way for testing modifications to the system? I guess I had never thought about it.
Comment 10 Peter Hutterer 2017-01-16 00:33:30 UTC
easiest way would be to install the hwdb files (they can't wreck anything at runtime) and run the udevadm commands as in the FAQ.

https://wayland.freedesktop.org/libinput/doc/latest/faq.html

once the new model tag shows up, run sudo ./tools/libinput-debug-events in the git tree and test. If the events are correct, then it works. Likewise, libinput-list-devices should show the click method enabled by default.

To undo, simply remove the hwdb file and re-run the udev commands.
Comment 11 Peter Hutterer 2017-01-30 10:24:46 UTC
ping?
Comment 12 Matt Oliveri 2017-02-02 03:50:39 UTC
Hello. I haven't forgotten, but it's not high priority for me to test it. Not sure when I'll get to it.
Comment 13 Peter Hutterer 2017-02-09 01:16:15 UTC
commit f2f616a1fc0a52712f595f01d9dfd429b6915723
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jan 10 09:22:16 2017 +1000

    touchpad: mark the Apple onebutton touchpad as clickfinger-default


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.