Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Keyboard shortcut manager #6

Open
Jaykul opened this issue May 7, 2019 · 31 comments
Open

Keyboard shortcut manager #6

Jaykul opened this issue May 7, 2019 · 31 comments

Comments

@Jaykul
Copy link

@Jaykul Jaykul commented May 7, 2019

I would love a good, lightweight shortcut key manager.

Ideally, I'd like to be able to remap some of the new windows hotkeys (like putting Win+F back to "find" (which is now Win+S for "search") instead of the new "Feedback").

Bonus points if you can tell me who registered which hotkeys, so I can find and kill OneNote when it clobbers the PrtScn button...

I think it would also be awesome if it could kick off executables or scripts like PowerShell or WSF scripts.

@orev

This comment has been minimized.

Copy link

@orev orev commented May 7, 2019

Would love to see something that allows one to view and possibly alter the system hotkey table. This has been sorely missing from Windows for its whole history, so would be really helpful!

@ganeloni

This comment has been minimized.

Copy link

@ganeloni ganeloni commented May 8, 2019

I subscribed to GitHub just to to say it would be wonderful

@EvansWinner

This comment has been minimized.

Copy link

@EvansWinner EvansWinner commented May 9, 2019

Massive extra points for some pre-loaded shortcut "themes," like maybe a vim theme and an Emacs theme.

@kort3x

This comment has been minimized.

Copy link

@kort3x kort3x commented May 9, 2019

throw in autotype:
ctrl+shift+u => types that long url you have to use all the time

@gargoylemike

This comment has been minimized.

Copy link

@gargoylemike gargoylemike commented May 9, 2019

If this is not added, you can try AutoHotKey and get many of the requested features

@bloomtom

This comment has been minimized.

Copy link

@bloomtom bloomtom commented May 10, 2019

Bonus points if you can tell me who registered which hotkeys, so I can find and kill OneNote when it clobbers the PrtScn button...

This might be impossible to get perfect since a process sometimes hooks WH_KEYBOARD_LL to get all key inputs, and triggers actions based on whatever it wants. But just being able to see all the processes which have used RegisterHotKey would be phenomenal.

@belg4mit

This comment has been minimized.

Copy link

@belg4mit belg4mit commented May 12, 2019

@Ronsss

This comment has been minimized.

Copy link

@Ronsss Ronsss commented May 13, 2019

If this is not added, you can try AutoHotKey and get many of the requested features

True, but why should we rely on a third party app when MS should be providing this sort of basic functionality.

@GingerGraham

This comment has been minimized.

Copy link

@GingerGraham GingerGraham commented May 24, 2019

+1

@marypcbuk

This comment has been minimized.

Copy link

@marypcbuk marypcbuk commented May 24, 2019

for keyboard shortcuts to be useful in Power Toys, Microsoft would have to allow users to remap shortcuts that Windows tools take over, like putting Shift-Win-S back to OneNote, but Windows blocks those reassignments, even in the registry.

@mfilippov

This comment has been minimized.

Copy link

@mfilippov mfilippov commented May 30, 2019

I want to remap Ctrl+C -> Win+C to use easy use my mac keyboard.

@Beatbug

This comment has been minimized.

Copy link

@Beatbug Beatbug commented Jul 3, 2019

+1

@ecc86

This comment has been minimized.

Copy link

@ecc86 ecc86 commented Jul 28, 2019

Also really great would be to export/import custom keymaps to share between devices.

@kort3x

This comment has been minimized.

Copy link

@kort3x kort3x commented Jul 29, 2019

Also really great would be to export/import custom keymaps to share between devices.

I like it.
Like a JSON file which can be synced via cloud.

@larrym

This comment has been minimized.

Copy link

@larrym larrym commented Aug 4, 2019

+1

@skagon

This comment has been minimized.

Copy link

@skagon skagon commented Sep 26, 2019

