termitype 0.0.3

Terminal-based typing test inspired by a certain typing test you might know.
docs.rs failed to build termitype-0.0.3
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: termitype-0.0.11

🦀 termitype

Crates.io Build Status License: MIT

Feature-rich terminal typing test

Installation

From Crates.io

cargo install termitype

From Source

cargo install --git https://github.com/emanuel2718/termitype.git termitype

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
termitype

# See available CLI arg options (all options can also be configured via the in-game menu)
termitype --help

Options

Usage: termitype [OPTIONS]

Options:
  -l, --language <LANGUAGE>        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
  -T, --theme <THEME_NAME>         Color theme to use
      --ascii <ART_NAME>           ASCII art for results screen
      --picker-style <STYLE>       Menu style [possible values: quake, telescope, ivy, minimal]
      --results-style <STYLE>      Results display style [possible values: graph, neofetch]
      --cursor-style <STYLE>       Cursor style [possible values: beam, block, underline, blinking-beam, blinking-block, blinking-underline]
      --list-themes                List all available themes
      --list-languages             List all available languages
      --list-ascii                 List all available ASCII arts
  -s, --use-symbols                Include symbols in test words
  -p, --use-punctuation            Include punctuation in test words
  -n, --use-numbers                Include numbers in test words
      --color-mode <MODE>          Color support [possible values: basic, extended, truecolor]
      --lines <COUNT>              Number of visible text lines [default: 3]
  -d, --debug                      Enable debug mode
      --show-fps                   Display FPS counter
      --hide-live-wpm              Hide live WPM counter
      --hide-cursorline            Hide menu cursor highlight
      --monochromatic-results      Use simplified results colors
  -h, --help                       Print help
  -V, --version                    Print version

EXAMPLES:
  termitype -t 60                        Run a 60-second typing test
  termitype --word-count 100             Test will contain exactly 100 words
  termitype -T "catppuccin-mocha"        Use cattpuccin-mocha theme
  termitype -l spanish                   Use Spanish test words
  termitype -spn                         Enable symbols, punctuation, and numbers
  termitype --list-themes                Show all available themes
  termitype --results-style neofetch     Use neofetch inspired results
  termitype --picker-style telescope     Use floating menu style

Development

Prerequisites

  • Rust 1.70+
  • Cargo

Quick Start

  1. Clone the repository:
git clone https://github.com/emanuel2718/termitype.git
cd termitype
  1. Optional: Install theme pack (development only):
./scripts/install-themes.sh

Note: In production builds, themes are automatically fetched and included.

  1. Run the application:
# Development build
cargo run

# Release build
cargo run --release

# With debug logging
cargo run -- --debug

# Tail logs with something like this (MacOS example)
tail -f ~/Library/Application\ Support/termitype/debug.log

# Tail logs with something like this (Linux example)
tail -f ~/.config/termitype/debug.log

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
  • Local Results Tracking: Track test results over time (best use case is to track highest WPM on specific modes) with opt-out option
  • Multiplayer: Race other people in realtime with private rooms of sort (will use websockets for this)

License

This project is licensed under the MIT License - see LICENSE for details.

Acknowledgments