feat(ui): land the centralized shortcuts core from #2532 with review fixes
The schema/config/bindings/registry/dispatcher module, useKeybind hooks, recording dialog, reworked shortcuts settings page, help dialog, and the localized action labels — re-based onto current main rather than merged (the branch predates 440+ commits including the session-tabs shortcuts). Review fixes applied on top of the original: - close_session_tab (alt+w) joins the schema with labels in every locale; it shipped on main after the PR's base and would otherwise silently die. - switch_context_surface's special-case in conflict resolution is now a declared prefixStyle config property instead of a magic id string. - Duplicate handler registration warns in dev builds. - The risky-browser-shortcut warning inspects every chord and covers mod+q/d/h/j/o/u plus mod+shift+w/q. - The dispatcher remembers which target armed a two-chord prefix so the window-level completion handler can distinguish a deliberate sequence from typing in an editable field (guard lands with the dispatch hook). - Schema tests: unique normalized default bindings enforced, and the flat-file-era override format proven to keep resolving.
This commit is contained in:
@@ -1086,6 +1086,7 @@ export const settingsDict = {
|
||||
'settings.openchamber.keyboardShortcuts.action.switch_context_surface.label': 'Kontextpanel-Oberfläche wechseln',
|
||||
'settings.openchamber.keyboardShortcuts.action.switch_context_surface.suffix': ' + 1…0',
|
||||
'settings.openchamber.keyboardShortcuts.action.new_chat.label': 'Neue Sitzung',
|
||||
'settings.openchamber.keyboardShortcuts.action.close_session_tab.label': 'Sitzungs-Tab schließen',
|
||||
'settings.openchamber.keyboardShortcuts.action.new_chat_worktree.label': 'Neuer Worktree-Entwurf',
|
||||
'settings.openchamber.keyboardShortcuts.action.new_mini_chat.label': 'Neues Mini-Chat-Fenster',
|
||||
'settings.openchamber.keyboardShortcuts.action.open_help.label': 'Tastenkürzel öffnen',
|
||||
@@ -1100,6 +1101,27 @@ export const settingsDict = {
|
||||
'settings.openchamber.keyboardShortcuts.action.expand_input.label': 'Eingabe erweitern',
|
||||
'settings.openchamber.keyboardShortcuts.action.open_timeline_dialog.label': 'Konversations-Zeitleiste öffnen',
|
||||
'settings.openchamber.keyboardShortcuts.action.toggle_prompt_navigator.label': 'Prompt-Navigator umschalten',
|
||||
'settings.openchamber.keyboardShortcuts.warning.contextualPrefix': 'Diese Sequenz teilt ein kontextabhängiges Präfix mit {action}. Wenn dessen Kontext aktiv ist, hat diese Aktion Vorrang.',
|
||||
'settings.openchamber.keyboardShortcuts.category.session': 'Sitzungssteuerung',
|
||||
'settings.openchamber.keyboardShortcuts.category.models': 'Modelle und Agenten',
|
||||
'settings.openchamber.keyboardShortcuts.category.panels': 'Panels und Werkzeuge',
|
||||
'settings.openchamber.keyboardShortcuts.category.navigation': 'Navigation',
|
||||
'settings.openchamber.keyboardShortcuts.category.application': 'Anwendung',
|
||||
'settings.openchamber.keyboardShortcuts.actions.edit': 'Bearbeiten',
|
||||
'settings.openchamber.keyboardShortcuts.actions.confirm': 'Bestätigen',
|
||||
'settings.openchamber.keyboardShortcuts.dialog.title': '{action} bearbeiten',
|
||||
'settings.openchamber.keyboardShortcuts.dialog.instructions': 'Drücken Sie bis zu zwei Tastenkombinationen mit jeweils höchstens drei Tasten. Warten Sie nach der ersten bis zu 3 Sekunden auf eine zweite Kombination. Wählen Sie Bestätigen zum Anwenden oder Abbrechen zum Verwerfen. Mit der Rücktaste entfernen Sie die letzte.',
|
||||
'settings.openchamber.keyboardShortcuts.dialog.firstChord': 'Erste Kombination',
|
||||
'settings.openchamber.keyboardShortcuts.dialog.secondChord': 'Zweite Kombination',
|
||||
'settings.openchamber.keyboardShortcuts.dialog.recording': 'Tasten drücken…',
|
||||
'settings.openchamber.keyboardShortcuts.unassigned': 'Nicht zugewiesen',
|
||||
'settings.openchamber.keyboardShortcuts.error.prefixConflict': 'Dies kollidiert mit der von {action} verwendeten Sequenz. Wählen Sie eine andere Kombination.',
|
||||
'settings.openchamber.keyboardShortcuts.error.exactConflict': 'Diese Kombination wird bereits von {action} verwendet.',
|
||||
'settings.openchamber.keyboardShortcuts.error.internalConflict': 'Diese Kombination kollidiert mit einem integrierten Tastenkürzel, das nicht ersetzt werden kann.',
|
||||
'settings.openchamber.keyboardShortcuts.action.open_draft_project_picker.label': 'Projektauswahl für Entwurf öffnen',
|
||||
'settings.openchamber.keyboardShortcuts.action.open_draft_worktree_picker.label': 'Worktree-Auswahl für Entwurf öffnen',
|
||||
'settings.openchamber.keyboardShortcuts.action.open_session_list.label': 'Letzte Sitzungen öffnen',
|
||||
'settings.openchamber.keyboardShortcuts.action.toggle_dictation.label': 'Spracheingabe',
|
||||
'settings.projects.sidebar.total': 'Gesamt {count}',
|
||||
'settings.projects.sidebar.actions.addProject': 'Projekt hinzufügen',
|
||||
'settings.projects.page.empty.noProjects': 'Keine Projekte verfügbar.',
|
||||
|
||||
Reference in New Issue
Block a user