diff --git a/src/evdev-mt-touchpad-buttons.c b/src/evdev-mt-touchpad-buttons.c index 608befea..d6acbf0a 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 ee8dfe6e..4ce92501 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 2529c198..20c0b556 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 d6a7c91f..0cdf2b2b 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