Merge branch 'qmk:master' into hfdkb_m2

This commit is contained in:
jonylee@hfd 2024-02-22 09:59:39 +08:00 committed by GitHub
commit 9c9f96b9cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
248 changed files with 12009 additions and 583 deletions

View File

@ -35,7 +35,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v41
uses: tj-actions/changed-files@v42
- name: Run qmk formatters
shell: 'bash {0}'

View File

@ -27,7 +27,7 @@ jobs:
- name: Get changed files
id: file_changes
uses: tj-actions/changed-files@v41
uses: tj-actions/changed-files@v42
- name: Print info
run: |

View File

@ -333,27 +333,26 @@ will give the _NAV layer as a reference to it's self. All other layers
will have the default for their combo reference layer. If the default
is not set, all other layers will reference themselves.
```c
#define COMBO_REF_DEFAULT _MY_COMBO_LAYER
...
```c
#define COMBO_REF_DEFAULT _MY_COMBO_LAYER
uint8_t combo_ref_from_layer(uint8_t layer){
switch (get_highest_layer(layer_state)){
case _DVORAK: return _QWERTY;
case _NAV: return _NAV;
default: return _MY_COMBO_LAYER;
}
return layer; // important if default is not in case.
uint8_t combo_ref_from_layer(uint8_t layer){
switch (get_highest_layer(layer_state)){
case _DVORAK: return _QWERTY;
case _NAV: return _NAV;
default: return _MY_COMBO_LAYER;
}
```
return layer; // important if default is not in case.
}
```
The equivalent definition using the combo macros is this:
```c
COMBO_REF_LAYER(_DVORAK, _QWERTY)
COMBO_REF_LAYER(_NAV, _NAV)
DEFAULT_REF_LAYER(_MY_COMBO_LAYER).
```
```c
COMBO_REF_LAYER(_DVORAK, _QWERTY)
COMBO_REF_LAYER(_NAV, _NAV)
DEFAULT_REF_LAYER(_MY_COMBO_LAYER).
```
## User callbacks

View File

@ -82,10 +82,10 @@ Your `keymap.c` will then need an encoder mapping defined (for four layers and t
```c
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BASE] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LOWER] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[_RAISE] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
[_ADJUST] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
[0] = { ENCODER_CCW_CW(KC_MS_WH_UP, KC_MS_WH_DOWN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
[2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
[3] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
};
#endif
```

View File

@ -349,6 +349,322 @@
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_625u_space": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_625u_space_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 15], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_7u_space": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}
]
},
"LAYOUT_iso_7u_space_split_bs": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 15], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [1, 13], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 14], "x": 15.25, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 3], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 13, "y": 4},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4}

View File

@ -0,0 +1,25 @@
/*
Copyright 2024 Yiancar-Designs
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published byß
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* RGB Light */
#define WS2812_PWM_DRIVER PWMD1
#define WS2812_DMA_STREAM STM32_DMA1_STREAM5
#define WS2812_DMA_CHANNEL 5
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB

View File

@ -0,0 +1,21 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define HAL_USE_PWM TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,232 @@
{
"manufacturer": "Yiancar-Designs",
"keyboard_name": "LvL Type-01/80",
"maintainer": "Yiancar-Designs",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"indicators": {
"caps_lock": "B6",
"on_state": 0
},
"matrix_pins": {
"cols": ["A1", "B9", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "A8"],
"rows": ["A2", "A14", "A15", "B3", "B4", "B5"]
},
"processor": "STM32F072",
"rgblight": {
"animations": {
"alternating": true,
"breathing": true,
"christmas": true,
"knight": true,
"rainbow_mood": true,
"rainbow_swirl": true,
"rgb_test": true,
"snake": true,
"static_gradient": true,
"twinkle": true
},
"default": {
"sat": 0
},
"led_count": 1
},
"url": "https://yiancar-designs.com",
"usb": {
"device_version": "0.0.1",
"pid": "0x4C56",
"vid": "0x8968"
},
"ws2812": {
"driver": "pwm",
"pin": "A9"
},
"community_layouts": ["tkl_ansi_tsangan"],
"layouts": {
"LAYOUT_tkl_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
},
"LAYOUT_tkl_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [0, 2], "x": 3, "y": 0},
{"matrix": [0, 3], "x": 4, "y": 0},
{"matrix": [0, 4], "x": 5, "y": 0},
{"matrix": [0, 5], "x": 6.5, "y": 0},
{"matrix": [0, 6], "x": 7.5, "y": 0},
{"matrix": [0, 7], "x": 8.5, "y": 0},
{"matrix": [0, 8], "x": 9.5, "y": 0},
{"matrix": [0, 9], "x": 11, "y": 0},
{"matrix": [0, 10], "x": 12, "y": 0},
{"matrix": [0, 11], "x": 13, "y": 0},
{"matrix": [0, 12], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [0, 16], "x": 17.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [1, 3], "x": 3, "y": 1.25},
{"matrix": [1, 4], "x": 4, "y": 1.25},
{"matrix": [1, 5], "x": 5, "y": 1.25},
{"matrix": [1, 6], "x": 6, "y": 1.25},
{"matrix": [1, 7], "x": 7, "y": 1.25},
{"matrix": [1, 8], "x": 8, "y": 1.25},
{"matrix": [1, 9], "x": 9, "y": 1.25},
{"matrix": [1, 10], "x": 10, "y": 1.25},
{"matrix": [1, 11], "x": 11, "y": 1.25},
{"matrix": [1, 12], "x": 12, "y": 1.25},
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
{"matrix": [3, 12], "x": 13.5, "y": 2.25, "w": 1.5},
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
{"matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
]
}
}
}

View File

@ -0,0 +1,27 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_tkl_ansi_tsangan( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
};

View File

@ -0,0 +1,27 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_tkl_ansi_tsangan( /* Base */
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,22 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include_next <mcuconf.h>
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE

View File

@ -0,0 +1,32 @@
# LvL Type-01/80
This is a standard TKL layout PCB. It supports VIA.
* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
* Hardware Supported: A TKL keyboard with STM32F072CB
* Hardware Availability: https://artifact-industries.com
## Instructions
### Build
Make example for this keyboard (after setting up your build environment):
make artifact/lvl/rev_hs01:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
### Reset
- Unplug
- Hold Escape
- Plug In
- Unplug
- Release Escape
### Flash
- Unplug
- Hold Escape
- Plug In
- Flash using QMK Toolbox or CLI (`make artifact/lvl/rev_hs01:<keymap>:flash`)

View File

@ -0,0 +1,21 @@
/* Copyright 2024 Yiancar-Designs
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
void led_init_ports(void) {
// Set our LED pins as open drain outputs
setPinOutputOpenDrain(LED_CAPS_LOCK_PIN);
}

View File

@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

View File

@ -4,7 +4,7 @@
"url": "",
"maintainer": "qmk",
"usb": {
"vid": "0xFEED",
"vid": "0x5072",
"pid": "0x6062",
"device_version": "0.0.1"
},

View File

@ -0,0 +1,50 @@
/* Copyright 2024 Tommi Pääkkö (@Glenf)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_DEFAULT,
_NAV,
_RESET,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_DEFAULT] = LAYOUT( /* qwerty */
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS ,
KC_BSLS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC ,
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT ,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LBRC ,
KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(_NAV),KC_BSPC, KC_DEL, KC_ENT, KC_SPC, KC_EQL, KC_MINS, KC_QUOT, KC_ENT, KC_RGUI
),
[_NAV] = LAYOUT(
TO(_DEFAULT), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS ,
TO(_RESET), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[_RESET] = LAYOUT(
TO(_DEFAULT), KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO ,
KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , KC_NO , QK_BOOT
)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,12 @@
// Copyright 2023 binepad (@binepad)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define ENCODER_DEFAULT_POS 0x3 // enable 1:1 resolution
// Default PIO0 cases flickering in this board. Setting to PIO1 resolves this issue.
#define WS2812_PIO_USE_PIO1
// Timing for SK6812
#define WS2812_T1H 650

View File

@ -0,0 +1,86 @@
{
"manufacturer": "binepad",
"keyboard_name": "BNK9",
"maintainer": "binepad",
"board": "GENERIC_RP_RP2040",
"bootloader": "rp2040",
"bootloader_instructions": "Hold down the key at (0x0) in the matrix (the 'knob' / rotary encoder) and plug in the keyboard.",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP13", "pin_b": "GP14"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP1", "GP2", "GP3"],
"rows": ["GP12", "GP4", "GP5", "GP6"]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_pinwheel": true,
"cycle_up_down": true,
"jellybean_raindrops": true,
"riverflow": true,
"solid_reactive": true,
"solid_reactive_simple": true,
"solid_splash": true,
"splash": true,
"starlight": true,
"starlight_dual_hue": true,
"starlight_dual_sat": true
},
"driver": "ws2812",
"layout": [
{"matrix": [1, 0], "x": 80, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 112, "y": 0, "flags": 4},
{"matrix": [1, 2], "x": 144, "y": 0, "flags": 4},
{"matrix": [2, 2], "x": 144, "y": 32, "flags": 4},
{"matrix": [2, 1], "x": 112, "y": 32, "flags": 4},
{"matrix": [2, 0], "x": 80, "y": 32, "flags": 4},
{"matrix": [3, 0], "x": 80, "y": 64, "flags": 4},
{"matrix": [3, 1], "x": 112, "y": 64, "flags": 4},
{"matrix": [3, 2], "x": 144, "y": 64, "flags": 4}
],
"led_process_limit": 9,
"max_brightness": 180,
"sleep": true
},
"url": "https://www.binepad.com/product-page/bnk9",
"usb": {
"device_version": "1.0.0",
"pid": "0x4E39",
"vid": "0x4249"
},
"ws2812": {
"driver": "vendor",
"pin": "GP11"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "Knob", "matrix": [0, 0], "x": 0, "y": 0, "w": 3, "h": 3, "encoder": 0},
{"label": "1", "matrix": [1, 0], "x": 3.25, "y": 0},
{"label": "2", "matrix": [1, 1], "x": 4.25, "y": 0},
{"label": "3", "matrix": [1, 2], "x": 5.25, "y": 0},
{"label": "4", "matrix": [2, 0], "x": 3.25, "y": 1},
{"label": "5", "matrix": [2, 1], "x": 4.25, "y": 1},
{"label": "6", "matrix": [2, 2], "x": 5.25, "y": 1},
{"label": "7", "matrix": [3, 0], "x": 3.25, "y": 2},
{"label": "8", "matrix": [3, 1], "x": 4.25, "y": 2},
{"label": "9", "matrix": [3, 2], "x": 5.25, "y": 2}
]
}
}
}

