Skip to content

Feat: keyboard shortcuts reference panel and configurable bindings #199

Description

@pcolt

Overview

The app has several keyboard shortcuts with no central place where users can discover or configure them. A shortcuts reference (and eventually a configuration UI) would improve discoverability and let power users adapt bindings to their workflow.

Known shortcuts

Action Default (Win/Linux) Default (Mac) Source
Undo Ctrl+Z ⌘Z App.svelte
Redo Ctrl+Shift+Z or Ctrl+Y ⌘⇧Z App.svelte
Delete selected node/edge Backspace / Delete Backspace / Delete @xyflow/svelte built-in
Multi-select (box) Shift+drag Shift+drag @xyflow/svelte built-in
Multi-select (click) Ctrl+click Cmd+click @xyflow/svelte built-in

Proposed steps

  1. Shortcut reference panel — a read-only list of all bindings, accessible from Settings or a ? button. Platform-aware labels (⌘ on Mac, Ctrl on Win/Linux).
  2. Configurable bindings — allow users to remap app-level shortcuts (undo, redo, etc.) via Settings and persist to electron-store. @xyflow built-ins are not remappable without forking the library.

Feasibility notes

  • App-level shortcuts (App.svelte keydown handler) are straightforward to make configurable — read the binding from settings, match against e.key + modifier flags.
  • @xyflow built-in shortcuts (delete, multi-select) are controlled via the deleteKey, selectionKey, multiSelectionKey props on <SvelteFlow> — these are already configurable if wired to settings values.
  • Platform detection: navigator.platform (deprecated but stable in Electron) or navigator.userAgentData.platform.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions