mirror of
https://gitlab.freedesktop.org/libinput/libinput.git
synced 2025-12-25 04:40:05 +01:00
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>
110 lines
2.8 KiB
Text
110 lines
2.8 KiB
Text
# Do not edit this file, it will be overwritten on update
|
|
|
|
[Dell Touchpads]
|
|
MatchName=* Touchpad
|
|
MatchDMIModalias=dmi:*svnDellInc.:*
|
|
ModelTouchpadVisibleMarker=1
|
|
|
|
[Dell i2c Touchpads]
|
|
MatchBus=i2c
|
|
MatchUdevType=touchpad
|
|
MatchDMIModalias=dmi:*svnDellInc.:*
|
|
AttrMscTimestamp=watch
|
|
|
|
[Dell Inspiron 15R N5110 Touchpad]
|
|
MatchUdevType=touchpad
|
|
MatchName=*AlpsPS/2 ALPS GlidePoint
|
|
MatchVersion=0x0300
|
|
MatchDMIModalias=dmi:*svnDellInc.:*pnInspironN5110*
|
|
AttrPressureRange=100:95
|
|
|
|
[Dell Latitude E5510 Touchpad]
|
|
MatchUdevType=touchpad
|
|
MatchName=*AlpsPS/2 ALPS GlidePoint
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE5510:*
|
|
AttrPressureRange=100:90
|
|
|
|
[Dell Latitude E6220 Touchpad]
|
|
MatchName=*AlpsPS/2 ALPS GlidePoint
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeE6220:*
|
|
AttrPressureRange=100:90
|
|
|
|
[Dell XPS L322X Touchpad]
|
|
MatchName=*CyPS/2 Cypress Trackpad
|
|
MatchDMIModalias=dmi:*svnDell*:*XPSL322X*
|
|
AttrPressureRange=30:20
|
|
AttrPalmPressureThreshold=254
|
|
|
|
[Dell XPS13 9333 Touchpad]
|
|
MatchName=*Synaptics s3203
|
|
MatchDMIModalias=dmi:*svnDellInc.:*pnXPS139333*
|
|
AttrPressureRange=15:10
|
|
AttrPalmPressureThreshold=150
|
|
|
|
[Dell XPS 15 9500 Touchpad]
|
|
MatchName=* Touchpad
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnXPS159500:*
|
|
ModelTouchpadVisibleMarker=0
|
|
|
|
[Dell Latitude D620 Trackpoint]
|
|
MatchName=*DualPoint Stick
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnLatitudeD620*
|
|
AttrTrackpointMultiplier=0.5
|
|
|
|
[Latitude E5480 Trackpoint]
|
|
MatchName=*DualPoint Stick
|
|
MatchUdevType=pointingstick
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude5480*
|
|
AttrTrackpointMultiplier=0.5
|
|
|
|
[Latitude 5580 Trackpoint]
|
|
MatchName=*DualPoint Stick
|
|
MatchUdevType=pointingstick
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude5580*
|
|
AttrTrackpointMultiplier=0.5
|
|
|
|
[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*
|
|
AttrTrackpointMultiplier=0.125
|
|
|
|
[Latitude 7480 Touchpad]
|
|
MatchName=DLL07A0*
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude7480*
|
|
AttrPressureRange=35:34
|
|
|
|
[Latitude 7490 Trackpoint]
|
|
MatchName=*Mouse
|
|
MatchUdevType=pointingstick
|
|
MatchDMIModalias=dmi:**bvnDellInc.:*:pnLatitude7490*
|
|
AttrTrackpointMultiplier=0.3
|
|
|
|
[Precision 7x50 Touchpad]
|
|
MatchBus=i2c
|
|
MatchUdevType=touchpad
|
|
MatchDMIModalias=dmi:*svnDellInc.:pnPrecision7?50*
|
|
AttrInputProp=-INPUT_PROP_BUTTONPAD
|
|
|
|
# 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
|