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

Peter Hutterer peter.hutterer at who-t.net
Mon May 4 02:36:48 PDT 2015


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>
---
 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
-- 
2.3.5



More information about the wayland-devel mailing list