No description
Find a file
2025-12-18 10:29:31 +01:00
assets Use UTF8 for input and display 2025-12-02 17:51:39 +01:00
docs/assets Add My own screenshot 2025-11-28 22:52:41 +01:00
src Ignore control characters 2025-12-07 12:54:57 +01:00
.envrc add envrc 2025-11-24 15:29:45 +01:00
.gitignore feat: Add building with nix 2025-11-27 08:58:23 +01:00
build.zig make fps update rate configurable 2025-12-04 09:33:28 +01:00
build.zig.zon Add fps option, use start and end frame from tui library 2025-12-04 09:24:36 +01:00
deps.nix Update deps.nix 2025-12-07 12:56:56 +01:00
flake.lock Update nixpkgs input 2025-12-02 11:04:35 +01:00
flake.nix Update deps.nix 2025-12-07 12:56:56 +01:00
LICENSE Change license to GPL3 to comply with monkeytypes language files 2025-12-05 10:07:17 +01:00
README.md add brainmade badge 2025-12-18 10:29:31 +01:00

terminal-wpm

brainmade.org

I got a new keyboard, my first ergonomic keyboard, so to practice typing, i used monkeytype. That site is very nice, with beautiful statistics, a lot of customization options, leaderboard, Personal Bests and a lot more.

But I am a programmer. So I want to create my own version. That version should be on the terminal because I work on the terminal the most.

This is how this project was born.

Try it out

if you use nix, you can simply run this to try it out:

nix run git+https://git.nkoll.de/nk/terminal-wpm

if you don't use nix, you have to clone this repository, have Zig 0.15 installed and run this:

zig build run

Roadmap

  • Add command line options
    • Wordcount
    • Language/Wordlist
  • Handle multibyte input correctly
  • Accuracy checks
    • Accuracy per Character
    • Accuracy per Word
  • Add more languages/wordlists
    • english
    • german
    • english 1k
    • english 5k
    • english 10k
    • english 25k
  • Statistics example and explanation in README
  • qoutes
    • english
    • german
  • Improve rendering speed
    • Use terminal feature synchronized output
    • split read and write into multiple threads, dont spin on read loop
  • Input validation (Unwanted Control Characters etc.)
  • Auto Scroll on long text
  • TUI
    • Startup Screen
    • Stats Screen with restart button
    • Scoreboard
    • Settings

Credits/Contributions

Language Files are sourced from monkeytype and reformatted into simple text files (see here).

Thanks to Neurocyte for providing this beautiful Screenshot.

https://en.wikipedia.org/wiki/ANSI_escape_code