Skip to content

Add keyboard shortcuts app-wide, wherever they make sense #243

Description

@kiranfin

User Story

As a frequent user, I want keyboard shortcuts for the actions and destinations I use often across the whole app, not just one component, so that I can work without reaching for the mouse.

Context & Motivation

Today the app has only a handful of one-off shortcuts (e.g. Alt+N for a new conversation, plus a few easter eggs), and no discoverable, app-wide set of shortcuts for common navigation and actions. This should cover the app broadly: navigating to frequently used destinations, toggling the sidebar, and other common actions where a shortcut would genuinely save time, not be limited to a single page or component.

Acceptance Criteria

  • Frequently used navigation destinations (e.g. Dashboard, Board, Buddy, PM Dashboard, Knowledge Base) have documented keyboard shortcuts.
  • A keyboard shortcut toggles the sidebar (collapse/expand, once that feature exists).
  • Other frequent, high-value actions get a shortcut where it clearly makes sense (e.g. opening the Buddy, jumping to search), decided case by case rather than exhaustively.
  • Shortcuts do not fire while typing in an input, textarea, or other text-entry context, and do not override shortcuts the browser already owns.
  • Shortcuts are discoverable: a visible hint on the relevant control and/or a central "keyboard shortcuts" list, not tribal knowledge.
  • New shortcuts follow the same conventions as the existing ones (see Technical Notes) so they don't conflict with each other or with the browser/OS.

Technical Notes

There is already a small, deliberate pattern to build on: useNewConversationShortcut.ts implements Alt+N using event.code (physical key, layout-independent) rather than event.key, explicitly avoids Ctrl+N because browsers reserve it, and rejects ctrlKey/metaKey to avoid firing on AltGr chords — reuse this convention for new shortcuts rather than inventing a new one per shortcut. ShortcutHint.tsx is an existing small component that shows a shortcut's keys on hover/focus of the control it belongs to; extend that pattern for discoverability rather than building a separate mechanism.

There is currently no central, app-wide shortcut registry or "keyboard shortcuts" help view — each shortcut so far is a one-off hook wired into a single component. Decide whether this needs a shared registry (to avoid collisions as more shortcuts are added) before spreading many independent keydown listeners across the app.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestuxImprovement for the user experience

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions