Skip to main content

Terminal Typing Tutor

A port of GNU Typist (GTypist)

https://github.com/justinsgithub/terminal-typing-tutor/assets/74565194/c299740b-a2f2-47f5-b244-1ca41fa48295

Project Goals

GTypist is by far the best program I have used to learn how to type faster. However it is pretty outdated and has many potential features that can be added. I was initially going to just add to the C code, but decided to switch to Python for faster implementation. It is a tradeoff for speed, but so far the difference has not taken away from the program.

I tried to stick with the original program layout and how it did things as much as possible, both out of simplicity and respect to the original.

I also think this could be a good starting open-source project for new developers to contribute to.

Install

in your terminal:

$ pip install --user terminal-typing-tutor
---> 100%
Successfully installed terminal-typing-tutor

$ ttt

upgrade:

$ pip install --user --upgrade terminal-typing-tutor

Features

New

  • Tracking all time WPM, and saving scores to ~/.config/terminal-typing-tutor directory

    • This allows for saving typing scores long-term and between machines.
    • I add terminal-typing-tutor to my dotfiles managed by stow so that they are saved to github
  • Small UI improvements, such as centering the text on the screen, having it up in top left was especially annoying on a large monitor

Lacking

  • There are features and also lessons missing from the original GTypist that I don't use.
  • If there is anything you want added, feel free to create and issue or make a pull request, contributions are welcome and encouraged

Requirements

This project is built with:

  • Python 3.6+

  • Typer for command line functionality (not really doing much at the moment, but future features will incorporate it more)

  • Blessed for the terminal interface, a wrapper around the curses module

Contributing

I think this project would be an awesome first open source project for new developers looking to contribute.

There are plenty of things to be improved or added to this package, such as:

  • refactoring the code, since it has just been me, I did not worry too much about making it super pretty.

    • there are places where code is repeated and can be extracted into a reusable function
  • adding theme options

  • tracking the date of users personal bests to display progress over time

  • adding new lessons for programming, such as an html, python, and javascript lesson

Some of the new features will need to implement Typer, the docs are awesome, so are the Blessed docs

License

I stuck with the original license of the project, this is my first real open source project, so please let me know if there are any standards or anything I should do better.

Metadata

Release files for terminal-typing-tutor 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for terminal-typing-tutor 0.6.1
File Size Uploaded
terminal_typing_tutor-0.6.1.tar.gz 178.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for terminal-typing-tutor 0.6.1
File Interpreter ABI Platform
terminal_typing_tutor-0.6.1-py3-none-any.whl Python 3 none any Details

Total release size: 413.2 kB

Release files / terminal_typing_tutor-0.6.1.tar.gz

Download URL terminal_typing_tutor-0.6.1.tar.gz
Size 178.3 kB
Tags Source
SHA-256 checksum
How to use checksums
b54b5e80b38036232dcc6dbebca302dcfe07f1eb4754cafc7f823591996f1df0
BLAKE2b-256 checksum
How to use checksums
49bfcb5be6333a7550d18e2e9c43d14f755260a227144a57bf5e22ebdeeacc09
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.10.12 Linux/6.9.3-76060903-generic

Release files / terminal_typing_tutor-0.6.1-py3-none-any.whl

Download URL terminal_typing_tutor-0.6.1-py3-none-any.whl
Size 234.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad8af75e832f8a994420dff5c1662e68f226c6a83cea8ea2bf963c454b341036
BLAKE2b-256 checksum
How to use checksums
cbf1ee0ce5be4fe128fd19e408a83e38abf31235d685d0438b80f2251b68a07d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.8.2 CPython/3.10.12 Linux/6.9.3-76060903-generic

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page