libinput/quirks
Mingcong Bai 65b53f82ff quirks: lower AttrTrackpointMultiplier for ThinkPad X200/201 to 0.25
Upstream commit 43cd2cbf83 ("data: add the dell trackpoint multipliers")
broke the default acceleration profile on Lenovo ThinkPad X200/201, where
the cursor speeds became so quick that it was practically impossible to
control. Merely dragging on the TrackPoint lightly would result in the
cursor flying from corner-to-corner.

I have tested on a Lenovo ThinkPad X201 to find
`AttrTrackpointMultiplier=0.25' the most reasonable and closest to the
default behaviour on Windows 7 with Lenovo's driver.

Not sure about ThinkPad X200s/201s, but I suspect that they would have
similar issues (with the multiplier set to 1.25). I have just ordered both
models to experiment with and will report back with another patch if I
find similar issue.

Signed-off-by: Mingcong Bai <jeffbai@aosc.io>
Part-of: <https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1080>
2024-11-14 22:02:54 +08:00
..
10-generic-keyboard.quirks quirks: explicitly mark bluetooth keyboards as external 2018-08-27 09:19:46 +10:00
10-generic-mouse.quirks quirks: no button debouncing on generic emulated mouse 2021-09-12 21:51:53 +00:00
10-generic-trackball.quirks Rename data/ to quirks/ 2018-07-13 13:30:54 +10:00
30-vendor-a4tech.quirks quirks: add ModelBouncingKeys for A4Tech X-710BK Mouse 2021-11-23 17:15:22 +00:00
30-vendor-aiptek.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
30-vendor-alps.quirks quirks: Customize ALPS i2c touchpad palm detect pressure threshold 2020-09-28 12:12:51 +08:00
30-vendor-contour.quirks quirks: add RollerMouse Pro3 double-click fix 2023-09-05 09:39:06 +01:00
30-vendor-cypress.quirks quirks: add touchpad range for cypress touchpads 2019-06-28 11:27:13 +10:00
30-vendor-elantech.quirks quirks: extend/restore the Elan Touchpads quirks 2018-09-18 07:18:34 +10:00
30-vendor-glorious.quirks quirks: add quirks for Glorious Model O mouse 2022-12-23 19:13:10 +11:00
30-vendor-huion.quirks quirks: add a default resolution for Huion devices 2024-05-27 14:51:25 +10:00
30-vendor-ibm.quirks quirks: speed up the TrackPoint on the IBM USB UltraNav keyboard a bit 2019-04-05 19:16:23 +02:00
30-vendor-ite.quirks Added quirks for TongFang/Uniwill touchpad and ITE keyboard 2024-02-12 11:04:59 +00:00
30-vendor-kensington.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
30-vendor-logitech.quirks quirks: add Logitech ERGO M575(S) 2024-10-07 21:06:05 +00:00
30-vendor-madcatz.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
30-vendor-microsoft.quirks quirks: Add quirks to improve tablet-mode on the Surface Laptop Studio 2022-07-10 18:25:22 +00:00
30-vendor-oracle.quirks quirks: disable button debouncing for the VirtualBox mouse integration 2023-11-16 09:46:31 +10:00
30-vendor-qemu.quirks quirks: disable button debouncing for the QEMU/KVM mouse integration 2023-11-16 23:07:32 +00:00
30-vendor-razer.quirks quirks: add quirk for Razer Blade 142024 Keyboard 2024-08-26 07:42:00 +00:00
30-vendor-synaptics.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
30-vendor-trust.quirks add trust mouse quirk #455 2020-03-22 12:07:51 +01:00
30-vendor-uniwill.quirks Added quirks for TongFang/Uniwill touchpad and ITE keyboard 2024-02-12 11:04:59 +00:00
30-vendor-vmware.quirks Fix pre-commit errors 2024-09-03 09:51:41 +02:00
30-vendor-wacom.quirks quirks: Add Wacom Bamboo Fun Pen 2023-08-24 19:22:00 +02:00
50-system-acer.quirks Fix pre-commit errors 2024-09-03 09:51:41 +02:00
50-system-apple.quirks quirks: increase MacBook touchpad AttrPalmSizeThreshold 2024-04-24 04:11:51 +00:00
50-system-asus.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
50-system-chicony.quirks quirks: change all 3-digit matches to zero-prefixed 4-digit matches 2023-03-20 17:38:28 +00:00
50-system-chuwi.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
50-system-cyborg.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
50-system-dell.quirks quirks: add quirk for Dell Precision 5480 touchpad 2024-02-29 09:51:43 +01:00
50-system-framework.quirks Recognizing Framework 16 keyboard modules as internal keyboards 2024-02-19 03:20:32 +00:00
50-system-gigabyte.quirks quirks: add palm size quirk for the Gigabyte Aero 15 2021-04-14 15:04:39 +10:00
50-system-google.quirks quirks: Add quirk for Google Chromebook Cret 2024-10-02 06:00:05 +00:00
50-system-gpd.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
50-system-graviton.quirks quirks: touchpad quirk for Graviton N15i 2024-10-02 05:43:06 +00:00
50-system-honor.quirks quirks: add a quirk for the HONOR MagicBook Art 14 touchpad 2024-10-02 09:52:55 +00:00
50-system-hp.quirks quirks: add quirk for HP Haptics Touchpad. 2024-04-30 06:59:42 +00:00
50-system-huawei.quirks quirks: fix end-of-file in 50-system-huawei.quirks 2024-05-18 18:55:29 +02:00
50-system-icl.quirks quirks: touchpad quirk for ICL Si1516/Si1512 2024-10-02 05:43:06 +00:00
50-system-lenovo.quirks quirks: lower AttrTrackpointMultiplier for ThinkPad X200/201 to 0.25 2024-11-14 22:02:54 +08:00
50-system-lg.quirks quirks: add quirk for the LG gram 14 2023 Touchpad 2024-07-04 20:04:03 +02:00
50-system-minisforum.quirks quirks: add quirk for Minisforum V3 touchpad dwt 2024-07-20 20:43:43 +03:00
50-system-pine64.quirks quirks: Pine64 PineBook Pro keyboard 2021-09-05 14:05:24 -07:00
50-system-sony.quirks Fix pre-commit errors 2024-09-03 09:51:41 +02:00
50-system-starlabs.quirks quirks: allow overriding of AttrEventCode and AttrInputProp 2022-11-28 08:25:41 +10:00
50-system-system76.quirks Rename data/ to quirks/ 2018-07-13 13:30:54 +10:00
50-system-toshiba.quirks Fix pre-commit errors 2024-09-03 09:51:41 +02:00
50-system-vaio.quirks quirks: add quirks for Positivo-Vaio touchpad 2022-11-28 11:26:47 +01:00
README.md quirks: reword the requirements section in the quirks README 2021-02-03 07:45:12 +00:00

libinput quirks file format

This directory contains hardware quirks used by libinput to work around bugs in the hardware, device behavior and to supply information not obtained through the kernel device.

THIS IS NOT STABLE API

The data format may change at any time. If your quirks file is not part of the libinput git tree, do not expect it to work after an update. Absolutely no guarantees are made for backwards-compatibility.

THIS IS NOT A CONFIGURATION API

Use the libinput_device_config_foo() functions for device configuration. Quirks here are hardware quirks only.

Data file naming

Data files are read in versionsort order, read order determines how values override each other. Values read later override previously read values. The current structure is:

  • 10-generic-foo.quirks for generic settings,
  • 30-vendor-foo.quirks for vendor-specific settings, and
  • 50-system-foo.quirks for system vendors.

This is not a fixed naming scheme and may change at any time. It's an approximation only because some vendors are also system vendors, e.g. Microsoft makes devices and laptops.

Laptop-specific quirks should always go into the laptop vendor's file even where they apply to a component of a different vendor. For example, a quirk for a Synaptics touchpad specific to a Dell laptop should go into the Dell quirks file.

Sections, matches and values

A data file must contain at least one section, each section must have at least one Match tag and at least one of either Attr or Model. Section names are free-form and may contain spaces.

# This is a comment
[Some touchpad]
MatchBus=usb
# No quotes around strings
MatchName=*Synaptics Touchpad*
AttrSizeHint=50x50
ModelSynapticsTouchpad=1

[Apple touchpad]
MatchVendor=0x5AC
MatchProduct=0x123
ModelAppleTouchpad=1

Comments are lines starting with #.

All Model tags take a value of either 1 or 0.

All Attr tag values are specific to that attribute.

Parser errors

The following requirements must be met:

  • No whitespace is allowed at the beginning of the line
  • A Section must have at least one Match* entry
  • A Section must not repeat Match* entry
  • A Section must have at least one of Model* or Attr* entries
  • A Model tag may only have the value 1 or 0
  • String properties must not be enclosed in quotes
  • Hex numbers must use uppercase letters (e.g. 0x12AB)

Failure to meet these requirements will cause a parser error and the quirks files will not be used.

Debugging

When modifying a data file, use the libinput list-quirks tool to verify the changes. The tool can be pointed at the data directory to analyse, use --verbose to get more info. For example:

libinput list-quirks --data-dir /path/to/git/repo/quirks/ --verbose /dev/input/event0