Bitbucket is a code hosting site with unlimited public and private repositories. We're also free for small teams!

Close

Typotoo

Author: Dinu Gherman <gherman@darwin.in-berlin.de>
Homepage:http://www.dinu-gherman.net/
Version: Version 0.8.0
Date: 2007-08-12
Copyright: GNU Public Licence v3 (GPLv3)

About

This is a simple command-line typing tutor with instant feedback for learning to minimize typing errors and increase typing speed. It does not care which fingers you use to type certain certain letters.

This tool presents to the user some text to type in line by line. During typing the number of right and wrong keystrokes, as well as the time needed is recorded (time is measured between the first and last keystroke within each line). After each line some accumulated statistics is printed, inclu- ding total and relative right/wrong key counts, plus the typing speed. Keys like BACKSPACE, TAB, ESCAPE, RETURN, and arrow keys are disabled during typing, i.e. you cannot correct what you typed. CTRL-C should work, though.

The default encoding used both, for the terminal in which you type and the input file, is UTF-8.

Options include a case-insensitive mode, an accustic signal after each wrong keystroke, etc...

Using

From the system command-line you use 'typotoo.py' e.g. like this:

$ python typotoo.py --test
typotoo.py - simple command-line typing tutor
Type in the displayed text, or CTRL-C to quit.

the quick brown fox jumped over the lazy old dog
++++++++++++++++++++++++++++++++++++-+-++++++-++
+:45 (93 %), -:3 (6 %) - all: 48 chars in 13.6 sec -> 212 chars/min

Features

  • take input text files and present them line by line on the console
  • get user input from the console and compare with input file
  • output accumulated statistics on correctly and incorrectly typed characters
  • output accumulated statistics on typing speed
  • output beep for incorrectly typed letters
  • allow different text encodings for used terminal and input file
  • install a Python command-line script 'typotoo.py'

Installation

There are multiple ways to install typotoo, some of which are described here.

1. (TODO) Using easy_install

With the easy_install command on your system and a working internet connection you can install typotoo with only one command in a terminal:

$ easy_install typotoo

If the easy_install command is not available to you and you want to install it before installing typotoo, you might want to go to the Easy Install homepage and follow the instructions there.

2. Manual installation

Alternatively, you can install the typotoo tarball after downloading an archive file like typotoo-0.9.0.tar.gz and decompressing it with the following command:

$ tar xfz typotoo-0.9.0.tar.gz

Then change into the newly created directory typotoo and install typotoo by running the following command:

$ python setup.py install

This will install a single Python script named typotoo.py in your 'bin' directory, usually in '/usr/local/bin'.

Testing

typotoo.py was mainly developped and tested on Mac OS X, but it should also work on other Unices. I tested it a little bit on Linux and it seems to work out of the box using the default UTF-8 encodings.

Since testing this script involves the terminal and its settings (which are sometimes difficult or impossible to obtain) it is not that easy to build a Unittest, say, so there is no 'normal' test suite included in this source code distribution.

But the source contains a Python script named test_typotoo.py that is a tiny version of typotoo.py. It also iterates over some input file and compares its letters with those typed in on the keyboard, but prints different codes for each letter as well. It should be helpful in debugging typotoo.py on other platforms like Windows.

Bug reports

Please report bugs and patches to Dinu Gherman <gherman@darwin.in-berlin.de>. Don't forget to include information about the operating system and Python versions being used.

Recent activity

Dinu Gherman

Commits by Dinu Gherman were pushed to deeplook/typotoo

06c58f7 - Added notes about Python 3 in respective code.
Dinu Gherman

Commits by Dinu Gherman were pushed to deeplook/typotoo

03005ee - Added minor changes to headlines and improved/added installation and bug report section.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.