Wow, I just came in here thinking that it would be just me wanting that. Of course, I was thinking of something very specific, but hey, who am I to argue with an even better idea?
For the record, I wanted a PowerToy giving users the ability to remap the "change keyboard language" shortcut, which only accepts CTRL+SHIFT, ALT+LEFT_SHIFT, [GRAVE ACCENT `] or nothing!
For us people who type a lot and between languages, the ability to set one single dedicated key would be God-sent.
Of course, even more functionality would be even better.

@xfirf

This comment has been minimized.

Copy link

@xfirf xfirf commented Oct 21, 2019

Pressing and holding "Windows" should show the available shortcuts of the current active application. E.g. OneNote is active I can see all shortcuts available in OneNote. When switchting to Chrome I should see all Chrome-shortcuts while holding "Windows"

@1kamma

This comment has been minimized.

Copy link

@1kamma 1kamma commented Nov 1, 2019

If you will add the option to remap ALL the keyboard softwarely, to the system (not as an addon like ahk, that if an app with high hierarchy crashes, the custom-keystrokes stuck) permanently, that will be Great!

@crutkas

This comment has been minimized.

Copy link
Collaborator

@crutkas crutkas commented Dec 4, 2019

adding in shortcut guide as well here as the two PowerToys work together.

This was referenced Dec 10, 2019
@crutkas

This comment has been minimized.

Copy link
Collaborator

@crutkas crutkas commented Dec 10, 2019

SharpKeys is one tool on Windows that does this (https://github.com/randyrants/sharpkeys) and was crucial for when running bootcamp to get your laptop keyboard to run like a Windows Keyboard for remapping.

Mac has a similar tool, https://github.com/pqrs-org/Karabiner-Elements that was important for the same reason when using a Windows style keyboard and having it map like a Mac keyboard.

There are tons of use cases past these two.

  • a nice to have requirement here would be to have changes instantly be reflected without a restart
  • movable to different computers
  • per-keyboard ability to map (when you have a laptop and a full keyboard, happens when you bootcamp a mac and use a microsoft keyboard for instance)

Other applications that do this

Other general ideas

  • Make sure to rationalize all the shortcuts in PowerToys itself
  • Make sure any Windows key related shortcuts that are changed show up on the Windows Key Shortcut Guide (#179)
  • Support the idea of profiles that people can generate and share
    • Make a Mac to Windows shortcut profile to make it easier for Mac folks to land on Windows
  • Create a marketplace of the top profiles
  • Allow others to submit profiles to the marketplace
@marypcbuk

This comment has been minimized.

Copy link

@marypcbuk marypcbuk commented Dec 10, 2019

the hardest thing for keyboard remappers is to know what keys are present on the keyboard and to present the keys that can be remapped to. Even with SharpKeys it can be hard to know which key you are remapping when it's not a key that's on every keyboard, and getting a canonical list of keys with helpful descriptions would be useful. (eg right Alt and Alt Gr are not always the same, the right mouse/Windows context key has a completely inexplicable name)

remapping keyboard shortcuts on Windows currently requires registry access and so is blocked on Windows S; any options for changing that?

@crutkas

This comment has been minimized.

Copy link
Collaborator

@crutkas crutkas commented Dec 16, 2019

remapping keyboard shortcuts on Windows currently requires registry access and so is blocked on Windows S; any options for changing that?

we have ideas :)

@crutkas

This comment has been minimized.

Copy link
Collaborator

@crutkas crutkas commented Dec 16, 2019

the hardest thing for keyboard remappers is to know what keys are present on the keyboard and to present the keys that can be remapped to. Even with SharpKeys it can be hard to know which key you are remapping when it's not a key that's on every keyboard, and getting a canonical list of keys with helpful descriptions would be useful. (eg right Alt and Alt Gr are not always the same, the right mouse/Windows context key has a completely inexplicable name)

For those wondering, AltGR -> https://en.wikipedia.org/wiki/AltGr_key Most would still reference this as Right side alt :)

Another common scenarios are a Surface Laptop 2 does not have a right ctrl but a Surface Ergo keyboard does have a right ctrl

@Ronsss

This comment has been minimized.

Copy link

@Ronsss Ronsss commented Jan 4, 2020

Bonus points if you can tell me who registered which hotkeys, so I can find and kill OneNote when it clobbers the PrtScn button...

What I'm looking for is a tool that picks up shortcut key assignments in Windows shortcut files. I have one particular app that recreates it's default desktop shortcut every time I update it. The problem is it uses a shortcut combo I use constantly in Word. But since the shortcut is a Windows "system" shortcut I keep launching the stupid app. I don't even see it all the time because it opens in the background. So I have to remember to remove the keyboard shortcut from the newly recreated desktop shortcut. But I don't always remember.
.
So if the PowerToy can pick it up, showing 'ALL' shortcuts honored by Windows, where they are defined. If the tool can reach out and directly change the shortcuts too, that would be even better. But by simply pointing me to the right place it would save a huge amount of time, and hair pulling.

SeraphimaZ added a commit to SeraphimaZ/PowerToys that referenced this issue Jan 16, 2020
* tested ZoneSet
* fixed crash on loading fancy zones settings for custom layout
* zone creation fixes
This was referenced Jan 17, 2020
@crutkas

This comment has been minimized.

Copy link
Collaborator

@crutkas crutkas commented Jan 27, 2020

Hey friends, we just want to make sure everyone saw that we have a PM Spec for the feature. #1112 is the pull request. Please add in any comments there for consideration. @saahmedm did a ton of great work here and we want to be sure we're prioritizing the correct things and not missing anything.

@marypcbuk

This comment has been minimized.

Copy link

@marypcbuk marypcbuk commented Jan 29, 2020

For those wondering, AltGR -> https://en.wikipedia.org/wiki/AltGr_key Most would still reference this as Right side alt :)
E0_2038
and context key is E0_5D
and I have to keep a screenshot of these in my 'new PC setup list' to copy from every time!

@saahmedm

This comment has been minimized.

Copy link
Contributor

@saahmedm saahmedm commented Jan 31, 2020

For those wondering, AltGR -> https://en.wikipedia.org/wiki/AltGr_key Most would still reference this as Right side alt :)
E0_2038
and context key is E0_5D
and I have to keep a screenshot of these in my 'new PC setup list' to copy from every time!

thanks for the messages, not sure we're clear on the AltGr feedback however! the team (@crutkas) is going to contact @marypcbuk and better understand scenario directly

@Swoy

This comment has been minimized.

Copy link

@Swoy Swoy commented Feb 10, 2020

This looks awesome!

While the spec contain a lot of good features, I would like to include a few ideas of my own to the mix, for your consideration:

Tapable Keys

Assign tapping actions to keys. We can potentially allow for cadet style typing this way, which is something I'd wanted natively for years. Right now I need to use custom firmwares with custom keyboards. But it is not always an option, so it would be most welcome. And since the spec already mentions app-specific shortcuts, these would be great to use in text-editors.

Examples:

  1. Assign single tap to L/R shift, so as to type [ and ] and double tap them for { and }. And maybe tapping on L/R Ctrl for ( and ).
  2. Tap-dancing to perform a macro when a key has been tapped a set amount of times. (Just like Sticky Keys work with 5xShift today).

This can also provide a way to assign leader keys (much like how Fn works today, but with a OneShot style behaviour.

Examples:

  1. Set Print Screen as OneShot, and then pressing 1, 2 or 3 for screenshot Window, Screen or Defined area, respectively.
  2. OneShot Fn key to open a temporary layer (more below). where you can assign new commands to the entire keyboard. Perfect for those hard to remember ALT-000 code symbols.

Key layers

Assign key layers that can be reached by using a specified mod key + number row would greatly improve workflows and give almost an endless amount of hotkeys to those out there who currently use several keyboards to achieve this.

Is this doable?

@crutkas

This comment has been minimized.

Copy link
Collaborator

@crutkas crutkas commented Feb 10, 2020

@Swoy good idea, i doubt that would be in a v1. Once we have a better base for the remapper, happy to have community contributions for it.

@sirredbeard

This comment has been minimized.

Copy link

@sirredbeard sirredbeard commented Feb 10, 2020

For the Linux profile, I would propose the following shortcuts for WSL and desktop Linux users. This list is not exhaustive, it is merely a starting point for the types of shortcuts that could be included.

These shortcuts are influenced by the GNOME desktop environment and bash shell. GNOME at the moment the default Linux desktop on the most popular Linux distributions so it makes a logical starting point.

I would propose that eventually users be able to create, share, and load their own keyboard shortcut profiles. This way users could create profiles for the shortcuts used by KDE Plasma, MATE, and i3.

Linux Windows

Workspace Management

Super+[PgUp/Down] = Win+Ctrl+[Left/Right]
Note: Linux does not
create or delete workspaces.

Window Management

Ctrl+Alt+D = Win+M
Super+H = Win+[Down]

Desktop

Super+M = Win+A
PrtScn = Win+Shift+S

Accessibility

Super+Alt+8 = Win+Plus
Super+Alt+Plus = Win+Plus
Super+Alt+Minus = Win+Minus
Super+Alt+A = Win+Ctrl+Enter

Terminal

Ctrl+A = Home
Ctrl+E = End
Alt+B = Ctrl+Left
Ctrl+F = Ctrl+Right
Ctrl+P = Up
Ctrl+N = Down

Miscellaneous

Alt+F2 = Win+R
Shift+Ctrl+C = Ctrl+C
Shift+Ctrl+V = Ctrl+V
Ctrl+_ = Ctrl +Z

Already Similar

Win/Super+[Left/Right]
Win/Super+Shift+[Left/Right]
Alt+Tab
Win/Super
Win/Super+L
Ctrl+C
F11

Gnome Keyboard Shortcuts
KDE Keyboard Shortcuts
i3 Keyboard Shortcuts

@saahmedm

This comment has been minimized.

Copy link
Contributor

@saahmedm saahmedm commented Feb 11, 2020

@sirredbeard great work and thank you for all the links! this is a v valuable starting point

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.