touchpad: enable clickfinger by default on some System76 laptops
authorPeter Hutterer <peter.hutterer@who-t.net>
Wed, 29 Apr 2015 01:03:08 +0000 (11:03 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Mon, 4 May 2015 21:36:14 +0000 (07:36 +1000)
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@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
src/evdev-mt-touchpad-buttons.c
src/evdev.c
src/evdev.h
udev/90-libinput-model-quirks.hwdb

index 608befea3f714b54ab738fab7f58b7f68b51f58a..d6acbf0a2187bfd8e9e65db604dae2869e035e2f 100644 (file)
@@ -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
index ee8dfe6ec2c875a9742f39c8337c981a551f72d7..4ce92501c821352abe8862e8b8719ab001b228af 100644 (file)
@@ -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;
index 2529c198bcf0daae0bcf62196795fec750f16ca3..20c0b556b148e18037b56f816f578f1fdcf81767 100644 (file)
@@ -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 {
index d6a7c91f04ba3114260cc6bbb6ae9f7a47a937a4..0cdf2b2bf44fec29406401be72d8b6de274cbe61 100644 (file)
@@ -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