Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chinese-soup/cursestype
Simple Linux TUI-only MonkeyType clone written in Python and curses
https://github.com/chinese-soup/cursestype
curses keyboard monkeytype ncurses ncurses-tui python python3 terminal terminal-app terminal-based terminal-game test tui typing typingspeedtest wpm
Last synced: about 2 months ago
JSON representation
Simple Linux TUI-only MonkeyType clone written in Python and curses
- Host: GitHub
- URL: https://github.com/chinese-soup/cursestype
- Owner: chinese-soup
- Created: 2021-11-04T01:40:51.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2022-11-05T00:31:54.000Z (about 2 years ago)
- Last Synced: 2024-10-13T01:29:17.445Z (3 months ago)
- Topics: curses, keyboard, monkeytype, ncurses, ncurses-tui, python, python3, terminal, terminal-app, terminal-based, terminal-game, test, tui, typing, typingspeedtest, wpm
- Language: Python
- Homepage:
- Size: 745 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Cursestype
## About
* A bad [MonkeyType](https://monkeytype.com) (or any generic WPM typing tester app) clone build exclusively using Python's built-in `curses` wrapper.
* Work in progress.### (Obligatory) current state screenshot
![GIF recording of the program in action](assets/screenshot.gif)## Motivation
* Just for fun & learning about ncurses## Requirements
* Python > 3.7
### Why `curses`
* It's built-in and no external dependencies are required.## Usage
So far it's just:
### Start with language wordlist (stored in words/*.py):
```bash
$ chmod +x cursestype.py
./cursestype.py czech
```
Note: `curses` is not supported in Windows `cmd.exe`, use Windows Subsystem for Linux.## Limitations
* Only supports Latin alphabet languages## TODO
- [ ] keep a dictionary of currently OK chars
- [ ] don't let user go back a word if he commits it (space) like MonkeyType doesn't (Confidence mode?)
- [x] if a user backspaces a green thing (a CORRECT char), make it gray again
- [ ] Multiline w.move()s - SOME work done
- [x] refactor this, need to be able to go back to previous line
- [ ] refactor this, needs to be dynamic!
- how about it uses the "keep a dictionary of currently OK chars" to rebuild?
- with of course, also proper w.move()
- [ ] with dynamic i also mean maybe CONSIDER: Do it like monkeytype where two lines are visible, then third, but the active one after finishing the 1st one is ALWAYS the 2nd one and they scroll up (this is true for timed, for set ones the last line is obviously finished as well on screen)
- [ ] newlines only as text wrapping
- [ ] don't count newlines as a character
- [ ] Menu to change language file etc.
- [ ] Let user specify a text file to load to type OR just generate words from language files that user selects
- [x] Languages other than ANSI english
- [ ] Reafctor language files system
- [ ] Command line parameters
- [ ] Timed gamemode (15s/30s/45s/60s)
- [ ] Record & replay the run (and save replays?)
- [ ] Put the text into seperate curses window!!!!
- [ ] Stop refreshing the whole win (`w`) to get rid of flashes(?)