🦀 termitype
Feature-rich terminal typing test
Installation
Quick Install
Install the latest pre-built binary for your platform (recommended):
|
Binaries are available on the GitHub releases page.
Homebrew
Arch Linux (AUR)
From Crates.io
From Source
Usage
Basic Usage
# Start typing
# See available CLI arg options (all options can also be configured via the in-game menu)
Mappings
| Mapping | Mode | Action |
|---|---|---|
<C-Space> |
Global |
Toggle Menu |
<C-c> |
Global |
Quit Application |
<C-z> |
Global |
Quit Application |
<C-o> |
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) |
Options
| 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 |
Examples
# All of the options below can also be changed at runtime via the menu.
Development
Prerequisites
- Rust 1.87+
- Cargo
Quick Start
- Clone the repository:
- Run the application:
# Development build
# Release build
Themes
Termitype includes a curated collection of themes sourced from the iTerm2 Ghostty Color Schemes Repo repository. Themes 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 - 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
License
This project is licensed under the GPL-3.0 license - see LICENSE for details.
Acknowledgments
- Monkeytype for the inspiration.
- Ratatui for the amazing TUI framework.
- iTerm2 Ghostty Color Schemes for the themes.