PowerToys
PowerToys copied to clipboard
Mouse Button remapper
Summary of the new feature/enhancement
The problem
- Windows only support switch left and right mouse button (since many many years)
- Each mouse with more that three buttons come with a different configuration tool
- not all but the most (from known companies)
- when only buy mouses from one company you can use one tool
- but these tool are only support a few of generation mouses of the from the same comapnie
The Solution
Introduce a new module witch allows the user to remap the mouse buttons
Key features
- Support remap the typical five mouse buttons
- left, right, middle, forward, backward
- Support remap to another mouse button
- Support remap to keyboard keys
- Support remap to keyboard keys with modifiers
Nice to have
- Support remap all mouse buttons
- Support remap to multimedia key (play, pause, next track, etc.)
No-Goals (or after first version)
- Support hardcore/esoteric mouses with more then 10 buttons.
Possible problems
- Inaccessibly of the mouse buttons from OS
- Different APIs (inside the different drivers from the different companies)
- Loops (when press a remapped mouse button)
Current alternatives
Windows
-
X Mouse Button Control
- Support only five mouse buttons 😢
I have a mouse with a touch surface -- unfortunately the driver doesn't work with Windows 10 :-( .... I can use all kinds of movements: scrolling up/down works, but other things do crazy things by accident which I'd like to deactivate or change. In fact the mouse receiver seems to emulate two things: a regular "mouse device" and a "keyboard device" with which certain actions on the mouse simulate certain keystrokes. It would be great to be able to reconfigure all of that ....
+1 My mouse’s driver is bugged that it reads the middle button as the left button every time I wake my computer up from sleep.
For contribution, do mouse buttons have a similar codebase as keyboard keys at some low-level? If so, we can achieve this by simply supporting mouse buttons in our keyboard remapper.
+1 on this. I recently got a new (vertical) mouse for work and the company's software is pretty trashy, it doesn't actually work at all. All I want is just remapping 1 button to Control+W which is what I'm used to from my Corsair mouse on my personal desktop.
+1. I use two mice, and need them to have different mappings: The one on the left of the keyboard should have the left and right buttons swapped. (I'm not using multiple pointers; I just use whichever hand is free, holding the mouse on that side of the keyboard)
The mapping should also work sensibly across remote desktop. That means Powertoys doesn't need to be running on the server, and if it is running, it won't interfere with the remapping done on the client. (So I can remote to a shared account on a VM, or to my other PC that also has two mice, or to my PC from someone else's PC that just has a right-handed mouse, etcetera - and get the expected mappings)
IntelliPoint does this nicely, but only if the left-hand mouse is a model that it supports. That's a problem because it is no longer maintained. Windows' "swap button" setting does not support per-mouse settings, and does not work with remote desktop.
+1 my trackball mouse has 10 extra buttons, but the driver is conflicted with wintab driver, so I can't use it
Forgive me if cross-posting is not allowed.
From https://github.com/microsoft/PowerToys/issues/20993#issuecomment-1594514195
I, too, would like this capability. I have an AutoHotkey script that can do this, however, it does not work when connecting to remote desktops nor VMware Horizon VDI remote desktops. I assume it's because the Remote session software grabs the keyboard and 'owns' it so other hooks don't get fired. I tried MouseKeys. It works ok. I can live with it. Again, however, it does not have the ability to scroll. I need a mapping that works at the lowest level possible so that I can use the keyboard to navigate universally across tools. I am suffering massive RSI and found that using keyboard alone is alleviating much of my issues. PgUp and PgDown keys are not good enough as they move the cursor and aren't truly equivalent to scrolling. E.g. using PgUp and PgDown in Outlook doesn't scroll. I should be able to just hover over my email list and 'scroll' with the keyboard in this use case. Just like a mouse would.
I think this ticket should be reopened. I'm soooo close to having a keyboard-only setup working and this one is the remaining nagging pain point.
I've even used Gopher360 with the Xbox One controller for PC and it works for scrolling. What's interesting is that it also works in all the apps I've tried, even Remote Desktop software. I don't have any skill with driver code so I wouldn't be able to take the Gopher code and do something myself. But the Gopher code shows this should be doable.
Any progress on this one?
Fun fact: if somebody happens to have a compatible keyboard and mouse, then the MS Mouse and Keyboard app allows for many customizations.
+1 same here please mouse: logitech mxmaster
+1 ... especially if it enables my favorite use case:
- A) modify mouse buttons (similar to Ctrl + Scroll Up/Dn)
- B) use mouse buttons as modifiers
This could transform basic 5-button mice into 20-button mice, 20-button mice into 380-button mice -- up to n! buttons in theory, but maybe ~n(n-1) buttons in practice.
Examples:
- [Tap] right click = right click (normal behavior)
- [Hold] right click + [tap] <any key> = <any>
- [hold] Right click + [tap] scroll up/dn = zoom in/out, volume up/dn, cycle tabs, cycle windows, or...
- [hold] mouse button 4 + drag cursor (create selection box) = take screenshot (rectangle), extract text from selection, etc...
I use powertoys for just about all my enhancements except CAD with a touchpad. It would be INCREDIBLE to be able to use the 'right alt' as a substitute for the mouse middle click, seeing how a laptop touchpad has no middle click and middle click to pan/orbit on drawings is a HUGE time saver. It literally saves me 10-15 seconds per iteration, and sometimes that can be upwards of 10 iterations per modification, depending on the mod and drawing size, just to rotate and pan perspectives to confirm the drawing addition or mod is acceptable.
So all I really need is the ability to turn this feature on (say with a shortcut like Win-Shift-R/Alt), then have my R/Alt key available as a middle mouse click, until I disable it again thru the power toy panel or that cool shortcut like Win-Shift-R/Alt.
I HATE to install another 'powertoy' app to handle this feature (aka AutoHotKey) when I believe that the Keyboard Manager feature of PowerToys, which I've already got installed and use, would be capable. I know... icing on the cake. I am not opposed to a small dev fee in order for this, need be. IDK about anyone else but that seems reasonable to me.