You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The hotkey recorder hardcodes preferredMode: "logical" regardless of the Adaptive layout mapping toggle on the Keyboard shortcuts page. On macOS, ⌥+digit produces alternate characters (⌥1 → ¡, ⌥2 → ™, ⌥3 → £, etc.). The "logical" mode reads event.key, so the Option-modified character is what gets saved — never the digit. The Adaptive toggle has no effect on recording; it is only consulted at dispatch time via bindingToDispatchChord.
Repro (US keyboard, macOS)
Open Settings → Keyboard shortcuts.
Toggle Adaptive layout mapping either on or off (does not matter).
Click the chord chip next to "Switch to Workspace 1" and press ⌘⌥1.
Saved binding renders as ⌘⌥¡ (often appears as ⌘⌥i because ¡ looks like a tall i in the chip).
…and have resolveCapturedBinding map "code" to captured.codeChord for printable keys so a ⌥+digit press persists its physical position instead of the Option-modified character. (Alternatively: always force codeChord whenever Option is held on macOS, since the produced character is rarely what the user means.)
Workaround for affected users
Write the override directly to localStorage (Superset DevTools console), bypassing the recorder. Example — swap the workspace/tab number rows so workspaces become ⌘⌥1–9 and tabs become ⌘1–9:
String form parses as mode: "physical" and is dispatched verbatim, immune to the modifier-character substitution.
Scope
Confirmed on macOS, Superset 1.11.3. Any default action whose chord includes ⌥ (e.g. JUMP_TO_TAB_*) is unrecordable via the UI on this layout; same pattern presumably affects other Option-modified chords across non-US layouts where the recorder also gets a Latin character.
Activity
fix: allow Option+number keyboard shortcuts on macOS (#3142)
[-][bug] the title of bug report[/-][+][bug] `option` shortcut does not work[/+]Kitenite commentedon May 6, 2026
Related reports (cross-referenced during issue triage — same area, may or may not share a root cause):
optionshortcut does not work #3142 — [bug]optionshortcut does not workaneym commentedon May 26, 2026
Root cause (Superset 1.11.3, macOS)
The hotkey recorder hardcodes
preferredMode: "logical"regardless of the Adaptive layout mapping toggle on the Keyboard shortcuts page. On macOS, ⌥+digit produces alternate characters (⌥1 →¡, ⌥2 →™, ⌥3 →£, etc.). The "logical" mode readsevent.key, so the Option-modified character is what gets saved — never the digit. The Adaptive toggle has no effect on recording; it is only consulted at dispatch time viabindingToDispatchChord.Repro (US keyboard, macOS)
⌘⌥¡(often appears as⌘⌥ibecause¡looks like a talliin the chip).⌘⌥™, ⌘⌥3 as⌘⌥£, and so on.Code references (extracted from
app.asar)dist/renderer/assets/page-kkTxoSSn.js:dist/renderer/assets/useRecordHotkeys-Rf7mE_nl.js:captureHotkeyFromEventproduces bothcodeChord(meta+alt+1fromevent.code === "Digit1") andkeyChord(meta+alt+¡fromevent.key).resolveCapturedBinding(captured, preferredMode)returnskeyChordwheneverpreferredMode === "logical".useKeyboardPreferencesStoreexposesadaptiveLayoutEnabledbut it is never threaded intopreferredModeat the recorder call site.Suggested fix
Thread the preference through:
…and have
resolveCapturedBindingmap"code"tocaptured.codeChordfor printable keys so a ⌥+digit press persists its physical position instead of the Option-modified character. (Alternatively: always forcecodeChordwhenever Option is held on macOS, since the produced character is rarely what the user means.)Workaround for affected users
Write the override directly to
localStorage(Superset DevTools console), bypassing the recorder. Example — swap the workspace/tab number rows so workspaces become ⌘⌥1–9 and tabs become ⌘1–9:String form parses as
mode: "physical"and is dispatched verbatim, immune to the modifier-character substitution.Scope
Confirmed on macOS, Superset 1.11.3. Any default action whose chord includes ⌥ (e.g.
JUMP_TO_TAB_*) is unrecordable via the UI on this layout; same pattern presumably affects other Option-modified chords across non-US layouts where the recorder also gets a Latin character.