Bug 100021 - Set "Tapping Enabled" by default for "Logitech Rechargeable Touchpad T650"
Summary: Set "Tapping Enabled" by default for "Logitech Rechargeable Touchpad T650"
Status: RESOLVED WONTFIX
Alias: None
Product: Wayland
Classification: Unclassified
Component: libinput (show other bugs)
Version: unspecified
Hardware: All All
: medium normal
Assignee: Wayland bug list
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-01 12:40 UTC by Peter Wu
Modified: 2017-03-02 01:24 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Peter Wu 2017-03-01 12:40:35 UTC
According to [1], tapping is disabled by default because of buggy devices. The Logitech T650 however is an external touchpad for which tapping is an essential feature that should be enabled by default (there are physical buttons hidden under the device, but this requires more pressure to trigger).

Note that with older kernel versions (or with newer kernels having hid_logitech_hidpp.disable_raw_mode=1), tapping is enabled by default because the device itself emulates mouse clicks.

Function tp_tap_default in src/evdev-mt-touchpad-tap.c needs to be changed to implement the saner default, but perhaps there are more input devices that would benefit from the better default?

[1]: https://wayland.freedesktop.org/libinput/doc/latest/tapping.html ->
https://cgit.freedesktop.org/wayland/libinput/commit/?id=2219c12c3aa45b80f235e761e87c17fb9ec70eae

libinput-list-devices output for the device:
Device:           Logitech Rechargeable Touchpad T650
Kernel:           /dev/input/event16
Group:            9
Seat:             seat0, default
Size:             123.13x102.78mm
Capabilities:     pointer 
Tap-to-click:     disabled
Tap-and-drag:     enabled
Tap drag lock:    disabled
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   *two-finger edge 
Click methods:    *button-areas clickfinger 
Disable-w-typing: enabled
Accel profiles:   none
Rotation:         n/a
Comment 1 Peter Wu 2017-03-01 12:44:47 UTC
By the way, a user can now enable tapping in Xorg with:

    xinput set-prop "Logitech Rechargeable Touchpad T650" \
        "libinput Tapping Enabled" 1

or by making the device responsible for emulating mouse behavior (this was the default before Linux 3.19 IIRC). Create /etc/modprobe.d/logitech.conf with:

    options hid-logitech-hidpp disable_raw_mode=1

