Skip to content

Allow configurable practice-session duration (currently fixed at 60s) #136

@suhailphotos

Description

@suhailphotos

Summary
Practice sessions currently end after 60 seconds with no way to change the duration. For larger selections (e.g., ~20–40 key combinations), one minute isn’t enough to cycle through and reinforce the set. I’d like the practice timer to be user-configurable.

Steps to reproduce
1. Create or select a subset (e.g., 28 key combinations).
2. Click Practice Selection.
3. The session ends after 60 seconds; there’s no setting to adjust the timer.

Current behavior
• Practice duration is fixed at 60 seconds.
• Workaround is to start a new 60-second run, which breaks flow and fragments stats.

Expected behavior
• A setting to choose practice length (global default and/or per-session override), with 60 seconds remaining available as a “Sprint” preset.

Why this matters
• Larger selections need more time for spaced repetition within a single uninterrupted flow.
• Repeated 60-second sprints skew session stats and add overhead between runs.
• Accessibility and learning-pace differences benefit from adjustable durations.

Proposed solutions (any of the below would help)
1. User preference (global default):
Settings → Practice → Default duration: 30s / 60s / 90s / 120s / 180s / 5m / Unlimited. Keep 60s as the default for consistency.
2. Per-session override:
A small timer dropdown on the Practice screen (“Timer: 60s ▾”), remembering the last used value.
3. Modes:
• Sprint (time-boxed): 30–300s presets.
• Marathon (unlimited): timer off; user exits manually.
• Target reps: continue until each item reaches N correct answers or a streak threshold.
4. Auto-continue toggle:
After a sprint ends, automatically start the next block with the same selection (“Auto-continue: On”), optionally aggregating results.
5. Analytics considerations:
Record session duration and mode so WPM/accuracy remain comparable; leaderboards can filter or normalize by mode/duration.

UI sketch (textual)
• Practice screen header: Mode: Sprint | Duration: 120s ▾ | Auto-continue: ☐
• Settings page: Default Practice Duration: 60s ▾ and Default Mode: Sprint ▾

Environment
• App: KeyCombiner (web)
• OS: macOS [version]
• Browser: [name + version]

Additional context
I typically practice selections of ~28 combos. A 120–180s block, or an unlimited session, would let me finish a full pass without breaking flow while still keeping 60s available for quick sprints.

Acceptance criteria
• Users can set a default practice duration in Settings.
• Users can override duration per session from the Practice screen.
• 60-second preset remains available.
• Session results include duration/mode for fair comparisons.
• (Nice-to-have) Auto-continue option to chain blocks without leaving the screen.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions