You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Avoiding libinput wobble detection/hysteresis on the Framework 13 Pro touchpad #388
Have been using a Framework 13 Pro with Linux and I've been really loving the laptop! I'm not quite sure where this should go, so wanted to put in a couple of notes:
You really want libinput wobble detection turned off. The sensor is absolutely pristine and if libinput detects a wobble, it'll turn on hysteresis, which will make the touchpad feel a lot worse until you log out and log back in again, or reboot.
I investigated how to turn hysteresis detection off and it seems like the way to do that is to use a plugin.
-- SPDX-License-Identifier: 0BSD---- Disable libinput's touchpad hysteresis on the PixArt 093A:1343 haptic-- touchpad (Framework Laptop 13 Pro).libinput:register({1})
libinput:connect("new-evdev-device", function(device)
localinfo=device:info()
ifinfo.vid==0x093Aandinfo.pid==0x1343anddevice:udev_properties()["ID_INPUT_TOUCHPAD"] thenlibinput:log_info("Disabling touchpad hysteresis on " ..device:name())
device:disable_feature("touchpad-hysteresis")
endend)
I've been running with that libinput patch and the plugin applied, and it's been fantastic -- a truly lovely touchpad experience.
You may want to incorporate this into your official Linux installation somewhere (might require working with distro maintainers) -- it makes the touchpad feel a million times better! You may also want to work with the libinput folks to see if they can add a quirk or similar to permanently exclude your touchpad from wobble detection. The hardware is so good -- it deserves correspondingly excellent software.
Thanks!
Reacted by maya, Isaac Corbrey, mary, dontwanttothink, Jesse Cooke, Reilly Wood, Kairav and bobby
changed the title [-]Avoiding hysteresis detection on the Framework 13 Pro[/-][+]Avoiding hysteresis detection on the Framework 13 Pro touchpad[/+]on Nov 9, 2026
changed the title [-]Avoiding hysteresis detection on the Framework 13 Pro touchpad[/-][+]Avoiding wobble detection on the Framework 13 Pro touchpad[/+]on Nov 9, 2026
changed the title [-]Avoiding wobble detection on the Framework 13 Pro touchpad[/-][+]Avoiding wobble detection/hysteresis on the Framework 13 Pro touchpad[/+]on Nov 9, 2026
changed the title [-]Avoiding wobble detection/hysteresis on the Framework 13 Pro touchpad[/-][+]Avoiding libinput wobble detection/hysteresis on the Framework 13 Pro touchpad[/+]on Nov 9, 2026
We expect people to run standard distributions, so this would be good to change upstream instead of distributing a custom plugin.
We do ship systems prebuilt with linux now, but we try to stay as close to vanilla distro as possible.
I think this should be done with a quirk, that disables hysteresis on a touchpad if the PID matches. Please add me as reviewer, if you add it.
Think I've done my part. The ball is now in y'all's court. Based on my experience running this patch, I think it would really be worth trying it out yourself (for steps to reproduce, see https://gitlab.freedesktop.org/libinput/libinput/-/work_items/1364; for the fix, any recent LLM should be able to build a package for you with little effort). If you think it is as dramatic an improvement as I think it is, it might be worth getting this fixed in the respective packages of the distros you work with, even before they pick up the next stable release.
Notes for backporters
You'll want to cherry-pick/apply three patches, all of which should be easily backportable to 1.32. In order from first to last:
baf5b097 "touchpad: don't let wobble detection re-enable hysteresis disabled by a plugin"
1cf63c30 "quirks: add AttrTouchpadHysteresis to enable or disable the hysteresis"
d00edd6d "quirks: disable the hysteresis on the Framework Laptop 13 Pro touchpad"
edit: for clarity, after these are applied, you no longer need the lua plugin in the OP.
Note that the quirk is specific to the 13 Pro. My understanding is that the regular 13 can also be upgraded to the same touchpad. The existing quirk won't apply there, but if the touchpad is jitter-free on those laptops too, the quirk could be broadened:
--- a/quirks/50-system-framework.quirks+++ b/quirks/50-system-framework.quirks@@ -6,13 +6,14 @@
MatchDMIModalias=dmi:*:svnFramework:pnLaptop16*:*
AttrKeyboardIntegration=internal
-# Framework Laptop 13 Pro haptic touchpad, known to be jitter-free.-# Limited to the Laptop 13 Pro for now since that's the only system-# this has been verified on.-[Framework Laptop 13 Pro Haptic Touchpad]+# Framework haptic touchpad, known to be jitter-free. Ships in the+# Laptop 13 Pro, and in the Laptop 13 Pro Input Cover Kit that also fits+# earlier Laptop 13 mainboards, so match on the vendor rather than the+# product name.+[Framework Haptic Touchpad]
MatchBus=i2c
MatchUdevType=touchpad
MatchVendor=0x093A
MatchProduct=0x1343
-MatchDMIModalias=dmi:*:svnFramework:pnLaptop13Pro*:*+MatchDMIModalias=dmi:*:svnFramework:*
AttrTouchpadHysteresis=0
I run Niri on NixOS and I used this configuration to pull in the listed patches. The trackpad feels great after this. I was wondering why the trackpad seemingly felt worse after the initial login but I never dug into it. Thank you @sunshowers for the work and writeup here! Sharing my Nix configuration if others find it useful, though you can just point an LLM at this issue and it'll do the needful.
sorry to barge into your issue, but I'm wondering if the FW12 has the same touchpad as the Pro, because i'm seeing weird touchpad issues right now and i wonder if it's related to this.
@anarcat I think the way to find out would be to try and get a libinput recording going with
a perfectly still finger on the touchpad, to determine how jitter-free the sensor is
moving a finger very slowly in one direction to see the units go up one at a time
moving it back and forth horizontally until wobble detection kicks in
If you're ok using an LLM, one should be able to guide you through this process; otherwise, see the libinput docs. If it is jitter-free then it can excluded from wobble detection as a libinput quirk, similar to my patch. You will need the first two patches linked above to make the quirk function properly.
They use different touchpads. The 13 Pro is the first model to use this non-mechanical touchpad. The 12 has the mechanism version.
Technically a touchpad could be using the same finger location (capacitive touch) sensing no matter if it has a button or haptic.
In practice they don't, the Laptop 12 uses a different, cheaper chip with slightly lower resolution. For cost optimization but also because the sensing area is physically smaller.
Laptop 13 and Laptop 16 use the same captouch sensing as each other. But the haptic and clickpad models have a different one.
Platform
Type
VID
PID
IC
Wireless Touchpad Keyboard
Click
093A
0361
PCT1036
Laptop 12
Click
093A
0239
PCT2642
Laptop 13
Click
093A
0274
PCT3854
Laptop 13
Haptic
093A
1363
PCT4802
Laptop 16
Click
093A
0274
PCT3854
Laptop 16
Haptic
093A
1363
PCT4802
All our touchpads are quite high quality, so after double-checking the recording we can probably enable it for all of them.
Activity
[-]Avoiding hysteresis detection on the Framework 13 Pro[/-][+]Avoiding hysteresis detection on the Framework 13 Pro touchpad[/+][-]Avoiding hysteresis detection on the Framework 13 Pro touchpad[/-][+]Avoiding wobble detection on the Framework 13 Pro touchpad[/+][-]Avoiding wobble detection on the Framework 13 Pro touchpad[/-][+]Avoiding wobble detection/hysteresis on the Framework 13 Pro touchpad[/+][-]Avoiding wobble detection/hysteresis on the Framework 13 Pro touchpad[/-][+]Avoiding libinput wobble detection/hysteresis on the Framework 13 Pro touchpad[/+]JohnAZoidberg commentedon Nov 9, 2026
Cool, thanks!
We expect people to run standard distributions, so this would be good to change upstream instead of distributing a custom plugin.
We do ship systems prebuilt with linux now, but we try to stay as close to vanilla distro as possible.
I think this should be done with a quirk, that disables hysteresis on a touchpad if the PID matches. Please add me as reviewer, if you add it.
sunshowers commentedon Nov 9, 2026
Thanks @JohnAZoidberg. I've filed this as https://gitlab.freedesktop.org/libinput/libinput/-/work_items/1364. Not sure what your username is on that gitlab but please feel free to cc yourself and chime in!
JohnAZoidberg commentedon Nov 9, 2026
I'm glad the module works well! It took months of effort to get the tuning right, especially of the haptic feedback.
sunshowers commentedon Nov 10, 2026
and MR up at https://gitlab.freedesktop.org/libinput/libinput/-/merge_requests/1537 :)
sunshowers commentedon Nov 10, 2026
This is landed.
Think I've done my part. The ball is now in y'all's court. Based on my experience running this patch, I think it would really be worth trying it out yourself (for steps to reproduce, see https://gitlab.freedesktop.org/libinput/libinput/-/work_items/1364; for the fix, any recent LLM should be able to build a package for you with little effort). If you think it is as dramatic an improvement as I think it is, it might be worth getting this fixed in the respective packages of the distros you work with, even before they pick up the next stable release.
Notes for backporters
You'll want to cherry-pick/apply three patches, all of which should be easily backportable to 1.32. In order from first to last:
baf5b097"touchpad: don't let wobble detection re-enable hysteresis disabled by a plugin"1cf63c30"quirks: add AttrTouchpadHysteresis to enable or disable the hysteresis"d00edd6d"quirks: disable the hysteresis on the Framework Laptop 13 Pro touchpad"edit: for clarity, after these are applied, you no longer need the lua plugin in the OP.
sunshowers commentedon Nov 10, 2026
Note that the quirk is specific to the 13 Pro. My understanding is that the regular 13 can also be upgraded to the same touchpad. The existing quirk won't apply there, but if the touchpad is jitter-free on those laptops too, the quirk could be broadened:
sudomateo commentedon Nov 10, 2026
I run Niri on NixOS and I used this configuration to pull in the listed patches. The trackpad feels great after this. I was wondering why the trackpad seemingly felt worse after the initial login but I never dug into it. Thank you @sunshowers for the work and writeup here! Sharing my Nix configuration if others find it useful, though you can just point an LLM at this issue and it'll do the needful.
anarcat commentedon Nov 11, 2026
sorry to barge into your issue, but I'm wondering if the FW12 has the same touchpad as the Pro, because i'm seeing weird touchpad issues right now and i wonder if it's related to this.
thanks for this great work!
sudomateo commentedon Nov 11, 2026
You're not barging in at all. It's a good question.
They use different touchpads. The 13 Pro is the first model to use this non-mechanical touchpad. The 12 has the mechanical version.
sunshowers commentedon Nov 11, 2026
@anarcat I think the way to find out would be to try and get a libinput recording going with
If you're ok using an LLM, one should be able to guide you through this process; otherwise, see the libinput docs. If it is jitter-free then it can excluded from wobble detection as a libinput quirk, similar to my patch. You will need the first two patches linked above to make the quirk function properly.
JohnAZoidberg commentedon Nov 12, 2026
Technically a touchpad could be using the same finger location (capacitive touch) sensing no matter if it has a button or haptic.
In practice they don't, the Laptop 12 uses a different, cheaper chip with slightly lower resolution. For cost optimization but also because the sensing area is physically smaller.
Laptop 13 and Laptop 16 use the same captouch sensing as each other. But the haptic and clickpad models have a different one.
All our touchpads are quite high quality, so after double-checking the recording we can probably enable it for all of them.