#typing #tui #game #cli #testing

bin+lib termitype

Terminal-based typing test inspired by monkeytype

1 unstable release

new 0.0.1-alpha.1 Feb 17, 2025

#1552 in Command line utilities

39 downloads per month

MIT license

360KB
4K SLoC

termitype

Just another rusty TUI typing game
TODO · Notes

image

Development

Getting Started

  1. Clone the repository:
git clone https://github.com/emanuel2718/termitype.git
cd termitype
  1. Build and run:
# Normal run
cargo run

# Debug mode
cargo run -- --debug
  1. Optional: Install theme Pack
# Download the theme pack
wget -qO- https://github.com/mbadolato/iTerm2-Color-Schemes/archive/0e23daf59234fc892cba949562d7bf69204594bb.tar.gz | tar -xvzf -

# Move the themes to the assets folder
mv iTerm2-Color-Schemes-0e23daf59234fc892cba949562d7bf69204594bb/ghostty/* assets/themes/ && rm -rf iTerm2-Color-Schemes-0e23daf59234fc892cba949562d7bf69204594bb/
  • NOTE: The build process will automatically download and embed the theme pack during the first build. The themes are stored in assets/themes and will be included in the final release binary.

TODO

  • Don't include debug flag in release
  • Proper Results screen
  • User defined config in $XDG_CONFIG_HOME/termitype/config. Takes precedence over default config and persitent config state in db
  • Settings persistance
  • Results tracking with sqlite (can be opted-out with termitype --no-track)
  • Add click actions everywhere it makes sense
  • Improve the Footer with icons if possible
  • Use tui-big-text for the title
  • Fetch themes at build time from iterm2Themes url
  • Layout cleanup pass
  • Performance optimization pass before release (cargo flamegraph --root)
  • Add LICENSE
  • Release on crates.io, Homebrew, AUR, nixpkgs, etc

Done

  • Build Github CI
  • Theme swap at runtime (Menu -> Themes -> )
  • Theme preview in menu
  • Change cursor style via cli
  • Change cursor style at runtime
  • Only show (3) lines with scroll off
  • underline wrong words (must have at least one wrong character for it to be underlined)
  • Add scrolbar to the menu
  • Preview the cusror style change like we do with the theme picker
  • Change language at runtime
  • Add more languages and word lists (good enough for now)
  • Change mode/value with the menu

Notes

  • how to fetch themes
# hash: 12204fc99743d8232e691ac22e058519bfc6ea92de4a11c6dba59b117531c847cd6a
wget -qO- https://github.com/mbadolato/iTerm2-Color-Schemes/archive/0e23daf59234fc892cba949562d7bf69204594bb.tar.gz | tar -xvzf -
mv iTerm2-Color-Schemes-0e23daf59234fc892cba949562d7bf69204594bb/ghostty/* assets/themes/ && rm -rf iTerm2-Color-Schemes-0e23daf59234fc892cba949562d7bf69204594bb/

Dependencies

~8–18MB
~261K SLoC