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

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

Closed
thernstig opened this issue Feb 22, 2020 · 20 comments
Closed

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

thernstig opened this issue Feb 22, 2020 · 20 comments
Labels
Area-User Interface Issues pertaining to the user interface of the Console or Terminal Help Wanted We encourage anyone to jump in on these. Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. Resolution-Won't-Fix We're just really obstinate about this. There's probably a good reason.

Comments

@thernstig
Copy link

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

@thernstig thernstig added the Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. label Feb 22, 2020
@ghost ghost added Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting Needs-Tag-Fix Doesn't match tag requirements labels Feb 22, 2020
@zadjii-msft zadjii-msft added Area-User Interface Issues pertaining to the user interface of the Console or Terminal Help Wanted We encourage anyone to jump in on these. Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. and removed Issue-Feature Complex enough to require an in depth planning process and actual budgeted, scheduled work. labels Feb 23, 2020
@ghost ghost removed the Needs-Tag-Fix Doesn't match tag requirements label Feb 23, 2020
@zadjii-msft zadjii-msft added this to the Terminal Backlog milestone Feb 23, 2020
@DHowett-MSFT
Copy link
Contributor

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

@DHowett-MSFT DHowett-MSFT removed the Needs-Triage It's a new issue that the core contributor team needs to triage at the next triage meeting label Feb 24, 2020
@thernstig thernstig changed the title Feature request: Keyboards shortcut to show all keyboard shortcuts Feature request: Keyboard shortcut to show all keyboard shortcuts Feb 24, 2020
@abhijeetviswam
Copy link
Contributor

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

@thernstig
Copy link
Author

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

@rafsawicki
Copy link

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

@zadjii-msft
Copy link
Member

You sound like someone who'd be interested in:

  • Feature Request: Command Palette #2046 - Command Palette, and the spec Add a spec for the Command Palette #2193
  • Request: Right-click menu inside TerminalControl (w/ Copy & Paste?) #3337 - A context menu within the terminal control
  • The default keybindings for panes:
    // Pane Management
    { "command": "closePane", "keys": "ctrl+shift+w" },
    { "command": { "action": "splitPane", "split": "horizontal"}, "keys": "alt+shift+-" },
    { "command": { "action": "splitPane", "split": "vertical"}, "keys": "alt+shift+plus" },
    { "command": { "action": "resizePane", "direction": "down" }, "keys": "alt+shift+down" },
    { "command": { "action": "resizePane", "direction": "left" }, "keys": "alt+shift+left" },
    { "command": { "action": "resizePane", "direction": "right" }, "keys": "alt+shift+right" },
    { "command": { "action": "resizePane", "direction": "up" }, "keys": "alt+shift+up" },
    { "command": { "action": "moveFocus", "direction": "down" }, "keys": "alt+down" },
    { "command": { "action": "moveFocus", "direction": "left" }, "keys": "alt+left" },
    { "command": { "action": "moveFocus", "direction": "right" }, "keys": "alt+right" },
    { "command": { "action": "moveFocus", "direction": "up" }, "keys": "alt+up" },

@Chips1234
Copy link
Contributor

Sure, I can try implementing that.

@Chips1234
Copy link
Contributor

Chips1234 commented Apr 17, 2020

What should the keyboard shortcut be to open this dialogue?

@thernstig
Copy link
Author

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

@Chips1234
Copy link
Contributor

Chips1234 commented Apr 18, 2020 via email

@Chips1234
Copy link
Contributor

Chips1234 commented Apr 18, 2020 via email

@thernstig
Copy link
Author

Or just shift+?

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

@zadjii-msft
Copy link
Member

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 ☺️

@Chips1234
Copy link
Contributor

Chips1234 commented Apr 20, 2020 via email

@Chips1234
Copy link
Contributor

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

@zadjii-msft
Copy link
Member

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.

@Chips1234
Copy link
Contributor

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

@ghost ghost added the In-PR This issue has a related PR label May 11, 2020
@ghost ghost removed the In-PR This issue has a related PR label Aug 13, 2020
@zadjii-msft zadjii-msft modified the milestones: Terminal Backlog, Backlog Jan 4, 2022
@MrM40
Copy link

MrM40 commented Feb 12, 2022

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

@zadjii-msft
Copy link
Member

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 zadjii-msft added the Needs-Discussion Something that requires a team discussion before we can proceed label Jul 12, 2023
@thernstig
Copy link
Author

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

@zadjii-msft
Copy link
Member

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 zadjii-msft closed this as not planned Won't fix, can't repro, duplicate, stale Jul 18, 2023
@zadjii-msft zadjii-msft added Resolution-Won't-Fix We're just really obstinate about this. There's probably a good reason. and removed Needs-Discussion Something that requires a team discussion before we can proceed labels Jul 18, 2023
@microsoft-github-policy-service microsoft-github-policy-service bot added Needs-Tag-Fix Doesn't match tag requirements and removed Needs-Tag-Fix Doesn't match tag requirements labels Jul 18, 2023
@zadjii-msft zadjii-msft removed this from the Backlog milestone Jul 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-User Interface Issues pertaining to the user interface of the Console or Terminal Help Wanted We encourage anyone to jump in on these. Issue-Task It's a feature request, but it doesn't really need a major design. Product-Terminal The new Windows Terminal. Resolution-Won't-Fix We're just really obstinate about this. There's probably a good reason.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants