feat(ui): redesign the default shortcut layout around a mod+k leader

Single chords stay for everyday actions; open/go actions move to two-step
mod+k sequences; held mod+digit switches header session tabs and held
mod+alt+digit switches context panel surfaces. Rare actions leave the
shortcut schema for the command palette, every remaining action ships with
a default binding, and stored overrides from the old layout reset once.
Key matching now follows the physical key on non-Latin layouts and for
Option-modified digits on macOS, including in the recording dialog.
This commit is contained in:
Bohdan Triapitsyn
2026-08-26 14:52:31 +03:00
parent 76f977e580
commit 7977842e1e
44 changed files with 389 additions and 322 deletions
+10 -1
View File
@@ -2412,7 +2412,7 @@ export const useUIStore = create<UIStore>()(
{
name: 'ui-store',
storage: createDeferredSafeJSONStorage(),
version: 17,
version: 18,
migrate: (persistedState, version) => {
if (!persistedState || typeof persistedState !== 'object') {
return persistedState;
@@ -2433,6 +2433,15 @@ export const useUIStore = create<UIStore>()(
delete state.expandedEditorToolbar;
}
// v17 -> v18: the default shortcut layout was redesigned around the
// mod+k leader and the held digit prefixes. Old overrides were
// recorded against the previous defaults (e.g. a bare 'mod' surface
// prefix now collides with session tabs), so custom bindings start
// fresh on the new system.
if (version < 18) {
delete state.shortcutOverrides;
}
// v13 -> v14: the separate 'preview' surface merged into 'browser'.
// Stored preview tabs keep their URL and become browser tabs; their
// id encodes the mode, so it is rebuilt rather than left dangling.