As discussed in bug #92772, libinput reports horizontal scroll events that are caused by tilting a vertical scroll wheel as normal wheel events. This causes them to be affected by the MOUSE_WHEEL_CLICK_[ANGLE|COUNT][_HORIZONTAL] udev properties, which doesn't make sense because "click angle" doesn't make sense for a tilt event.
The solution seems to be to create a new pointer axis source, possibly LIBINPUT_POINTER_AXIS_SOURCE_WHEEL_TILT. The issue then becomes identifying which devices have tilting vertical wheels and which ones have real horizontal scroll wheels.
The Linux kernel reports wheel tilts as REL_HWHEEL events, which is the same type of event reported for real horizontal scroll wheels. This means that another method must be used to distinguish between the event types.
A possible solution is to use the existence of the MOUSE_WHEEL_CLICK_[ANGLE|COUNT]_HORIZONTAL udev properties to determine whether a mouse has a real horizontal scroll wheel. Most mice do not have horizontal scroll wheels, so if those properties are missing, libinput could assume than any horizontal scroll events were caused by tilting the vertical wheel. If either property existed, libinput could report that the mouse had a horizontal scroll wheel.
matching systemd bits: https://github.com/systemd/systemd/pull/5023
wayland protocol patches (RFC): https://patchwork.freedesktop.org/patch/125770/
Author: Peter Hutterer <email@example.com>
Date: Mon Nov 28 09:44:04 2016 +1000
Add wheel tilt as axis source
Note that we still need hwdb entries for your mouse, those are missing. Bonus points for sending a PR to systemd :)
(In reply to Peter Hutterer from comment #4)
> Note that we still need hwdb entries for your mouse, those are missing.
> Bonus points for sending a PR to systemd :)
I don't think it would be a good idea to include them in the default hwdb, because the high resolution mode is not enabled unless Solaar is installed. When I get some time, I'll see if the Solaar devs would be willing to include drop in files to set the correct click angle.