Advertisement
Dragomok

Post that triggers spam filters on SuperUser.com

Oct 2nd, 2016
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.24 KB | None | 0 0
  1. PUT INTO THE TITLE: Overriding mouse drivers to enable left-handed button layout
  2.  
  3. What I want to do (the short part of the post)
  4. =====================
  5.  
  6. I want to switch left and right mouse button without using mouse settings on Windows. Or just Windows 7, which I am currently using and is the only operating system, on which I'll be able to test it.
  7.  
  8. That is, I want to either modify or override mouse driver in order to switch left and right mouse buttons on Windows operating system.
  9.  
  10. Why on Earth I want to do it (the long part of the post)
  11. =======================
  12.  
  13. Terminology
  14. -----------
  15.  
  16. For sake of brevity and clarity, I'm going to use the following `"backticked"` terms:
  17.  
  18. - `left` - left physical mouse button
  19. - `right` - right physical mouse button
  20. - `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
  21. - `menu` - a signal that is normally sent when you press `right`, used to e.g. open a context menu
  22. - `Win-swap` - a Windows mouse setting that is supposed to make `left` fire `menu` and `right` fire `click`, present in Windows OS since 3.1x version (reportedly - the earliest I personally checked was 95, and it had that setting).
  23.  
  24. The problem
  25. -----------
  26.  
  27. 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 and programming IDEs.
  28.  
  29. Unfortunately, I'm also a gamer. Due to [a peculiarity in how DirectX handles mouse buttons](http://www.heimburg.com/blog/2007/03/13/dos-and-donts-1-do-support-left-handed-mouse-mode/), quite a lot of games - regardless of whether they are high-budget releases or single-developer freeware - ignore `Win-swap` and (as far as I've determined) read button signals from the driver level.
  30.  
  31. This usually means that either (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.
  32.  
  33. My current rickety workaround, how I arrived at it, and why it needs to change
  34. ------------------------
  35.  
  36. Several years ago I thought that the obvious solution to solve this issue was to buy a gaming mouse that has a configurable drivers - so I bought Razer Abyssus and downloaded the latest drivers for it.
  37.  
  38. Unfortunately, the latest drivers (v2.01) had a bug where every time you booted the system, it would alter the scroll wheel settings by taking the current lines-per-scroll number **and multiplying it TEN TIMES** (with a cap of 100 lines per scroll). Sources I could find on the matter said that Razer responded to someone in private mail that they wouldn't fix it, and that drivers v2.00 were free from that defect.
  39.  
  40. So I installed v2.00, opened the drivers window, selected "Buttons" tab and clicked on "left-handed" orientation. UI showed that buttons were switched. I opened the benchmark game and *the change had no effect*.
  41.  
  42. About two years later I realised that orientation setting was, in fact, an UI overlay for `Win-swap`, and in order to use a left-handed mouse, I had to switch back to "right-handed" orientation and manually change buttons. And so I did.
  43.  
  44. Unfortunately, turns out v2.00 *also* had a bug: if you bound `menu` to `left`, it would fire a single click of `menu` on the **depressing** of `left`. This meant that I was physically unable to hold down `menu` and that for all my `menu` clicks there was a slight but very noticeable delay between button press and reaction. Depending on the game, that meant I couldn't perform some (important) action or I had my reaction time effectively doubled.
  45.  
  46. The cherry on top was that, in the driver, no other button/function combination resulted in such behaviour. Which ultimately proved useful - I set `left` to mouse button 4 in the driver, installed X-Mouse Button Control and made it "intercept" mouse button 4 to `menu`.
  47.  
  48. And this setup had worked for every single game (with a sole insignificant exception). But it's a hodge-podge solution of specific hardware, specific *out-dated* drivers and specific software on top of it. If any single part stops working - mouse dies, I lose driver installer, X-Mouse turns out to be incompatible with whatever next Windows version I'll install - it falls apart.
  49.  
  50. And the worst part is that Razer, as far as I know, is supposed to be the leader in the field of gaming mice, so if I can't trust ***them*** to make drivers without terrifying, usability-breaking bugs, can I trust another manufacturer to do the same? Or can I trust a manufacturer of the elusive left-handed gamimg mouse, to have buttons in the right order?
  51.  
  52. Other solutions that I tried
  53. --------------------------
  54.  
  55. Over the course of last 5 years, I have tried about 8 different applications (one of which was a shareware/demo version of a paid software) that were supposed to switch buttons around. Unfortuantely, I only remember two names: D-Mouse and X-Mouse Button Control. But none of them worked - all (except X-Mouse Button Control) they were either an UI overlay for `Win-swap` or they switched the buttons on even shallower level than `Win-swap` (like D-Mouse).
  56.  
  57. X-Mouse Button Control came closest, but unfortunately it doesn't actually intercept original signals, so (if you set it to intercept left click with right click and vice versa) you end up sending both `click` and `menu` with either mouse button.
  58.  
  59. I also tried AutoHotKey, but simple
  60.  
  61. left::right
  62. right::left
  63.  
  64. macro (please assume proper syntax which I don't remember) didn't work, and the community was less than helpful. (Forums used to be filled to brim with RTFM responses.)
  65.  
  66. Possible points of confusion
  67. --------------------
  68.  
  69. I have came across a model of laptop, which has non-standard, expanded Windows mouse config menu (including an extra tab with makers icon), which makes `Win-swap` work on driver level - so before testing, please ensure you are not testing on one of these.
  70.  
  71. Benchmarks
  72. --------------
  73.  
  74. If you have a solution in mind and want to test it (ie. check if enabling/disabling `Win-swap` produces any changes in detecting which mouse button was clicked), the following games ignore `Win-swap` in their current versions:
  75.  
  76. - *WHICH*, a horror game by Mike Inel, the sole exception that didn't work with my rickety setup
  77. - *Warframe*, by Digital Extremes
  78. - *Terraria*, by Re-Logic
  79. - *Super Wolfenstein HD*, a PewDiePie Jam game by Free Lives
  80.  
  81. ...and the following games used to ignore `Win-swap` when I played them, but might no longer do:
  82.  
  83. - *Firefall*, by Red 5 Studios
  84. - *King's Bounty: The Legend* (please note camera control is bound on `Win-swap` level to right button, while movement is bound on drivers level to left button, so if you enable `Win-swap`, both camera and movement will be bound to the same button)
  85. - *Jade Empire*, by BioWare
  86. - *Fable*, by Lionhead Studios
  87.  
  88. Thank you in advance for any answers.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement