Logitech Trackball M570 needs different profile to be used with libinput
Trackball M570 ist designed for very ergonomic usage and works fine with evdev and zero acceleration. (technical data: http://support.logitech.com/en_us/product/wireless-trackball-m570/specs).
Using libinput (Debian-Buster wit libinput10 v1.11.2-1) makes the Trackball hardly usable. Base Speed ist too high, acceleration is too high. It does not consider that with just a thumb you cannot position as exactly as with a mouse. Movements over greater distance just needs a small kick to let the ball spin, which does not apply to mice.
So, generally speaking: a trackball does not need acceleration for long distance moves, instead usage asks for decelleration for precise positioning.
So the only way I found to make it usable with libinput is to disable (almost) any acceleration by setting "Accel Speed (287)" to -0.8 to -1 with xinput. This at least allows to use the native resolution of 400 dpi of the device. To get some decelleration for positioning I had to spoof the hardware database, here my current overwrite including some comments:
created /etc/udev/hwdb.d/71-mouse-local.hwdb
# Logitech Wireless Trackball M570
mouse:usb:v046dp1028:name:Logitech M570:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:1028:
# Cheating hwdb to make the trackball compatible with libinput
#
# Declaring it as a MOUSE instead of TRACKBALL causes libinput to
# respect the modified DPI-settings in the hardware database,
# Faking DPI to a 1000 causes pointer to slow down to a comfortable speed
# with reasonable precision for placement.
# Setting "Accel Speed (287)" to -0.6 to -0.9 with xinput still
# provides a moderate and comfortable acceleration for longer moves.
# This can be done on a per user basis in ~/.xsessionrc
# MOUSE_DPI=540@167
# ID_INPUT_TRACKBALL=1
MOUSE_DPI=1000@125
ID_INPUT_MOUSE=1
As said, libinput seems to totally ignore the setting ID_INPUT_TRACKBALL=1, had to rename it to ID_INPUT_MOUSE=1. Additionally, the values in hwdb do not match the device: a) Resolution is 400 DPI (according to specs from manufacturer) b) Polling rate is 125Hz (8ms as read out with solaar from hardware)
So please make libinput recognize "ID_INPUT_TRACKBALL=1" and treat it at least the same way as mice. Without that the trackball is handled like some "default input device?" and makes it unusable. Perfect solution would be to have configurable decelleration for this class of pointing devices.
So, in fact with my hack we have 2 tuning parameters: a) base speed (unaccelerated) via DPI b) acceleration via "Accel Speed (287)"
P.S.: More detailed discussion on this problem can be found here: https://bugs.freedesktop.org/show_bug.cgi?id=107265 and Peter Hutterer recommended to report it here to get such devices (trackballs) supported by libinput.
Regards, Ingo