OK. Full disclosure. The title for this blog post is perhaps a bit misleading. The reality is that you don't actually need to use Linux. It turns out that most gaming mice can save the configuration in the mouse itself. Who knew? Certainly not me!
I use Ubuntu Gnome as my primary OS. I don't dual boot (though I do have a Windows virtual machine for testing). I have used a gaming mouse for the past few years. I am not a gamer. The reason I use a gaming mouse is because 1) they are more precise and accurate 2) I like extra buttons for extra features and 3) they look cool.
For the longest time I was content with the mouse's default settings as I figured there was no realistic way for me to program it differently. Sure, gaming mice come with software, but I have never seen that software available for Linux.
I have looked into imwheelrc and Xbindkeys for remapping mouse buttons but I found both of those to be too much work and quite complicated. Btnx looks a bit easier to use but it is out of date and does not work on modern flavors of Linux.
I decided the other day to boot up a Virtual Machine, download the driver software, and program the mouse in the Virtual Machine. To my surprise and delight, when I used the mouse in Linux, it worked just how I configured it! The settings were saved in the mouse itself.
Honestly, I don't know why I had never thought of that before and I feel a bit dumb for never even trying it.
Bottom line: If you want a gaming mouse to work in Linux, just program it in Windows, whether via dual boot, virtual machine, or someone else's machine. They will all work fine.