Skip to content

[tui] Implement global keybinding system with scope management and KeybindingProvider #50

@roninjin10

Description

@roninjin10

Implement global keybinding system with scope management and KeybindingProvider

Type: engineering
Domain: Codeplane TUI

Create the KeybindingProvider and global keybinding infrastructure consumed by all screens. (1) providers/KeybindingProvider.tsx: manages keybinding scopes (global, screen, overlay), resolves key events through priority layers (text input → modal → go-to mode → screen → global), provides registerKeybinding/unregisterKeybinding via context. (2) hooks/useGlobalKeybindings.ts: registers the always-active global keybindings — ? (toggle help), : (open command palette), q (pop screen / quit on root), Esc (close overlay or same as q), Ctrl+C (immediate quit). (3) Keybinding registration: { key: string, scope: 'global'|'screen'|'overlay', handler: () => void, description: string, when?: () => boolean }. (4) Scope priority: overlay > screen > global. (5) Input suppression: when a text input has focus, single-character keybindings are suppressed (only Ctrl/Esc/Enter reach the keybinding system). (6) useKeybindings() consumer hook for screen-specific bindings.

Dependencies: tui-bootstrap-and-renderer, tui-navigation-provider


Auto-generated by smithers workflow

Metadata

Metadata

Assignees

No one assigned

    Labels

    tuiTerminal UI

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions