[BUG] Desktop: ⌘/ never opens the shortcuts list on layouts where / needs Shift – it toggles an ordered list instead
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report
- [x] I am using the latest version of Claude Code
What's Wrong?
⌘/ is matched against the character the key produces, with the modifier set required to match exactly. The binding declares no Shift, so on any layout where / is a shifted character the chord carries Shift and can never match. On a German Mac layout / is ⇧7, so ⌘/ is unreachable.
It is not a silent no-op. The same chord reaches the composer's TipTap keymap, which binds Mod-Shift-7 to toggleOrderedList, so the keys that should open the shortcuts list start a numbered list instead. That layer gets it right because prosemirror-keymap retries a failed lookup against the US base layout derived from event.keyCode. The app's own table has no such retry.
Three more entries in that table go the same way here:
- ⌘; (side chat) needs ⇧, on German, so it always carries Shift
- ⇧⌘, (settings) resolves to
;rather than,, so the character comparison fails before modifiers matter - ⌃[ and ⌃] (focus pane) need ⌥5 and ⌥6, so they always carry Alt
⌘⇧, is worth singling out. On this layout that one chord is both ⌘; and ⇧⌘,, so it ought to reach the side chat or settings. It reaches neither.
What Should Happen?
⌘/ opens the keyboard shortcuts list on any layout.
Worth flagging rather than prescribing: Binding these by event.code would move them to whatever key sits in the US position, which is the opposite bug already reported in #78002.
Error Messages/Logs
No error is produced. Read from the shipped web bundle, reformatted for readability.
// assets/v1/shared-2-*.js – the shortcut table and its matcher
shortcuts_modal: {bindings: [{key: "/", modifiers: ["cmd"], platform: "mac"}]}
function match(e, b) {
if (b.code) { if (e.code !== b.code) return false }
else if (!e.key || e.key.toLowerCase() !== b.key.toLowerCase()) return false
const cmd = ..., ctrl = ..., shift = ..., alt = ...
return e.metaKey === cmd && e.ctrlKey === ctrl && e.shiftKey === shift && e.altKey === alt
}
The letter shortcuts in the same table do carry a code ({key: "r", code: "KeyR", ...}), so ⌥⌘R works fine here. Only the punctuation ones match on the character alone.
// assets/v1/vendor-all-8-*.js – TipTap, the colliding binding
addKeyboardShortcuts() {
return {"Mod-Shift-7": () => this.editor.commands.toggleOrderedList()}
}
// assets/v1/vendor-all-7-*.js – prosemirror-keymap, ol = US base layout by keyCode
if ((n.altKey || n.metaKey || n.ctrlKey) && (r = ol[n.keyCode]) && r != o) {
let hit = t[fl(r, n)]
if (hit && hit(e.state, e.dispatch, e)) return true
}
Steps to Reproduce
- Set the macOS keyboard layout to German
- Open the desktop app and focus the prompt box
- Press ⌘/, which here is ⌘⇧7. The shortcuts dialog does not open and a numbered list starts instead
- ⌘K, then "All keyboard shortcuts", opens the same dialog, so only the binding is out of reach
- Press ⌘⇧,, which here is both ⌘; and ⇧⌘,. Neither the side chat nor settings opens
- Press ⌃⌥5 or ⌃⌥6, which is ⌃[ and ⌃]. Pane focus does not move
French, Spanish, Nordic and JIS layouts reproduce it the same way.
Claude Model
Not sure / Multiple models
Is this a regression?
No, this never worked
Last Working Version
n/a
Claude Code Version
Claude desktop app 1.30096.1 (194d93), bundled Claude Code 2.1.229
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Other – no terminal involved, this is the desktop app UI
Additional Information
macOS 26.5.1 (25F80), German (Apple) keyboard layout.
No workaround beyond ⌘K. ~/.claude/keybindings.json does not reach these bindings, and macOS System Settings → Keyboard → App Shortcuts cannot help because none of them is a menu bar item.
Related, and I do not think any of these covers it:
- #78002 (open) is the inverse – zoom bound to physical US positions, so Norwegian
+/-fire the wrong action - #67450 (closed, stale) is closest in kind – ⌃` for the Terminal panel, unreachable on AZERTY and JIS
- #61340 (closed, stale) covers
Ctrl-Shift-[/Ctrl-'/Ctrl-\on German, but those are the Windows terminal shortcuts rather than this table - #58076 (closed, stale) is the same root cause one layer down, in the TUI