tt

A terminal based typing test.

demo

Installation

Linux

sudo curl -L https://github.com/lemnos/tt/releases/download/v0.3.0/tt-linux -o /usr/local/bin/tt && sudo chmod +x /usr/local/bin/tt

OSX

sudo curl -L https://github.com/lemnos/tt/releases/download/v0.3.0/tt-osx -o /usr/local/bin/tt && sudo chmod +x /usr/local/bin/tt

Windows

There is a windows binary but it is largely untested. Using WSL is strongly encouraged (or alternatively switching to a proper OS ;)).

From source

git clone github.com/lemnos/tt
make && sudo make install

or

go get github.com/lemnos/tt if you have $GOPATH/bin in your $PATH.

Best served on a terminal with truecolor and cursor shape support (e.g kitty, iterm)

Usage

By default 50 words from the top 1000 words in the English language are used to
constitute the test. Custom text can be supplied by piping arbitrary text to
the program. Each paragraph in the input is shown as a separate segment of the
text.

Keys

  • Pressing escape at any point restarts the test.
  • C-c exits the test.

Examples

  • tt -n 10 produces a test consisting of 10 randomly drawn English words
  • tt -n 10 -g 5 produces a test consisting of 50 randomly drawn words in 5 groups of 10 words each.
  • tt -t 10 starts a timed test consisting of 50 words
  • tt -theme gruvbox Starts tt with the gruvbox theme

The default behaviour is equivalent to tt -n 50.

See -help for an exhaustive list of options.

Configuration

Custom themes and word lists can be defined in ~/.tt/themes and ~/.tt/words
and used in conjunction with the -theme and -words flags. A list of
preloaded themes and word lists can be found in words/ and themes/ and are
accessible by default using the respective flags.

Recipes

tt is designed to be easily scriptable and integrate nicely with
other *nix tools. With a little shell scripting most features the user can
conceive of should be possible to implement. Below are some simple examples of
what can be achieved.

  • shuf -n 40 /usr/share/dict/words|tt Produces a test consisting of 40 random words drawn from your system's dictionary.
  • curl http://api.quotable.io/random|jq -r .content|tt Produces a test consisting of a random quote.
  • alias ttd='tt -csv >> ~/wpm.csv' Creates an alias called ttd which keeps a log of your progress in your home directory`.

GitHub