typioca icon indicating copy to clipboard operation
typioca copied to clipboard

Cozy typing speed tester in terminal

typioca

Minimal, terminal based typing speed tester.

Tapioca (/ˌtæpiˈoʊkə/) is a starch extracted from the storage roots of the cassava plant. Pearl tapioca is a common ingredient in Asian desserts...and sweet drinks such as bubble tea.

GitHub release (latest SemVer) Build


Features

  • Time or word/sentence count based typing speed tests
  • Proper WPM results based on https://www.speedtypingonline.com/typing-equations
  • Multiple word/sentence lists made out of classical books to spice your test up
  • Cursor aware word lines
  • Interactive menu
  • ctrl+w support
  • SSH server typioca serve
  • Dynamic word lists
  • Custom word lists
  • Linux/Mac/Win support

Installation

AUR

yay -S typioca-git

Go

go install github.com/bloznelis/typioca@latest

Note: This will install typioca in $GOBIN, which defaults to $GOPATH/bin or $HOME/go/bin if the GOPATH environment variable is not set.

Homebrew

brew tap bloznelis/tap
brew install typioca

Scoop

scoop bucket add extras
scoop install typioca

Building from source

  1. Checkout the code
  2. make build
  3. ./execs/typioca

Prerequisites

  • make
  • go

Custom wordlists

  1. Create your word list in the same JSON format as the official ones example.
    • Note: for new-line separated word lists (like this one), for your convenience, you can use this Clojure script. Explanation how to use it can be found here.
  2. Place your configuration to platform specific location:
Platform User configuration
Windows %APPDATA%\typioca\typioca.conf or C:\Users\%USER%\AppData\Roaming\typioca\typioca.conf
Linux $XDG_CONFIG_HOME/typioca/typioca.conf or $HOME/.config/typioca/typioca.conf
macOS $HOME/Library/Application Support/typioca/typioca.conf

Config example (it is TOML):

[[words]]
  name      = "Best hits '22"
  enabled   = false
  sentences = false
  path      = "/home/words/best-hits-22.json"
[[words]]
  name      = "Even better hits '23"
  enabled   = true
  sentences = false
  path      = "/home/words/better-hits-23.json"
  1. Use your words! ship it

Note: Notice that custom wordlist controls are greyed-out, personal configuration must be handled via the file only.


1 3 2 4

Acknowledgments

Built with bubbletea

🧋