Skip to main content

Test your typing speed without leaving the terminal.

Project description

Test your typing speed without leaving the terminal.

build license build maintainer

demo

:clipboard: description

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.

:zap: features

  1. adjustable settings
  2. storing test results
  3. analysing mistakes
  4. easy to track improvement

:chart_with_upwards_trend: analyse test results with typetest-analyse!

wpm char_speeds word_speeds mistypes dist

:shipit: installation

  1. install python3
  2. install pip (python package manager)
  3. run pip install typetest
  4. run typetest

Optionally

  • make an alias for typetest, I use tt
  • run typetest-analyse to get insights

:bulb: ideas for tests

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.

:question: usage

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

Back to top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

typetest-0.1.9.tar.gz (18.8 kB view details)

Uploaded Source

Built Distribution

typetest-0.1.9-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

File details

Details for the file typetest-0.1.9.tar.gz.

File metadata

  • Download URL: typetest-0.1.9.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/20.6.0

File hashes

Hashes for typetest-0.1.9.tar.gz
Algorithm Hash digest
SHA256 9a884a6a37e6cf94850a09753814f2a0db488e826d89c12f859f371d99de447e
MD5 968ccb1bd8e8004cde1c1c71e9a57285
BLAKE2b-256 03fa9cdad678851bc2231dc9e75dbe15fc90c2d356e36553ed3042d377599f8d

See more details on using hashes here.

File details

Details for the file typetest-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: typetest-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 23.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/20.6.0

File hashes

Hashes for typetest-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 2a90805d4f3275194a9a7595888fbcaa542f9b0ce4dda95705e7067f6bed5036
MD5 a562bc2b1309708c3d15a94dd2713665
BLAKE2b-256 50e0021c601b93225d6af6db146fa16243c75bd47944f849ff0e48de9efaeb32

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page