Feature-rich terminal typing test
Heavily inspired by a certain typing test you might know.
Installation
·
Usage
·
Mappings
·
Options
·
Development
·
Contributing
·
Roadmap
·
Acknowledgments
Install the latest pre-built binary for your platform (recommended):
curl -sSL https://raw.githubusercontent.com/emanuel2718/termitype/main/scripts/install.sh | bashBinaries are available on the GitHub releases page.
brew tap emanuel2718/termitype
brew install termitypeyay -S termitypecargo install termitypecargo install --git https://github.com/emanuel2718/termitype.git termitype# Start typing
termitype
# See available CLI arg options (all options can also be configured via the in-game menu)
termitype --help| Mapping | Mode | Action |
|---|---|---|
<C-Space> |
Global |
Toggle Menu |
<C-c> |
Global |
Quit Application |
<C-z> |
Global |
Quit Application |
<C-p> |
Global |
Toggle Command Palette |
<C-l> |
Global |
Toggle Leaderboard Screen |
<C-t> |
Global |
Randomize Theme |
<Esc> |
Global |
Toggle Menu |
<S-N> |
Results |
Restart |
<S-R> |
Results |
Redo last test |
q |
Results |
Quit Application |
m |
Results |
Switch to Minimal Variant |
n |
Results |
Switch to Neofetch Variant |
g |
Results |
Switch to Graph Variant |
<Up> |
Results |
Cycle to next ASCII Art |
<Down> |
Results |
Cycle to previous ASCII Art |
<Esc> |
Menu |
Go back |
/ |
Menu |
Start Search |
<C-y>/<CR> |
Menu |
Confirm selection |
<Space> |
Menu |
Toggle selection (if toggable item) |
<C-n>/<Down> |
Menu |
Next item |
<C-p>/<Up> |
Menu |
Previous item |
j/k |
Menu |
Next/previous (in normal mode) |
| Option | Description |
|---|---|
-t, --time <SECONDS> |
Test duration in seconds. Enforces Time mode |
-w, --words <"WORD1 .."> |
Custom words for the test. Enforces Word mode |
-c, --count <COUNT> |
Number (count) of words to type |
-n, --use-numbers |
Include numbers in the test word pool |
-s, --use-symbols |
Include symbols in the test word pool |
-p, --use-punctuation |
Include punctuation in the test word pool |
-l, --language <LANG> |
Language dictionary the test will use |
--theme <THEME> |
The theme of the application |
--ascii <ASCII> |
The ASCII art used in the Neofetch results |
--cursor <STYLE> |
Cursor style variant: beam, block, underline, blinking-beam, blinking-block, blinking-underline |
--results <STYLE> |
Results style variant: minimal, neofetch, graph |
--lines <COUNT> |
Number of visible text lines [default: 3] |
--hide-live-wpm |
Hide live WPM counter |
--hide-notifications |
Hide notifications |
--no-save |
Do not save tests results |
--reset |
Resets everything back to default state |
# All of the options below can also be changed at runtime via the menu.
termitype -t 60 # Run a 60-second typing test
termitype -c 100 # Test will contain exactly 100 random words
termitype --theme "catppuccin-mocha" # Use catppuccin-mocha theme
termitype -l spanish # Use Spanish test words
termitype -spn # Enable symbols, punctuation, and numbers
termitype --results neofetch # Use neofetch inspired results
termitype --no-save # Do not save tests results
termitype --hide-notifications # Do not show notifications- Rust 1.88+
- Cargo
- Clone the repository:
git clone https://github.com/emanuel2718/termitype.git
cd termitype- Run the application:
# Development build
cargo run
# Release build
cargo run --releaseTermitype includes a curated collection of themes sourced from the iTerm2 Ghostty Color Schemes Repo repository. Themes can be previewed and changed in real-time.
Warning
TODO: write out the contribution guideline just in the case there's one person interested in this.
- Package Distribution: Release on Homebrew, AUR, nixpkgs, etc.
- User config file: Have a user editable config file in
$XDG_CONFIG_HOME/termitype/config.toml - Configurable Mappings: Custom mappings
- Custom ASCII arts: Allow usage of custom ASCII arts
- Custom theme: Allow setting custom themes with names
- Wordlist Improvements: Improve the quality and distribution of words
- Multiplayer: Race other people in realtime with private rooms of sort (will use websockets for this)
- Local Results Tracking: Track test results over time (best use case is to track highest WPM on specific modes) with opt-out option
This project is licensed under the GPL-3.0 license - see LICENSE for details.
- Monkeytype for the inspiration.
- Ratatui for the amazing TUI framework.
- iTerm2 Ghostty Color Schemes for the themes.
