Change:
This is a follow up on , which I can no longer comment on. The goal of was to align the shortcuts for stepping in the debugger between wen and electron. For this purpose, I changed the shortcut for web to also be F10 (and kept the old shortcut alt+F10 as a secondary for backwards compatibility). Unfortunately, I overlooked that on web, there is a command that does not exist on electron, which is "Focus Application Menu" ( in ), which also uses F10. Both are installed with the same priority (WorkbenchContrib), but as far as I can tell "Focus Application Menu" always takes precedence (maybe it is loaded earlier?). The good news is that my change () did not make anything worse, because we still have the old binding as secondary, and "Focus Application Menu" works as before because it takes precedence. The bad news is that my change did not have any effect (it did not make F10 work on web for the debugger as intended). I would like to discuss if there is any hope in resolving this conflict though. My understanding is that on Electron, focusing the menu bar is not handled by VSCode because there are platform specific native ways to do this: on Mac one can press on Windows it is of the desired menu item I see three ways forward: somehow increase the priority of F10 during debugging - so that F10 would go to application menu only when not suspended in the debugger - not sure how much many users intend to go to the application menu with F10 while in the debugger. When not suspended in the debugger, it could continue to go to the Application Menu. find new, maybe platform specific shortcuts for going to the Application Menu and free up F10 for stepping in the debugger. For example we could try to do something inspired by how the native shortcuts work, like adding one more modifier and otherwise keep ctrl+F2 and Alt+letter etc. live with Alt+F10 for stepping in the debugger and don't change anything (or rollback , it is mostly a no-op). Sorry for opening this can of worms... you were involved in this so far - any opinions?
Increasing the weight for the debug command should work when debugging
this is from , is it possible to change the keybinding of that command, possibly to alt+F10? Do you think this is a heavily used command? There are also Jupyter debug commands that will conflict with this and I don't see why we should change it based on mode vs just have consistent keybindings.
here's the usage in past 28 days ! So it seems like folk are using it moderately (maybe some by accident), but I am fine with changing it to .
Thanks all for your input. Should I send a PR to move "Focus app menu" (only available with isWeb) to Alt+F10 and remove "Debug: Step over"'s secondary Alt+F10 to free that up for the "Focus app menu"? Or do you want to make that change yourself?
Alright, we are doing it. Hopefully no torches and pitchforks

Discussion:
import { isFullscreen } from 'vs/base/browser/browser'; import { IHostService } from 'vs/workbench/services/host/browser/host'; import { BrowserFeatures } from 'vs/base/browser/canIUse'; <del> import { KeyCode } from 'vs/base/common/keyCodes'; </del> <ins> import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; </ins> import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { IsMacNativeContext, IsWebContext } from 'vs/platform/contextkey/common/contextkeys'; import { ICommandService } from 'vs/platform/commands/common/commands';

id: `workbench.actions.menubar.focus`, title: { value: localize('focusMenu', "Focus Application Menu"), original: 'Focus Application Menu' }, keybinding: { <del> primary: KeyCode.F10, </del> <ins> primary: KeyMod.Alt | KeyCode.F10, </ins> weight: KeybindingWeight.WorkbenchContrib, when: IsWebContext },

id: STEP_OVER_ID, weight: KeybindingWeight.WorkbenchContrib, primary: KeyCode.F10, <del> secondary: isWeb ? [(KeyMod.Alt | KeyCode.F10)] : undefined, // Keep Alt-F10 for web for backwards-compatibility </del> when: CONTEXT_DEBUG_STATE.isEqualTo('stopped'), handler: async (accessor: ServicesAccessor, _: string, context: CallStackContext | unknown) => { const contextKeyService = accessor.get(IContextKeyService);