View File

@ -0,0 +1,28 @@
// Copyright 2023 Binepad (@binpad)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE,
KC_P1, KC_P2, KC_P3,
KC_P4, KC_P5, KC_P6,
KC_P7, KC_P8, LT(1, KC_P9)
),
[1] = LAYOUT(
RGB_TOG,
RGB_HUI, RGB_SAI, RGB_SPI,
RGB_HUD, RGB_SAD, RGB_SPD,
RGB_RMOD, RGB_MOD, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
};
#endif

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,28 @@
// Copyright 2023 Binepad (@binpad)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE,
KC_P1, KC_P2, KC_P3,
KC_P4, KC_P5, KC_P6,
KC_P7, KC_P8, LT(1, KC_P9)
),
[1] = LAYOUT(
RGB_TOG,
RGB_HUI, RGB_SAI, RGB_SPI,
RGB_HUD, RGB_SAD, RGB_SPD,
RGB_RMOD, RGB_MOD, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
};
#endif

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,27 @@
# BINEPAD BNK9
![BINEPAD BNK9](https://i.imgur.com/FrkVRhhh.jpg)
A 3x3 macropad with a large rotary encoder.
* Keyboard Maintainer: [binepad](https://github.com/binepad)
* Hardware Supported: BINPAD BNK9
* Hardware Availability: [binepad.com](https://www.binepad.com/product-page/bnk9)
Make example for this keyboard (after setting up your build environment):
make binepad/bnk9:default
Flashing example for this keyboard:
make binepad/bnk9:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0x0) in the matrix (the 'knob' / rotary encoder) and plug in the keyboard.
* **Physical reset button**: Briefly press the PCB button located on the back of the PCB.
* **Keycode in layout**: Press the key mapped to `QK_BOOT` *(or* `RESET` *in VIA)* if it is available.

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,945 @@
{
"manufacturer": "Maelkworks",
"keyboard_name": "mw60",
"maintainer": "Maelkk",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["F0", "C7", "C6", "B6", "B5", "F5", "B4", "D7", "D6", "D4", "D5", "D3", "F6", "D2"],
"rows": ["E6", "D1", "F7", "F4", "F1"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0004",
"vid": "0x4A56"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_tsangan": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_hhkb": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_iso": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k407", "matrix": [4, 7], "x": 3.75, "y": 4, "w": 6.25},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_tsangan": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0, "w": 2},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl_split_bs_rshift": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k113", "matrix": [1, 13], "x": 12.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"label": "k401", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "k407", "matrix": [4, 7], "x": 4, "y": 4, "w": 7},
{"label": "k411", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4},
{"label": "k413", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"layout": [
{"label": "k000", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "k001", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "k002", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "k003", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "k004", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "k005", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "k006", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "k007", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "k008", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "k009", "matrix": [0, 9], "x": 9, "y": 0},
{"label": "k010", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "k011", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "k012", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "k212", "matrix": [2, 12], "x": 13, "y": 0},
{"label": "k013", "matrix": [0, 13], "x": 14, "y": 0},
{"label": "k100", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "k101", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "k102", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "k103", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "k104", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "k105", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "k106", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "k107", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "k108", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "k109", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "k110", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "k111", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "k112", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "k113", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "k200", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "k201", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "k202", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "k203", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "k204", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "k205", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "k206", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "k207", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "k208", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "k209", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": "k210", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "k211", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "k213", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "k300", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"label": "k301", "matrix": [3, 1], "x": 1.25, "y": 3},
{"label": "k302", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "k303", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "k304", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "k305", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "k306", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "k307", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "k308", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "k309", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": "k310", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "k311", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "k312", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "k313", "matrix": [3, 13], "x": 14, "y": 3},
{"label": "k400", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"label": "k401", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
{"label": "k402", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
{"label": "k405", "matrix": [4, 5], "x": 4, "y": 4, "w": 2.75},
{"label": "k407", "matrix": [4, 7], "x": 6.75, "y": 4, "w": 1.5},
{"label": "k409", "matrix": [4, 9], "x": 8.25, "y": 4, "w": 2.75},
{"label": "k410", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
{"label": "k411", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
{"label": "k412", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
{"label": "k413", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

@ -0,0 +1,32 @@
/* Copyright 2023 Maelkk
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL),
[1] = LAYOUT_all(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
};

View File

@ -0,0 +1,31 @@
/* Copyright 2023 Maelkk
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL),
[1] = LAYOUT_all(
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,24 @@
# MW60 PCB
![MW60 PCB](https://i.imgur.com/5E48mAPh.jpg)
A simple standard 60% PCB available in hotswap and solderable variants
- Keyboard Maintainer: [Maelkk](https://github.com/Aeonstrife)
- Hardware Supported: MW60 PCB
- Hardware Availability: [sandkeys.me](https://sandkeys.me/product/petals-60-addon-pcbs/)
Make example for this keyboard (after setting up your build environment):
make buildakb/mw60:default
Flashing example for this keyboard:
make buildakb/mw60:default:flash
To reset into bootloader mode:
While plugged in, press the RESET switch located on the back of the pcb.
The keyboard should now be in bootloader mode.
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,21 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
/* VIA related config */
#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2

View File

@ -0,0 +1,957 @@
{
"manufacturer": "chlx bsmt",
"keyboard_name": "ppr.merro60",
"maintainer": "gaclee3b",
"bootloader": "atmel-dfu",
"diode_direction": "ROW2COL",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"indicators": {
"caps_lock": "C7",
"on_state": 0,
"scroll_lock": "F0"
},
"matrix_pins": {
"rows": ["F6", "F4", "F5", "F1", "B1", "B0", "C6", "B6", "D2", "D4"],
"cols": ["F7", "B2", "B3", "B7", "D7", "B4", "B5"]
},
"processor": "atmega32u4",
"url": "www.github.com/gaclee3b",
"usb": {
"device_version": "1.0.1",
"pid": "0x0603",
"vid": "0x4358"
},
"community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_tsangan_hhkb", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
"layouts": {
"LAYOUT_60_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_ansi_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_ansi_wkl_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_hhkb": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4}
]
},
"LAYOUT_60_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 3], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_60_iso_tsangan": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_wkl_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_tsangan_hhkb": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [5, 6], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [8, 0], "x": 1.5, "y": 4},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [8, 3], "x": 4, "y": 4, "w": 7},
{"matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 12.5, "y": 4},
{"matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [0, 1], "x": 2, "y": 0},
{"matrix": [1, 1], "x": 3, "y": 0},
{"matrix": [0, 2], "x": 4, "y": 0},
{"matrix": [1, 2], "x": 5, "y": 0},
{"matrix": [0, 3], "x": 6, "y": 0},
{"matrix": [1, 3], "x": 7, "y": 0},
{"matrix": [0, 4], "x": 8, "y": 0},
{"matrix": [1, 4], "x": 9, "y": 0},
{"matrix": [0, 5], "x": 10, "y": 0},
{"matrix": [1, 5], "x": 11, "y": 0},
{"matrix": [0, 6], "x": 12, "y": 0},
{"matrix": [1, 6], "x": 13, "y": 0},
{"matrix": [9, 6], "x": 14, "y": 0},
{"matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 0], "x": 1.5, "y": 1},
{"matrix": [2, 1], "x": 2.5, "y": 1},
{"matrix": [3, 1], "x": 3.5, "y": 1},
{"matrix": [2, 2], "x": 4.5, "y": 1},
{"matrix": [3, 2], "x": 5.5, "y": 1},
{"matrix": [2, 3], "x": 6.5, "y": 1},
{"matrix": [3, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [3, 4], "x": 9.5, "y": 1},
{"matrix": [2, 5], "x": 10.5, "y": 1},
{"matrix": [3, 5], "x": 11.5, "y": 1},
{"matrix": [2, 6], "x": 12.5, "y": 1},
{"matrix": [3, 6], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [5, 0], "x": 1.75, "y": 2},
{"matrix": [4, 1], "x": 2.75, "y": 2},
{"matrix": [5, 1], "x": 3.75, "y": 2},
{"matrix": [4, 2], "x": 4.75, "y": 2},
{"matrix": [5, 2], "x": 5.75, "y": 2},
{"matrix": [4, 3], "x": 6.75, "y": 2},
{"matrix": [5, 3], "x": 7.75, "y": 2},
{"matrix": [4, 4], "x": 8.75, "y": 2},
{"matrix": [5, 4], "x": 9.75, "y": 2},
{"matrix": [4, 5], "x": 10.75, "y": 2},
{"matrix": [5, 5], "x": 11.75, "y": 2},
{"matrix": [4, 6], "x": 12.75, "y": 2},
{"matrix": [5, 6], "x": 13.75, "y": 2, "w": 1.25},
{"matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [7, 0], "x": 1.25, "y": 3},
{"matrix": [6, 1], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [6, 2], "x": 4.25, "y": 3},
{"matrix": [7, 2], "x": 5.25, "y": 3},
{"matrix": [6, 3], "x": 6.25, "y": 3},
{"matrix": [7, 3], "x": 7.25, "y": 3},
{"matrix": [6, 4], "x": 8.25, "y": 3},
{"matrix": [7, 4], "x": 9.25, "y": 3},
{"matrix": [6, 5], "x": 10.25, "y": 3},
{"matrix": [7, 5], "x": 11.25, "y": 3},
{"matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [7, 6], "x": 14, "y": 3},
{"matrix": [9, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [8, 0], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [9, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [8, 2], "x": 3.75, "y": 4, "w": 2.75},
{"matrix": [8, 3], "x": 6.5, "y": 4, "w": 1.25},
{"matrix": [9, 3], "x": 7.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
{"matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
[1] = LAYOUT_60_ansi(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
[1] = LAYOUT_60_ansi_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_tsangan(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_ansi_tsangan(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_wkl(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL),
[1] = LAYOUT_60_ansi_wkl(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_ansi_wkl_split_bs_rshift(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL),
[1] = LAYOUT_60_ansi_wkl_split_bs_rshift(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_UP, KC_ENT,
KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_hhkb(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT),
[1] = LAYOUT_60_hhkb(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_iso(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
[1] = LAYOUT_60_iso(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______,
_______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_tsangan_hhkb(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
[1] = LAYOUT_60_tsangan_hhkb(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,35 @@
/*
Copyright 2024 Alexander Lee <chlx.bsmt@gmail.com>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT,
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_LSCR, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
[1] = LAYOUT_all(
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_DEL,
KC_CAPS, _______, KC_HOME, KC_UP, KC_PGUP, _______, _______, _______, _______, _______, _______, KC_UP, _______, QK_BOOT,
_______, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______, _______,
_______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@ -0,0 +1,28 @@
# ppr.merro60
![ppr.merro60 PCB](https://i.imgur.com/xyQA68Xh.jpg)
- Standard 60% format keyboard PCB with USB-C and unified daughterboard compatibility.
- Modified cutouts to allow usage of certain tray mount cases into gummy gasket o-ring mount.
- Additional center flex cut.
- Meant to be manufactured in 1.2mm thickness.
* Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
* Hardware Supported: chlx PCB ppr.merro60.x.x.x
Make example for this keyboard (after setting up your build environment):
make chlx/ppr_merro60:default
Flashing example for this keyboard:
make chlx/ppr_merro60:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter bootloader mode by any of the following options -
- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard
- When plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region
- When plugged in, shorting out the two reset metal contacts near the 'z' key (accessible through the switch LED slot)

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,163 @@
{
"keyboard_name": "Compensator",
"manufacturer": "Highleap",
"url": "https://lrfoster03.github.io/",
"maintainer": "Lrfoster03",
"usb": {
"vid": "0x564B",
"pid": "0x0001",
"device_version": "1.0.0"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"matrix_pins": {
"rows": ["B2", "F5", "F7", "F1", "B3", "F4", "F6", "F0"],
"cols": ["B0", "D4", "B7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "B1", "D5", "D3", "D2", "D1", "D0"]
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"nkro": false
},
"bootmagic": {
"matrix": [0, 5]
},
"dynamic_keymap": {
"layer_count": 3
},
"indicators": {
"caps_lock": "E6",
"on_state": 0
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [4, 0], "x": 2.25, "y": 0},
{"matrix": [4, 1], "x": 3.25, "y": 0},
{"matrix": [0, 2], "x": 4.25, "y": 0},
{"matrix": [0, 3], "x": 5.25, "y": 0},
{"matrix": [4, 2], "x": 6.5, "y": 0},
{"matrix": [4, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0, "w": 1.5},
{"matrix": [4, 4], "x": 11.25, "y": 0},
{"matrix": [4, 5], "x": 12.25, "y": 0},
{"matrix": [0, 6], "x": 13.25, "y": 0},
{"matrix": [0, 7], "x": 14.25, "y": 0},
{"matrix": [4, 6], "x": 15.25, "y": 0},
{"matrix": [4, 7], "x": 16.25, "y": 0},
{"matrix": [0, 8], "x": 17.25, "y": 0},
{"matrix": [0, 9], "x": 18.25, "y": 0},
{"matrix": [4, 8], "x": 19.25, "y": 0},
{"matrix": [4, 9], "x": 20.25, "y": 0},
{"matrix": [0, 10], "x": 21.25, "y": 0},
{"matrix": [0, 11], "x": 22.25, "y": 0},
{"matrix": [4, 10], "x": 23.25, "y": 0, "w": 1.5},
{"matrix": [4, 11], "x": 25, "y": 0},
{"matrix": [0, 12], "x": 26, "y": 0},
{"matrix": [0, 13], "x": 27, "y": 0},
{"matrix": [4, 12], "x": 28.25, "y": 0},
{"matrix": [4, 13], "x": 29.25, "y": 0},
{"matrix": [0, 14], "x": 30.25, "y": 0},
{"matrix": [0, 15], "x": 31.25, "y": 0},
{"matrix": [4, 14], "x": 32.5, "y": 0},
{"matrix": [4, 15], "x": 33.5, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [5, 0], "x": 2.25, "y": 1},
{"matrix": [5, 1], "x": 3.25, "y": 1},
{"matrix": [1, 2], "x": 4.25, "y": 1},
{"matrix": [1, 3], "x": 5.25, "y": 1},
{"matrix": [5, 2], "x": 6.5, "y": 1},
{"matrix": [5, 3], "x": 7.5, "y": 1},
{"matrix": [1, 4], "x": 8.5, "y": 1},
{"matrix": [1, 5], "x": 9.75, "y": 1, "w": 1.25},
{"matrix": [5, 4], "x": 11.5, "y": 1},
{"matrix": [5, 5], "x": 12.5, "y": 1},
{"matrix": [1, 6], "x": 13.5, "y": 1},
{"matrix": [1, 7], "x": 14.5, "y": 1},
{"matrix": [5, 6], "x": 15.5, "y": 1},
{"matrix": [5, 7], "x": 16.5, "y": 1},
{"matrix": [1, 8], "x": 17.5, "y": 1},
{"matrix": [1, 9], "x": 18.5, "y": 1},
{"matrix": [5, 8], "x": 19.5, "y": 1},
{"matrix": [5, 9], "x": 20.5, "y": 1},
{"matrix": [1, 10], "x": 21.5, "y": 1},
{"matrix": [1, 11], "x": 22.5, "y": 1, "w": 2.25},
{"matrix": [5, 11], "x": 25, "y": 1},
{"matrix": [1, 12], "x": 26, "y": 1},
{"matrix": [1, 13], "x": 27, "y": 1},
{"matrix": [5, 12], "x": 28.25, "y": 1},
{"matrix": [5, 13], "x": 29.25, "y": 1},
{"matrix": [1, 14], "x": 30.25, "y": 1},
{"matrix": [1, 15], "x": 31.25, "y": 1},
{"matrix": [5, 14], "x": 32.5, "y": 1},
{"matrix": [5, 15], "x": 33.5, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [6, 0], "x": 2.25, "y": 2},
{"matrix": [6, 1], "x": 3.25, "y": 2},
{"matrix": [2, 2], "x": 4.25, "y": 2},
{"matrix": [2, 3], "x": 5.25, "y": 2},
{"matrix": [6, 2], "x": 6.5, "y": 2},
{"matrix": [6, 3], "x": 7.5, "y": 2},
{"matrix": [2, 4], "x": 8.5, "y": 2},
{"matrix": [2, 5], "x": 9.75, "y": 2, "w": 1.25},
{"matrix": [6, 4], "x": 11, "y": 2},
{"matrix": [6, 5], "x": 12, "y": 2},
{"matrix": [2, 6], "x": 13, "y": 2},
{"matrix": [2, 7], "x": 14, "y": 2},
{"matrix": [6, 6], "x": 15, "y": 2},
{"matrix": [6, 7], "x": 16, "y": 2},
{"matrix": [2, 8], "x": 17, "y": 2},
{"matrix": [2, 9], "x": 18, "y": 2},
{"matrix": [6, 8], "x": 19, "y": 2},
{"matrix": [6, 9], "x": 20, "y": 2},
{"matrix": [2, 10], "x": 21, "y": 2},
{"matrix": [2, 11], "x": 22, "y": 2, "w": 1.75},
{"matrix": [6, 10], "x": 23.75, "y": 2},
{"matrix": [6, 11], "x": 25, "y": 2},
{"matrix": [2, 12], "x": 26, "y": 2},
{"matrix": [2, 13], "x": 27, "y": 2},
{"matrix": [6, 12], "x": 28.25, "y": 2},
{"matrix": [6, 13], "x": 29.25, "y": 2},
{"matrix": [2, 14], "x": 30.25, "y": 2},
{"matrix": [2, 15], "x": 31.25, "y": 2},
{"matrix": [6, 14], "x": 32.5, "y": 2},
{"matrix": [6, 15], "x": 33.5, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [7, 0], "x": 2.25, "y": 3},
{"matrix": [7, 1], "x": 3.25, "y": 3},
{"matrix": [3, 2], "x": 4.25, "y": 3},
{"matrix": [3, 3], "x": 5.25, "y": 3},
{"matrix": [7, 2], "x": 6.5, "y": 3},
{"matrix": [7, 3], "x": 7.5, "y": 3},
{"matrix": [3, 4], "x": 8.5, "y": 3},
{"matrix": [3, 5], "x": 9.75, "y": 3, "w": 1.5},
{"matrix": [3, 6], "x": 12.25, "y": 3, "w": 1.5},
{"matrix": [3, 7], "x": 13.75, "y": 3, "w": 2.75},
{"matrix": [3, 8], "x": 16.5, "y": 3, "w": 1.5},
{"matrix": [3, 9], "x": 18, "y": 3, "w": 2.75},
{"matrix": [3, 10], "x": 20.75, "y": 3, "w": 1.5},
{"matrix": [7, 10], "x": 23.25, "y": 3, "w": 1.5},
{"matrix": [7, 11], "x": 25, "y": 3},
{"matrix": [3, 12], "x": 26, "y": 3},
{"matrix": [3, 13], "x": 27, "y": 3},
{"matrix": [7, 12], "x": 28.25, "y": 3},
{"matrix": [7, 13], "x": 29.25, "y": 3},
{"matrix": [3, 14], "x": 30.25, "y": 3},
{"matrix": [3, 15], "x": 31.25, "y": 3},
{"matrix": [7, 14], "x": 32.5, "y": 3},
{"matrix": [7, 15], "x": 33.5, "y": 3}
]
}
}
}

View File

@ -0,0 +1,48 @@
/* Copyright 2024 Lrfoster03
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum custom_keycodes {
KC_P00 = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base -> XT:Num:Nav:Alphas:Nav:Num:Xt*/
KC_F1, KC_F2, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_HOME, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_F1, KC_F2,
KC_F3, KC_F4, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, KC_END, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_F3, KC_F4,
KC_F5, KC_F6, KC_PENT, KC_P1, KC_P2, KC_P3, KC_NO, KC_UP, KC_NO, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_NO, KC_UP, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_F5, KC_F6,
KC_F7, KC_F8, KC_PMNS, KC_PDOT, KC_P0, KC_P00, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P00, KC_P0, KC_PDOT, KC_PMNS, KC_F7, KC_F8
),
[1] = LAYOUT( /* MO(1) */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case KC_P00:
tap_code(KC_P0);
tap_code(KC_P0);
return false;
}
}
return true;
}

View File

@ -0,0 +1,48 @@
/* Copyright 2024 Lrfoster03
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum custom_keycodes {
KC_P00 = SAFE_RANGE
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT( /* Base -> XT:Num:Nav:Alphas:Nav:Num:Xt*/
KC_F1, KC_F2, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_INS, KC_HOME, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_HOME, KC_PGUP, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_F1, KC_F2,
KC_F3, KC_F4, KC_PMNS, KC_P4, KC_P5, KC_P6, KC_DEL, KC_END, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL, KC_END, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_F3, KC_F4,
KC_F5, KC_F6, KC_PENT, KC_P1, KC_P2, KC_P3, KC_NO, KC_UP, KC_NO, KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_NO, KC_UP, KC_NO, KC_P1, KC_P2, KC_P3, KC_PENT, KC_F5, KC_F6,
KC_F7, KC_F8, KC_PMNS, KC_PDOT, KC_P0, KC_P00, KC_LEFT, KC_DOWN, KC_RIGHT, KC_LCTL, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P00, KC_P0, KC_PDOT, KC_PMNS, KC_F7, KC_F8
),
[1] = LAYOUT( /* MO(1) */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
if (record->event.pressed) {
switch(keycode) {
case KC_P00:
tap_code(KC_P0);
tap_code(KC_P0);
return false;
}
}
return true;
}

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,25 @@
# Matrix Diagram for Compensator
```
┌───────┐┌───────────────┐┌───────────┐┌───────────────────────────────────────────────────────────┐┌───────────┐┌───────────────┐┌───────┐
│00 │01 ││02 │03 │04 │05 ││06 │07 │08 ││09 │0A │0B │0C │0D │0E │0F │0G │0H │0I │0J │0K │0L │0M ││0N │0O │0P ││0Q │0R │0S │0T ││0U │0V │
├───┼───┤├───┼───┼───┼───┤├───┼───┼───│├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤├───┼───┼───│├───┼───┼───┼───┤├───┼───┤
│10 │11 ││12 │13 │14 │15 ││16 │17 │18 ││19 │1A │1B │1C │1D │1E │1F │1G │1H │1I │1J │1K │1L ││1M │1N │1O ││1P │1Q │1R │1S ││1T │1U │
├───┼───┤├───┼───┼───┼───┤└───┼───┼───┘├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤└───┼───┼───┘├───┼───┼───┼───┤├───┼───┤
│20 │21 ││22 │23 │24 │25 │ │26 │ │27 │28 │29 │2A │2B │2C │2D │2E │2F │2G │2H │2I │2J │2K │ │1L │ │2M │2N │2O │2P ││2Q │2R │
├───┼───┤├───┼───┼───┼───┤┌───┼───┼───┐├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤┌───┼───┼───┐├───┼───┼───┼───┤├───┼───┤
│31 │32 ││33 │34 │35 │36 ││37 │38 │39 ││3A │ │3B │3C │3D │ │3E ││3F │3G │3H ││3I │3J │3K │3L ││30 │31 │
└───┴───┘└───┴───┴───┴───┘└───┴───┴───┘└─────┘ └─────┴───────────────────────────┴─────┘ └─────┘└───┴───┴───┘└───┴───┴───┴───┘└───┴───┘
┌───────┐ ┌────────┐ ┌──────────┐ ┌───────┐
2u Numpad Zero │36 │ │27 │ 2.25u LShift 2.75u RShift │2J │ │3I │ 2u Numpad Zero
└───────┘ └────────┘ └──────────┘ └───────┘
┌───┐ ┌───────────────────────────────────────┐ ┌───┐
│ │ 2u │3C │ 10u Space │ │ 2u
│02 │ Numpad └───────────────────────────────────────┘ │0T │ Numpad
│ │ Plus │ │ Plus
├───┤ ┌─────────┐┌─────┐┌─────────┐ 2.75 + 1.5 + ├───┤
│ │ 2u |3C ||3C ||3C | 2.75 Split │ │ 2u
│33 │ Numpad └─────────┘└─────┘└─────────┘ Spacebar │3L │ Numpad
│ │ Enter │ │ Enter
└───┘ └───┘
```

View File

@ -0,0 +1,24 @@
# The Compensator
[Compensator](https://i.imgur.com/fAB2SSTh.png)
A 40% monstrosity with 10U spacebar support and a required 2 keycap sets to fill. It supports VIA. [Geekhack Post](https://geekhack.org/index.php?topic=122493.0)
* Keyboard Maintainer: [Lrfoster03](https://lrfoster03.github.io/) and on [GitHub](https://github.com/Lrfoster03)
* Hardware Supported: A 40% with 2 numpads, 2 nav clusters, and 2 XT columns with an ATMEGU32U4
* Hardware Availability: Contact @victusss on discord. [vk.works Discord](https://discord.gg/7weV2kyqFB)
## Instructions
### Build
Make example for this keyboard (after setting up your build environment):
make compensator:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
### Flash
- Ensure PCB is plugged in and recognized by the computer
- Hold Physical reset button on back of the PCB to enter bootloader mode
- Flash using QMK Toolbox or CLI (`make compensator:<keymap>:flash`)

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,20 @@
/*
Copyright 2023 zeix (@itsme-zeix)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U

View File

@ -0,0 +1,73 @@
{
"manufacturer": "dnworks",
"keyboard_name": "DN Numpad Rev1",
"maintainer": "itsme-zeix",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["GP5", "GP6", "GP7", "GP25"],
"rows": ["GP11", "GP4", "GP3", "GP2", "GP1", "GP0", "GP24"]
},
"processor": "RP2040",
"usb": {
"device_version": "0.0.1",
"pid": "0x2937",
"vid": "0x4C23"
},
"community_layouts": ["numpad_6x4", "ortho_6x4"],
"layouts": {
"LAYOUT_numpad_6x4": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [6, 3], "x": 3, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"matrix": [2, 2], "x": 2, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25},
{"matrix": [3, 1], "x": 1, "y": 3.25},
{"matrix": [3, 2], "x": 2, "y": 3.25},
{"matrix": [3, 3], "x": 3, "y": 2.25, "h": 2},
{"matrix": [4, 0], "x": 0, "y": 4.25},
{"matrix": [4, 1], "x": 1, "y": 4.25},
{"matrix": [4, 2], "x": 2, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 2},
{"matrix": [5, 2], "x": 2, "y": 5.25},
{"matrix": [5, 3], "x": 3, "y": 4.25, "h": 2}
]
},
"LAYOUT_ortho_6x4": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.25},
{"matrix": [1, 1], "x": 1, "y": 1.25},
{"matrix": [1, 2], "x": 2, "y": 1.25},
{"matrix": [6, 3], "x": 3, "y": 1.25},
{"matrix": [2, 0], "x": 0, "y": 2.25},
{"matrix": [2, 1], "x": 1, "y": 2.25},
{"matrix": [2, 2], "x": 2, "y": 2.25},
{"matrix": [2, 3], "x": 3, "y": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3.25},
{"matrix": [3, 1], "x": 1, "y": 3.25},
{"matrix": [3, 2], "x": 2, "y": 3.25},
{"matrix": [3, 3], "x": 3, "y": 3.25},
{"matrix": [4, 0], "x": 0, "y": 4.25},
{"matrix": [4, 1], "x": 1, "y": 4.25},
{"matrix": [4, 2], "x": 2, "y": 4.25},
{"matrix": [4, 3], "x": 3, "y": 4.25},
{"matrix": [5, 0], "x": 0, "y": 5.25},
{"matrix": [5, 1], "x": 1, "y": 5.25},
{"matrix": [5, 2], "x": 2, "y": 5.25},
{"matrix": [5, 3], "x": 3, "y": 5.25}
]
}
}
}

View File

@ -0,0 +1,29 @@
/*
Copyright 2023 zeix (@itsme-zeix)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_6x4(
KC_ESC, KC_APP, KC_TAB, KC_BSPC,
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_P0, KC_PDOT, KC_PENT
),
};

View File

@ -0,0 +1,29 @@
/*
Copyright 2023 zeix (@itsme-zeix)
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_6x4(
KC_ESC, KC_APP, KC_TAB, KC_BSPC,
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
KC_P7, KC_P8, KC_P9, KC_PPLS,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3, KC_PENT,
KC_P0, KC_P0, KC_PDOT, KC_PENT
),
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,25 @@
# Matrix Diagram for dnworks numpad rev1
```
Top Left 2u
┌───────┐┌───────┐
│00 ││02 │ Top Right 2u
└───────┘└───────┘
┌───┬───┬───┬───┐
│00 │01 │02 │03 │
└───┴───┴───┴───┘
┌───┬───┬───┬───┐
│10 │11 │12 │63 │
├───┼───┼───┼───┤ ┌───┐
│20 │21 │22 │ │ │23 │
├───┼───┼───┤33 │ ├───┤ Split Plus
│30 │31 │32 │ │ │33 │
├───┼───┼───┼───┤ └───┘ ┌───┐
│40 │41 │42 │ │ │43 │
├───┴───┼───┤53 │ ├───┤ Split Enter
│50 │52 │ │ │53 │
└───────┴───┴───┘ └───┘
┌───┬───┐
│50 │51 │ Split Zero
└───┴───┘
```

View File

@ -0,0 +1,27 @@
# DN Numpad Rev1
![DN Numpad Rev1](https://i.imgur.com/OpklWTih.png)
PCB that supports the numpad designed by dnworks.
* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix)
* Hardware Supported: DN Numpad Rev1
* Hardware Availability: dnworks.co
Make example for this keyboard (after setting up your build environment):
make dnworks/numpad:default
Flashing example for this keyboard:
make dnworks/numpad:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
* **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,111 @@
{
"manufacturer": "DOIO",
"keyboard_name": "KB04-01",
"maintainer": "filmstarr",
"bootloader": "stm32duino",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B6"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": false,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["B14", "B13", "B12", "B0", "A7"],
"rows": ["B3"]
},
"processor": "STM32F103",
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 1], "x": 75, "y": 0, "flags": 1},
{"matrix": [0, 2], "x": 149, "y": 0, "flags": 1},
{"matrix": [0, 3], "x": 224, "y": 0, "flags": 1},
{"x": 112, "y": 64, "flags": 1},
{"x": 112, "y": 64, "flags": 1},
{"x": 112, "y": 64, "flags": 1},
{"x": 112, "y": 64, "flags": 1}
],
"max_brightness": 200,
"sleep": true
},
"url": "https://www.keebmonkey.com/products/megalodon-macro-pad-with-a-knob",
"usb": {
"device_version": "0.0.1",
"pid": "0x0401",
"vid": "0xD010"
},
"ws2812": {
"pin": "A10"
},
"layouts": {
"LAYOUT": {
"layout": [
{"label": "1!", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "2@", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "3#", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "4$", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "Encoder", "matrix": [0, 4], "x": 1.5, "y": 1}
]
}
}
}

View File

@ -0,0 +1,48 @@
/* Copyright 2022 filmstarr <https://github.com/filmstarr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_names {
_LAY0,
_LAY1
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
L0:
MO1PrvPlyNxt Mut
L1:
HudTogMod
*/
[_LAY0] = LAYOUT(
MO(_LAY1), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE
),
[_LAY1] = LAYOUT(
KC_TRNS, RGB_HUD, RGB_TOG, RGB_MOD, KC_TRNS
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAY0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,48 @@
/* Copyright 2022 filmstarr <https://github.com/filmstarr>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layer_names {
_LAY0,
_LAY1
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
L0:
MO1PrvPlyNxt Mut
L1:
HudTogMod
*/
[_LAY0] = LAYOUT(
MO(_LAY1), KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE
),
[_LAY1] = LAYOUT(
KC_TRNS, RGB_HUD, RGB_TOG, RGB_MOD, KC_TRNS
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAY0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
};
#endif

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,27 @@
# doio/kb04
![doio/kb04](https://i.imgur.com/lqABZw4h.png)
A macropad that have 4-key keyboard made by DOIO, which controlled by an APM32F103CBT6 chipset. The keyboard features per-key RGB and 1 encoder.
* Keyboard Maintainer: [filmstarr](https://github.com/filmstarr)
* Hardware Supported: DOIO Knob Board - KB04
* Hardware Availability: [keebmonkey.com](https://www.keebmonkey.com/products/megalodon-macro-pad-with-a-knob)
Make example for this keyboard (after setting up your build environment):
qmk compile -kb doio/kb04 -km default
Flashing example for this keyboard:
qmk flash -kb doio/kb04 -km default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (1! key) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -20,7 +20,7 @@
["B1", "B10", "A8", "B15", "B14", "B13"],
["B9", "B8", "B5", "B4", "B3", "A15"],
["A3", "A4", "A5", "A6", "A7", "B0"],
["B12","A2", "A1", "A0", null, null]
["A2", "A1", "A0", "B12", null, null]
]
},
"split": {
@ -34,7 +34,7 @@
["B13", "B14", "B15", "A8", "B10", "B1"],
["A15", "B3", "B4", "B5", "B8", "B9"],
["B0", "A7", "A6", "A5", "A4", "A3"],
["A0", "A1", "A2", "B12", null, null]
["B12", "A0", "A1", "A2", null, null]
]
}
}

View File

@ -0,0 +1,11 @@
// Copyright 2023 gkeyboard (@gkeyboard)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define OLED_DISPLAY_128X64
#define I2C1_SCL_PIN GP21
#define I2C1_SDA_PIN GP20
#define I2C_DRIVER I2CD0
#define OLED_BRIGHTNESS 128
#define OLED_FONT_H "lib/glcdfont.c"

View File

@ -0,0 +1,577 @@
/* Copyright 2023 gkeyboard (@gkeyboard)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "quantum.h"
#ifdef OLED_ENABLE
uint16_t startup_timer;
oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
return OLED_ROTATION_180;
}
static void render_logo(void) {
static const char PROGMEM raw_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x02, 0x02, 0x82, 0xc2,
0xe2, 0xe2, 0xe2, 0xc2, 0x82, 0x02, 0x02, 0x02, 0x02, 0x02, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2,
0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0x02, 0x02, 0x02, 0x02, 0x02, 0x82, 0xc2, 0xe2, 0xe2, 0xe2, 0xc2,
0x82, 0x02, 0x02, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x03, 0x07,
0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f,
0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0f, 0x0f, 0x0f, 0x07,
0x03, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x3e,
0x3e, 0x3e, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e,
0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e, 0x00, 0x00, 0x3e, 0x3e, 0x3e, 0x3e, 0x3e,
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x9f,
0x9f, 0x9f, 0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f,
0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f, 0x00, 0x00, 0x9f, 0x9f, 0x9f, 0x9f, 0x9f,
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0xcf,
0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf,
0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf, 0x00, 0x00, 0xcf, 0xcf, 0xcf, 0xcf, 0xcf,
0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x40, 0x40, 0x40, 0x47,
0x47, 0x47, 0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47, 0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47,
0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47, 0x47, 0x47, 0x40, 0x40, 0x47, 0x47, 0x47, 0x47, 0x47,
0x40, 0x40, 0x40, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_logo, sizeof(raw_logo));
}
static void render_LAYER_0(void) {
static const char PROGMEM raw_LAYER_0[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_0, sizeof(raw_LAYER_0));
}
static void render_LAYER_1(void) {
static const char PROGMEM raw_LAYER_1[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0,
0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_1, sizeof(raw_LAYER_1));
}
static void render_LAYER_2(void) {
static const char PROGMEM raw_LAYER_2[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8, 0xd8,
0xd8, 0xd8, 0xd8, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_2, sizeof(raw_LAYER_2));
}
static void render_LAYER_3(void) {
static const char PROGMEM raw_LAYER_3[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_3, sizeof(raw_LAYER_3));
}
static void render_LAYER_4(void) {
static const char PROGMEM raw_LAYER_4[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60,
0x60, 0x60, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_4, sizeof(raw_LAYER_4));
}
static void render_LAYER_5(void) {
static const char PROGMEM raw_LAYER_5[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c, 0x6c,
0x6c, 0x6c, 0x6c, 0x6c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_5, sizeof(raw_LAYER_5));
}
static void render_LAYER_6(void) {
static const char PROGMEM raw_LAYER_6[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xfe, 0xfe, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_6, sizeof(raw_LAYER_6));
}
static void render_LAYER_7(void) {
static const char PROGMEM raw_LAYER_7[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0, 0xb0,
0xb0, 0xb0, 0xb0, 0xb0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_7, sizeof(raw_LAYER_7));
}
static void render_LAYER_8(void) {
static const char PROGMEM raw_LAYER_8[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
0xb6, 0xb6, 0xb6, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_8, sizeof(raw_LAYER_8));
}
static void render_LAYER_9(void) {
static const char PROGMEM raw_LAYER_9[] = {
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6, 0xb6,
0xb6, 0xb6, 0xb6, 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d, 0x6d,
0x6d, 0x6d, 0x6d, 0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
0x0e, 0x0e, 0x0e, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb, 0xdb,
0xdb, 0xdb, 0xdb, 0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_9, sizeof(raw_LAYER_9));
}
static void render_LAYER_UNDEF(void) {
static const char PROGMEM raw_LAYER_UNDEF[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(raw_LAYER_UNDEF, sizeof(raw_LAYER_UNDEF));
}
/* Shows the name of the current layer and locks for the host (Cap etc.) */
static void render_info(void) {
oled_write_P(PSTR(" GreatPad\n"), false);
oled_write_P(PSTR("\n"), false);
led_t led_state = host_keyboard_led_state();
oled_write_P(led_state.caps_lock ? PSTR("Cap(x) ") : PSTR("Cap( ) "), false);
oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false);
oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false);
oled_write_P(PSTR("\n"), false);
switch (get_highest_layer(layer_state)) {
case 0:
render_LAYER_0();
break;
case 1:
render_LAYER_1();
break;
case 2:
render_LAYER_2();
break;
case 3:
render_LAYER_3();
break;
case 4:
render_LAYER_4();
break;
case 5:
render_LAYER_5();
break;
case 6:
render_LAYER_6();
break;
case 7:
render_LAYER_7();
break;
case 8:
render_LAYER_8();
break;
case 9:
render_LAYER_9();
break;
default:
render_LAYER_UNDEF();
}
}
#define SHOW_LOGO 5000
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
static bool finished_timer = false;
if (!finished_timer && (timer_elapsed(startup_timer) < SHOW_LOGO)) {
render_logo();
} else {
if (!finished_timer) {
oled_clear();
finished_timer = true;
}
render_info();
}
return false;
}
#endif

View File

@ -0,0 +1,7 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_I2C TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,151 @@
{
"manufacturer": "gkeyboard",
"keyboard_name": "GreatPad",
"maintainer": "gkeyboard",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"dynamic_keymap": {
"layer_count": 10
},
"encoder": {
"rotary": [
{"pin_a": "GP25", "pin_b": "GP26"},
{"pin_a": "GP0", "pin_b": "GP1"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"oled": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP24", "GP23", "GP16", "GP11", "GP10"],
"rows": ["GP6", "GP5", "GP4", "GP3", "GP2"]
},
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"digital_rain": true,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"multisplash": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"solid_color": true,
"solid_multisplash": true,
"solid_reactive": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_multinexus": true,
"solid_reactive_multiwide": true,
"solid_reactive_nexus": true,
"solid_reactive_simple": true,
"solid_reactive_wide": true,
"solid_splash": true,
"splash": true,
"typing_heatmap": true
},
"driver": "ws2812",
"layout": [
{"matrix": [1, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 56, "y": 0, "flags": 4},
{"matrix": [1, 2], "x": 112, "y": 0, "flags": 4},
{"matrix": [1, 3], "x": 168, "y": 0, "flags": 4},
{"matrix": [1, 4], "x": 224, "y": 0, "flags": 4},
{"matrix": [2, 0], "x": 0, "y": 21, "flags": 4},
{"matrix": [2, 1], "x": 56, "y": 21, "flags": 4},
{"matrix": [2, 2], "x": 112, "y": 21, "flags": 4},
{"matrix": [2, 3], "x": 168, "y": 21, "flags": 4},
{"matrix": [2, 4], "x": 224, "y": 21, "flags": 4},
{"matrix": [3, 0], "x": 0, "y": 43, "flags": 4},
{"matrix": [3, 1], "x": 56, "y": 43, "flags": 4},
{"matrix": [3, 2], "x": 112, "y": 43, "flags": 4},
{"matrix": [3, 3], "x": 168, "y": 43, "flags": 4},
{"matrix": [3, 4], "x": 224, "y": 43, "flags": 4},
{"matrix": [4, 0], "x": 0, "y": 64, "flags": 4},
{"matrix": [4, 1], "x": 56, "y": 64, "flags": 4},
{"matrix": [4, 2], "x": 112, "y": 64, "flags": 4},
{"matrix": [4, 3], "x": 168, "y": 64, "flags": 4},
{"matrix": [4, 4], "x": 224, "y": 64, "flags": 4},
{"x": 196, "y": 53, "flags": 2},
{"x": 196, "y": 10, "flags": 2},
{"x": 140, "y": 10, "flags": 2},
{"x": 84, "y": 10, "flags": 2},
{"x": 28, "y": 10, "flags": 2},
{"x": 28, "y": 53, "flags": 2},
{"x": 84, "y": 53, "flags": 2},
{"x": 140, "y": 53, "flags": 2}
],
"max_brightness": 170,
"sleep": true
},
"url": "https://github.com/gkeyboard/GreatPad",
"usb": {
"device_version": "1.0.0",
"pid": "0x4203",
"vid": "0x474B"
},
"ws2812": {
"driver": "vendor",
"pin": "GP22"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1.5},
{"matrix": [1, 2], "x": 2, "y": 1.5},
{"matrix": [1, 3], "x": 3, "y": 1.5},
{"matrix": [1, 4], "x": 4, "y": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2.5},
{"matrix": [2, 2], "x": 2, "y": 2.5},
{"matrix": [2, 3], "x": 3, "y": 2.5},
{"matrix": [2, 4], "x": 4, "y": 2.5},
{"matrix": [3, 0], "x": 0, "y": 3.5},
{"matrix": [3, 1], "x": 1, "y": 3.5},
{"matrix": [3, 2], "x": 2, "y": 3.5},
{"matrix": [3, 3], "x": 3, "y": 3.5},
{"matrix": [3, 4], "x": 4, "y": 3.5},
{"matrix": [4, 0], "x": 0, "y": 4.5},
{"matrix": [4, 1], "x": 1, "y": 4.5},
{"matrix": [4, 2], "x": 2, "y": 4.5},
{"matrix": [4, 3], "x": 3, "y": 4.5},
{"matrix": [4, 4], "x": 4, "y": 4.5}
]
}
}
}

View File

@ -0,0 +1,21 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, RGB_TOG,
KC_P7, KC_P8, KC_P9, KC_PSLS, KC_NUM,
KC_P4, KC_P5, KC_P6, KC_PAST, KC_PGUP,
KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN,
KC_P0, KC_PDOT, KC_PENT, KC_PPLS, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
};
#endif

View File

@ -0,0 +1 @@
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,21 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MUTE, RGB_TOG,
KC_P7, KC_P8, KC_P9, KC_PSLS, KC_NUM,
KC_P4, KC_P5, KC_P6, KC_PAST, KC_PGUP,
KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PGDN,
KC_P0, KC_PDOT, KC_PENT, KC_PPLS, _______
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) },
};
#endif

View File

@ -0,0 +1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes

View File

@ -0,0 +1,236 @@
// Copyright 2023 gkeyboard (@gkeyboard)
// SPDX-License-Identifier: GPL-2.0-or-later
// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0.
// See gfxfont.h for newer custom bitmap font info.
#pragma once
#include "progmem.h"
static const unsigned char PROGMEM font[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
0x94, 0xB6, 0xFF, 0xB6, 0x94, 0x00,
0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00,
0x10, 0x30, 0x7E, 0x30, 0x10, 0x00,
0x08, 0x08, 0x3E, 0x1C, 0x08, 0x00,
0x08, 0x1C, 0x3E, 0x08, 0x08, 0x00,
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00,
0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00,
0x20, 0x12, 0x08, 0x24, 0x02, 0x00,
0x37, 0x49, 0x49, 0x37, 0x50, 0x00,
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
0x7F, 0x51, 0x49, 0x45, 0x7F, 0x00,
0x08, 0x04, 0x02, 0x7F, 0x00, 0x00,
0x71, 0x49, 0x49, 0x49, 0x4F, 0x00,
0x41, 0x41, 0x49, 0x49, 0x77, 0x00,
0x0F, 0x10, 0x10, 0x10, 0x7F, 0x00,
0x4F, 0x49, 0x49, 0x49, 0x71, 0x00,
0x7E, 0x49, 0x49, 0x49, 0x70, 0x00,
0x01, 0x01, 0x71, 0x09, 0x07, 0x00,
0x77, 0x49, 0x49, 0x49, 0x77, 0x00,
0x07, 0x49, 0x49, 0x49, 0x3F, 0x00,
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
0x01, 0x01, 0x59, 0x09, 0x0F, 0x00,
0x7F, 0x41, 0x5D, 0x59, 0x4F, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x7F, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x76, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x41, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x7E, 0x00,
0x7F, 0x49, 0x49, 0x49, 0x49, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x09, 0x00,
0x7F, 0x41, 0x41, 0x49, 0x7B, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
0x00, 0x00, 0x7F, 0x00, 0x00, 0x00,
0x70, 0x40, 0x40, 0x40, 0x7F, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x77, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
0x7F, 0x01, 0x1F, 0x01, 0x7F, 0x00,
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00,
0x7F, 0x09, 0x09, 0x09, 0x0F, 0x00,
0x7F, 0x41, 0x71, 0x41, 0x7F, 0x00,
0x7F, 0x09, 0x09, 0x19, 0x6F, 0x00,
0x47, 0x49, 0x49, 0x49, 0x79, 0x00,
0x01, 0x01, 0x7F, 0x01, 0x01, 0x00,
0x7F, 0x40, 0x40, 0x40, 0x7F, 0x00,
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
0x7F, 0x40, 0x7F, 0x40, 0x7F, 0x00,
0x77, 0x08, 0x08, 0x08, 0x77, 0x00,
0x4F, 0x48, 0x48, 0x48, 0x7F, 0x00,
0x61, 0x51, 0x49, 0x45, 0x43, 0x00,
0x00, 0x7F, 0x41, 0x41, 0x00, 0x00,
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
0x00, 0x41, 0x41, 0x7F, 0x00, 0x00,
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
0x00, 0x00, 0x07, 0x08, 0x00, 0x00,
0x60, 0x54, 0x54, 0x54, 0x7C, 0x00,
0x7F, 0x44, 0x44, 0x44, 0x78, 0x00,
0x7C, 0x44, 0x44, 0x44, 0x44, 0x00,
0x78, 0x44, 0x44, 0x44, 0x7F, 0x00,
0x7C, 0x54, 0x54, 0x54, 0x5C, 0x00,
0x08, 0x7F, 0x09, 0x09, 0x09, 0x00,
0x38, 0xA4, 0xA4, 0xA4, 0xFC, 0x00,
0x7F, 0x04, 0x04, 0x04, 0x78, 0x00,
0x00, 0x00, 0x7D, 0x00, 0x00, 0x00,
0x70, 0x40, 0x40, 0x7D, 0x00, 0x00,
0x7F, 0x08, 0x08, 0x08, 0x76, 0x00,
0x00, 0x00, 0x7F, 0x40, 0x00, 0x00,
0x7C, 0x04, 0x7C, 0x04, 0x7C, 0x00,
0x7C, 0x04, 0x04, 0x04, 0x78, 0x00,
0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00,
0xFC, 0x24, 0x24, 0x24, 0x38, 0x00,
0x38, 0x24, 0x24, 0x24, 0xFC, 0x00,
0x7C, 0x04, 0x04, 0x04, 0x04, 0x00,
0x5C, 0x54, 0x54, 0x54, 0x74, 0x00,
0x04, 0x04, 0x7F, 0x04, 0x04, 0x00,
0x7C, 0x40, 0x40, 0x40, 0x7C, 0x00,
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
0x7C, 0x40, 0x7C, 0x40, 0x7C, 0x00,
0x6C, 0x10, 0x10, 0x10, 0x6C, 0x00,
0xBC, 0xA0, 0xA0, 0xA0, 0xFC, 0x00,
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0,
0xF0, 0xFE, 0xFF, 0x9F, 0x0F, 0x0F,
0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0x0F, 0x0F, 0x9F, 0xFF, 0xFE, 0xF0,
0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00,
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xE0, 0x10, 0x08, 0x04, 0x02, 0x02,
0x02, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x02, 0x02, 0x02, 0x04, 0x08,
0x10, 0xE0, 0x00, 0x00, 0x00, 0x00,
0xFF, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0xFF,
0x7F, 0x51, 0x55, 0x55, 0x45, 0x7F,
0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
0x7F, 0x41, 0x7B, 0x77, 0x41, 0x7F,
0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
0x7F, 0x41, 0x5D, 0x5D, 0x5D, 0x7F,
0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00,
0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0,
0xE6, 0xF7, 0xF3, 0xF0, 0x60, 0x00,
0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00,
0xF8, 0x1C, 0xDE, 0x1F, 0xFF, 0xFF,
0xFF, 0x1F, 0xDE, 0x1C, 0xF8, 0x00,
0xC0, 0xE2, 0xB4, 0xF8, 0xF8, 0xF8,
0xF8, 0xF8, 0xB4, 0xE2, 0xC0, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F,
0x87, 0xE1, 0xF9, 0xF9, 0xE1, 0x87,
0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F,
0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00,
0xFF, 0x00, 0x00, 0xC0, 0x30, 0x0C,
0x33, 0xC0, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0xFF, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x3F,
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00,
0xFF, 0x08, 0x08, 0x08, 0x08, 0x08,
0x08, 0x38, 0xC8, 0x08, 0x08, 0x0F,
0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00,
0x78, 0x00, 0x00, 0x7E, 0x00, 0x00,
0x24, 0x24, 0x12, 0x12, 0x24, 0x24,
0x48, 0x48, 0x24, 0x24, 0x12, 0x12,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F,
0x3F, 0x7F, 0x7F, 0x38, 0x10, 0x00,
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00,
0x0F, 0x14, 0x21, 0x40, 0x45, 0x41,
0x45, 0x40, 0x21, 0x14, 0x0F, 0x00,
0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x0C, 0x03, 0x00, 0x00, 0x00,
0x00, 0x00, 0x03, 0x0C, 0x30, 0x00,
0x00, 0x00, 0x00, 0x3F, 0x20, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x01, 0x02, 0x04, 0x08, 0x10, 0x10,
0x10, 0x20, 0x20, 0x20, 0x20, 0x20,
0x20, 0x10, 0x10, 0x10, 0x08, 0x04,
0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
0x3F, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x03, 0x0C, 0x30,
0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
0x40, 0x00, 0x00, 0x40, 0x00, 0x00,
0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00,
0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x00,
0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};

View File

@ -0,0 +1,8 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
#undef RP_I2C_USE_I2C0
#define RP_I2C_USE_I2C0 TRUE

View File

@ -0,0 +1,25 @@
# GreatPad
20 Keys Custom Macro Pad, 2 Encoders, OLED 128x64, with USB Type-C, RGB underglow, RGB Per Key Lighting.
* Keyboard Maintainer: [gkeyboard](https://github.com/gkeyboard)
* Hardware Supported: GreatPad PCB
* Hardware Availability: http://www.mltelectronic.com
Make example for this keyboard (after setting up your build environment):
make gkeyboard/greatpad:default
Flashing example for this keyboard:
make gkeyboard/greatpad:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical boot button**: Hold down the boot button on RP2040 and plug in the keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -18,7 +18,6 @@
/* joystick configuration */
#define JOYSTICK_BUTTON_COUNT 25
#define JOYSTICK_AXIS_COUNT 2
#define JOYSTICK_AXIS_RESOLUTION 10
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */

View File

@ -1,4 +1,3 @@
#pragma once
#define JOYSTICK_AXIS_COUNT 2
#define JOYSTICK_BUTTON_COUNT 1

View File

@ -0,0 +1,52 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoDeck",
"maintainer": "joe-scotto",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP2", "pin_b": "GP3"},
{"pin_a": "GP27", "pin_b": "GP28"}
]
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"direct": [
["GP9", null, null, "GP21"],
["GP7", "GP8", "GP20", "GP23"],
["GP5", "GP6", "GP26", "GP22"]
]
},
"processor": "RP2040",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0024",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2}
]
}
}
}

View File

@ -0,0 +1,34 @@
/*
Copyright 2024 Joe Scotto
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(HYPR(KC_RIGHT), HYPR(KC_LEFT)), ENCODER_CCW_CW(HYPR(KC_UP), HYPR(KC_DOWN)) }
// Encoder 1 Encoder 2
};
#endif
// Keymap
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
HYPR(KC_9), HYPR(KC_0),
HYPR(KC_5), HYPR(KC_6), HYPR(KC_7), HYPR(KC_8),
HYPR(KC_1), HYPR(KC_2), HYPR(KC_3), HYPR(KC_4)
)
};

View File

@ -0,0 +1,27 @@
# ScottoDeck
![ScottoDeck](https://i.imgur.com/xUl70qqh.jpeg)
An 8-key macropad with two EC11 encoders designed for live streaming. Case files available [here](https://github.com/joe-scotto/scottokeebs).
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: ATmega32U4
* Hardware Availability: [Amazon](https://amazon.com)
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scottodeck:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottodeck:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,40 @@
{
"manufacturer": "spacehangover",
"keyboard_name": "Mercury",
"maintainer": "spacehangover",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3"],
"rows": ["GP4", "GP5"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0003",
"vid": "0x5757"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1}
]
}
}
}

View File

@ -0,0 +1,11 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F13, KC_F14, KC_F15, KC_F16,
KC_F17, KC_F18, KC_F19, KC_F20
)
};

View File

@ -0,0 +1,11 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F13, KC_F14, KC_F15, KC_F16,
KC_F17, KC_F18, KC_F19, KC_F20
)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,27 @@
# mercury
![mercury](https://i.imgur.com/flE9SPwh.jpeg)
8 Key VIA Compatible Macropad
* Keyboard Maintainer: [spacehangover](https://github.com/spacehangover)
* Hardware Supported: RP2040 Handwired
* Hardware Availability: RP2040
Make example for this keyboard (after setting up your build environment):
make handwired/wwa/mercury:default
Flashing example for this keyboard:
make handwired/wwa/mercury:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1 @@
# This file intentionally left blank

View File

@ -0,0 +1,55 @@
{
"manufacturer": "spacehangover",
"keyboard_name": "Soyuz",
"maintainer": "spacehangover",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6"],
"rows": ["GP7", "GP8", "GP9"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0004",
"vid": "0x5757"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [2, 5], "x": 5, "y": 2},
{"matrix": [2, 6], "x": 6, "y": 2}
]
}
}
}

View File

@ -0,0 +1,13 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17,
KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24
)
};

View File

@ -0,0 +1,12 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17,
KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24
)
};

View File

@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@ -0,0 +1,27 @@
# soyuz
![soyuz](https://i.imgur.com/KwwORGSh.jpeg)
21 Key and 3 MIDI Potentiometers Macro Keyboard
* Keyboard Maintainer: [spacehangover](https://github.com/spacehangover)
* Hardware Supported: RP2040 Handwired
* Hardware Availability: RP2040 Pico
Make example for this keyboard (after setting up your build environment):
make handwired/wwa/soyuz:default
Flashing example for this keyboard:
make handwired/wwa/soyuz:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

Some files were not shown because too many files have changed in this diff Show More