Skip to main content

Chord generator to simplify typing words

Project description

Chordgen

Helps you to turn any keyboard into a chording-enabled device, and generates chords that are optimised for your specific layout.

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

There is also a learn mode with a full spaced-repetition implementation to help with memorizing chords

Training

Documentation

Full docs live at https://dlip.github.io/chordgen/

Quickstart

pip install chordgen
chordgen setup     # downloads SUBTLEX-US, writes ~/.config/chordgen/{config.yaml, chords.csv}
chordgen gen       # picks an optimal chord per word and fills in alts
chordgen output    # writes firmware files for qmk / zmk / kanata / charachorder + training.txt
chordgen learn     # interactive TUI to drill chords with spaced repetition
chordgen drill     # speed-drill TUI for chords you have already learned

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.

Development

Clone the repo

git clone https://github.com/dlip/chordgen.git
cd chordgen

Nix

  • Install Nix or use NixOS.
  • Add devenv to your packages.
  • Run devenv shell or use the shell hook.

Non-nix

Running

uv run chordgen --help

Tests

uv sync --extra dev
uv run pytest

Docs

The site is built with MkDocs Material:

uv sync --extra docs
uv run mkdocs serve     # live preview at http://localhost:8000
uv run mkdocs build     # build to ./site

The site is published to GitHub Pages from the main branch via .github/workflows/docs.yml.

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.2.0.tar.gz (51.1 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.2.0-py3-none-any.whl (62.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chordgen-2.2.0.tar.gz
  • Upload date:
  • Size: 51.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.2.0.tar.gz
Algorithm Hash digest
SHA256 2ca7fc2d8141586393a7551d3210b01d6502ad762b808dfdcc7e5803ea44a020
MD5 8e9764651d2d12388749beaa2d5cb71b
BLAKE2b-256 20b38c47561353578a40972bddcff104ad6085674e65f56b4868ede9698c8600

See more details on using hashes here.

File details

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

File metadata

  • Download URL: chordgen-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 62.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0cbf4cba2cc050ad8ee2f61cb5d1ca5ccca2d82edc675dc50134101a63ae0ff
MD5 c9bf6da11c6a0d9689b7bd713e0656c2
BLAKE2b-256 c8b3128789bef43fbc39a6ad395c9b124edbc29ecda987e2962bfa819d808be0

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