Powertoys: Remap key to shortcut and shortcut to key

Created on 20 May 2020  路  18Comments  路  Source: microsoft/PowerToys

Summary of the new feature/enhancement

Ability to remap a single key (虏 for example, sleeping in the top left corner of my KB), and assign it for example to alt+space, in order to open powertoys run, or to "open a new terminal", or whatever

Cost-Large Issue-Feature Needs-Spec Product-Keyboard Shortcut Manager Resolution-Fix-Committed

Most helpful comment

The amount of requests for this (even till this day) tells me this issue should be pinned on the issue home page.

All 18 comments

+1

This would also be very useful for custom input shortcuts. For example I have a german keyboard that has the letter . I'd like to just get rid of that and write a { instead. But since that character can only be written by hitting a key combination, this is sadly not possible.

Tracking the shortcut to key issue here. We're hoping to have this in our v1 release. not in our roadmap, but highly-requested once we finish mission-critical items 馃馃徔

@saahmedm I think the Issue title should be renamed as well, not the key to shortcut only anymore, but also shortcut to a key. This can prevent people to create duplicated issues.

Since the issue where I posted this was closed, I repost the interface design that I suggested before.

Having a more user friendly interface for managing shortcuts or single key assignment also for special characters in a uniform interface would be a great thing. It could also be used to launch applications and have all the shortcuts sitting in one place.

83866399-0acda080-a728-11ea-8301-a2da8d7d2e82

The amount of requests for this (even till this day) tells me this issue should be pinned on the issue home page.

Just two small ideas: Is this the actual tracker for this subject? Then maybe it would help with searching if the word "tracker" is in the title?
Still new issues coming in with this question. Maybe, if there is a free space, it can be pinned to the issues page?

@arjunbalgovind
Why do we split the Keyboard remapper into two sections: "Remap key" and "Remap shortcut"? Ist this necessary or can we combine this sections into one?

We just released 0.20 and this should be resolved there. Please try it out.

Almost great - you can't map key to a key only in a specific app (even though you can map shortcut to a key only in a specific app).

@revanmj can you create a separate issue for that so that we can track it as a feature request? We prioritized app-specific shortcut remaps since there were more requests for that, however if there are enough requests for app-specific key remaps that could be something we include in the future as well.

Done #5374

We just released 0.20 and this should be resolved there. Please try it out.

@crutkas Still working with two separated methods. Therefore +1 for @htcfreek

@arjunbalgovind
Why do we split the Keyboard remapper into two sections: "Remap key" and "Remap shortcut"? Ist this necessary or can we combine this sections into one?

We had some discussions on this and this seemed to be the most logical way for us to present the UI while maintaining a logical behavior between key and shortcut remaps.

Currently if you remap a key, that affects your shortcut remapping as well. For example if you remap Caps Lock->Ctrl, and you remap Ctrl+C->Win+A, then pressing "CapsLock+C" on your keyboard will perform Win+A i.e. open the action center. This behavior can be clear if you click the "Type" button in the Remap Shortcuts window, and you press Caps Lock on your keyboard, it would show Ctrl instead, which shows the user that the key to key remaps affect the shortcut remaps.

If we try to combine the windows, at the time of adding the above example shortcut remap, we would have no way of knowing that CapsLock is now Ctrl in your remappings since the remappings have not been applied until you press OK. This would give users the wrong impression that the key remappings do not affect the shortcut remappings. Since there is no way to avoid this, we would have to change the entire behavior such that shortcut remappings occur first in priority and only then key remappings. This can have many issues however, for example you remap Ctrl+C->Win+A, and you remap Ctrl->Del. At the moment you press and hold Ctrl on your keyboard we have no way of knowing whether you are going to press a shortcut like Ctrl+C or not. This results in Del happening, but when you press C along with it suddenly the remap to Win+A gets activated. However for a brief period Del message has already been sent to your system and some text may have gotten deleted depending on where your cursor was. Because handling such scenarios like these would become much more confusing for both implementation and for users, we decided not to combine the windows. If a user uses key and shortcut remappings that are completely independent then yes combining windows does not have any problems. But the ability to have shortcuts remaps that use key remaps gives much more flexibility to the user, and for this scenario combining the windows is very problematic.

@htcfreek @Jay-o-Way Hope this clears up the necessity of the two windows

Just installed v0.20.1
still can't remap 'Insert' key to replace ALT+SHIFT (language change)
I wish I could change a language in one key stroke.... still can't

@friedman30 you could remap Insert to Win+Space for the same behavior

@arjunbalgovind I just mapped 'insert' to ALT+SPACE. Power Tools did save the new mapping, but it does not work... nothing is happening when I press the new mapped key (I mean it still works as it used to, it did not change its behavior)

I've used the "microsoft keyboard layout creator" in the past to create a new keyboard mapping, since the Italian keyboards don't have the backtick character or the tilde character, which are both very useful for programming and writing code. I would map Alt+' to the backtick and Alt+^ to the tilde character.

How can this be done with the PowerTools remapping? I tried "remap shortcuts" but it doesn't let me choose a random ascii character for the output. I only see numbers, basic letters, function keys and a list of virtual keys which I have no idea what value they have?

Ask for ASCII binding is #4467 Right now everything is based on a vkey under the hood

Was this page helpful?
0 / 5 - 0 ratings