Test your typing speed without leaving the terminal.
typetest
is a self-contained minimal typing test program written with blessed.
As is, it is a near clone of 10fastfingers with an added bonus of being able to see typing speed as you're typing.
- adjustable settings
- storing test results
- analysing mistakes
- easy to track improvement
- install python3
- install pip (python package manager)
- run
pip install typetest
- run
typetest
Optionally
- make an alias for
typetest
, I usett
- run
typetest-analyse
to get insights
Along with typetest
this repository features sample tests.
Try them like so: typetest -s -d 60 -i common_200
or scrape something off the internet, like a featured article on wikipedia.
#!/usr/bin/env python3
import re
import requests
from bs4 import BeautifulSoup
word_pattern = re.compile(r"['A-Za-z\d\-]+[,\.\?\!]?") # symbols to keep
url = 'https://en.wikipedia.org/wiki/Special:RandomInCategory/Featured_articles'
r = requests.get(url)
soup = BeautifulSoup(r.text, 'html.parser')
for sup in soup.select('sup'):
sup.extract() # remove citations
text = ' '.join(p.text for p in soup.select('p'))
text = re.sub(r'\[.*?\]|\(.*?\)', '', text) # remove parenthesis
print(' '.join(re.findall(word_pattern, text)))
If you create a file called wiki_random
you can start the test with wiki_random | typetest
.
Write your own scraper, you may find some suggestions here.
usage: typetest [-h] [-d DURATION] [--hash HASH] [-i INPUT] [-o OUTPUT_DIRECTORY] [-s] [-r ROWS]
optional arguments:
-h, --help show this help message and exit
-d DURATION, --duration DURATION
duration in seconds (default: inf)
--hash HASH custom hash (generated from input by default)
-i INPUT, --input INPUT
file to read words from (default: sys.stdin)
-o OUTPUT_DIRECTORY, --output-directory OUTPUT_DIRECTORY
file to store results in
(default: /home/medo/repos/typetest/typetest/results)
-s, --shuffle shuffle words (default: False)
-r ROWS, --rows ROWS number of test rows to show (default: 2)
example:
typetest -i test.txt -s -d 60
echo 'The typing seems really strong today.' | typetest -d 3.5
typetest < test.txt
shortcuts:
^c / ctrl+c end the test and get results now
^[ / ctrl+[ / esc end the test and get results now
^h / ctrl+h / bksp delete a character
^r / ctrl+r / tab restart the same test
^s / ctrl+s restart the test with words reshuffled
^w / ctrl+w delete a word
^u / ctrl+u delete a word