I have a Logitech MX Master mouse with a vertical and horizontical scroll wheel. Everything works fine, mouse events work / can be remapped, both scroll wheels do their job, etc. The only annoying thing is that horizontal scrolling is very slow und thus nearly useless...

So how can I adjust the scroll wheel sensitivity for the horizontal scroll wheel?

I have tried quite a lot of options with no luck:

  • solaar does not provide any additional settings.
  • xinput has a scrolling related setting Evdev Scrolling Distance, but it did not seem to change more than the scrolling direction.
  • Neither did the xconf setting HorizResolution change the scrolling behavior (like suggested here).
  • As I found out with xev, the scroll wheel triggers button click events (buttons 6 and 7). So I tried a xbindkeys binding that triggers the button click three times again (using xdotool). This obviously resulted in a infinite loop of event → trigger → event → trigger → ... bringing the xserver to 100% CPU. No sleep delays or similar helped...
  • None of the XF86 keyboard symbols seems to represent vertical scrolling → no luck with remapping button 6/7 to a XF86 keyboard event.

Any ideas how to get the vertical mouse scrolling faster? I'd be glad about help!

My system: Linux Mint 18 (based on Ubuntu 16.04 LTS), KDE Plasma 5.8.5


Okay, I suddenly had an idea that solved this issue:

1) Remap the "buttons" associated with horizontal scroll from 6/7 to the unused ids 10/11 with xinput to avoid the recursive infinity loop. Call this from ~/.profile or similar (inspired by this answer):

# improve Logitech MX Master horizontal scroll sensitivity
logitech_mouse_id=$(xinput | grep "Logitech MX Master" | sed 's/.*id=\([0-9]\+\).*/\1/')
xinput set-button-map $logitech_mouse_id 1 2 3 4 5 10 11 8 9

2) Trigger repeated horizontal scrolling events with xdotool. Settings in ~/.xbindkeysrc:

# thumb wheel up => scroll left
"xdotool click --repeat 10 --delay 1 6"

# thumb wheel down => scroll right
"xdotool click --repeat 10 --delay 1 7"
  • This works great! Thanks for sharing. I added a little if statement in the .profile code, so that weird things cannot happen when the mouse is not plugged in. – Kapenaar Mar 4 '17 at 10:35
  • Based upon the idea above, I wrote a libevdev client which listens at a lower level for horizontal scroll wheel events and repeats them. It's under the GPL: evwheelmult. – Ben Stern Feb 4 '18 at 3:24
  • awk-fu not needed as this works xinput set-button-map 'Logitech MX Master' 1 2 3 4 5 10 11 8 9 – qwazix Mar 23 '19 at 18:50
  • I'd clean up & merge that grep | sed command: logitech_mouse_id=$(xinput | sed -nr 's/.*Logitech M.*id=([0-9]+).*/\1/p') – casper.dcl Nov 26 '19 at 14:04

I found this post in my searching for a solution. I wanted to pass it on to help anyone in the future:


Scroll down to Sept 2017, 22:39 by WombatFromHell

This worked perfectly for me. I am running VirtualBox 5.1.30 r118389 and Mint 18.3 Cinnamon 64Bit All credit goes to WombatFromHell on that post. I just wanted to pass it along. For me the file is 90-libinput.conf but everything else is the same.

If you don't want to go to that page the solution is to edit a file at /usr/share/X11/xorg.conf.d/look for a file with XX-libinput.conf where XX could be 40 as in the original post or for me it was 90.

important you need to make sure you have the evdev driver installed. For me, it was already installed.

There are three Section blocks in my file. Find the one with Identifier "libinput pointer cachall" The last line of that block is Driver "libinput" change it to Drive "evdev" and reboot the guest.

I cannot offer advice if this doesn't work because I didn't come up with the solution I am just wanting to pass it along as a solution/workaround.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.