Feature request: Keyboard shortcut to show all keyboard shortcuts #6595

Closed
opened 2026-01-31 00:42:36 +00:00 by claunia · 20 comments
Owner

Originally created by @thernstig on GitHub (Feb 22, 2020).

Description of the new feature/enhancement

GitHub, GitLab and many other tools have a keyboard shortcut to show keyboard shortcuts. E.g. on the main page of GitHub, try typing shift+? and you will get a pop-up with keyboard shortcuts.

I think it would be quite nice to have this feature for Windows Terminal. It would increase the discoverability of all keyboard shortcuts, helping developers become more productive. Becoming more productive with the terminal also most likely means sticking with it as a superior terminal.

Originally created by @thernstig on GitHub (Feb 22, 2020). # Description of the new feature/enhancement GitHub, GitLab and many other tools have a keyboard shortcut to show keyboard shortcuts. E.g. on the main page of GitHub, try typing <kbd>shift+?</kbd> and you will get a pop-up with keyboard shortcuts. I think it would be quite nice to have this feature for Windows Terminal. It would increase the discoverability of all keyboard shortcuts, helping developers become more productive. Becoming more productive with the terminal also most likely means sticking with it as a superior terminal.
Author
Owner

@DHowett-MSFT commented on GitHub (Feb 24, 2020):

Yeah, we should probably have something like this. Taking off triage since it makes sense as a backlog item

@DHowett-MSFT commented on GitHub (Feb 24, 2020): Yeah, we should probably have something like this. Taking off triage since it makes sense as a backlog item
Author
Owner

@abhijeetviswam commented on GitHub (Mar 18, 2020):

How about something similar to what's done for vscode?
The shortcut to list all shortcuts will redirect to a URL - https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf

We can have a PDF listing all the keyboard shortcuts in doc/user-docs

@abhijeetviswam commented on GitHub (Mar 18, 2020): How about something similar to what's done for vscode? The shortcut to list all shortcuts will redirect to a URL - https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf We can have a PDF listing all the keyboard shortcuts in `doc/user-docs`
Author
Owner

@thernstig commented on GitHub (Mar 18, 2020):

@abhijeetviswam The downside of that approach is that you will have to be connected to the internet to see them. VS Code has it built into VS Code as well, try pressing ctrl+s ctrl+k. I also feel forcing the user to leave the GUI is a bad UX experience.

@thernstig commented on GitHub (Mar 18, 2020): @abhijeetviswam The downside of that approach is that you will have to be connected to the internet to see them. VS Code has it built into VS Code as well, try pressing <kbd>ctrl+s ctrl+k</kbd>. I also feel forcing the user to leave the GUI is a bad UX experience.
Author
Owner

@rafsawicki commented on GitHub (Apr 6, 2020):

I believe that in general, discoverability of features that are only available under keyboard shortcuts could be better. As a personal example, I'm used to working with multiple panes in terminal as in Terminator it's as easy as right click -> "split horizontally / vertically". Trying to do that in Windows Terminal was like:

  • right click - oops, that's a text paste
  • click on arrow beside plus button - nothing there
  • check out options, maybe it's there as a configuration option with a current shortcut - nope
  • give up and google for it

VS code has a great discoverability story in my opinion, as I can simply press Ctrl + Shift + P or click View -> Command Palette and then command search anything that I don't remember a shortcut for. I'm not sure how feasible is to do something similar in a terminal app.

@rafsawicki commented on GitHub (Apr 6, 2020): I believe that in general, discoverability of features that are only available under keyboard shortcuts could be better. As a personal example, I'm used to working with multiple panes in terminal as in Terminator it's as easy as right click -> "split horizontally / vertically". Trying to do that in Windows Terminal was like: - right click - oops, that's a text paste - click on arrow beside plus button - nothing there - check out options, maybe it's there as a configuration option with a current shortcut - nope - give up and google for it VS code has a great discoverability story in my opinion, as I can simply press Ctrl + Shift + P or click View -> Command Palette and then command search anything that I don't remember a shortcut for. I'm not sure how feasible is to do something similar in a terminal app.
Author
Owner

@zadjii-msft commented on GitHub (Apr 6, 2020):

You sound like someone who'd be interested in:

@zadjii-msft commented on GitHub (Apr 6, 2020): You sound like someone who'd be interested in: * #2046 - Command Palette, and the spec #2193 * #3337 - A context menu within the terminal control * The default keybindings for panes:https://github.com/microsoft/terminal/blob/4f8acb4b9fbd61196d0a5287749a58abe0fbaa28/src/cascadia/TerminalApp/defaults.json#L245-L256
Author
Owner

@Chips1234 commented on GitHub (Apr 17, 2020):

Sure, I can try implementing that.

@Chips1234 commented on GitHub (Apr 17, 2020): Sure, I can try implementing that.
Author
Owner

@Chips1234 commented on GitHub (Apr 17, 2020):

What should the keyboard shortcut be to open this dialogue?

@Chips1234 commented on GitHub (Apr 17, 2020): What should the keyboard shortcut be to open this dialogue?
Author
Owner

@thernstig commented on GitHub (Apr 18, 2020):

I think something with question mark, since in web apps in browser the most common shortcut is the question mark shift+? on my Swedish keyboard at least.

How about ctrl+shift+??

@thernstig commented on GitHub (Apr 18, 2020): I think something with question mark, since in web apps in browser the most common shortcut is the question mark <kbd>shift+?</kbd> on my Swedish keyboard at least. How about <kbd>ctrl+shift+?</kbd>?
Author
Owner

