Skip to content

Keyboard Shortcuts

All shortcuts use the primary meta key: Cmd on macOS, Ctrl on Windows and Linux.

Configurable: the shortcuts below are defaults. Open the ⌨ Keys button in the toolbar to rebind any action — click its chord chip, press the new combination, and it's saved. Conflicts are rejected with a message; Reset all restores defaults. Bindings persist via the settings store. Contextual keys (Escape, Delete/Backspace) are fixed and not remappable.


Canvas navigation

Shortcut Action
Scroll wheel Zoom in / out
Click + drag (empty canvas) Pan
F Fit all nodes to screen

Selection

Shortcut Action
Click node Select node
Click connection midpoint Select connection
Click empty canvas Deselect all
Cmd + A Select all nodes
Escape Deselect all / cancel draft

Editing

Shortcut Action
Backspace or Delete Delete selected node or connection
Cmd + C Copy selected nodes
Cmd + V Paste copied nodes
Cmd + D Duplicate selected nodes
Cmd + G Group selected nodes (requires ≥ 2 selected)
Cmd + Shift + G Collapse selected nodes into a subgraph (requires ≥ 2 selected)

Double-click a subgraph node to drill in; use Expand ⤢ in the inspector to inline it again.


History

Shortcut Action
Cmd + Z Undo
Cmd + Shift + Z Redo

Execution

Shortcut Action
Cmd + Enter Run workflow

Connection wiring

Action How
Start connection Click an output (right-side) port dot
Start connection from input Click an input (left-side) port dot
Complete connection Click the matching port dot on another node
Cancel in-progress connection Click empty canvas or press Escape
Auto-pick node on drop Drop connection wire on empty canvas — node picker appears
Reconnect existing wire Click the midpoint dot on an existing connection, then click a new port

Customising shortcuts

Shortcuts are defined in GraphynShortcuts.kt in the app/shared module. Each shortcut is a named fun on GraphynShortcuts that returns Boolean from a KeyEvent. Override the shortcut handler by subclassing GraphynEditorState and overriding the key handler. (A first-class shortcutOverrides API is planned for a future release.)