[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