aradzie / keybr.com

The smartest way to learn touch typing and improve your typing speed.
https://www.keybr.com/
GNU Affero General Public License v3.0
1.99k stars 178 forks source link

Letter speed being improperly recorded (might be related to home row mods) #260

Open oyarsa opened 3 months ago

oyarsa commented 3 months ago

The letter A isn't being recorded properly. It looks like the speed is about half of what it should be. As you can see in the screenshot, the last speed doesn't make sense, given the overall text speed. It also shows that this wasn't happening before but started suddenly.

I was able to reproduce this on Windows 10 Firefox (I don't remember what version), macOS 14 Firefox (v128), and macOS 14 Chrome (v127). They all happened with the same external keyboard, however (ZSA Planck).

This seems to be a rather weird bug: my main keyboard has home row mods on A, S, L and ;. Specifically, A and ; are Left Option, and S and L are Left Control. This means there's a potential 250ms delay in determining whether each key was meant as its letter or modifier. This might be what's causing the problem here.

Interestingly, this wasn't automatically fixed when I switched to the onboard keyboard (MacBook Pro). Rather, as I kept typing at about the same speed, the recorded speed increased over time. I kept this until the speed rose to 100 WPM for the letter A.

Likewise, if I switch back to the Planck, the speed will slowly decrease. I imagine there's some key WPM estimation algorithm at play here. If that's the case, then this issue might not be solvable. Instead, is there a way to blacklist those three letters from the algorithm so they are skipped?

Unfortunately, there isn't a way to disable these modifiers without flashing the keyboard every time I want to practice, and I don't want to do that. I'd rather skip the keys instead.

Letter speed example

salamantos commented 2 weeks ago

I also have home row mods, but for me it doesn't seem to impact statistics. In fact, after disabling it, wpm for some letters even become lower :)

As a workaround, you could create a specific layout for training that disables home row mods and switch to it when practicing

UPD: I've retested typing without HRM off on bigger number of lessons and it definitely has big impact (with HRM off stats are about two times higher)