2018-06-14 11:54:52 +10:00
|
|
|
# Do not edit this file, it will be overwritten on update
|
|
|
|
|
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
[Dell Touchpads]
|
|
|
|
|
MatchName=* Touchpad
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:*
|
|
|
|
|
ModelTouchpadVisibleMarker=1
|
|
|
|
|
|
2018-08-22 14:13:33 +10:00
|
|
|
[Dell i2c Touchpads]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:*
|
|
|
|
|
AttrMscTimestamp=watch
|
|
|
|
|
|
2021-01-25 08:25:13 -05:00
|
|
|
[Dell Inspiron 15R N5110 Touchpad]
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
MatchName=*AlpsPS/2 ALPS GlidePoint
|
2021-01-22 17:10:01 -05:00
|
|
|
MatchVersion=0x0300
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:*pnInspironN5110*
|
2021-01-25 08:25:13 -05:00
|
|
|
AttrPressureRange=100:95
|
|
|
|
|
|
2021-02-08 22:11:06 +00:00
|
|
|
[Dell Latitude E5510 Touchpad]
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
MatchName=*AlpsPS/2 ALPS GlidePoint
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE5510:*
|
|
|
|
|
AttrPressureRange=100:90
|
|
|
|
|
|
2020-08-27 19:52:34 +02:00
|
|
|
[Dell Latitude E6220 Touchpad]
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
MatchName=*AlpsPS/2 ALPS GlidePoint
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE6220:*
|
|
|
|
|
AttrPressureRange=100:90
|
|
|
|
|
|
2018-07-11 16:34:22 +10:00
|
|
|
[Dell XPS L322X Touchpad]
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
MatchName=*CyPS/2 Cypress Trackpad
|
2018-09-17 21:04:52 +10:00
|
|
|
MatchDMIModalias=dmi:*svnDell*:*XPSL322X*
|
|
|
|
|
AttrPressureRange=30:20
|
Implement a quirks system to replace the udev property parsing
Previously, we had all extra device information ("This is an Apple Touchpad",
"This touchpad causes pointer jumps", etc.) in the udev hwdb. The problem with
the hwdb is that updating it is nontrivial for the average user and debugging
when things go wrong is even harder. Plus, the hwdb has a matching scheme that
is unpredictable unless one is familiar with the implementation.
This patch set moves the hwdb entries into .ini style text files, with a
simple line-based parser. A new libinput list-quirks tool can list the quirks
applied to any given device, in --verbose mode it prints all matches as they
apply or not apply.
The data files are currently unused by libinput, that comes in a later patch.
They're installed though, the defaults point to the /usr/share/libinput
directory and for *temporary* local overrides the single file
/etc/libinput/local-overrides.quirks.
Failure to parse any file is a hard failure for the quirks system, but if the
local override file doesn't exist that's fine.
THIS IS NOT A CONFIGURATION INTERFACE! None of these settings are exposed via
the libinput_device_config_* calls. There is no API guarantee for these files,
think of them as source code.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2018-05-21 14:28:53 +10:00
|
|
|
AttrPalmPressureThreshold=254
|
2018-06-14 10:04:35 +10:00
|
|
|
|
2018-07-11 16:34:22 +10:00
|
|
|
[Dell XPS13 9333 Touchpad]
|
2018-06-14 10:04:35 +10:00
|
|
|
MatchName=*Synaptics s3203
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:*pnXPS139333*
|
|
|
|
|
AttrPressureRange=15:10
|
|
|
|
|
AttrPalmPressureThreshold=150
|
2018-07-11 16:34:57 +10:00
|
|
|
|
2020-12-07 20:28:45 +01:00
|
|
|
[Dell XPS 15 9500 Touchpad]
|
|
|
|
|
MatchName=* Touchpad
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnXPS159500:*
|
|
|
|
|
ModelTouchpadVisibleMarker=0
|
2023-04-11 02:00:52 +00:00
|
|
|
ModelTouchpadPhantomClicks=1
|
2020-12-07 20:28:45 +01:00
|
|
|
|
2018-07-11 16:34:57 +10:00
|
|
|
[Dell Latitude D620 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeD620*
|
|
|
|
|
AttrTrackpointMultiplier=0.5
|
|
|
|
|
|
2019-07-11 11:20:32 +02:00
|
|
|
[Latitude E5480 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchUdevType=pointingstick
|
|
|
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude5480*
|
|
|
|
|
AttrTrackpointMultiplier=0.5
|
|
|
|
|
|
2019-07-27 20:26:16 -04:00
|
|
|
[Latitude 5580 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchUdevType=pointingstick
|
|
|
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude5580*
|
|
|
|
|
AttrTrackpointMultiplier=0.5
|
|
|
|
|
|
2018-07-11 16:34:57 +10:00
|
|
|
[Latitude E5570 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE5570*
|
|
|
|
|
AttrTrackpointMultiplier=0.1
|
|
|
|
|
|
|
|
|
|
[Latitude E6320 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE6320*
|
|
|
|
|
AttrTrackpointMultiplier=2.0
|
|
|
|
|
|
|
|
|
|
[Latitude E6400 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE6400*
|
|
|
|
|
AttrTrackpointMultiplier=1.5
|
|
|
|
|
|
|
|
|
|
[Latitude E7470 Trackpoint]
|
|
|
|
|
MatchName=*DualPoint Stick
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE7470*
|
2018-09-27 15:47:23 +10:00
|
|
|
AttrTrackpointMultiplier=0.125
|
2018-09-14 14:03:09 +10:00
|
|
|
|
2023-11-16 09:45:46 +10:00
|
|
|
[Latitude 7275]
|
|
|
|
|
MatchName=*AT Translated Set 2 keyboard*
|
|
|
|
|
MatchDMIModalias=dmi:*:svnDellInc.:pnLatitude7275:*
|
|
|
|
|
ModelTabletModeNoSuspend=1
|
|
|
|
|
|
2025-09-02 09:05:30 +02:00
|
|
|
[Latitude 7285]
|
|
|
|
|
MatchName=*AT Translated Set 2 keyboard*
|
|
|
|
|
MatchDMIModalias=dmi:*:svnDellInc.:pnLatitude7285:*
|
|
|
|
|
ModelTabletModeNoSuspend=1
|
|
|
|
|
|
2025-10-16 13:42:37 +08:00
|
|
|
[Dell Pro Rugged Tablet]
|
|
|
|
|
MatchName=*AT Translated Set 2 keyboard*
|
|
|
|
|
MatchDMIModalias=dmi:*:svnDellInc.:pnDellProRugged*TabletRA*:*
|
|
|
|
|
ModelTabletModeNoSuspend=1
|
|
|
|
|
|
2021-07-11 22:41:07 +00:00
|
|
|
[Latitude 7480 Touchpad]
|
|
|
|
|
MatchName=DLL07A0*
|
|
|
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude7480*
|
|
|
|
|
AttrPressureRange=35:34
|
|
|
|
|
|
2021-04-03 23:01:07 +01:00
|
|
|
[Latitude 7490 Trackpoint]
|
|
|
|
|
MatchName=*Mouse
|
|
|
|
|
MatchUdevType=pointingstick
|
|
|
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude7490*
|
|
|
|
|
AttrTrackpointMultiplier=0.3
|
|
|
|
|
|
2020-08-03 00:03:59 -05:00
|
|
|
[Precision 7x50 Touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision7?50*
|
quirks: allow overriding of AttrEventCode and AttrInputProp
This switches the quirk from AttrEventCodeEnable/Disable to just
AttrEventCode with a +/- prefix for each entry.
This switches the quirk from AttrInputPropEnable/Disable to just
AttrInputProp with a +/- prefix for each entry.
Previously, both event codes and input props would only apply the
last-matching section entry for a device. Furthermore, an earlier Disable entry
would take precedence over a later Enable entry. For example, a set of
sections with these lines *should* enable left, right and middle:
[first]
AttrEventCodeEnable=BTN_LEFT;BTN_RIGHT;BTN_MIDDLE
[second]
AttrEventCodeDisable=BTN_RIGHT
[third]
AttrEventCodeEnable=BTN_LEFT;BTN_RIGHT;
Alas: the first line was effectively ignored (quirks only returned the
last-matching one, i.e. the one from "third"). And due to implementation
details in evdev.c, the Disable attribute was processed after Enable,
i.e. the device was enabled for left + right and then disabled for
right. As a result, the device only had BTN_LEFT enabled.
Fix this by changing the attribute to carry both enable/disable
information and merging the commands together.
Internally, all quirks matching a device are simply ref'd into an array
in the struct quirks. The applied value is simply the last entry in the
array corresponding to our quirk.
For AttrEventCode and AttrInputProp instead do this:
- switch them to a tuple with the code as first entry and a boolean
enable/disable as second entry
- if the struct quirk already has an entry for either, append the more
recent one to the existing entry (instead of creating a new entry in
the array). This way we have all entries that match and in-order of
precedence - i.e. we can process them left-to-right to end up
with the right state.
Fixes: https://gitlab.freedesktop.org/libinput/libinput/-/issues/821
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-11-15 13:53:43 +10:00
|
|
|
AttrInputProp=-INPUT_PROP_BUTTONPAD
|
2020-08-03 00:03:59 -05:00
|
|
|
|
2018-09-14 14:03:09 +10:00
|
|
|
# The touch device has the same vid/pid as the totem, the MatchName
|
|
|
|
|
# directive is required here
|
|
|
|
|
[Canvas Totem]
|
|
|
|
|
MatchName=*System Multi Axis
|
|
|
|
|
MatchBus=usb
|
|
|
|
|
MatchVendor=0x2575
|
|
|
|
|
MatchProduct=0x0204
|
|
|
|
|
ModelDellCanvasTotem=1
|
2023-01-01 16:40:01 +01:00
|
|
|
|
2023-02-06 17:46:01 +00:00
|
|
|
[Dell 2-in-1 Models]
|
2023-01-01 16:40:01 +01:00
|
|
|
MatchName=AT Translated Set 2 keyboard
|
2023-02-06 17:46:01 +00:00
|
|
|
MatchDMIModalias=dmi:*:svnDellInc.:pn*2-in-1:*
|
2023-01-01 16:40:01 +01:00
|
|
|
ModelTabletModeNoSuspend=1
|
2023-01-11 17:16:13 +08:00
|
|
|
|
|
|
|
|
# This is a true pressurepad so disable pressure for contact size
|
|
|
|
|
# https://gitlab.freedesktop.org/libinput/libinput/-/issues/849
|
|
|
|
|
[Dell Precision5680 Touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x27C6
|
|
|
|
|
MatchProduct=0x0F60
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2023-02-08 01:24:53 -05:00
|
|
|
|
|
|
|
|
[Dell Mayabay Touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x06CB
|
|
|
|
|
MatchProduct=0xCFA0
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2024-02-29 09:36:32 +01:00
|
|
|
|
|
|
|
|
[Dell Precision 5480]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x0488
|
|
|
|
|
MatchProduct=0x1063
|
|
|
|
|
MatchUdevType=touchpad
|
|
|
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision5480*
|
|
|
|
|
ModelTouchpadVisibleMarker=0
|
2025-01-21 07:26:41 +00:00
|
|
|
|
|
|
|
|
[Dell laptop 14 Synaptics touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x06CB
|
|
|
|
|
MatchProduct=0xCFF8
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-01-21 07:26:41 +00:00
|
|
|
|
|
|
|
|
[Dell laptop 16 Synaptics touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x06CB
|
|
|
|
|
MatchProduct=0xCFF9
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-01-21 17:17:05 +08:00
|
|
|
|
|
|
|
|
[Dell laptop 14 Goodix touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x27C6
|
|
|
|
|
MatchProduct=0x0F61
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-01-21 17:17:05 +08:00
|
|
|
|
|
|
|
|
[Dell laptop 16 Goodix touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x27C6
|
|
|
|
|
MatchProduct=0x0F62
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-10-03 17:09:44 +02:00
|
|
|
|
2025-10-03 17:10:09 +02:00
|
|
|
[Dell 14 Premium DA14250 touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x0488
|
|
|
|
|
MatchProduct=0x108C
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-10-03 17:10:09 +02:00
|
|
|
|
2025-10-03 17:09:44 +02:00
|
|
|
[Dell 16 Premium DA16250 touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x0488
|
|
|
|
|
MatchProduct=0x108D
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-10-15 17:47:13 +08:00
|
|
|
|
|
|
|
|
[Dell laptop 14_1 Synaptics touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x06CB
|
|
|
|
|
MatchProduct=0xD01D
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-10-21 17:25:13 +08:00
|
|
|
|
|
|
|
|
[Dell laptop 16_1 Synaptics touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x06CB
|
|
|
|
|
MatchProduct=0xD01A
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-10-23 16:07:45 +08:00
|
|
|
|
|
|
|
|
[Dell laptop 14 Sensel touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x2C2F
|
|
|
|
|
MatchProduct=0x0034
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|
2025-10-23 16:07:45 +08:00
|
|
|
|
|
|
|
|
[Dell laptop 16 Sensel touchpad]
|
|
|
|
|
MatchBus=i2c
|
|
|
|
|
MatchVendor=0x2C2F
|
|
|
|
|
MatchProduct=0x0033
|
2025-12-04 14:40:40 +10:00
|
|
|
AttrInputProp=+INPUT_PROP_PRESSUREPAD
|