Add GUI chords to Mod-Tap - #131
Conversation
kissetfall
left a comment
There was a problem hiding this comment.
Thanks for adding the missing QMK Mod-Tap chord choices. Please address the UI integration before this is merged:
-
Decode modifier bits 0x09 and 0x0A in the assigned-key tooltip, preferably by reusing the shared modifier decoder. These keycodes currently display "hold for Left modifier" instead of the OS-specific Ctrl+Super/Win/Cmd or Shift+Super/Win/Cmd chord.
-
Preserve and verify the normal Mod-Tap retarget flow. Right-clicking an assigned 0x29xx or 0x2Axx key must reopen the tap-key picker, preserve the modifier chord, and replace only the final tap key. The generic range path appears to support this already, so please add regression coverage for both new chords.
-
Fix the bottom layout hint for these keys. Because these multi-modifier chords do not support handed-side swapping, the current layout-hint branch shows the generic modifier-key action. Any Mod-Tap should show the Mod-Tap tap-key action on right click, independently of whether Ctrl+right-click side swapping is available.
-
Make the new choice-list test verify the actual list contents. The current test only formats two hard-coded bases, so it still passes if the GUI choices are removed. Please expose the choices through a testable helper and assert that 0x2900 and 0x2A00 are present, alongside coverage for the tooltip and right-click behavior above.
Please keep the existing OS-specific Cmd, Win, and Super naming.
| } | ||
|
|
||
| #[test] | ||
| fn mod_tap_choices_include_gui_chords() { |
There was a problem hiding this comment.
Could we make this test exercise the actual Mod-Tap choices collection too?
That would verify both GUI-chord entries, their keycodes, and held-key labels rather than only the label helper.
d86509c to
f99b388
Compare
kissetfall
left a comment
There was a problem hiding this comment.
The original UI issues are now covered: the branch adds the two choices, preserves tap-key retargeting, fixes the bottom hint, and tests the actual picker contents. The remaining blocker is integration with current main.
Please rebase and resolve the conflict by keeping the current modifier ownership instead of restoring a second partial decoder:
- keep
mod_tap_choiceswith0x2900/0x2A00and the new picker, tooltip, retarget, and hint regression tests; - for full modifier names in tooltips, reuse or extract the shared decoder already owned in
keycode.rs(the OSM/full-name and modifier-bit paths now cover these GUI chords) rather than extending another localmod_namematch that can drift; - preserve the current
mainbehavior for the other Mod+Key, One-Shot, RMK-native, and OS-specific Cmd/Win/Super labels.
Once the rebased branch is conflict-free and the current CI matrix is green, the substance of the previous review will be resolved.
bdb484a to
4b86931
Compare
Summary
Testing