Terminal: Feature request: Keyboard shortcut to show all keyboard shortcuts

Created on 22 Feb 2020  路  16Comments  路  Source: microsoft/terminal

Description of the new feature/enhancement

GitHub, GitLab and many other tools have a keyboard shortcut to show keyboards shortcuts. E.g. on the main page of GitHub, try clicking 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 likel sticking with it as a superior terminal.

Area-User Interface Help Wanted Issue-Task Product-Terminal

Most helpful comment

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

All 16 comments

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

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 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.

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.

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

Sure, I can try implementing that.

What should the keyboard shortcut be to open this dialogue?

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+??

Yeah, that will be good.

Or just shift+?

Or just shift+?

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

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 鈽猴笍

Oh yeah, good point.

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.

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.

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

Was this page helpful?
0 / 5 - 0 ratings