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.
![](https://github.com/bloznelis/typioca/raw/master/img/typioca.gif)
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
![Packaging status](https://repology.org/badge/vertical-allrepos/typioca.svg)
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
Nix
nix-shell -p typioca
openSUSE Tumbleweed
zypper install typioca
Scoop
scoop bucket add extras
scoop install typioca
Void Linux
xbps-install typioca
Winget
winget install bloznelis.typioca
Building from source
- Checkout the code
make build
./execs/typioca
Prerequisites
Custom wordlists
- Create your word list in a new line separated manner:
custom
words
are
the
best
or in the same JSON format as the official ones:
{
"metadata" : {
"name" : "My words",
"size" : 5,
"packagedAt" : "1970-01-01T00:00:00Z",
"version" : 1
},
"words": [ "custom", "words", "are", "the", "best" ]
}
- 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"
- Use your words!
![ship it](https://user-images.githubusercontent.com/33397865/176735281-5c2b34cb-5b19-43c1-9954-92c0583c4cc5.png)
Note: Notice that custom wordlist controls are greyed-out, personal configuration must be handled via the file only.
![4](https://user-images.githubusercontent.com/33397865/176732415-aac89b54-15d3-4b10-8408-fac997b97085.png)
Acknowledgments
Built with bubbletea
🧋