https://wayland.freedesktop.org/libinput/doc/latest/device-configuration-via-udev.html#hwdb-modifying
https://wayland.freedesktop.org/libinput/doc/latest/touchpad-jitter.html
https://www.freedesktop.org/software/systemd/man/hwdb.html
So I was trying to set custom touchpad fuzz following those instructions.
$ sudo libinput measure fuzz --fuzz=8
Using AlpsPS/2 ALPS DualPoint TouchPad: /dev/input/event16
Checking udev property... not set
Checking axes... not set
Guessing a udev rule to overwrite the fuzz
Full modalias is: dmi:bvnDellInc.:bvrA15:bd12/05/2013:br4.6:svnDellInc.:pnPrecisionM4500:pvr0001:rvnDellInc.:rn0RRH3K:rvrA01:cvnDellInc.:ct9:cvr:
Suggested udev rule, option 1:
# DellInc. AlpsPS/2 ALPS DualPoint TouchPad
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*:svnDellInc.*:pvr0001*:
EVDEV_ABS_00=:::8
EVDEV_ABS_01=:::8
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8
Suggested udev rule, option 2:
# DellInc. AlpsPS/2 ALPS DualPoint TouchPad
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*:svnDellInc.*:pnPrecisionM4500*:
EVDEV_ABS_00=:::8
EVDEV_ABS_01=:::8
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8
Wich rule do you want to to test? 1 or 2? Ctrl+C to exit 2
Traceback (most recent call last):
File "/usr/lib/libinput/libinput-measure-fuzz", line 515, in <module>
main(sys.argv)
File "/usr/lib/libinput/libinput-measure-fuzz", line 502, in main
write_udev_rule(device, userfuzz)
File "/usr/lib/libinput/libinput-measure-fuzz", line 443, in write_udev_rule
fd = open(fname, "x")
FileNotFoundError: [Errno 2] No such file or directory: '/etc/udev/hwdb.d/99-touchpad-fuzz-override.hwdb'
That auto-created some possible rules. But putting a file 61-evdev-local.hwdb in /etc/udev/hwdb.d after creating that dir didn't get built as described in earlier posts. So I also put it in /usr/lib/udev/hwdb.d
$ ls -l
-r--r--r-- 1 root root 8307850 Aug 28 02:58 hwdb.bin
$ sudo /usr/bin/udevadm hwdb --update
$ ls -l
-r--r--r-- 1 root root 8308026 Aug 28 03:19 hwdb.bin
$ sudo libinput measure fuzz
Using AlpsPS/2 ALPS DualPoint TouchPad: /dev/input/event16
Checking udev property... not set
Checking axes... not set
And I could see the bin file was bigger, but it didn't do anything. So I modified the rule a bit:
/usr/lib/udev/hwdb.d$ cat 61-evdev-local.hwdb
# DellInc. AlpsPS/2 ALPS DualPoint TouchPad
#evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*:svnDellInc.*:pnPrecisionM4500*:
evdev:name:*AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnDellInc.:*pnPrecisionM4500*:
EVDEV_ABS_00=:::8
EVDEV_ABS_01=:::8
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8
Still didn't work. Then I installed xudev instead of eudev, which rebuilt the bin as part of the hooks, rebooted:
$ sudo libinput measure fuzz
Using AlpsPS/2 ALPS DualPoint TouchPad: /dev/input/event16
Checking udev property... x=8 y=8
Checking axes... not set
And it works! (It also changed my wireless devices from the wlpXsY to wlan0 / wlan1 btw)
Having used xudev for only a few minutes I can't say too much about it but it seems concerning if eudev is not functioning with the hwdb entries, because there are stacks of hw specific tweaks in there to make stuff work correctly, which you may not be aware of at all if you aren't using the affected items.
Oh yes, I should add I am using an older kernel for other reasons though, in case that affects this, although I'm not sure it does:
$ uname -r
5.8.14-artix1-1
If it did then just ignore this
pps offtopic:
This improves the M4500 touchpad too, otherwise you can move the pointer with your finger a short distance above the touchpad as it was much too sensitive as standard, I haven't fully refined all these settings yet though, perhaps I will report them upstream in future, but it's something like this and much better than it was:
/etc/libinput/local-overrides.quirks
[Touchpad pressure override]
MatchUdevType=touchpad
MatchName=*AlpsPS/2 ALPS DualPoint TouchPad
MatchDMIModalias=dmi:*svnDellInc.:*pnPrecisionM4500*
AttrPressureRange=95:88