Skip to content

Add keyboard shortcuts cheatsheet to desktop match UI#9746

Open
MostCromulent wants to merge 3 commits intoCard-Forge:masterfrom
MostCromulent:NetworkPlay/hotkeymenu
Open

Add keyboard shortcuts cheatsheet to desktop match UI#9746
MostCromulent wants to merge 3 commits intoCard-Forge:masterfrom
MostCromulent:NetworkPlay/hotkeymenu

Conversation

@MostCromulent
Copy link
Contributor

@MostCromulent MostCromulent commented Feb 14, 2026

Summary

  • Adds a keyboard shortcuts cheatsheet to the desktop UI, accessible via configurable key (default "H" for "Hotkeys") during matches and from Help > Keyboard Shortcuts in the menu bar.
  • Configurable shortcuts are shown with in-place rebinding (click a field, press a new key to replace the binding)
  • Configurable shortcuts auto-populate by iterating KeyboardShortcuts.getCachedShortcuts(), so if a new SHORTCUT_* FPref entry is added to Forge in future it will automatically appear in the dialog without needing changes to the dialog code.
  • Hard coded shortcuts (F1, F11, Ctrl+Z, Ctrl+Q, Ctrl+A, Ctrl+E, Ctrl+T, Ctrl+O) are hardcoded in the dialog because they are defined across separate menu classes (GameMenu, LayoutMenu, CardOverlaysMenu, HelpMenu) with no shared registry, so there is no list to iterate.
Untitled Screenshot 2026-02-14 131807

(Note: In images above Concede, Alpha Strike, and End Turn appear in both sections. That is because they currently exist as both configurable shortcuts (though default for concede is non-functional — assembleKeystrokes treats CTRL as modifier rather than key press). The fixed Ctrl+Q/A/E menu accelerators are separate bindings tied to the menu bar items. Both systems trigger the same game actions. This is existing Forge behavior, not anything added in this PR - while outside scope of this PR, it may be worth streamlining this in future.)


🤖 Generated with Claude Code

MostCromulent and others added 3 commits February 14, 2026 13:21
Accessible via H key during matches and Help > Keyboard Shortcuts menu.
Shows configurable shortcuts with in-place rebinding and fixed menu
accelerators in greyed-out fields. Configurable shortcuts auto-populate
by iterating KeyboardShortcuts.getCachedShortcuts(), so adding a new
SHORTCUT_* FPref entry automatically appears in the dialog.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Allows users to interact with the main window while the dialog is open,
including closing Forge.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant