Skip to content

feat: add finger training practice mode (@OmTiwariPandey)#8198

Open
OmTiwariPandey wants to merge 5 commits into
monkeytypegame:masterfrom
OmTiwariPandey:feat/finger-training
Open

feat: add finger training practice mode (@OmTiwariPandey)#8198
OmTiwariPandey wants to merge 5 commits into
monkeytypegame:masterfrom
OmTiwariPandey:feat/finger-training

Conversation

@OmTiwariPandey

Copy link
Copy Markdown
Contributor

Description

I was practicing on my account (uname: itsom) and figured I was not hitting my left
pinky as much (words containing q and z were simply not appearing), so I
constantly felt like I wasn't training that finger. I'm sure others suffer
from the same, so I built a finger training mode: a modal (reachable from the
commandline and from a card on the settings page) where you pick the fingers
you want to train and optionally how often a training word appears (every
word, every 2nd, every 3rd).

  • Words are picked in per-letter buckets from the current language, so rare
    letters (like q and z for left pinky) get an equal share instead of being
    crowded out by common ones (like a). Short letter drills fill in when the language
    has few or no words for a letter.
  • Letters per finger come from the active layout via the existing
    layoutKeyToKeycode converter.
  • Training survives test restarts; stopping it, changing the mode, or
    reloading the page all restore your previous settings.
  • A notice above the test shows which fingers are being trained.
  • Added 20 unit tests (finger mapping incl. iso/matrix, scoring, pool
    building, drills, frequency mixing).
  • Known limitation: angle-mod iso layouts get standard physical-column
    fingering, since layout JSONs can't express angle-mod intent.

Checks

  • Check if any open issues are related to this PR; if so, be sure to tag them below.
  • Make sure the PR title follows the Conventional Commits standard. (https://www.conventionalcommits.org for more info)
  • Make sure to include your GitHub username prefixed with @ inside parentheses at the end of the PR title.

Closes #

@monkeytypegeorge monkeytypegeorge added the frontend User interface or web stuff label Jul 5, 2026
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Continuous integration check(s) failed. Please review the failing check's logs and make the necessary changes.

@github-actions github-actions Bot added the waiting for update Pull requests or issues that require changes/comments before continuing label Jul 6, 2026
@github-actions github-actions Bot removed the waiting for update Pull requests or issues that require changes/comments before continuing label Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

frontend User interface or web stuff

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants