Keyboard Shortcut for opening command palette in VS Code?
For me, it was bound to the timer setting in Razer Cortex. turned timer off function off and was fine.
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.
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.