Skip to main content

Chord generator to simplify typing words

Project description

chordgen

Turn any keyboard into a chording-enabled device — and learn the chords with built-in spaced repetition.

We type letter by letter, which is slow and error-prone. Stenographers type 300+ wpm by chording (pressing several keys at once for a whole word) but the learning curve is brutal. chordgen splits the difference: it picks an optimal chord for each word in your vocabulary, generates firmware files for your keyboard, and trains you on the chords with a spaced-repetition TUI.

It supports standard keyboards and directional ones such as Harite, CharaChorder, and Svalboard.

Learn

Highlights

  • Optimised per layout. Chord scoring takes your specific keyboard geometry into account.
  • Inflection-aware. Each base word's chord automatically covers its plural / past-tense / -ing form via alt-slot modifiers.
  • Spaced-repetition learning. chordgen learn graduates chords using FSRS so you only review what you're about to forget.
  • Real-text drilling. chordgen drill is a speed test for words you've already learned, and chordgen book lets you practise on arbitrary prose.
  • Firmware export. Writes ready-to-flash files for QMK, ZMK, Kanata, and CharaChorder, plus a training file for typing tutors.

Quickstart

pip install chordgen
chordgen setup     # downloads SUBTLEX-US, writes ~/.config/chordgen/
chordgen gen       # picks an optimal chord per word and fills in alts
chordgen output    # writes firmware files + training.txt
chordgen learn     # interactive spaced-repetition TUI
chordgen drill     # speed-drill TUI for chords you've already learned
chordgen book      # practise on long-form prose

Edit ~/.config/chordgen/chords.csv (remove words you don't want, pin chords by hand, etc.) and re-run gen whenever you want to refresh.

Documentation

Full docs live at https://dlip.github.io/chordgen/ — including the chording approach, the chords.csv reference, output formats, the config schema, and the development guide.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chordgen-2.3.0.tar.gz (69.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chordgen-2.3.0-py3-none-any.whl (83.3 kB view details)

Uploaded Python 3

File details

Details for the file chordgen-2.3.0.tar.gz.

File metadata

  • Download URL: chordgen-2.3.0.tar.gz
  • Upload date:
  • Size: 69.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chordgen-2.3.0.tar.gz
Algorithm Hash digest
SHA256 eb4af595f3652c5490435ee54dd31a708e88f62ea55eefbbd15d01eef11b08ca
MD5 3e36d6c74d7586a615744f6e4d7ba285
BLAKE2b-256 ef667bdf41837eccbd1cc42b992990e140867aa22d9f01b9d65d22803d7bdcc8

See more details on using hashes here.

File details

Details for the file chordgen-2.3.0-py3-none-any.whl.

File metadata

  • Download URL: chordgen-2.3.0-py3-none-any.whl
  • Upload date:
  • Size: 83.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.20 {"installer":{"name":"uv","version":"0.11.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for chordgen-2.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a1783e3e9c1b607c11ae3bb8cd01cd0039e0ecad95a30c50bf300180a0e218c6
MD5 6f8043531c977478a380bcd4a824ea45
BLAKE2b-256 27def67b6bda6d6fbef02a9d449cc5ef8d4cbb543831f52e4f82b3c98dec0ffb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page