This answer is specific to Logitech devices with Unifying receiver, but you're mentioning one explicitely in your question.
Install solaar
, a tool which can be used to pair devices with the unifying receiver, but also provides basic device configuration (and status information like battery level). Select the mouse, disable "Smooth Scrolling".
I found an acceptable solution for me.
I didn't find a way to use Shift or any other key as my modifier to rotate the wheel axis as long as it is pressed.
I'm now using a simple .xbindkeysrc
with a toggle button:
"~/toggle.sh"
alt + x
The toggle.sh script looks like this:
#!/bin/sh
on()
{
xmodmap -e 'pointer = 1 2 3 6 7 4 5 8 9 10'
}
off()
{
xmodmap -e 'pointer = default'
}
if xmodmap -pp | grep -q '4.*6'; then
off
else
on
fi
This allows me to toggle the behaviour. When I press Alt + X, my mouse wheel axis is rotated, and when I press it again, it's set to the default.
That should work for now.
If someone finds a way to do it with Shift as a "modifier" (mouse axis rotate as long as it's pressed), please let me know.
EDIT: As Alt+x is a commonly used hotkey, I changed it to:
(xbindkey '(control "b:3") "toggle-wheel.sh")
(I switched to guile configuration so the above should be in a file named .xbindkeysrc.scm
)
This will toggle the scroll wheel direction with Ctrl + right mouse button.
Best Answer
In order to make the horizontal scrolling work, I had to remap the mouse buttons. Check the mapping using
xmodmap -pp
:Use
xev
to find out the button codes for horizontal scrolling:From here I can see the left/right button codes are 8/9. Since the
synaptics
driver uses the buttons 6/7 for left/right scrolling, I simply needed to swap the order of how the buttons are declared. To change the mapping:This will swap 8/9 6/7 which will make the horizontal scrolling work.