@Chips1234 commented on GitHub (Apr 18, 2020):

Yeah, that will be good.

@Chips1234 commented on GitHub (Apr 18, 2020): Yeah, that will be good.
Author
Owner

@Chips1234 commented on GitHub (Apr 18, 2020):

Or just shift+?

@Chips1234 commented on GitHub (Apr 18, 2020): Or just shift+?
Author
Owner

@thernstig commented on GitHub (Apr 20, 2020):

Or just shift+?

How would you then just do a normal question mark? It is a terminal where you write after all 😆

@thernstig commented on GitHub (Apr 20, 2020): > Or just shift+? How would you then just do a normal question mark? It is a terminal where you write after all 😆
Author
Owner

@zadjii-msft commented on GitHub (Apr 20, 2020):

ctrl+shift+? would probably be what I'd lean to (before doing any research on it), though we can always discuss what the default should be once we see a proof-of-concept. Changing the keybinding should be easy ☺️

@zadjii-msft commented on GitHub (Apr 20, 2020): <kbd>ctrl+shift+?</kbd> would probably be what I'd lean to (before doing any research on it), though we can always discuss what the default should be once we see a proof-of-concept. Changing the keybinding should be easy ☺️
Author
Owner

@Chips1234 commented on GitHub (Apr 20, 2020):

Oh yeah, good point.

@Chips1234 commented on GitHub (Apr 20, 2020): Oh yeah, good point.
Author
Owner

@Chips1234 commented on GitHub (May 10, 2020):

Is there any way to get the keybinding data entered in the settings.JSON file and display it over in a XAML file? I want it to change based on the user's input. Thanks in advance.

@Chips1234 commented on GitHub (May 10, 2020): Is there any way to get the keybinding data entered in the `settings.JSON` file and display it over in a XAML file? I want it to change based on the user's input. Thanks in advance.
Author
Owner

@zadjii-msft commented on GitHub (May 11, 2020):

If there was a trivial way to do that, then this would probably already be done 😉

We do something similar in TerminalPage::_CreateNewTabFlyout, though I'd imagine for this dialog, we'd want something more efficient than manually creating every possible shortcut action to see i there's a key bound to it. We'd probably want AppKeyBindings to expose some sort of public way to query all the key->action mappings.

@zadjii-msft commented on GitHub (May 11, 2020): If there was a trivial way to do that, then this would probably already be done 😉 We do something similar in [TerminalPage::_CreateNewTabFlyout](https://github.com/microsoft/terminal/blob/master/src/cascadia/TerminalApp/TerminalPage.cpp#L283), though I'd imagine for this dialog, we'd want something more efficient than manually creating every possible shortcut action to see i there's a key bound to it. We'd probably want `AppKeyBindings` to expose some sort of public way to query all the key->action mappings.
Author
Owner

@Chips1234 commented on GitHub (May 11, 2020):

Actually, I’m almost done with putting in every shortcut, I was just about to make a pull request.

@Chips1234 commented on GitHub (May 11, 2020): Actually, I’m almost done with putting in every shortcut, I was just about to make a pull request.
Author
Owner

@MrM40 commented on GitHub (Feb 12, 2022):

Looking up shortcuts in the defaults.json directly is searchable (Ctrl+F) and that is very vaulable.

@MrM40 commented on GitHub (Feb 12, 2022): Looking up shortcuts in the [defaults.json](https://github.com/microsoft/terminal/blob/main/src/cascadia/TerminalSettingsModel/defaults.json ) directly is searchable (Ctrl+F) and that is very vaulable.
Author
Owner

@zadjii-msft commented on GitHub (Jul 12, 2023):

I idly wonder if such a keybinding should just bring you to the Actions page of the Settings UI at this point. Doesn't really seem like we need to have another UI surface for this...

image

@zadjii-msft commented on GitHub (Jul 12, 2023): I idly wonder if such a keybinding should just bring you to the Actions page of the Settings UI at this point. Doesn't _really_ seem like we need to have _another_ UI surface for this... ![image](https://github.com/microsoft/terminal/assets/18356694/b659c382-85ea-4858-8bb8-a19528e1a894)
Author
Owner

@thernstig commented on GitHub (Jul 12, 2023):

@zadjii-msft I am 50/50 on that. A pop-up ala Github, i.e. an overlay, just requires pressingEscape to close it. Great if you want to check something quickly, and most likely "not as heavy" to open. Surely a ctrl+shift+w works to close the Settings though.

But I am not convinced myself. Maybe easier for you to just stick with opening the Actions page.

@thernstig commented on GitHub (Jul 12, 2023): @zadjii-msft I am 50/50 on that. A pop-up ala Github, i.e. an overlay, just requires pressing<kbd>Escape</kbd> to close it. Great if you want to check something quickly, and most likely "not as heavy" to open. Surely a <kbd>ctrl+shift+w</kbd> works to close the Settings though. But I am not convinced myself. Maybe easier for you to just stick with opening the Actions page.
Author
Owner

@zadjii-msft commented on GitHub (Jul 18, 2023):

After some team discussion, we came to the consensus of "yea, let's cut this". The SUI exists now, which serves this purpose (well enough). The SUI actions page is okay right now, and we should just make that better (which is tracked in numerous places from #10000).

@zadjii-msft commented on GitHub (Jul 18, 2023): After some team discussion, we came to the consensus of "yea, let's cut this". The SUI exists now, which serves this purpose (well enough). The SUI actions page is _okay_ right now, and we should just make that better (which is tracked in numerous places from #10000).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#6595