Compare commits
2 Commits
0.6.5
...
info_json_
Author | SHA1 | Date | |
---|---|---|---|
|
73ccec12f3 | ||
|
46f95d6c30 |
@@ -56,29 +56,6 @@ On the display tab click 'Open stroke display'. With Plover disabled you should
|
|||||||
* [Steno Jig](https://joshuagrams.github.io/steno-jig/)
|
* [Steno Jig](https://joshuagrams.github.io/steno-jig/)
|
||||||
* More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki
|
* More resources at the Plover [Learning Stenography](https://github.com/openstenoproject/plover/wiki/Learning-Stenography) wiki
|
||||||
|
|
||||||
## Interfacing with the code
|
|
||||||
|
|
||||||
The steno code has three interceptible hooks. If you define these functions, they will be called at certain points in processing; if they return true, processing continues, otherwise it's assumed you handled things.
|
|
||||||
|
|
||||||
```C
|
|
||||||
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]);
|
|
||||||
```
|
|
||||||
|
|
||||||
This function is called when a chord is about to be sent. Mode will be one of `STENO_MODE_BOLT` or `STENO_MODE_GEMINI`. This represents the actual chord that would be sent via whichever protocol. You can modify the chord provided to alter what gets sent. Remember to return true if you want the regular sending process to happen.
|
|
||||||
|
|
||||||
```C
|
|
||||||
bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
|
|
||||||
```
|
|
||||||
|
|
||||||
This function is called when a keypress has come in, before it is processed. The keycode should be one of `QK_STENO_BOLT`, `QK_STENO_GEMINI`, or one of the `STN_*` key values.
|
|
||||||
|
|
||||||
```C
|
|
||||||
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed);
|
|
||||||
```
|
|
||||||
|
|
||||||
This function is called after a key has been processed, but before any decision about whether or not to send a chord. If `IS_PRESSED(record->event)` is false, and `pressed` is 0 or 1, the chord will be sent shortly, but has not yet been sent. This is where to put hooks for things like, say, live displays of steno chords or keys.
|
|
||||||
|
|
||||||
|
|
||||||
## Keycode Reference
|
## Keycode Reference
|
||||||
|
|
||||||
As defined in `keymap_steno.h`.
|
As defined in `keymap_steno.h`.
|
||||||
@@ -129,4 +106,3 @@ As defined in `keymap_steno.h`.
|
|||||||
|`STN_RES1`||(GeminiPR only)|
|
|`STN_RES1`||(GeminiPR only)|
|
||||||
|`STN_RES2`||(GeminiPR only)|
|
|`STN_RES2`||(GeminiPR only)|
|
||||||
|`STN_PWR`||(GeminiPR only)|
|
|`STN_PWR`||(GeminiPR only)|
|
||||||
|
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "1up60rgb",
|
"keyboard_name": "1up60rgb",
|
||||||
"manufacturer": "1UP Keyboards",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "AMJ96",
|
"keyboard_name": "AMJ96",
|
||||||
"manufacturer": "AMJ",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 19,
|
"width": 19,
|
||||||
"height": 6,
|
"height": 6,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "",
|
"keyboard_name": "",
|
||||||
"manufacturer": "",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "",
|
|
||||||
"bootloader": "",
|
"bootloader": "",
|
||||||
"width": 15.5,
|
"width": 15.5,
|
||||||
"height": 4.25,
|
"height": 4.25,
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier": "FEED:3070:2017"
|
|
||||||
}
|
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Christmas Tree",
|
"keyboard_name": "Christmas Tree",
|
||||||
"keyboard_folder": "christmas_tree",
|
"keyboard_folder": "christmas_tree",
|
||||||
"manufacturer": "Maple Computing",
|
|
||||||
"identifier": "FEED:3070:2017",
|
|
||||||
"url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/",
|
"url": "https://www.reddit.com/r/MechanicalKeyboards/comments/7cqxpf/gb_christmas_tree_pcb_gb_now_live/",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "catarina",
|
"bootloader": "catarina",
|
||||||
"maintainer": "That-Canadian",
|
"maintainer": "That-Canadian",
|
||||||
"width": 3,
|
"width": 3,
|
||||||
@@ -14,4 +11,4 @@
|
|||||||
"key_count": 6
|
"key_count": 6
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "CB 2x1800",
|
"keyboard_name": "CB 2x1800",
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "skullydazed",
|
||||||
"processor": "at90usb1286",
|
|
||||||
"bootloader": "teensy",
|
"bootloader": "teensy",
|
||||||
"width": 24,
|
"width": 24,
|
||||||
"height": 6.5,
|
"height": 6.5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "clueboard/60",
|
"keyboard_name": "clueboard/60",
|
||||||
"manufacturer": "Clueboard",
|
|
||||||
"identifier": "0483:df11",
|
|
||||||
"maintainer": "skullydazed",
|
"maintainer": "skullydazed",
|
||||||
"url": "",
|
"url": "",
|
||||||
"processor": "stm32f303",
|
|
||||||
"bootloader": "stm32-dfu-util",
|
"bootloader": "stm32-dfu-util",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Clueboard 66%",
|
"keyboard_name": "Clueboard 66%",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16.5,
|
"width": 16.5,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier":"c1ed:2301:0003"
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier":"c1ed:2320:0001"
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier":"c1ed:2370:0001"
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier":"c1ed:2390:0001"
|
|
||||||
}
|
|
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Clueboard 66% HotSwap",
|
"keyboard_name": "Clueboard 66% HotSwap",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16.5,
|
"width": 16.5,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Contra",
|
"keyboard_name": "Contra",
|
||||||
"manufacturer": "Cartel Keyboards",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "caterina",
|
"bootloader": "caterina",
|
||||||
"width": 12,
|
"width": 12,
|
||||||
"height": 4,
|
"height": 4,
|
||||||
|
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "DeltaSplit75",
|
"keyboard_name": "DeltaSplit75",
|
||||||
"identifier":"FEED:3060:0001",
|
|
||||||
"manufacturer": "xyxjj",
|
|
||||||
"maintainer": "xyxjj & itsaferbie",
|
"maintainer": "xyxjj & itsaferbie",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "n/a",
|
"bootloader": "n/a",
|
||||||
"width": 17,
|
"width": 17,
|
||||||
"height": 6,
|
"height": 6,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "DZ60",
|
"keyboard_name": "DZ60",
|
||||||
"manufacturer": "KBDFans",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
@@ -29,4 +26,4 @@
|
|||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Del", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":2.25}, {"x":6, "y":4, "w":1.25}, {"x":7.25, "y":4, "w":2.75}, {"x":10, "y":4}, {"label":"Alt", "x":11, "y":4}, {"label":"Win", "x":12, "y":4}, {"label":"Menu", "x":13, "y":4}, {"label":"Ctrl", "x":14, "y":4}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "E6-V2",
|
"keyboard_name": "E6-V2",
|
||||||
"manufacturer": "Exclusive",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
@@ -25,4 +22,4 @@
|
|||||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}]
|
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Win", "x":1.5, "y":4}, {"label":"Alt", "x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"label":"Alt", "x":11, "y":4, "w":1.5}, {"label":"Win", "x":12.5, "y":4}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Eagle/Viper",
|
"keyboard_name": "Eagle/Viper",
|
||||||
"manufacturer": "Duck",
|
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "ErgoDox EZ",
|
"keyboard_name": "ErgoDox EZ",
|
||||||
"manufacturer": "ErgoDox EZ",
|
|
||||||
"identifier": "FEED:1307:0001",
|
|
||||||
"url": "ergodox-ez.com",
|
"url": "ergodox-ez.com",
|
||||||
"maintainer": "erez",
|
"maintainer": "erez",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "halfkay",
|
"bootloader": "halfkay",
|
||||||
"width": 19.5,
|
"width": 19.5,
|
||||||
"height": 9.375,
|
"height": 9.375,
|
||||||
|
@@ -1,8 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Infinity Ergodox",
|
"keyboard_name": "Infinity Ergodox",
|
||||||
"manufacturer": "Input Club",
|
|
||||||
"identifier": "FEED:6464:0001",
|
|
||||||
"processor": "MK20DX256VLH7",
|
|
||||||
"bootloader": "KIIBOHD_BOOTLOADER",
|
"bootloader": "KIIBOHD_BOOTLOADER",
|
||||||
"width": 19.5,
|
"width": 19.5,
|
||||||
"height": 9.375,
|
"height": 9.375,
|
||||||
|
@@ -1,6 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "GH60",
|
"keyboard_name": "GH60",
|
||||||
"identifier": "FEED:6060:0001",
|
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"KEYMAP": {
|
"KEYMAP": {
|
||||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}]
|
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}]
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Iris",
|
"keyboard_name": "Iris",
|
||||||
"manufacturer": "Keebio",
|
|
||||||
"identifier": "0x1256",
|
|
||||||
"url": "Keeb.io",
|
"url": "Keeb.io",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "",
|
"bootloader": "",
|
||||||
"width": 14.5,
|
"width": 14.5,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "jc65",
|
"keyboard_name": "jc65",
|
||||||
"manufacturer": "keyclack",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32a",
|
|
||||||
"bootloader": "",
|
"bootloader": "",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "jc65",
|
"keyboard_name": "jc65",
|
||||||
"manufacturer": "keyclack",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "K-Type",
|
"keyboard_name": "K-Type",
|
||||||
"manufacturer": "Input Club",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "cortex-m4",
|
|
||||||
"width": 18.25,
|
"width": 18.25,
|
||||||
"height": 6.5,
|
"height": 6.5,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "KBD75",
|
"keyboard_name": "KBD75",
|
||||||
"manufacturer": "KBDFans",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 6,
|
"height": 6,
|
||||||
@@ -13,4 +10,4 @@
|
|||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"Delete", "x":15, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"label":"Enter", "x":12.75, "y":3, "w":2.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":2.25}, {"x":6, "y":5}, {"x":7, "y":5, "w":3}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "KC60",
|
"keyboard_name": "KC60",
|
||||||
"manufacturer": "",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Octagon V1",
|
"keyboard_name": "Octagon V1",
|
||||||
"manufacturer": "Duck",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 6,
|
"height": 6,
|
||||||
@@ -13,4 +10,4 @@
|
|||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1, "y":0}, {"label":"F2", "x":2, "y":0}, {"label":"F3", "x":3, "y":0}, {"label":"F4", "x":4, "y":0}, {"label":"F5", "x":5, "y":0}, {"label":"F6", "x":6, "y":0}, {"label":"F7", "x":7, "y":0}, {"label":"F8", "x":8, "y":0}, {"label":"F9", "x":9, "y":0}, {"label":"F10", "x":10, "y":0}, {"label":"F11", "x":11, "y":0}, {"label":"F12", "x":12, "y":0}, {"label":"PrtSc", "x":13, "y":0}, {"label":"Pause", "x":14, "y":0}, {"label":"~", "x":0, "y":1}, {"label":"!", "x":1, "y":1}, {"label":"@", "x":2, "y":1}, {"label":"#", "x":3, "y":1}, {"label":"$", "x":4, "y":1}, {"label":"%", "x":5, "y":1}, {"label":"^", "x":6, "y":1}, {"label":"&", "x":7, "y":1}, {"label":"*", "x":8, "y":1}, {"label":"(", "x":9, "y":1}, {"label":")", "x":10, "y":1}, {"label":"_", "x":11, "y":1}, {"label":"+", "x":12, "y":1}, {"label":"Backspace", "x":13, "y":1, "w":2}, {"label":"Home", "x":15, "y":1}, {"label":"Tab", "x":0, "y":2, "w":1.5}, {"label":"Q", "x":1.5, "y":2}, {"label":"W", "x":2.5, "y":2}, {"label":"E", "x":3.5, "y":2}, {"label":"R", "x":4.5, "y":2}, {"label":"T", "x":5.5, "y":2}, {"label":"Y", "x":6.5, "y":2}, {"label":"U", "x":7.5, "y":2}, {"label":"I", "x":8.5, "y":2}, {"label":"O", "x":9.5, "y":2}, {"label":"P", "x":10.5, "y":2}, {"label":"{", "x":11.5, "y":2}, {"label":"}", "x":12.5, "y":2}, {"label":"|", "x":13.5, "y":2, "w":1.5}, {"label":"Page Up", "x":15, "y":2}, {"label":"Caps Lock", "x":0, "y":3, "w":1.75}, {"label":"A", "x":1.75, "y":3}, {"label":"S", "x":2.75, "y":3}, {"label":"D", "x":3.75, "y":3}, {"label":"F", "x":4.75, "y":3}, {"label":"G", "x":5.75, "y":3}, {"label":"H", "x":6.75, "y":3}, {"label":"J", "x":7.75, "y":3}, {"label":"K", "x":8.75, "y":3}, {"label":"L", "x":9.75, "y":3}, {"label":":", "x":10.75, "y":3}, {"label":"\"", "x":11.75, "y":3}, {"x":12.75, "y":3}, {"label":"Enter", "x":13.75, "y":3, "w":1.25}, {"label":"Page Down", "x":15, "y":3}, {"label":"Shift", "x":0, "y":4, "w":2.25}, {"label":"Z", "x":2.25, "y":4}, {"label":"X", "x":3.25, "y":4}, {"label":"C", "x":4.25, "y":4}, {"label":"V", "x":5.25, "y":4}, {"label":"B", "x":6.25, "y":4}, {"label":"N", "x":7.25, "y":4}, {"label":"M", "x":8.25, "y":4}, {"label":"<", "x":9.25, "y":4}, {"label":">", "x":10.25, "y":4}, {"label":"?", "x":11.25, "y":4}, {"label":"Shift", "x":12.25, "y":4, "w":1.75}, {"label":"\u2191", "x":14, "y":4}, {"label":"End", "x":15, "y":4}, {"label":"Ctrl", "x":0, "y":5, "w":1.25}, {"label":"Win", "x":1.25, "y":5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5, "w":1.25}, {"x":3.75, "y":5, "w":6.25}, {"label":"Alt", "x":10, "y":5}, {"label":"Fn", "x":11, "y":5}, {"label":"Ctrl", "x":12, "y":5}, {"label":"\u2190", "x":13, "y":5}, {"label":"\u2193", "x":14, "y":5}, {"label":"\u2192", "x":15, "y":5}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Octagon V2",
|
"keyboard_name": "Octagon V2",
|
||||||
"manufacturer": "Duck",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 6,
|
"height": 6,
|
||||||
|
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Monkeebs Orthodox Rev.1",
|
"keyboard_name": "Monkeebs Orthodox Rev.1",
|
||||||
"manufacturer": "deductivemonkee",
|
|
||||||
"identifier": "FEED:3060:0001",
|
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "caterina",
|
"bootloader": "caterina",
|
||||||
"width": 17,
|
"width": 17,
|
||||||
"height": 17.24,
|
"height": 17.24,
|
||||||
|
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Monkeebs Orthodox Rev.3",
|
"keyboard_name": "Monkeebs Orthodox Rev.3",
|
||||||
"manufacturer": "deductivemonkee",
|
|
||||||
"identifier": "FEED:3060:0001",
|
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "caterina",
|
"bootloader": "caterina",
|
||||||
"width": 17,
|
"width": 17,
|
||||||
"height": 17.24,
|
"height": 17.24,
|
||||||
|
@@ -1,9 +1,6 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Monkeebs Orthodox Rev.3",
|
"keyboard_name": "Monkeebs Orthodox Rev.3",
|
||||||
"manufacturer": "deductivemonkee",
|
|
||||||
"identifier": "FEED:3060:0001",
|
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "halfkay",
|
"bootloader": "halfkay",
|
||||||
"width": 17,
|
"width": 17,
|
||||||
"height": 17.24,
|
"height": 17.24,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Phantom",
|
"keyboard_name": "Phantom",
|
||||||
"manufacturer": "bpiphany",
|
|
||||||
"identifier": "PHANTOM",
|
|
||||||
"url": "https://deskthority.net/wiki/Phantom",
|
"url": "https://deskthority.net/wiki/Phantom",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "halfkay",
|
"bootloader": "halfkay",
|
||||||
"width": 18.25,
|
"width": 18.25,
|
||||||
"height": 6.5,
|
"height": 6.5,
|
||||||
|
@@ -1,11 +1,8 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Planck",
|
"keyboard_name": "Planck",
|
||||||
"keyboard_folder": "planck",
|
"keyboard_folder": "planck",
|
||||||
"manufacturer": "OLKB",
|
|
||||||
"identifier": "FEED:6060:0001",
|
|
||||||
"url": "https://olkb.com/planck",
|
"url": "https://olkb.com/planck",
|
||||||
"maintainer": "jackhumbert",
|
"maintainer": "jackhumbert",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 12,
|
"width": 12,
|
||||||
"height": 4,
|
"height": 4,
|
||||||
@@ -114,4 +111,4 @@
|
|||||||
{ "w": 1, "x": 11, "y": 3 } ]
|
{ "w": 1, "x": 11, "y": 3 } ]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,7 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Planck Light",
|
"keyboard_name": "Planck Light",
|
||||||
"keyboard_folder": "planck/light",
|
"keyboard_folder": "planck/light",
|
||||||
"identifier": "FEED:6065:0001",
|
|
||||||
"processor": "at90usb1286",
|
|
||||||
"bootloader": "qmk-dfu",
|
"bootloader": "qmk-dfu",
|
||||||
}
|
}
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier": "FEED:6060:0003"
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier": "FEED:6060:0004"
|
|
||||||
}
|
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier": "FEED:6060:0005"
|
|
||||||
}
|
|
@@ -1,11 +1,8 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Preonic",
|
"keyboard_name": "Preonic",
|
||||||
"keyboard_folder": "preonic",
|
"keyboard_folder": "preonic",
|
||||||
"manufacturer": "OLKB",
|
|
||||||
"identifier": "FEED:6061:0001",
|
|
||||||
"url": "https://olkb.com/preonic",
|
"url": "https://olkb.com/preonic",
|
||||||
"maintainer": "jackhumbert",
|
"maintainer": "jackhumbert",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 12,
|
"width": 12,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier": "FEED:6061:0001"
|
|
||||||
}
|
|
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"identifier": "FEED:6061:0002",
|
|
||||||
"bootloader": "qmk-dfu"
|
|
||||||
}
|
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Sweet 16",
|
"keyboard_name": "Sweet 16",
|
||||||
"manufacturer": "1UP Keyboards",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 4,
|
"width": 4,
|
||||||
"height": 4,
|
"height": 4,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Tada68",
|
"keyboard_name": "Tada68",
|
||||||
"manufacturer": "",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "TKC1800",
|
"keyboard_name": "TKC1800",
|
||||||
"manufacturer": "The Key Company",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 19.5,
|
"width": 19.5,
|
||||||
"height": 7,
|
"height": 7,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "tv44",
|
"keyboard_name": "tv44",
|
||||||
"manufacturer": "The Van Keyboards",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 12.75,
|
"width": 12.75,
|
||||||
"height": 4,
|
"height": 4,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "V60 Type R",
|
"keyboard_name": "V60 Type R",
|
||||||
"manufacturer": "KBParadise",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Whitefox",
|
"keyboard_name": "Whitefox",
|
||||||
"manufacturer": "Input Club",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "",
|
|
||||||
"bootloader": "",
|
"bootloader": "",
|
||||||
"width": 16,
|
"width": 16,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
@@ -1,10 +1,7 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "XD60",
|
"keyboard_name": "XD60",
|
||||||
"manufacturer": "",
|
|
||||||
"identifier": "",
|
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"processor": "atmega32u4",
|
|
||||||
"bootloader": "atmel-dfu",
|
"bootloader": "atmel-dfu",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
@@ -13,4 +10,4 @@
|
|||||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}]
|
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3}, {"x":1, "y":3}, {"label":"Z", "x":2, "y":3}, {"label":"X", "x":3, "y":3}, {"label":"C", "x":4, "y":3}, {"label":"V", "x":5, "y":3}, {"label":"B", "x":6, "y":3}, {"label":"N", "x":7, "y":3}, {"label":"M", "x":8, "y":3}, {"label":"<", "x":9, "y":3}, {"label":">", "x":10, "y":3}, {"label":"?", "x":11, "y":3}, {"label":"Shift", "x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4}, {"label":"Win", "x":11, "y":4}, {"label":"Menu", "x":12, "y":4}, {"label":"Ctrl", "x":13, "y":4}, {"x":14, "y":4}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +18,6 @@
|
|||||||
#include "eeprom.h"
|
#include "eeprom.h"
|
||||||
#include "keymap_steno.h"
|
#include "keymap_steno.h"
|
||||||
#include "virtser.h"
|
#include "virtser.h"
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
// TxBolt Codes
|
// TxBolt Codes
|
||||||
#define TXB_NUL 0
|
#define TXB_NUL 0
|
||||||
@@ -58,12 +57,11 @@
|
|||||||
#define GEMINI_STATE_SIZE 6
|
#define GEMINI_STATE_SIZE 6
|
||||||
#define MAX_STATE_SIZE GEMINI_STATE_SIZE
|
#define MAX_STATE_SIZE GEMINI_STATE_SIZE
|
||||||
|
|
||||||
static uint8_t state[MAX_STATE_SIZE] = {0};
|
uint8_t state[MAX_STATE_SIZE] = {0};
|
||||||
static uint8_t chord[MAX_STATE_SIZE] = {0};
|
uint8_t pressed = 0;
|
||||||
static int8_t pressed = 0;
|
steno_mode_t mode;
|
||||||
static steno_mode_t mode;
|
|
||||||
|
|
||||||
static const uint8_t boltmap[64] PROGMEM = {
|
uint8_t boltmap[64] = {
|
||||||
TXB_NUL, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM,
|
TXB_NUL, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM,
|
||||||
TXB_S_L, TXB_S_L, TXB_T_L, TXB_K_L, TXB_P_L, TXB_W_L, TXB_H_L,
|
TXB_S_L, TXB_S_L, TXB_T_L, TXB_K_L, TXB_P_L, TXB_W_L, TXB_H_L,
|
||||||
TXB_R_L, TXB_A_L, TXB_O_L, TXB_STR, TXB_STR, TXB_NUL, TXB_NUL,
|
TXB_R_L, TXB_A_L, TXB_O_L, TXB_STR, TXB_STR, TXB_NUL, TXB_NUL,
|
||||||
@@ -72,17 +70,8 @@ static const uint8_t boltmap[64] PROGMEM = {
|
|||||||
TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_Z_R
|
TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_NUM, TXB_Z_R
|
||||||
};
|
};
|
||||||
|
|
||||||
static void steno_clear_state(void) {
|
void steno_clear_state(void) {
|
||||||
memset(state, 0, sizeof(state));
|
__builtin_memset(state, 0, sizeof(state));
|
||||||
memset(chord, 0, sizeof(chord));
|
|
||||||
}
|
|
||||||
|
|
||||||
static void send_steno_state(uint8_t size, bool send_empty) {
|
|
||||||
for (uint8_t i = 0; i < size; ++i) {
|
|
||||||
if (chord[i] || send_empty) {
|
|
||||||
virtser_send(chord[i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void steno_init() {
|
void steno_init() {
|
||||||
@@ -98,108 +87,79 @@ void steno_set_mode(steno_mode_t new_mode) {
|
|||||||
eeprom_update_byte(EECONFIG_STENOMODE, mode);
|
eeprom_update_byte(EECONFIG_STENOMODE, mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* override to intercept chords right before they get sent.
|
void send_steno_state(uint8_t size, bool send_empty) {
|
||||||
* return zero to suppress normal sending behavior.
|
for (uint8_t i = 0; i < size; ++i) {
|
||||||
*/
|
if (state[i] || send_empty) {
|
||||||
__attribute__ ((weak))
|
virtser_send(state[i]);
|
||||||
bool send_steno_chord_user(steno_mode_t mode, uint8_t chord[6]) { return true; }
|
|
||||||
|
|
||||||
__attribute__ ((weak))
|
|
||||||
bool postprocess_steno_user(uint16_t keycode, keyrecord_t *record, steno_mode_t mode, uint8_t chord[6], int8_t pressed) { return true; }
|
|
||||||
|
|
||||||
__attribute__ ((weak))
|
|
||||||
bool process_steno_user(uint16_t keycode, keyrecord_t *record) { return true; }
|
|
||||||
|
|
||||||
static void send_steno_chord(void) {
|
|
||||||
if (send_steno_chord_user(mode, chord)) {
|
|
||||||
switch(mode) {
|
|
||||||
case STENO_MODE_BOLT:
|
|
||||||
send_steno_state(BOLT_STATE_SIZE, false);
|
|
||||||
virtser_send(0); // terminating byte
|
|
||||||
break;
|
|
||||||
case STENO_MODE_GEMINI:
|
|
||||||
chord[0] |= 0x80; // Indicate start of packet
|
|
||||||
send_steno_state(GEMINI_STATE_SIZE, true);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
steno_clear_state();
|
steno_clear_state();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t *steno_get_state(void) {
|
bool update_state_bolt(uint8_t key) {
|
||||||
return &state[0];
|
uint8_t boltcode = boltmap[key];
|
||||||
}
|
state[TXB_GET_GROUP(boltcode)] |= boltcode;
|
||||||
|
|
||||||
uint8_t *steno_get_chord(void) {
|
|
||||||
return &chord[0];
|
|
||||||
}
|
|
||||||
|
|
||||||
static bool update_state_bolt(uint8_t key, bool press) {
|
|
||||||
uint8_t boltcode = pgm_read_byte(boltmap + key);
|
|
||||||
if (press) {
|
|
||||||
state[TXB_GET_GROUP(boltcode)] |= boltcode;
|
|
||||||
chord[TXB_GET_GROUP(boltcode)] |= boltcode;
|
|
||||||
} else {
|
|
||||||
state[TXB_GET_GROUP(boltcode)] &= ~boltcode;
|
|
||||||
}
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool update_state_gemini(uint8_t key, bool press) {
|
bool send_state_bolt(void) {
|
||||||
int idx = key / 7;
|
send_steno_state(BOLT_STATE_SIZE, false);
|
||||||
uint8_t bit = 1 << (6 - (key % 7));
|
virtser_send(0); // terminating byte
|
||||||
if (press) {
|
return false;
|
||||||
state[idx] |= bit;
|
}
|
||||||
chord[idx] |= bit;
|
|
||||||
} else {
|
bool update_state_gemini(uint8_t key) {
|
||||||
state[idx] &= ~bit;
|
state[key / 7] |= 1 << (6 - (key % 7));
|
||||||
}
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool send_state_gemini(void) {
|
||||||
|
state[0] |= 0x80; // Indicate start of packet
|
||||||
|
send_steno_state(GEMINI_STATE_SIZE, true);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_steno(uint16_t keycode, keyrecord_t *record) {
|
bool process_steno(uint16_t keycode, keyrecord_t *record) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
case QK_STENO_BOLT:
|
case QK_STENO_BOLT:
|
||||||
if (!process_steno_user(keycode, record)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (IS_PRESSED(record->event)) {
|
if (IS_PRESSED(record->event)) {
|
||||||
steno_set_mode(STENO_MODE_BOLT);
|
steno_set_mode(STENO_MODE_BOLT);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case QK_STENO_GEMINI:
|
case QK_STENO_GEMINI:
|
||||||
if (!process_steno_user(keycode, record)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (IS_PRESSED(record->event)) {
|
if (IS_PRESSED(record->event)) {
|
||||||
steno_set_mode(STENO_MODE_GEMINI);
|
steno_set_mode(STENO_MODE_GEMINI);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
case STN__MIN...STN__MAX:
|
case STN__MIN...STN__MAX:
|
||||||
if (!process_steno_user(keycode, record)) {
|
if (IS_PRESSED(record->event)) {
|
||||||
return false;
|
uint8_t key = keycode - QK_STENO;
|
||||||
|
++pressed;
|
||||||
|
switch(mode) {
|
||||||
|
case STENO_MODE_BOLT:
|
||||||
|
return update_state_bolt(key);
|
||||||
|
case STENO_MODE_GEMINI:
|
||||||
|
return update_state_gemini(key);
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
--pressed;
|
||||||
|
if (pressed <= 0) {
|
||||||
|
pressed = 0;
|
||||||
|
switch(mode) {
|
||||||
|
case STENO_MODE_BOLT:
|
||||||
|
return send_state_bolt();
|
||||||
|
case STENO_MODE_GEMINI:
|
||||||
|
return send_state_gemini();
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch(mode) {
|
|
||||||
case STENO_MODE_BOLT:
|
|
||||||
update_state_bolt(keycode - QK_STENO, IS_PRESSED(record->event));
|
|
||||||
case STENO_MODE_GEMINI:
|
|
||||||
update_state_gemini(keycode - QK_STENO, IS_PRESSED(record->event));
|
|
||||||
}
|
|
||||||
// allow postprocessing hooks
|
|
||||||
if (postprocess_steno_user(keycode, record, mode, chord, pressed)) {
|
|
||||||
if (IS_PRESSED(record->event)) {
|
|
||||||
++pressed;
|
|
||||||
} else {
|
|
||||||
--pressed;
|
|
||||||
if (pressed <= 0) {
|
|
||||||
pressed = 0;
|
|
||||||
send_steno_chord();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -27,7 +27,5 @@ typedef enum { STENO_MODE_BOLT, STENO_MODE_GEMINI } steno_mode_t;
|
|||||||
bool process_steno(uint16_t keycode, keyrecord_t *record);
|
bool process_steno(uint16_t keycode, keyrecord_t *record);
|
||||||
void steno_init(void);
|
void steno_init(void);
|
||||||
void steno_set_mode(steno_mode_t mode);
|
void steno_set_mode(steno_mode_t mode);
|
||||||
uint8_t *steno_get_state(void);
|
|
||||||
uint8_t *steno_get_chord(void);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
Reference in New Issue
Block a user