Windows – Overriding mouse drivers to enable left-handed button layout

driversmousewindowswindows 7

What I want to do (the short part of the post)

I want to switch left and right mouse button on the driver level.

That is, I want to either modify or override mouse driver in order to switch left and right mouse buttons on Windows operating system. (The solution should preferably work with Windows 7 and up.)

Why on Earth I want to do it (the long part of the post)

Terminology

For the sake of brevity and clarity, I'm going to use the following bolded terms:

  • left – left physical mouse button
  • right – right physical mouse button
  • click – a signal that is normally sent when you press left, used to e.g. select a file, click a button, drag-and-drop a window
  • menu – a signal that is normally sent when you press right, used to e.g. open a context menu
  • Win-swap – a Windows Control Panel > Mouse setting that makes left fire menu and right fire click.

The problem

I'm left handed. I use the mouse with my left hand. As a normal human being, I trigger click with my index finger and menu with my middle finger – which means I use right to click and left to menu. Normally, Win-swap would be sufficient for that – and it does work for browsers, office software, media editors, programming IDEs and the like.

Unfortunately, I'm also a gamer. Due to a peculiarity in how DirectX handles mouse buttons, quite a lot of games – regardless of whether they are high-budget releases or single-developer freeware – ignore Win-swap and (AFAIK) read button signals from the driver level.

This usually means either that (if you can't rebind mouse buttons inside the game) the whole game is basically unplayable or that (if you can rebind) navigating in-game menus requires a lot of concetration and carries a constant risk of accidentally failing to perform simple tasks.

Either way, it is rather unpleasant, irritating and making enjoying my hobby difficult, since it means I have to abandon games I'm interested.

Solutions that I tried

I bought Razer Abyssus. Both versions of its drivers are so horribly bugged that – in order to enable left-handed button layout – I need to setup a chain of Abyssus-old drivers-X-Mouse Button Control. Since Razer is supposed to be one of leaders of gaming-related peripherals, the fact they can't make drivers with basic level of usability, makes me wary of putting my trust and money in any gaming mouse.

Over the course of last 5 years, I have tried about 8 different applications (including a demo of a paid software) that were supposed to swap the buttons. Unfortuantely, none of them worked – they were either an UI overlay for Win-swap or the swap was on even shallower level than Win-swap (D-Mouse).

X-Mouse Button Control came closest, but unfortunately it doesn't actually intercept original signals, so you end up sending both click and menu when clicking either mouse button.

I also tried AutoHotKey, but simple macro along the lines of

left::right
right::left

didn't work, and the community was less than helpful. (AHK forums used to be filled with RTFM responses.)

Possible pitfalls

Reportedly, a certain brand of laptops has custom mouse menu in Control Panel that propagates Win-swap to driver level.


Thank you in advance for any answers. If you need clarification/more information, I should be able to provide them within 24 hours.

Best Answer

If you want to permanently switch the mouse buttons and software wont let you do it, then you can try to do it in hardware.

Of course, this all depends on the mouse hardware itself, but you should be able to desolder and resolder the wires connecting the mouse button's intermittent switches.