Terminal-based typing test.
ttyper is a terminal-based typing test built with Rust and Ratatui.
If you're interested in contributing to ttyper, need help with an issue, or just want to hang out, you should join the development Discord server.
Pre-built binaries are available for most architectures on GitHub releases. If your system is not supported or you have another problem, feel free to open an issue.
cargo install ttyper
pacman -S ttyper
nix-env -iA nixpkgs.ttyper # or nixos.ttyper on NixOS
scoop install ttyper
For usage instructions, you can run ttyper --help:
…
ttyper
50 of the 200 most common english words
ttyper -w 100
100 of the 200 most common English words
ttyper -w 100 -l english1000
100 of the 1000 most common English words
ttyper --language-file lang
50 random words from the file lang
ttyper text.txt
contents of text.txt split at newlines
The following languages are available by default:
name descriptionc
The C programming language
csharp
The C# programming language
english100
100 most common English words
english200
200 most common English words
english1000
1000 most common English words
english-advanced
Advanced English words
english-pirate
50 pirate speak English words
french100
100 most common French words
french200
200 most common French words
french1000
1000 most common French words
german
207 most common German words
german1000
1000 most common German words
german10000
10000 most common German words
go
The Go programming language
html
HyperText Markup Language
java
The Java programming language
javascript
The Javascript programming language
norwegian
200 most common Norwegian words
php
The PHP programming language
portuguese
100 most common Portuguese words
portuguese200
200 most common Portuguese words
portuguese1000
1000 most common Portuguese words
portuguese-advanced
Advanced Portuguese words
python
The Python programming language
qt
The QT GUI framework
ruby
The Ruby programming language
rust
The Rust programming language
thai
4000 most common Thai words
spanish
100 most common Spanish words
sql
Structured Query Language
ukrainian
100 most common Ukrainian words
russian
100 most common Russian words
russian1000
100 most common Russian words
russian10000
10000 most common Russian words
Additional languages can be added by creating a file in TTYPER_CONFIG_DIR/language with a word on each line. On Linux, the config directory is $HOME/.config/ttyper; on Windows, it's C:\Users\\user\AppData\Roaming\ttyper; and on macOS it's $HOME/Library/Application Support/ttyper.
Configuration is specified by the config.toml file in the config directory (e.g. $HOME/.config/ttyper/config.toml).
The default values with explanations are below:
…
The configuration uses a custom style format which can specify most ANSI escape styling codes, encoded as a string.
Styles begin with the color specification, which can be a single color (the foreground), or two colors seperated by a colon (the foreground and background). Colors can be one of sixteen specified by your terminal, a 24-bit hex color code, none, or reset.
After the colors, you can optionally specify modifiers seperated by a semicolon. A list of modifiers is below:
boldcrossed_outdimhiddenitalicrapid_blinkslow_blinkreversedunderlinedSome examples:
blue:white;italic specifies italic blue text on a white background.none;italic;bold;underlined specifies underlined, italicized, and bolded text with no set color or background.00ff00:000000 specifies text of color #00ff00 (pure green) on a background of #000000 (pure black).…
The following border types are supported in the config file.
plainrounded (default)doublethickquadrantinsidequadrantoutsideIf you're familiar with serde, you can also read the deserialization code.
No open issues yet, or sync has not completed.