Skip to content

Add GUI chords to Mod-Tap - #131

Open
St1ggy wants to merge 7 commits into
ergohaven:mainfrom
St1ggy:add-mod-tap-gui-chords
Open

Add GUI chords to Mod-Tap#131
St1ggy wants to merge 7 commits into
ergohaven:mainfrom
St1ggy:add-mod-tap-gui-chords

Conversation

@St1ggy

@St1ggy St1ggy commented Jul 31, 2026

Copy link
Copy Markdown

Summary

  • add Ctrl+GUI and Shift+GUI Mod-Tap choices
  • preserve existing tap-hold behavior for the new modifier chords

Testing

  • cargo test mod_tap_choices_include_gui_chords

@kissetfall kissetfall left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding the missing QMK Mod-Tap chord choices. Please address the UI integration before this is merged:

  1. 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.

  2. 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.

  3. 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.

  4. 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() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@St1ggy
St1ggy force-pushed the add-mod-tap-gui-chords branch from d86509c to f99b388 Compare August 4, 2026 13:20
@St1ggy
St1ggy requested a review from kissetfall August 6, 2026 06:17

@kissetfall kissetfall left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_choices with 0x2900 / 0x2A00 and 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 local mod_name match that can drift;
  • preserve the current main behavior 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.

@St1ggy
St1ggy force-pushed the add-mod-tap-gui-chords branch from bdb484a to 4b86931 Compare August 17, 2026 15:37
@St1ggy
St1ggy requested a review from kissetfall August 17, 2026 18:03
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.

3 participants