(this will also bring back Back/Forward buttons via three-finger left/right swiping)
Comment 2 Peter Hutterer 2017-03-01 22:42:32 UTC
(In reply to Peter Wu from comment #0)
> According to [1], tapping is disabled by default because of buggy devices.

That's not true, please read the description again.

> The Logitech T650 however is an external touchpad for which tapping is an
> essential feature that should be enabled by default (there are physical
> buttons hidden under the device, but this requires more pressure to trigger).

fwiw, that's true for any clickpad. The touchpad has physical buttons, so we will leave tapping disabled. Note that the default libinput picks is mostly irrelevant, this is a config option and any process that uses libinput can change the setting when it gets the device added notification. That's what GNOME already does when the tapping is enabled in gsettings, other desktop environments (can) do the same.

Sorry, closing this as wontfix, changing the default of a low-level library doesn't make sense here.
Comment 3 Peter Wu 2017-03-01 23:12:21 UTC
(In reply to Peter Hutterer from comment #2)
> (In reply to Peter Wu from comment #0)
> > According to [1], tapping is disabled by default because of buggy devices.
> 
> That's not true, please read the description again.

Maybe I should have phrased it as "because users may experience it as buggy" because that is what I infer from the first point.

> > The Logitech T650 however is an external touchpad for which tapping is an
> > essential feature that should be enabled by default (there are physical
> > buttons hidden under the device, but this requires more pressure to trigger).
> 
> fwiw, that's true for any clickpad. The touchpad has physical buttons, so we
> will leave tapping disabled.

The T650 is not like a laptop clickpad, the buttons are not visible. See
http://support.logitech.com/en_us/product/touchpad-t650
https://ic.tweakimg.net/ext/i/1349867977.jpeg
(it looks more like the Apple Trackpad which also has no buttons)

> Note that the default libinput picks is mostly
> irrelevant, this is a config option and any process that uses libinput can
> change the setting when it gets the device added notification. That's what
> GNOME already does when the tapping is enabled in gsettings, other desktop
> environments (can) do the same.
> 
> Sorry, closing this as wontfix, changing the default of a low-level library
> doesn't make sense here.

Please reconsider, this is not just a preference, it is essential that this feature is enabled by default. Older firmware versions relied on the (Windows/macOS) driver to do this but since Linux did not have a proper driver, Logitech released firmware that provided this tap-to-click functionality. But with the raw mode in kernel 3.19, this was broken again (but users can workaround with disable_raw_mode=1).

There is no situation where someone with this device does not want the tap-to-click functionality. While higher layers can try to fix the bad decision made by the lower library, I believe it is the low-level library task to provide a sane default while higher-level users must only have to change this in exceptional cases.
Comment 4 Peter Hutterer 2017-03-01 23:23:14 UTC
(In reply to Peter Wu from comment #3)
> The T650 is not like a laptop clickpad, the buttons are not visible. See
> http://support.logitech.com/en_us/product/touchpad-t650
> https://ic.tweakimg.net/ext/i/1349867977.jpeg
> (it looks more like the Apple Trackpad which also has no buttons)

yep, I know, I have one in front of me and did some of the hid++ development on it.

> Please reconsider, this is not just a preference, it is essential that this
> feature is enabled by default. 

No, it's not essential because you can use the buttons which are initialized correctly unless there's a real bug. Tapping is an optional feature on this touchpad and not required. Unlike on e.g. wacom tablets where we do enable it by default because there are no physical buttons.

> There is no situation where someone with this device does not want the
> tap-to-click functionality. 

You've asked every user of the T650 out there? Please don't make generic statements unless you have data to back it up. Your use-case does not necessarily match the use-case of everyone else.

> While higher layers can try to fix the bad
> decision made by the lower library, I believe it is the low-level library
> task to provide a sane default while higher-level users must only have to
> change this in exceptional cases.

look, we made the decision to disable tapping unless it's required. Implying that this is insane doesn't get you brownie points with the developers who are working on this. This is a low-level library that is never exposed to the user directly, there is always at least one layer in between that can change any defaults at will. I believe KDE does so already for tapping, but I might be wrong on that.
Comment 5 Peter Wu 2017-03-02 00:31:15 UTC
(In reply to Peter Hutterer from comment #4)
> (In reply to Peter Wu from comment #3)
> > The T650 is not like a laptop clickpad, the buttons are not visible. See
> > http://support.logitech.com/en_us/product/touchpad-t650
> > https://ic.tweakimg.net/ext/i/1349867977.jpeg
> > (it looks more like the Apple Trackpad which also has no buttons)
> 
> yep, I know, I have one in front of me and did some of the hid++ development
> on it.

So did I (have the device and done HID++) and am reporting this bug on behalf of a user who was asking me why it did not work after a kernel update.

> > There is no situation where someone with this device does not want the
> > tap-to-click functionality. 
> 
> You've asked every user of the T650 out there? Please don't make generic
> statements unless you have data to back it up. Your use-case does not
> necessarily match the use-case of everyone else.

I have not performed a full survey but can give you links to various complaints on distro forums, a large thread on the Logitech support forums and more. (Search for "Logitech 3.19 T650" or "Linux T650 tapping")

https://www.reddit.com/r/Ubuntu/comments/1ys970/logitech_t650
https://bbs.archlinux.org/viewtopic.php?id=200223
https://askubuntu.com/questions/270325/logitech-touchpad-t650-does-not-click
https://bugzilla.redhat.com/show_bug.cgi?id=1208170
https://community.logitech.com/s/question/0D531000050zSXLCA2/

If Google is a guide, the top suggestions after "Logitech T650 tap" is "to click", "not working", "and drag".

> > While higher layers can try to fix the bad
> > decision made by the lower library, I believe it is the low-level library
> > task to provide a sane default while higher-level users must only have to
> > change this in exceptional cases.
> 
> look, we made the decision to disable tapping unless it's required. Implying
> that this is insane doesn't get you brownie points with the developers who
> are working on this. This is a low-level library that is never exposed to
> the user directly, there is always at least one layer in between that can
> change any defaults at will. I believe KDE does so already for tapping, but
> I might be wrong on that.

Well, I appreciate the efforts that you put in it, but based on received reports, I think that enabling tap by default is something that better serves users. (Personally I only connected the T650 today to test the issue reported by a user.)

AFAIK KDE only has a "Mouse Click Emulation" option which, when enabled, would change the laptop touchpad behavior (it did not change the T650 setting when plugged in). If libinput already has a hwdb where the default can be set, why should every application duplicate the detection of this device?

What are the drawbacks of doing this in libinput? While searching I found only one report that is not strictly related to disabling tapping, but a bad pressure threshold:
https://askubuntu.com/questions/796546/logitech-touchpad-t650-problem-working-fine-on-ubuntu-14-10-but-not-on-any-oth
Comment 6 Peter Hutterer 2017-03-02 01:24:52 UTC
these links are all from 2015 or earlier... 3.19 was released 2 years ago. given the timeframe, most of these wouldn't even use libinput and the synaptics driver had tapping disabled as default for years.

aiui, the touchpad wasn't supported and was using firmware mouse emulation before (which exposes no configurable settings). Then support was added but apparently initially broken or partially broken. Part of that support changed the defaults because now the software is in charge of tapping - to which the answer is "just enable it in the control center".

(In reply to Peter Wu from comment #5)
> Well, I appreciate the efforts that you put in it, but based on received
> reports, I think that enabling tap by default is something that better
> serves users. (Personally I only connected the T650 today to test the issue
> reported by a user.)

then talk to the desktop environments that use it and see if they agree. libinput won't change this.

> AFAIK KDE only has a "Mouse Click Emulation" option which, when enabled,
> would change the laptop touchpad behavior (it did not change the T650
> setting when plugged in). 

then there seems to be a bug in kde, it certainly works in gnome, I just tried it.

> If libinput already has a hwdb where the default
> can be set, why should every application duplicate the detection of this
> device?

we're not talking about applications here, we're talking about desktop environments. there's only a handful out there and they get to decide much of the look and feel, default setting for tapping included. there is no hwdb entry to enable tapping, libinput has a default *behaviour* that enables tapping where it is required.

> What are the drawbacks of doing this in libinput? While searching I found
> only one report that is not strictly related to disabling tapping, but a bad
> pressure threshold:
> https://askubuntu.com/questions/796546/logitech-touchpad-t650-problem-
> working-fine-on-ubuntu-14-10-but-not-on-any-oth

the reasons are listed in https://wayland.freedesktop.org/libinput/doc/latest/tapping.html#tapping_default

and here's some data: I ran a tapping userstudy in the local Red Hat office, see the writeup  from https://who-t.blogspot.com.au/2016/12/libinput-touchpad-tap-analysis.html

    Do you know what tapping is? 33 yes, 12 no
    Do you have tapping enabled? 19 yes, 26 no
    Do you use tapping? 10 yes, 35 no

These are all people who use a Linux desktop all day every day, but not necessarily engineers.

So yes, changing this default may make it more convenient for you or some users but it also makes it more confusing to other users. There is no correct default because either choice has drawbacks, but we picked one and we're sticking with it. It's a default and can be changed where necessary, and just because it's convenient to change it in libinput doesn't mean that's the place to do it.

fwiw, this is the end of the discussion from my side.


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.