🦀 termitype
Feature-rich terminal typing test
Installation
From Crates.io
From Source
From Released Binaries
# TODO: link to github releases
From Package Manager
- Homebrew:
brew install termitype(planned) - AUR:
yay -S termitype(planned) - Nix:
nix-shell -p termitype(planned) - Windows:
scoop install termitype(?)
Usage
Basic Usage
# Start typing
# See available CLI arg options (all options can also be configured via the in-game menu)
Options
| Option | Description |
|---|---|
-l, --language <LANG> |
Language dictionary to use |
-t, --time <SECONDS> |
Test duration in seconds |
-w, --words <"WORD1 WORD2"> |
Custom words for the test |
--word-count <COUNT> |
Number of words to type |
-s, --use-symbols |
Include symbols in test words |
-p, --use-punctuation |
Include punctuation in test words |
-n, --use-numbers |
Include numbers in test words |
--lines <COUNT> |
Number of visible text lines (default: 3) |
-T, --theme <THEME> |
Theme to use |
--ascii <ART> |
ASCII art for results screen |
--picker-style <STYLE> |
Menu style (quake, telescope, ivy, minimal) |
--results-style <STYLE> |
Results display style (graph, minimal, neofetch) |
--cursor-style <STYLE> |
Cursor style (beam, block, underline, blinking-beam, blinking-block, blinking-underline) |
--show-fps |
Display FPS counter |
--hide-live-wpm |
Hide live WPM counter |
--hide-cursorline |
Hide menu cursor highlight |
--hide-notifications |
Hide notifications |
--monochromatic-results |
Use simplified results colors |
--list-themes |
List all available themes |
--list-languages |
List all available languages |
--list-ascii |
List all available ASCII arts |
--color-mode <MODE> |
Color support (basic, extended, truecolor) |
--no-track |
Do not locally track tests results nor stats |
--reset-db |
Reset and clears the content of the local database |
-d, --debug |
Enable debug mode |
-h, --help |
Print help |
-V, --version |
Print version |
Examples
# All of the options below can also be changed at runtime via the menu.
Development
Prerequisites
- Rust 1.70+
- Cargo
Quick Start
- Clone the repository:
- Run the application:
# Development build
# Release build
# With debug logging
# Tail logs with something like this (MacOS example)
# Tail logs with something like this (Linux example)
Themes
Termitype includes a curated collection of themes sourced from the iTerm2 Ghostty Color Schemes Repo repository. Themes are automatically fetched during the build process and can be previewed and changed in real-time.
Contributing
[!Warning] TODO: write out the contribution guideline just in the case there's one person interested in this.
Roadmap
Upcoming Features
- Package Distribution: Release on Homebrew, AUR, nixpkgs, etc.
- User config file: Have a user editable config file in
$XDG_CONFIG_HOME/termitype/config.toml - 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
License
This project is licensed under the GPL-3.0 license - see LICENSE for details.
Acknowledgments
- Ratatui for the amazing TUI framework.
- Monketype for the inspiration.
- iTerm2 Ghostty Color Schemes for the themes.