I have experienced issues with the free scroll toggle button on older Logitech M705 mouse in every distribution I've tried.
Here's how I ended up fixing it:
$> xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft Nano Transceiver 1.1 Consumer Control id=11 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft Nano Transceiver 1.1 id=14 [slave pointer (2)]
⎜ ↳ Logitech M705 id=16 [slave pointer (2)]
⎜ ↳ Logitech M510 id=17 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Microsoft Microsoft Nano Transceiver 1.1 id=10 [slave keyboard (3)]
↳ Microsoft Microsoft Nano Transceiver 1.1 System Control id=12 [slave keyboard (3)]
↳ Microsoft Microsoft Nano Transceiver 1.1 id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=18 [slave keyboard (3)]
↳ HP WMI hotkeys id=19 [slave keyboard (3)]
↳ Microsoft Microsoft Nano Transceiver 1.1 Consumer Control id=20 [slave keyboard (3)]
↳ Topre Corporation Realforce 87 id=15 [slave keyboard (3)]
Take note of the ID associated with the mouse.
Take a look at the current mapping:
$> xinput get-button-map 16
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Using xev
and clicking down the scroll button, I was able to identify that the button was identified as button 20. We can simply disable it as follows:
$> xinput set-button-map 16 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 0
And now everything works as expected!