[PATCH libinput] touchpad: enable clickfinger by default on some System76 laptops

Peter Hutterer peter.hutterer at who-t.net
Mon May 4 14:35:55 PDT 2015


On Mon, May 04, 2015 at 03:57:56PM +0200, Hans de Goede wrote:
> Hi,
> 
> On 05/04/2015 11:36 AM, Peter Hutterer wrote:
> >Bonobo, Clevo, Galago and Kudu have clickpads and no markings ->
> >enable clickfinger by default.
> >
> >Lemur and Gazelle have physical buttons, no need for extra configuration.
> >
> >https://bugs.freedesktop.org/show_bug.cgi?id=90170
> >
> >Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> 
> Hmm, do these come configured like this by system76 ootb ? I'm not
> sure if we should start doing per model rather then per vendor defaults
> TBH.
> 
> If you really think this is a good idea then this is:
> 
> Reviewed-by: Hans de Goede <hdegoede at redhat.com>

yeah, apparently. from the bug:
"In my particular case (a system76 galago ultra pro) the default behaviour
of the clickpad uses two finger right clicks."

I'm a bit in two minds about it as well but let's see how we go with this
long term. Thanks for the review.

Cheers,
   Peter

> 
> >---
> >  src/evdev-mt-touchpad-buttons.c    | 18 ++++++++++++++----
> >  src/evdev.c                        |  4 ++++
> >  src/evdev.h                        |  4 ++++
> >  udev/90-libinput-model-quirks.hwdb | 20 ++++++++++++++++++++
> >  4 files changed, 42 insertions(+), 4 deletions(-)
> >
> >diff --git a/src/evdev-mt-touchpad-buttons.c b/src/evdev-mt-touchpad-buttons.c
> >index 608befe..d6acbf0 100644
> >--- a/src/evdev-mt-touchpad-buttons.c
> >+++ b/src/evdev-mt-touchpad-buttons.c
> >@@ -650,11 +650,21 @@ tp_click_get_default_method(struct tp_dispatch *tp)
> >
> >  	if (!tp->buttons.is_clickpad)
> >  		return LIBINPUT_CONFIG_CLICK_METHOD_NONE;
> >-	else if (libevdev_get_id_vendor(tp->device->evdev) == VENDOR_ID_APPLE ||
> >-		device->model == EVDEV_MODEL_CHROMEBOOK)
> >+	else if (libevdev_get_id_vendor(tp->device->evdev) == VENDOR_ID_APPLE)
> >  		return LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER;
> >-	else
> >-		return LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS;
> >+
> >+	switch (device->model) {
> >+	case EVDEV_MODEL_CHROMEBOOK:
> >+	case EVDEV_MODEL_SYSTEM76_BONOBO:
> >+	case EVDEV_MODEL_SYSTEM76_CLEVO:
> >+	case EVDEV_MODEL_SYSTEM76_GALAGO:
> >+	case EVDEV_MODEL_SYSTEM76_KUDU:
> >+		return LIBINPUT_CONFIG_CLICK_METHOD_CLICKFINGER;
> >+	default:
> >+		break;
> >+	}
> >+
> >+	return LIBINPUT_CONFIG_CLICK_METHOD_BUTTON_AREAS;
> >  }
> >
> >  static enum libinput_config_click_method
> >diff --git a/src/evdev.c b/src/evdev.c
> >index 89469a5..054360d 100644
> >--- a/src/evdev.c
> >+++ b/src/evdev.c
> >@@ -1448,6 +1448,10 @@ evdev_read_model(struct evdev_device *device)
> >  	} model_map[] = {
> >  		{ "LIBINPUT_MODEL_LENOVO_X230", EVDEV_MODEL_LENOVO_X230 },
> >  		{ "LIBINPUT_MODEL_CHROMEBOOK", EVDEV_MODEL_CHROMEBOOK },
> >+		{ "LIBINPUT_MODEL_SYSTEM76_BONOBO", EVDEV_MODEL_SYSTEM76_BONOBO },
> >+		{ "LIBINPUT_MODEL_SYSTEM76_CLEVO", EVDEV_MODEL_SYSTEM76_CLEVO },
> >+		{ "LIBINPUT_MODEL_SYSTEM76_GALAGO", EVDEV_MODEL_SYSTEM76_GALAGO },
> >+		{ "LIBINPUT_MODEL_SYSTEM76_KUDU", EVDEV_MODEL_SYSTEM76_KUDU },
> >  		{ NULL, EVDEV_MODEL_DEFAULT },
> >  	};
> >  	const struct model_map *m = model_map;
> >diff --git a/src/evdev.h b/src/evdev.h
> >index 2529c19..20c0b55 100644
> >--- a/src/evdev.h
> >+++ b/src/evdev.h
> >@@ -97,6 +97,10 @@ enum evdev_device_model {
> >  	EVDEV_MODEL_DEFAULT,
> >  	EVDEV_MODEL_LENOVO_X230,
> >  	EVDEV_MODEL_CHROMEBOOK,
> >+	EVDEV_MODEL_SYSTEM76_BONOBO,
> >+	EVDEV_MODEL_SYSTEM76_CLEVO,
> >+	EVDEV_MODEL_SYSTEM76_GALAGO,
> >+	EVDEV_MODEL_SYSTEM76_KUDU,
> >  };
> >
> >  struct mt_slot {
> >diff --git a/udev/90-libinput-model-quirks.hwdb b/udev/90-libinput-model-quirks.hwdb
> >index d6a7c91..0cdf2b2 100644
> >--- a/udev/90-libinput-model-quirks.hwdb
> >+++ b/udev/90-libinput-model-quirks.hwdb
> >@@ -44,3 +44,23 @@ libinput:name:Atmel maXTouch Touchpad:dmi:*svn*GOOGLE*:pn*Samus*:
> >  # X230 (Tablet)
> >  libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO:*:pvrThinkPadX230*
> >   LIBINPUT_MODEL_LENOVO_X230=1
> >+
> >+##########################################
> >+# System76
> >+##########################################
> >+
> >+# Bonobo Professional
> >+libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnSystem76*pvrbonp5*
> >+ LIBINPUT_MODEL_SYSTEM76_BONOBO=1
> >+
> >+# Clevo
> >+libinput:name:SynPS/2 Synaptics TouchPad:dmi:*pnW740SU*rnW740SU*
> >+ LIBINPUT_MODEL_SYSTEM76_CLEVO=1
> >+
> >+# Galago Ultra Pro
> >+libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnSystem76*pvrgalu1*
> >+ LIBINPUT_MODEL_SYSTEM76_GALAGO=1
> >+
> >+# Kudu Professional
> >+libinput:name:SynPS/2 Synaptics TouchPad:dmi:*svnSystem76*pvrkudp1*
> >+ LIBINPUT_MODEL_SYSTEM76_KUDU=1
> >


More information about the wayland-devel mailing list