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
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
devenvto your packages. - Run
devenv shellor use the shell hook.
Non-nix
-
Install Python 3.11.14.
-
Install
uv:pip install uv
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ca7fc2d8141586393a7551d3210b01d6502ad762b808dfdcc7e5803ea44a020
|
|
| MD5 |
8e9764651d2d12388749beaa2d5cb71b
|
|
| BLAKE2b-256 |
20b38c47561353578a40972bddcff104ad6085674e65f56b4868ede9698c8600
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a0cbf4cba2cc050ad8ee2f61cb5d1ca5ccca2d82edc675dc50134101a63ae0ff
|
|
| MD5 |
c9bf6da11c6a0d9689b7bd713e0656c2
|
|
| BLAKE2b-256 |
c8b3128789bef43fbc39a6ad395c9b124edbc29ecda987e2962bfa819d808be0
|