Add steno protocols to readme

This commit is contained in:
Sammi De Guzman 2022-07-18 17:44:07 -07:00
parent 10fd5a8aed
commit 669a8c726c

View file

@ -21,3 +21,58 @@ documentation for more information on QMK itself.
| The Uni (v3) | [`the_uni/usb_c`](https://github.com/openstenoproject/qmk/tree/main/keyboards/the_uni/usb_c) | [StenoKeyboards](https://github.com/petercpark/stenokeyboards-firmware) |
| Ecosteno | [`noll/ecosteno`](https://github.com/openstenoproject/qmk/tree/main/keyboards/noll/ecosteno) | [Nolltronics](https://github.com/nkotech/EcoSteno-Firmware/tree/main/keyboards/noll) |
| Multisteno | | [Nolltronics](https://github.com/nkotech/EcoSteno-Firmware/tree/main/keyboards/noll) |
## Steno Protocols
### Serial (TX Bolt, Gemini PR)
The industry-standard TX Bolt and Gemini PR steno protocols are included in
upstream QMK, and [QMK's steno docs](https://docs.qmk.fm/#/feature_stenography)
go into more detail on how to set that up, but in summary:
Add the following definitions to your keymap's `rules.mk` file:
```
VIRTSER_ENABLE = yes
STENO_ENABLE = yes
```
And use the constants with the [`STN_` prefix](https://docs.qmk.fm/#/feature_stenography?id=keycode-reference)
to specify what steno key each key on your board should send. For example, the
base layer for the Uni looks as follows:
```c
#include "keymap_steno.h"
LAYOUT(
STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR ,
STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR ,
STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2,
),
```
### Plover HID
The [Plover HID](https://github.com/dnaq/plover-machine-hid) protocol is an
in-development protocol that relies on the standard HID protocol rather than
USB serial, resulting in more customizability and a better user experience.
To use Plover HID, add the following definitions to your keymap's `rules.mk`:
```
STENO_ENABLE = no
PLOVER_HID_ENABLE = yes
```
The keycodes for Plover HID are the same as the _TX Bolt_ constants for serial,
but use the `PLV_` prefix instead of `STN_`:
```c
#include "keymap_plover_hid.h"
LAYOUT(
PLV_SL, PLV_TL, PLV_PL, PLV_HL, PLV_STR, PLV_STR, PLV_FR, PLV_PR, PLV_LR, PLV_TR, PLV_DR ,
PLV_SL, PLV_KL, PLV_WL, PLV_RL, PLV_STR, PLV_STR, PLV_RR, PLV_BR, PLV_GR, PLV_SR, PLV_ZR ,
PLV_NUM, PLV_A, PLV_O, PLV_E, PLV_U, PLV_NUM,
),
```