Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Keyboard Shortcut for opening command palette in VS Code?

On windows 10 running VS Code how do I open the command pallete with keyboard shortcuts? Under the view menu it says the shortcut is ctrl+shift+P but doing that does not open the command palette?

enter image description here

like image 249
Zachscs Avatar asked Aug 08 '17 19:08

Zachscs


People also ask

What is the command palette VS Code?

The Command Palette is where all Commands are found. It's important that your command names are labeled appropriately so users can easily find them. This example features commands each displaying a clear category prefix, for example "GitHub Issues".

How do you open a command palette?

You can invoke the command palette by typing Ctrl + Shift + P . This can be customized by adding the commandPalette command to your key bindings.

How do I open the command palette in VS Code?

Command Palette# VS Code is equally accessible from the keyboard. The most important key combination to know is Ctrl+Shift+P, which brings up the Command Palette.

What is Ctrl K in VS Code?

To launch the Define Keybinding widget, press Ctrl+K Ctrl+K. The widget listens for key presses and renders the serialized JSON representation in the text box and below it, the keys that VS Code has detected under your current keyboard layout.


2 Answers

Well seems like f1 works instead of control+shift+p. Don't know why it lists that as the keyboard shortcut...

Edit: So on some of my computers ctrl + shift + p works fine. Not sure perhaps its a conflict with the mappings on particular laptops.

like image 162
Zachscs Avatar answered Oct 04 '22 04:10

Zachscs


Why it happens

Most probably it because of your OS keybindings conflicts with VSCode keybindings. And most probably your OS keybinding (Ctrl+Shift in our case) is binded for something important (for example, changing of layout), and because of this system moves the focus from the app to system, and the app cannot receive keypress event.

Any app cannot receive Ctrl-Shift-* event, not only VSCode.

How to test

I'm using Ubuntu, and i set Ctrl+Shift combination for layout change. After that i open developer console (Developer: Toggle Keyboard Shortcuts Troubleshooting) and tested. Here is the log:

[2020-09-13 11:28:35.706] [renderer1] [info] [KeybindingService]: / Received  keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 17, key: Control
[2020-09-13 11:28:35.706] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 5 ('Ctrl')
[2020-09-13 11:28:35.706] [renderer1] [info] [KeybindingService]: \ Keyboard event cannot be dispatched.

What happens here? The app (VSCode) detects Left Ctrl press. But when i press on Left Shift, the system (Ubuntu) handles Any Ctrl+Any Shift combination for layout change. Because the system (Ubuntu) handled this important event, it doesn't sends this event in the app (VSCode). And because of this the app (VSCode) don't received Left Shift key press event, because it was interrupted by the system (Ubuntu).

If you seeing the same, then you know a reason of the problem.

Simplest solution

Change system Ctrl+Shift (by default it listens for Any - left or right) event to Right Ctrl+Right Shift (or left) event. In this case the system will listen only for right keys, and will send left keys in apps. You don't need to modify the app shortcuts (as long as they do not use exactly right or left keys).

Notice importance of Any (default), Left and Right :)

I'm using Right Ctrl+Right Shift for system layout change, and Left Ctrl+Left Shift+P for command palette in VSCode.

And it is works now:

[2020-09-13 11:57:47.607] [renderer1] [info] [KeybindingService]: / Received  keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 17, key: Control
[2020-09-13 11:57:47.607] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl], code: ControlLeft, keyCode: 5 ('Ctrl')
[2020-09-13 11:57:47.607] [renderer1] [info] [KeybindingService]: \ Keyboard event cannot be dispatched.
[2020-09-13 11:57:47.715] [renderer1] [info] [KeybindingService]: / Received  keydown event - modifiers: [ctrl,shift], code: ShiftLeft, keyCode: 16, key: Shift
[2020-09-13 11:57:47.715] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: ShiftLeft, keyCode: 4 ('Shift')
[2020-09-13 11:57:47.715] [renderer1] [info] [KeybindingService]: \ Keyboard event cannot be dispatched.
[2020-09-13 11:57:47.789] [renderer1] [info] [KeybindingService]: / Received  keydown event - modifiers: [ctrl,shift], code: KeyP, keyCode: 80, key: P
[2020-09-13 11:57:47.790] [renderer1] [info] [KeybindingService]: | Converted keydown event - modifiers: [ctrl,shift], code: KeyP, keyCode: 46 ('P')
[2020-09-13 11:57:47.790] [renderer1] [info] [KeybindingService]: | Resolving ctrl+shift+[KeyP]
[2020-09-13 11:57:47.790] [renderer1] [info] [KeybindingService]: \ From 3 keybinding entries, matched workbench.action.showCommands, when: no when condition, source: user.

It is well known bug on Linux systems

1, 2, 3, 4

Windows?

I have Ctrl+Shift combination in both systems: Windows and Ubuntu. But this problem happens only on Ubuntu. Windows works fine with it.

like image 29
Amaimersion Avatar answered Oct 04 '22 04:10

Amaimersion