Skip to content

feat(theme): hold-to-repeat in the pad editor, its profiles list, and arcade Select - #694

Draft
ddrcoder wants to merge 1 commit into
pnn64:mainfrom
ddrcoder:pad-config-key-repeat
Draft

feat(theme): hold-to-repeat in the pad editor, its profiles list, and arcade Select#694
ddrcoder wants to merge 1 commit into
pnn64:mainfrom
ddrcoder:pad-config-key-repeat

Conversation

@ddrcoder

@ddrcoder ddrcoder commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Draft — first of a four-PR stack (this one has no dependencies). Supersedes #689.

Summary

Hold-to-repeat for directional input in three places that only stepped once per press.

  • Pad editor (Configure Pads + the Song Select overlay): holding Up/Down/Left/Right repeats, driven by the theme's shared advance_hold_repeat timer. Works in the Simple and Advanced views and in the saved-profiles list. The name box ignores the hold (its Up/Down is a one-shot toggle); any modal, view change, or exit drops it. Shift state is captured at the press so a fine hold stays fine.
  • Repeat rate accelerates (the timing from feat(pad-config): keep stepping thresholds while Up/Down is held #689): 300 ms initial delay, then 120 ms shrinking by 12% per repeat down to a 30 ms floor, so a long sweep speeds up without making the first steps twitchy.
  • Arcade-navigation Player Options: Select moves to the previous row but never armed the hold timer (Start for next row already repeated), so climbing a long pane meant one tap per row. Select now arms the Up hold on press and releases it, for both sides.

Testing

  • New unit tests: repeat timing and release in the pad editor, cursor repeat pausing in modals, profiles-list repeat, held Select in arcade Player Options.
  • cargo test -p deadsync-theme-simply-love --lib -- pad_config player_options passes.
  • Verified on a cabinet (two SMX pads, arcade navigation on).

🤖 Generated with Claude Code

https://claude.ai/code/session_015PLarttSySmaMqrG5uYJHD

… arcade Select

Holding Up/Down/Left/Right in the pad editor now repeats after 300 ms at
60 ms intervals (the theme's shared hold-repeat timer), in both the
Options screen and the Song Select overlay, in the Simple and Advanced
views and the saved-profiles list. The name box ignores the hold (its
Up/Down is a one-shot toggle), and any modal, view change, or exit
drops it.

In arcade-navigation Player Options, Select moves to the previous row but
never armed the hold timer, so climbing a long pane meant tapping it once
per row while Start (next row) repeated fine. Select now arms the Up hold
on press and releases it, for both sides.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015PLarttSySmaMqrG5uYJHD
@ddrcoder
ddrcoder force-pushed the pad-config-key-repeat branch from 66ab326 to 56935cd Compare September 12, 2026 05:54
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