pull/23982/head
JackyJia73 2024-07-12 13:42:49 +08:00
commit 238ebd96bc
156 changed files with 8076 additions and 1055 deletions

View File

@ -52,9 +52,9 @@ jobs:
run: |
target_count=$( {
qmk find -km default 2>/dev/null
qmk find -km via 2>/dev/null
# qmk find -km xap 2>/dev/null
} | sort | uniq | wc -l)
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution as we're splitting default and via
slice_length=$((target_count / ($CONCURRENT_JOBS - 1))) # Err on the side of caution
echo "slice_length=$slice_length" >> $GITHUB_OUTPUT
build_targets:
@ -63,7 +63,8 @@ jobs:
strategy:
fail-fast: false
matrix:
keymap: [default, via]
keymap: [default]
# keymap: [default, xap]
uses: ./.github/workflows/ci_build_major_branch_keymap.yml
with:
branch: ${{ inputs.branch || github.ref_name }}
@ -77,44 +78,59 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Disable safe.directory check
run: |
git config --global --add safe.directory '*'
- name: Checkout QMK Firmware
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download firmwares
uses: actions/download-artifact@v4
with:
pattern: firmware-*
path: firmwares
path: .
merge-multiple: true
- name: Generate index page
run: |
python3 -m pip install -r ./util/ci/requirements.txt
./util/ci/index_generator.py > index.html
./util/ci/firmware_list_generator.py > firmware_list.json
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/${{ github.sha }}
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: firmwares
SOURCE_DIR: .
DEST_DIR: ${{ inputs.branch || github.ref_name }}/${{ github.sha }}
- name: Upload to https://ci.qmk.fm/${{ inputs.branch || github.ref_name }}/latest
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --follow-symlinks --delete
args: --acl public-read --follow-symlinks --delete --exclude '*' --include 'index.html' --include 'firmware_list.json' --include '*.hex' --include '*.bin' --include '*.uf2'
env:
AWS_S3_BUCKET: ${{ vars.CI_QMK_FM_SPACES_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.CI_QMK_FM_SPACES_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.CI_QMK_FM_SPACES_SECRET }}
AWS_REGION: ${{ vars.CI_QMK_FM_SPACES_REGION }}
AWS_S3_ENDPOINT: ${{ vars.CI_QMK_FM_SPACES_ENDPOINT }}
SOURCE_DIR: firmwares
SOURCE_DIR: .
DEST_DIR: ${{ inputs.branch || github.ref_name }}/latest
- name: Check if failure marker file exists
id: check_failure_marker
uses: andstor/file-existence-action@v3
with:
files: firmwares/.failed
files: ./.failed
- name: Fail build if needed
if: steps.check_failure_marker.outputs.files_exists == 'true'

View File

@ -172,10 +172,10 @@ jobs:
targets-${{ inputs.keymap }}
- name: 'CI Discord Notification'
if: always()
if: always() && !cancelled()
working-directory: util/ci/
env:
DISCORD_WEBHOOK: ${{ secrets.CI_DISCORD_WEBHOOK }}
run: |
python3 -m pip install -r requirements.txt
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
python3 ./discord-results.py --branch ${{ inputs.branch || github.ref_name }} --sha $(git rev-parse HEAD) --keymap ${{ inputs.keymap }} --url ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}

View File

@ -56,7 +56,7 @@ jobs:
- name: Deploy
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
uses: JamesIves/github-pages-deploy-action@v4.6.1
uses: JamesIves/github-pages-deploy-action@v4.6.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: gh-pages

2
.gitignore vendored
View File

@ -25,6 +25,8 @@
*.la
*.stackdump
*.sym
index.html
firmware_list.json
# QMK-specific
api_data/v1

View File

@ -33,7 +33,7 @@ export default defineConfig(({ mode }) => {
},
title: 'QMK Firmware',
nav: [{ text: "Home", link: "./" }],
nav: [{ text: "Home", link: "/" }],
search: {
provider: "local",

View File

@ -2,8 +2,6 @@
"keyboard_name": "%KEYBOARD%",
"maintainer": "%USER_NAME%",
"manufacturer": "%REAL_NAME%",
"processor": "%MCU%",
"bootloader": "%BOOTLOADER%",
"diode_direction": "COL2ROW",
"matrix_pins": {
"cols": ["C2"],

View File

@ -85,9 +85,9 @@ Your `keymap.c` will then need an encoder mapping defined (for four layers and t
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[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) },
[1] = { ENCODER_CCW_CW(UG_HUED, UG_HUEU), ENCODER_CCW_CW(UG_SATD, UG_SATU) },
[2] = { ENCODER_CCW_CW(UG_VALD, UG_VALU), ENCODER_CCW_CW(UG_SPDD, UG_SPDU) },
[3] = { ENCODER_CCW_CW(UG_PREV, UG_NEXT), ENCODER_CCW_CW(KC_RIGHT, KC_LEFT) },
};
#endif
```

View File

@ -59,30 +59,32 @@ Changing the **Value** sets the overall brightness.<br>
## Keycodes
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode |
|Key |Aliases |Description |
|------------------------------|----------|---------------------------------------------------------------------|
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
|`QK_UNDERGLOW_MODE_NEXT` |`UG_NEXT` |Cycle through modes, reverse direction when Shift is held |
|`QK_UNDERGLOW_MODE_PREVIOUS` |`UG_PREV` |Cycle through modes in reverse, forward direction when Shift is held |
|`QK_UNDERGLOW_HUE_UP` |`UG_HUEU` |Increase hue, decrease hue when Shift is held |
|`QK_UNDERGLOW_HUE_DOWN` |`UG_HUED` |Decrease hue, increase hue when Shift is held |
|`QK_UNDERGLOW_SATURATION_UP` |`UG_SATU` |Increase saturation, decrease saturation when Shift is held |
|`QK_UNDERGLOW_SATURATION_DOWN`|`UG_SATD` |Decrease saturation, increase saturation when Shift is held |
|`QK_UNDERGLOW_VALUE_UP` |`UG_VALU` |Increase value (brightness), decrease value when Shift is held |
|`QK_UNDERGLOW_VALUE_DOWN` |`UG_VALD` |Decrease value (brightness), increase value when Shift is held |
|`QK_UNDERGLOW_SPEED_UP` |`UG_SPDU` |Increase effect speed (brightness), decrease speed when Shift is held|
|`QK_UNDERGLOW_SPEED_DOWN` |`UG_SPDD` |Decrease effect speed (brightness), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode (deprecated) |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode (deprecated) |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode (deprecated) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode (deprecated) |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode (deprecated) |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode (deprecated) |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode (deprecated) |
|`RGB_MODE_GRADIENT` |`RGB_M_G` |Static gradient animation mode (deprecated) |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
::: tip
`RGB_*` keycodes cannot be used with functions like `tap_code16(RGB_HUI)` as they're not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
These keycodes cannot be used with functions like `tap_code16()` as they are not USB HID keycodes. If you wish to replicate similar behaviour in custom code within your firmware (e.g. inside `encoder_update_user()` or `process_record_user()`), the equivalent [RGB functions](#functions) should be used instead.
:::
@ -358,7 +360,7 @@ Lighting layers on split keyboards will require layer state synced to the slave
### Overriding RGB Lighting on/off status
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `RGB_TOG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
Normally lighting layers are not shown when RGB Lighting is disabled (e.g. with `UG_TOGG` keycode). If you would like lighting layers to work even when the RGB Lighting is otherwise off, add `#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF` to your `config.h`.
### Retain brightness

View File

@ -701,26 +701,29 @@ See also: [Dynamic Tapping Term](tap_hold#dynamic-tapping-term)
See also: [RGB Lighting](features/rgblight)
|Key |Aliases |Description |
|-------------------|----------|--------------------------------------------------------------------|
|`RGB_TOG` | |Toggle RGB lighting on or off |
|`RGB_MODE_FORWARD` |`RGB_MOD` |Cycle through modes, reverse direction when Shift is held |
|`RGB_MODE_REVERSE` |`RGB_RMOD`|Cycle through modes in reverse, forward direction when Shift is held|
|`RGB_HUI` | |Increase hue, decrease hue when Shift is held |
|`RGB_HUD` | |Decrease hue, increase hue when Shift is held |
|`RGB_SAI` | |Increase saturation, decrease saturation when Shift is held |
|`RGB_SAD` | |Decrease saturation, increase saturation when Shift is held |
|`RGB_VAI` | |Increase value (brightness), decrease value when Shift is held |
|`RGB_VAD` | |Decrease value (brightness), increase value when Shift is held |
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode |
|`RGB_MODE_GRADIENT`|`RGB_M_G` |Static gradient animation mode |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red,Green,Blue test animation mode |
|Key |Aliases |Description |
|------------------------------|----------|---------------------------------------------------------------------|
|`QK_UNDERGLOW_TOGGLE` |`UG_TOGG` |Toggle RGB lighting on or off |
|`QK_UNDERGLOW_MODE_NEXT` |`UG_NEXT` |Cycle through modes, reverse direction when Shift is held |
|`QK_UNDERGLOW_MODE_PREVIOUS` |`UG_PREV` |Cycle through modes in reverse, forward direction when Shift is held |
|`QK_UNDERGLOW_HUE_UP` |`UG_HUEU` |Increase hue, decrease hue when Shift is held |
|`QK_UNDERGLOW_HUE_DOWN` |`UG_HUED` |Decrease hue, increase hue when Shift is held |
|`QK_UNDERGLOW_SATURATION_UP` |`UG_SATU` |Increase saturation, decrease saturation when Shift is held |
|`QK_UNDERGLOW_SATURATION_DOWN`|`UG_SATD` |Decrease saturation, increase saturation when Shift is held |
|`QK_UNDERGLOW_VALUE_UP` |`UG_VALU` |Increase value (brightness), decrease value when Shift is held |
|`QK_UNDERGLOW_VALUE_DOWN` |`UG_VALD` |Decrease value (brightness), increase value when Shift is held |
|`QK_UNDERGLOW_SPEED_UP` |`UG_SPDU` |Increase effect speed (brightness), decrease speed when Shift is held|
|`QK_UNDERGLOW_SPEED_DOWN` |`UG_SPDD` |Decrease effect speed (brightness), increase speed when Shift is held|
|`RGB_MODE_PLAIN` |`RGB_M_P `|Static (no animation) mode (deprecated) |
|`RGB_MODE_BREATHE` |`RGB_M_B` |Breathing animation mode (deprecated) |
|`RGB_MODE_RAINBOW` |`RGB_M_R` |Rainbow animation mode (deprecated) |
|`RGB_MODE_SWIRL` |`RGB_M_SW`|Swirl animation mode (deprecated) |
|`RGB_MODE_SNAKE` |`RGB_M_SN`|Snake animation mode (deprecated) |
|`RGB_MODE_KNIGHT` |`RGB_M_K` |"Knight Rider" animation mode (deprecated) |
|`RGB_MODE_XMAS` |`RGB_M_X` |Christmas animation mode (deprecated) |
|`RGB_MODE_GRADIENT` |`RGB_M_G` |Static gradient animation mode (deprecated) |
|`RGB_MODE_RGBTEST` |`RGB_M_T` |Red, Green, Blue test animation mode (deprecated) |
|`RGB_MODE_TWINKLE` |`RGB_M_TW`|Twinkle animation mode (deprecated) |
## RGB Matrix Lighting {#rgb-matrix-lighting}

View File

@ -0,0 +1,94 @@
{
"manufacturer": "4pplet",
"keyboard_name": "IBE60 Rev A",
"maintainer": "4pplet",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"key_lock": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B2", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
"rows": ["B14", "A9", "B6", "B5", "B4"]
},
"processor": "STM32F072",
"usb": {
"device_version": "0.0.1",
"pid": "0x0001",
"vid": "0x4448"
},
"indicators": {
"caps_lock": "A8"
},
"community_layouts": ["60_hhkb"],
"layouts": {
"LAYOUT_60_hhkb": {
"layout": [
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
{"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
{"label": "~", "matrix": [2, 13], "x": 14, "y": 0},
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
{"label": "|", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
{"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 2, "w": 2.25},
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"label": "Fn", "matrix": [4, 13], "x": 14, "y": 3},
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
{"label": "Alt", "matrix": [4, 9], "x": 11, "y": 4, "w": 1.5},
{"label": "Win", "matrix": [4, 10], "x": 12.5, "y": 4}
]
}
}
}

View File

@ -0,0 +1,34 @@
/*
Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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] = {
// main layer
[0] = LAYOUT_60_hhkb(
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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
// basic function layer
[1] = LAYOUT_60_hhkb(
QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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,35 @@
/*
Copyright 2020 Stefan Sundin "4pplet" <4pplet@protonmail.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] = {
// main layer
[0] = LAYOUT_60_hhkb(
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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
// basic function layer
[1] = LAYOUT_60_hhkb(
QK_BOOT, 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_UP, 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_LEFT, KC_DOWN, KC_RIGHT, 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 @@
# IBE60
PCB mounted 60% PCB for the IBE60 in fixed true HHKB layout
* Keyboard Maintainer: [Stefan Sundin](https://github.com/4pplet)
* Hardware Supported: IBE60 Solder PCB
Make example for this keyboard (after setting up your build environment):
make 4pplet/ibe60:default
Flashing example for this keyboard:
make 4pplet/ibe60: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 Escape key and plug in the keyboard
* **Physical reset button**: Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter bootloader
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

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

View File

@ -0,0 +1,89 @@
{
"manufacturer": "ai03 Design Studio",
"keyboard_name": "Equinox XL",
"maintainer": "ai03",
"bootloader": "atmel-dfu",
"build": {
"debounce_type": "asym_eager_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"indicators": {
"caps_lock": "F1",
"on_state": 0
},
"matrix_pins": {
"cols": ["F5", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "D5", "D3", "D2", "D1", "D0"],
"rows": ["B7", "F4", "F6", "F7"]
},
"processor": "atmega32u4",
"url": "https://ai03.com/projects/equinox-xl/",
"usb": {
"device_version": "0.0.1",
"pid": "0x0020",
"vid": "0xA103"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
{"matrix": [0, 1], "x": 1.5, "y": 0},
{"matrix": [0, 2], "x": 2.5, "y": 0},
{"matrix": [0, 3], "x": 3.5, "y": 0},
{"matrix": [0, 4], "x": 4.5, "y": 0},
{"matrix": [0, 5], "x": 5.5, "y": 0},
{"matrix": [0, 6], "x": 6.5, "y": 0},
{"matrix": [0, 7], "x": 7.5, "y": 0},
{"matrix": [0, 8], "x": 8.5, "y": 0},
{"matrix": [0, 9], "x": 9.5, "y": 0},
{"matrix": [0, 10], "x": 10.5, "y": 0},
{"matrix": [0, 11], "x": 11.5, "y": 0},
{"matrix": [0, 12], "x": 12.5, "y": 0},
{"matrix": [0, 13], "x": 13.5, "y": 0, "w": 1.5},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
{"matrix": [1, 1], "x": 1.75, "y": 1},
{"matrix": [1, 2], "x": 2.75, "y": 1},
{"matrix": [1, 3], "x": 3.75, "y": 1},
{"matrix": [1, 4], "x": 4.75, "y": 1},
{"matrix": [1, 5], "x": 5.75, "y": 1},
{"matrix": [1, 6], "x": 6.75, "y": 1},
{"matrix": [1, 7], "x": 7.75, "y": 1},
{"matrix": [1, 8], "x": 8.75, "y": 1},
{"matrix": [1, 9], "x": 9.75, "y": 1},
{"matrix": [1, 10], "x": 10.75, "y": 1},
{"matrix": [1, 11], "x": 11.75, "y": 1},
{"matrix": [1, 13], "x": 12.75, "y": 1, "w": 2.25},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.25},
{"matrix": [2, 1], "x": 1.25, "y": 2},
{"matrix": [2, 2], "x": 2.25, "y": 2},
{"matrix": [2, 3], "x": 3.25, "y": 2},
{"matrix": [2, 4], "x": 4.25, "y": 2},
{"matrix": [2, 5], "x": 5.25, "y": 2},
{"matrix": [2, 6], "x": 6.25, "y": 2},
{"matrix": [2, 7], "x": 7.25, "y": 2},
{"matrix": [2, 8], "x": 8.25, "y": 2},
{"matrix": [2, 9], "x": 9.25, "y": 2},
{"matrix": [2, 10], "x": 10.25, "y": 2},
{"matrix": [2, 11], "x": 11.25, "y": 2},
{"matrix": [2, 12], "x": 12.25, "y": 2, "w": 1.75},
{"matrix": [2, 13], "x": 14, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [3, 1], "x": 1.5, "y": 3},
{"matrix": [3, 2], "x": 2.5, "y": 3, "w": 1.5},
{"matrix": [3, 5], "x": 4, "y": 3, "w": 3},
{"matrix": [3, 7], "x": 7, "y": 3},
{"matrix": [3, 9], "x": 8, "y": 3, "w": 3},
{"matrix": [3, 11], "x": 11, "y": 3, "w": 1.5},
{"matrix": [3, 12], "x": 12.5, "y": 3},
{"matrix": [3, 13], "x": 13.5, "y": 3, "w": 1.5}
]
}
}
}

View File

@ -0,0 +1,15 @@
// Copyright 2024 ai03
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_GRV,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
};

View File

@ -0,0 +1,15 @@
// Copyright 2024 ai03
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_ESC, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_GRV,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL
),
};

View File

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

View File

@ -0,0 +1,28 @@
# Equinox XL
![Cover image](https://i.imgur.com/sQpe0Zv.jpg)
A numrowless 50% keyboard
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
* Hardware Supported: The Equinox XL PCB, powered by the Atmega32u4
* Hardware Availability: Available via group buy
Make example for this keyboard (after setting up your build environment):
make ai03/equinox_xl:default
Flashing example for this keyboard:
make ai03/equinox_xl: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**: Press the reset button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -36,8 +36,11 @@
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},

View File

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
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_DEL, KC_MEDIA_PLAY_PAUSE,
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_NUM, KC_PSLS, KC_PAST, KC_B,
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_P7, KC_P8, KC_P9, KC_PMNS,
@ -27,7 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
),
[1] = LAYOUT_all(
[1] = LAYOUT(
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, 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,

View File

@ -155,6 +155,498 @@
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]

View File

@ -0,0 +1,26 @@
# Matrix Diagram for ASH1800
```
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│00 ││01 │02 │03 │60 ││61 │62 │63 │04 ││05 │06 │07 │08 │ │54 │55 │56 │57 │
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ ├───┼───┼───┼───┤
│64 │65 │66 │67 │
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ├───┼───┼───┼───┤
│10 │11 │12 │13 │70 │71 │72 │73 │14 │15 │16 │17 │18 │19 │ │74 │75 │76 │77 │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ ┌─────┐
│20 │21 │22 │23 │80 │81 │82 │83 │24 │25 │26 │27 │28 │29 │ │84 │85 │86 │87 │ │38 │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐ │ ISO Enter
│30 │31 │32 │33 │90 │91 │92 │93 │34 │35 │36 │37 │38 │ │94 │95 │96 │97 │ │29 │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘
│40 │41 │42 │43 │A0 │A1 │A2 │A3 │44 │45 │46 │47 │48 │┌───┐│A4 │A5 │A6 │A7 │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│A9 │└───┼───┼───┤ │
│50 │51 │52 │53 │B4 │B7 │┌───┼───┼───┐│B5 │B6 │ │
└────┴────┴────┴────────────────────────┴─────┴─────┘│A8 │B8 │B9 │└───┴───┴───┘
└───┴───┴───┘
┌────────┐
│40 │ 2.25u LShift
└────────┘
┌─────┬─────┬───────────────────────────┬─────┬─────┐
│50 │51 │53 │B4 │B7 │ WKL
└─────┴─────┴───────────────────────────┴─────┴─────┘
```

View File

@ -156,6 +156,498 @@
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_ansi_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [2, 9], "x": 13.5, "y": 3, "w": 1.5},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [3, 8], "x": 12.75, "y": 4, "w": 2.25},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 6, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.25},
{"matrix": [5, 3], "x": 3.75, "y": 6, "w": 6.25},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]
},
"LAYOUT_iso_wkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1.25, "y": 0},
{"matrix": [0, 2], "x": 2.25, "y": 0},
{"matrix": [0, 3], "x": 3.25, "y": 0},
{"matrix": [6, 0], "x": 4.25, "y": 0},
{"matrix": [6, 1], "x": 5.5, "y": 0},
{"matrix": [6, 2], "x": 6.5, "y": 0},
{"matrix": [6, 3], "x": 7.5, "y": 0},
{"matrix": [0, 4], "x": 8.5, "y": 0},
{"matrix": [0, 5], "x": 9.75, "y": 0},
{"matrix": [0, 6], "x": 10.75, "y": 0},
{"matrix": [0, 7], "x": 11.75, "y": 0},
{"matrix": [0, 8], "x": 12.75, "y": 0},
{"matrix": [5, 4], "x": 15.5, "y": 0},
{"matrix": [5, 5], "x": 16.5, "y": 0},
{"matrix": [5, 6], "x": 17.5, "y": 0},
{"matrix": [5, 7], "x": 18.5, "y": 0},
{"matrix": [6, 4], "x": 15.5, "y": 1},
{"matrix": [6, 5], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [6, 7], "x": 18.5, "y": 1},
{"matrix": [1, 0], "x": 0, "y": 2},
{"matrix": [1, 1], "x": 1, "y": 2},
{"matrix": [1, 2], "x": 2, "y": 2},
{"matrix": [1, 3], "x": 3, "y": 2},
{"matrix": [7, 0], "x": 4, "y": 2},
{"matrix": [7, 1], "x": 5, "y": 2},
{"matrix": [7, 2], "x": 6, "y": 2},
{"matrix": [7, 3], "x": 7, "y": 2},
{"matrix": [1, 4], "x": 8, "y": 2},
{"matrix": [1, 5], "x": 9, "y": 2},
{"matrix": [1, 6], "x": 10, "y": 2},
{"matrix": [1, 7], "x": 11, "y": 2},
{"matrix": [1, 8], "x": 12, "y": 2},
{"matrix": [1, 9], "x": 13, "y": 2, "w": 2},
{"matrix": [7, 4], "x": 15.5, "y": 2},
{"matrix": [7, 5], "x": 16.5, "y": 2},
{"matrix": [7, 6], "x": 17.5, "y": 2},
{"matrix": [7, 7], "x": 18.5, "y": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 3},
{"matrix": [2, 2], "x": 2.5, "y": 3},
{"matrix": [2, 3], "x": 3.5, "y": 3},
{"matrix": [8, 0], "x": 4.5, "y": 3},
{"matrix": [8, 1], "x": 5.5, "y": 3},
{"matrix": [8, 2], "x": 6.5, "y": 3},
{"matrix": [8, 3], "x": 7.5, "y": 3},
{"matrix": [2, 4], "x": 8.5, "y": 3},
{"matrix": [2, 5], "x": 9.5, "y": 3},
{"matrix": [2, 6], "x": 10.5, "y": 3},
{"matrix": [2, 7], "x": 11.5, "y": 3},
{"matrix": [2, 8], "x": 12.5, "y": 3},
{"matrix": [8, 4], "x": 15.5, "y": 3},
{"matrix": [8, 5], "x": 16.5, "y": 3},
{"matrix": [8, 6], "x": 17.5, "y": 3},
{"matrix": [8, 7], "x": 18.5, "y": 3},
{"matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 4},
{"matrix": [3, 2], "x": 2.75, "y": 4},
{"matrix": [3, 3], "x": 3.75, "y": 4},
{"matrix": [9, 0], "x": 4.75, "y": 4},
{"matrix": [9, 1], "x": 5.75, "y": 4},
{"matrix": [9, 2], "x": 6.75, "y": 4},
{"matrix": [9, 3], "x": 7.75, "y": 4},
{"matrix": [3, 4], "x": 8.75, "y": 4},
{"matrix": [3, 5], "x": 9.75, "y": 4},
{"matrix": [3, 6], "x": 10.75, "y": 4},
{"matrix": [3, 7], "x": 11.75, "y": 4},
{"matrix": [2, 9], "x": 12.75, "y": 4},
{"matrix": [3, 8], "x": 13.75, "y": 3, "w": 1.25, "h": 2},
{"matrix": [9, 4], "x": 15.5, "y": 4},
{"matrix": [9, 5], "x": 16.5, "y": 4},
{"matrix": [9, 6], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 5},
{"matrix": [4, 2], "x": 2.25, "y": 5},
{"matrix": [4, 3], "x": 3.25, "y": 5},
{"matrix": [10, 0], "x": 4.25, "y": 5},
{"matrix": [10, 1], "x": 5.25, "y": 5},
{"matrix": [10, 2], "x": 6.25, "y": 5},
{"matrix": [10, 3], "x": 7.25, "y": 5},
{"matrix": [4, 4], "x": 8.25, "y": 5},
{"matrix": [4, 5], "x": 9.25, "y": 5},
{"matrix": [4, 6], "x": 10.25, "y": 5},
{"matrix": [4, 7], "x": 11.25, "y": 5},
{"matrix": [4, 8], "x": 12.25, "y": 5, "w": 1.75},
{"matrix": [10, 9], "x": 14.25, "y": 5.25},
{"matrix": [10, 4], "x": 15.5, "y": 5},
{"matrix": [10, 5], "x": 16.5, "y": 5},
{"matrix": [10, 6], "x": 17.5, "y": 5},
{"matrix": [10, 7], "x": 18.5, "y": 5, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
{"matrix": [5, 1], "x": 1.5, "y": 6, "w": 1.5},
{"matrix": [5, 3], "x": 3, "y": 6, "w": 7},
{"matrix": [11, 4], "x": 10, "y": 6, "w": 1.5},
{"matrix": [11, 7], "x": 11.5, "y": 6, "w": 1.5},
{"matrix": [10, 8], "x": 13.25, "y": 6.25},
{"matrix": [11, 8], "x": 14.25, "y": 6.25},
{"matrix": [11, 9], "x": 15.25, "y": 6.25},
{"matrix": [11, 5], "x": 16.5, "y": 6},
{"matrix": [11, 6], "x": 17.5, "y": 6}
]

View File

@ -0,0 +1,26 @@
# Matrix Diagram for ASH-XIIX
```
┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│00 ││01 │02 │03 │60 ││61 │62 │63 │04 ││05 │06 │07 │08 │ │54 │55 │56 │57 │
└───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘ ├───┼───┼───┼───┤
│64 │65 │66 │67 │
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ├───┼───┼───┼───┤
│10 │11 │12 │13 │70 │71 │72 │73 │14 │15 │16 │17 │18 │19 │ │74 │75 │76 │77 │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ ┌─────┐
│20 │21 │22 │23 │80 │81 │82 │83 │24 │25 │26 │27 │28 │29 │ │84 │85 │86 │87 │ │38 │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┼───┤ ┌──┴┐ │ ISO Enter
│30 │31 │32 │33 │90 │91 │92 │93 │34 │35 │36 │37 │38 │ │94 │95 │96 │97 │ │29 │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ ├───┼───┼───┼───┤ └───┴────┘
│40 │41 │42 │43 │A0 │A1 │A2 │A3 │44 │45 │46 │47 │48 │┌───┐│A4 │A5 │A6 │A7 │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│A9 │└───┼───┼───┤ │
│50 │51 │52 │53 │B4 │B7 │┌───┼───┼───┐│B5 │B6 │ │
└────┴────┴────┴────────────────────────┴─────┴─────┘│A8 │B8 │B9 │└───┴───┴───┘
└───┴───┴───┘
┌────────┐
│40 │ 2.25u LShift
└────────┘
┌─────┬─────┬───────────────────────────┬─────┬─────┐
│50 │51 │53 │B4 │B7 │ WKL
└─────┴─────┴───────────────────────────┴─────┴─────┘
```

View File

@ -0,0 +1,6 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define ENCODER_MAP_KEY_DELAY 10
#define ENCODER_DEFAULT_POS 0x3

View File

@ -0,0 +1,166 @@
{
"manufacturer": "gzowski",
"keyboard_name": "Ashwing66",
"maintainer": "gzowski",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "GP12", "pin_b": "GP11"}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP14", "GP15", "GP16", "GP17", "GP19", "GP20", "GP21", "GP22", "GP26", "GP27"],
"rows": ["GP28", "GP8", "GP9", "GP10", "GP13"]
},
"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,
"dual_beacon": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
{"matrix": [0, 1], "x": 16, "y": 1, "flags": 4},
{"matrix": [0, 2], "x": 33, "y": 2, "flags": 4},
{"matrix": [0, 3], "x": 49, "y": 4, "flags": 4},
{"matrix": [0, 4], "x": 65, "y": 7, "flags": 4},
{"matrix": [0, 5], "x": 81, "y": 11, "flags": 4},
{"matrix": [3, 6], "x": 86, "y": 39, "flags": 4},
{"matrix": [4, 6], "x": 81, "y": 56, "flags": 4},
{"matrix": [4, 7], "x": 96, "y": 63, "flags": 4},
{"matrix": [4, 8], "x": 126, "y": 63, "flags": 4},
{"matrix": [4, 9], "x": 141, "y": 56, "flags": 4},
{"matrix": [3, 9], "x": 136, "y": 39, "flags": 4},
{"matrix": [0, 10], "x": 141, "y": 11, "flags": 4},
{"matrix": [0, 11], "x": 157, "y": 7, "flags": 4},
{"matrix": [0, 12], "x": 173, "y": 4, "flags": 4},
{"matrix": [0, 13], "x": 189, "y": 2, "flags": 4},
{"matrix": [0, 14], "x": 206, "y": 1, "flags": 4},
{"matrix": [0, 15], "x": 223, "y": 0, "flags": 4}
],
"led_flush_limit": 16,
"led_process_limit": 5,
"max_brightness": 125,
"sleep": true
},
"url": "https://github.com/gzowski",
"usb": {
"device_version": "1.0.0",
"pid": "0x6F64",
"vid": "0x7372"
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
},
"layouts": {
"LAYOUT_5x16": {
"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, 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, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [1, 12], "x": 12, "y": 1},
{"matrix": [1, 13], "x": 13, "y": 1},
{"matrix": [1, 14], "x": 14, "y": 1},
{"matrix": [1, 15], "x": 15, "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, 10], "x": 10, "y": 2},
{"matrix": [2, 11], "x": 11, "y": 2},
{"matrix": [2, 12], "x": 12, "y": 2},
{"matrix": [2, 13], "x": 13, "y": 2},
{"matrix": [2, 14], "x": 14, "y": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [3, 6], "x": 6, "y": 3},
{"matrix": [3, 8], "x": 8, "y": 3},
{"matrix": [3, 9], "x": 9, "y": 3},
{"matrix": [3, 10], "x": 10, "y": 3},
{"matrix": [3, 11], "x": 11, "y": 3},
{"matrix": [3, 12], "x": 12, "y": 3},
{"matrix": [3, 13], "x": 13, "y": 3},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [4, 6], "x": 6, "y": 4},
{"matrix": [4, 7], "x": 7, "y": 4},
{"matrix": [4, 8], "x": 8, "y": 4},
{"matrix": [4, 9], "x": 9, "y": 4},
{"matrix": [4, 10], "x": 10, "y": 4},
{"matrix": [4, 11], "x": 11, "y": 4},
{"matrix": [4, 12], "x": 12, "y": 4},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,41 @@
// Copyright 2023 James GzowskiMO(_LAYERB)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layer {
_LAYERA,
_LAYERB,
_LAYERC,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYERA] = LAYOUT_5x16(
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,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_MINS ,
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_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERB] = LAYOUT_5x16(
KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERC] = LAYOUT_5x16(
KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
[_LAYERC] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}
};
#endif

View File

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

View File

@ -0,0 +1,41 @@
// Copyright 2023 James GzowskiMO(_LAYERB)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layer {
_LAYERA,
_LAYERB,
_LAYERC,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYERA] = LAYOUT_5x16(
KC_ESC ,KC_1 ,KC_2 ,KC_3 ,KC_4 ,KC_5 ,KC_6 ,KC_7 ,KC_8 ,KC_9 ,KC_0 ,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_MINS ,
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_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,MO(_LAYERB),KC_LGUI ,KC_LALT ,KC_SPC ,KC_PGDN ,KC_PGUP ,KC_ENT ,KC_BSPC ,MO(_LAYERC),KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERB] = LAYOUT_5x16(
KC_ESC ,RGB_TOG,RGB_RMOD,RGB_MOD ,RGB_VAD ,RGB_VAI ,RGB_SPD ,RGB_SPI ,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_BTN1 ,KC_MS_U ,KC_BTN2 ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_MS_L ,KC_MS_D ,KC_MS_R ,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_LBRC,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_RBRC
),
[_LAYERC] = LAYOUT_5x16(
KC_ESC ,KC_F1 ,KC_F2 ,KC_F3 ,KC_F4 ,KC_F5 ,KC_F6 ,KC_F7 ,KC_F8 ,KC_F9 ,KC_F10 ,KC_GRV ,
KC_TAB ,KC_Q ,KC_W ,KC_E ,KC_R ,KC_T ,KC_Y ,KC_U ,KC_UP ,KC_O ,KC_P ,KC_EQL ,
KC_LCTL,KC_A ,KC_S ,KC_D ,KC_F ,KC_G ,KC_H ,KC_LEFT ,KC_DOWN ,KC_RIGHT,KC_SCLN ,KC_QUOT ,
KC_LSFT,KC_Z ,KC_X ,KC_C ,KC_V ,KC_B ,KC_LBRC ,KC_MUTE ,KC_RBRC ,KC_N ,KC_M ,KC_COMM ,KC_DOT ,KC_SLSH ,KC_RSFT ,
KC_F11 ,KC_PSCR,KC_CAPS ,_______ ,KC_LGUI ,KC_LALT ,KC_SPC ,KC_END ,KC_HOME ,KC_ENT ,KC_BSPC ,_______ ,KC_INS ,KC_DEL ,KC_BSLS ,KC_F12
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_LAYERA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
[_LAYERB] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI)},
[_LAYERC] = { 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,23 @@
# Ashwing66
66 key winged unibody split
* Keyboard Maintainer: [James Gzowski](https://github.com/gzowski)
* Hardware Supported: Pi Pico or equivilent
* Build Guide: [Ashwing66](https://github.com/gzowski/Ashwing66)
Make example for this keyboard (after setting up your build environment):
make ashwing66:default
Flashing example for this keyboard:
make ashwing66: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
* **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 PCB, if using a RP2040 press repeatidly to enter boot mode.
* **Hold down boot loader button on MCU** Hold down the boot loader button on the MCU while plugging in the keyboard

View File

@ -0,0 +1,255 @@
{
"manufacturer": "Boardsource",
"keyboard_name": "Sessanta",
"maintainer": "waffle87",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D3"],
"rows": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5"]
},
"rgb_matrix": {
"animations": {
"alphas_mods": true,
"band_sat": true,
"band_val": true,
"breathing": true,
"gradient_left_right": true
},
"driver": "ws2812",
"layout": [
{"x": 224, "y": 4, "flags": 2},
{"x": 156, "y": 0, "flags": 2},
{"x": 82, "y": 0, "flags": 2},
{"x": 13, "y": 4, "flags": 2},
{"x": 24, "y": 50, "flags": 2},
{"x": 68, "y": 52, "flags": 2},
{"x": 121, "y": 52, "flags": 2},
{"x": 220, "y": 52, "flags": 2},
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 119, "y": 0, "flags": 4},
{"matrix": [1, 0], "x": 134, "y": 0, "flags": 4},
{"matrix": [1, 1], "x": 149, "y": 0, "flags": 4},
{"matrix": [1, 2], "x": 164, "y": 0, "flags": 4},
{"matrix": [1, 3], "x": 179, "y": 0, "flags": 4},
{"matrix": [1, 4], "x": 202, "y": 0, "flags": 1},
{"matrix": [1, 5], "x": 4, "y": 16, "flags": 1},
{"matrix": [1, 6], "x": 22, "y": 16, "flags": 4},
{"matrix": [1, 7], "x": 37, "y": 16, "flags": 4},
{"matrix": [1, 8], "x": 52, "y": 16, "flags": 4},
{"matrix": [2, 0], "x": 67, "y": 16, "flags": 4},
{"matrix": [2, 1], "x": 82, "y": 16, "flags": 4},
{"matrix": [2, 2], "x": 97, "y": 16, "flags": 4},
{"matrix": [2, 3], "x": 112, "y": 16, "flags": 4},
{"matrix": [2, 4], "x": 127, "y": 16, "flags": 4},
{"matrix": [2, 5], "x": 142, "y": 16, "flags": 4},
{"matrix": [2, 6], "x": 157, "y": 16, "flags": 4},
{"matrix": [2, 7], "x": 172, "y": 16, "flags": 4},
{"matrix": [2, 8], "x": 187, "y": 16, "flags": 4},
{"matrix": [3, 0], "x": 205, "y": 16, "flags": 1},
{"matrix": [3, 1], "x": 6, "y": 32, "flags": 1},
{"matrix": [3, 2], "x": 26, "y": 32, "flags": 4},
{"matrix": [3, 3], "x": 41, "y": 32, "flags": 4},
{"matrix": [3, 4], "x": 56, "y": 32, "flags": 4},
{"matrix": [3, 5], "x": 71, "y": 32, "flags": 4},
{"matrix": [3, 6], "x": 86, "y": 32, "flags": 4},
{"matrix": [3, 7], "x": 101, "y": 32, "flags": 4},
{"matrix": [3, 8], "x": 116, "y": 32, "flags": 4},
{"matrix": [4, 0], "x": 131, "y": 32, "flags": 4},
{"matrix": [4, 1], "x": 146, "y": 32, "flags": 4},
{"matrix": [4, 2], "x": 161, "y": 32, "flags": 4},
{"matrix": [4, 3], "x": 175, "y": 32, "flags": 4},
{"matrix": [4, 4], "x": 200, "y": 32, "flags": 1},
{"matrix": [4, 5], "x": 224, "y": 32, "flags": 1},
{"matrix": [4, 6], "x": 9, "y": 48, "flags": 1},
{"matrix": [4, 7], "x": 34, "y": 48, "flags": 4},
{"matrix": [4, 8], "x": 49, "y": 48, "flags": 4},
{"matrix": [5, 0], "x": 63, "y": 48, "flags": 4},
{"matrix": [5, 1], "x": 78, "y": 48, "flags": 4},
{"matrix": [5, 2], "x": 93, "y": 48, "flags": 4},
{"matrix": [5, 3], "x": 108, "y": 48, "flags": 4},
{"matrix": [5, 4], "x": 123, "y": 48, "flags": 4},
{"matrix": [5, 5], "x": 138, "y": 48, "flags": 4},
{"matrix": [5, 6], "x": 153, "y": 48, "flags": 4},
{"matrix": [5, 7], "x": 168, "y": 48, "flags": 4},
{"matrix": [5, 8], "x": 196, "y": 48, "flags": 1},
{"matrix": [6, 0], "x": 224, "y": 48, "flags": 1},
{"matrix": [6, 1], "x": 2, "y": 64, "flags": 1},
{"matrix": [6, 2], "x": 21, "y": 64, "flags": 1},
{"matrix": [6, 3], "x": 39, "y": 64, "flags": 1},
{"matrix": [6, 4], "x": 95, "y": 64, "flags": 4},
{"matrix": [6, 5], "x": 151, "y": 64, "flags": 1},
{"matrix": [6, 6], "x": 170, "y": 64, "flags": 1},
{"matrix": [6, 7], "x": 189, "y": 64, "flags": 1},
{"matrix": [6, 8], "x": 207, "y": 64, "flags": 1},
{"matrix": [7, 0], "x": 224, "y": 64, "flags": 1}
],
"max_brightness": 150,
"sleep": true
},
"url": "https://boardsource.xyz",
"usb": {
"device_version": "1.0.0",
"pid": "0x17AC",
"vid": "0x4273"
},
"ws2812": {
"pin": "D2"
},
"layouts": {
"LAYOUT_625_bar": {
"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": [1, 0], "x": 9, "y": 0},
{"matrix": [1, 1], "x": 10, "y": 0},
{"matrix": [1, 2], "x": 11, "y": 0},
{"matrix": [1, 3], "x": 12, "y": 0},
{"matrix": [1, 4], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 5], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 6], "x": 1.5, "y": 1},
{"matrix": [1, 7], "x": 2.5, "y": 1},
{"matrix": [1, 8], "x": 3.5, "y": 1},
{"matrix": [2, 0], "x": 4.5, "y": 1},
{"matrix": [2, 1], "x": 5.5, "y": 1},
{"matrix": [2, 2], "x": 6.5, "y": 1},
{"matrix": [2, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [2, 5], "x": 9.5, "y": 1},
{"matrix": [2, 6], "x": 10.5, "y": 1},
{"matrix": [2, 7], "x": 11.5, "y": 1},
{"matrix": [2, 8], "x": 12.5, "y": 1},
{"matrix": [3, 0], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [3, 1], "x": 0, "y": 2, "w": 1.75},
{"matrix": [3, 2], "x": 1.75, "y": 2},
{"matrix": [3, 3], "x": 2.75, "y": 2},
{"matrix": [3, 4], "x": 3.75, "y": 2},
{"matrix": [3, 5], "x": 4.75, "y": 2},
{"matrix": [3, 6], "x": 5.75, "y": 2},
{"matrix": [3, 7], "x": 6.75, "y": 2},
{"matrix": [3, 8], "x": 7.75, "y": 2},
{"matrix": [4, 0], "x": 8.75, "y": 2},
{"matrix": [4, 1], "x": 9.75, "y": 2},
{"matrix": [4, 2], "x": 10.75, "y": 2},
{"matrix": [4, 3], "x": 11.75, "y": 2},
{"matrix": [4, 4], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [4, 5], "x": 15, "y": 2},
{"matrix": [4, 6], "x": 0, "y": 3, "w": 2.25},
{"matrix": [4, 7], "x": 2.25, "y": 3},
{"matrix": [4, 8], "x": 3.25, "y": 3},
{"matrix": [5, 0], "x": 4.25, "y": 3},
{"matrix": [5, 1], "x": 5.25, "y": 3},
{"matrix": [5, 2], "x": 6.25, "y": 3},
{"matrix": [5, 3], "x": 7.25, "y": 3},
{"matrix": [5, 4], "x": 8.25, "y": 3},
{"matrix": [5, 5], "x": 9.25, "y": 3},
{"matrix": [5, 6], "x": 10.25, "y": 3},
{"matrix": [5, 7], "x": 11.25, "y": 3},
{"matrix": [5, 8], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [6, 0], "x": 15, "y": 3},
{"matrix": [6, 1], "x": 0, "y": 4, "w": 1.25},
{"matrix": [6, 2], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [6, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [6, 4], "x": 3.75, "y": 4, "w": 6.25},
{"matrix": [6, 5], "x": 10, "y": 4, "w": 1.25},
{"matrix": [6, 6], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [6, 7], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [6, 8], "x": 13.75, "y": 4, "w": 1.25},
{"matrix": [7, 0], "x": 15, "y": 4}
]
},
"LAYOUT_all": {
"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": [1, 0], "x": 9, "y": 0},
{"matrix": [1, 1], "x": 10, "y": 0},
{"matrix": [1, 2], "x": 11, "y": 0},
{"matrix": [1, 3], "x": 12, "y": 0},
{"matrix": [1, 4], "x": 13, "y": 0, "w": 2},
{"matrix": [1, 5], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 6], "x": 1.5, "y": 1},
{"matrix": [1, 7], "x": 2.5, "y": 1},
{"matrix": [1, 8], "x": 3.5, "y": 1},
{"matrix": [2, 0], "x": 4.5, "y": 1},
{"matrix": [2, 1], "x": 5.5, "y": 1},
{"matrix": [2, 2], "x": 6.5, "y": 1},
{"matrix": [2, 3], "x": 7.5, "y": 1},
{"matrix": [2, 4], "x": 8.5, "y": 1},
{"matrix": [2, 5], "x": 9.5, "y": 1},
{"matrix": [2, 6], "x": 10.5, "y": 1},
{"matrix": [2, 7], "x": 11.5, "y": 1},
{"matrix": [2, 8], "x": 12.5, "y": 1},
{"matrix": [3, 0], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [3, 1], "x": 0, "y": 2, "w": 1.75},
{"matrix": [3, 2], "x": 1.75, "y": 2},
{"matrix": [3, 3], "x": 2.75, "y": 2},
{"matrix": [3, 4], "x": 3.75, "y": 2},
{"matrix": [3, 5], "x": 4.75, "y": 2},
{"matrix": [3, 6], "x": 5.75, "y": 2},
{"matrix": [3, 7], "x": 6.75, "y": 2},
{"matrix": [3, 8], "x": 7.75, "y": 2},
{"matrix": [4, 0], "x": 8.75, "y": 2},
{"matrix": [4, 1], "x": 9.75, "y": 2},
{"matrix": [4, 2], "x": 10.75, "y": 2},
{"matrix": [4, 3], "x": 11.75, "y": 2},
{"matrix": [4, 4], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [4, 5], "x": 15, "y": 2},
{"matrix": [4, 6], "x": 0, "y": 3, "w": 2.25},
{"matrix": [4, 7], "x": 2.25, "y": 3},
{"matrix": [4, 8], "x": 3.25, "y": 3},
{"matrix": [5, 0], "x": 4.25, "y": 3},
{"matrix": [5, 1], "x": 5.25, "y": 3},
{"matrix": [5, 2], "x": 6.25, "y": 3},
{"matrix": [5, 3], "x": 7.25, "y": 3},
{"matrix": [5, 4], "x": 8.25, "y": 3},
{"matrix": [5, 5], "x": 9.25, "y": 3},
{"matrix": [5, 6], "x": 10.25, "y": 3},
{"matrix": [5, 7], "x": 11.25, "y": 3},
{"matrix": [5, 8], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [6, 0], "x": 15, "y": 3},
{"matrix": [6, 1], "x": 0, "y": 4, "w": 1.25},
{"matrix": [6, 2], "x": 1.25, "y": 4, "w": 1.25},
{"matrix": [6, 3], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [7, 1], "x": 3.75, "y": 4, "w": 1.5},
{"matrix": [7, 2], "x": 5.25, "y": 4},
{"matrix": [6, 4], "x": 6.25, "y": 4, "w": 1.25},
{"matrix": [7, 3], "x": 7.5, "y": 4},
{"matrix": [7, 4], "x": 8.5, "y": 4, "w": 1.5},
{"matrix": [6, 5], "x": 10, "y": 4, "w": 1.25},
{"matrix": [6, 6], "x": 11.25, "y": 4, "w": 1.25},
{"matrix": [6, 7], "x": 12.5, "y": 4, "w": 1.25},
{"matrix": [6, 8], "x": 13.75, "y": 4, "w": 1.25},
{"matrix": [7, 0], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,21 @@
{
"keyboard": "boardsource/sessanta",
"keymap": "default",
"layout": "LAYOUT_625_bar",
"layers": [
[
"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_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_VOLU",
"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_MPLY",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
],
[
"QK_BOOT", "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_F13",
"QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
]
]
}

View File

@ -0,0 +1,26 @@
{
"keyboard": "boardsource/sessanta",
"keymap": "via",
"layout": "LAYOUT_all",
"config": {
"features": {
"via": true
}
},
"layers": [
[
"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_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_VOLU",
"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_MPLY",
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "KC_SPC", "MO(1)", "KC_RALT", "KC_RGUI", "KC_RCTL", "KC_VOLD"
],
[
"QK_BOOT", "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_F13",
"QK_RBT", "RGB_MOD", "RGB_VAI", "RGB_HUI", "RGB_SAI", "RGB_TOG", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"EE_CLR", "RGB_RMOD", "RGB_VAD", "RGB_HUD", "RGB_SAD", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______",
"_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______"
]
]
}

View File

@ -0,0 +1,27 @@
# Sessanta
![image](https://i.imgur.com/ALvvC53.jpeg)
A 60% keyboard offered in an MX or Choc PCB with per-key RGB
* Keyboard Maintainer: [waffle87](https://github.com/waffle87)
* Hardware Supported: Sessanta PCB w/ Pro Micro compatible microcontroller
* Hardware Availability: [boardsource.xyz](https://boardsource.xyz)
Make example for this keyboard (after setting up your build environment):
make boardsource/sessanta:default
Flashing example for this keyboard:
make boardsource/sessanta: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 and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB near microcontroller
* **Keycode in layout**: Press the key mapped to `QK_BOOT`

View File

@ -0,0 +1,957 @@
{
"manufacturer": "chlx bsmt",
"keyboard_name": "lfn.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": "B2",
"on_state": 0,
"compose": "B0"
},
"matrix_pins": {
"rows": ["F5", "F1", "F4", "F0", "F7", "F6", "D3", "D5", "B3", "B7"],
"cols": ["C6", "B6", "B5", "B4", "D7", "D6", "D4"]
},
"processor": "atmega32u4",
"url": "www.github.com/gaclee3b",
"usb": {
"device_version": "2.0.1",
"pid": "0x0604",
"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_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_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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, 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,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,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, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_LSCR, KC_RALT, KC_RGUI, KC_APP, 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,27 @@
# lfn.merro60
![lfn.merro60 PCB](https://i.imgur.com/naIgvKy.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.
- Meant to be manufactured in 2mm thickness.
* Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
* Hardware Supported: chlx PCB lfn.merro60.x.x.x
Make example for this keyboard (after setting up your build environment):
make chlx/lfn_merro60:default
Flashing example for this keyboard:
make chlx/lfn_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
- After plugging in, press and release the reset button on the pcb top-side near the spacebar switch locations
- After plugging in, short out the two reset metal contacts near the 'z' key (accessible through the switch LED slot)

View File

@ -0,0 +1,71 @@
/* Copyright 2024 Cipulot
*
* 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 3 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 MATRIX_ROWS 5
#define MATRIX_COLS 15
#define MATRIX_ROW_PINS \
{ A8, A15, B12, B8, B9}
#define AMUX_COUNT 1
#define AMUX_MAX_COLS_COUNT 16
#define AMUX_EN_PINS \
{ B5 }
#define AMUX_SEL_PINS \
{ B6, B7, B4, B3 }
#define AMUX_COL_CHANNELS_SIZES \
{ 15 }
#define AMUX_0_COL_CHANNELS \
{ 7, 6, 5, 4, 3, 2, 1, 0, 8, 14, 13, 10, 9, 12, 11}
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS
#define DISCHARGE_PIN A2
#define ANALOG_PORT A3
#define DEFAULT_ACTUATION_MODE 0
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
#define DEFAULT_EXTREMUM 1023
#define EXPECTED_NOISE_FLOOR 0
#define NOISE_FLOOR_THRESHOLD 50
#define BOTTOMING_CALIBRATION_THRESHOLD 50
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
#define DEFAULT_BOTTOMING_READING 1023
#define DEFAULT_CALIBRATION_STARTER true
#define DISCHARGE_TIME 10
// #define DEBUG_MATRIX_SCAN_RATE
#define EECONFIG_KB_DATA_SIZE 159
// PWM driver with direct memory access (DMA) support
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
#define WS2812_PWM_DRIVER PWMD1
#define WS2812_PWM_CHANNEL 3
#define WS2812_PWM_PAL_MODE 1
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
#define WS2812_DMA_CHANNEL 6
#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM1_UP

View File

@ -0,0 +1,23 @@
/* Copyright 2024 Cipulot
*
* 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 3 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_ADC TRUE
#define HAL_USE_PAL TRUE
#define HAL_USE_PWM TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,330 @@
{
"manufacturer": "Cipulot",
"keyboard_name": "EC 60X",
"maintainer": "Cipulot",
"bootloader": "stm32-dfu",
"build": {
"lto": true
},
"diode_direction": "COL2ROW",
"eeprom": {
"wear_leveling": {
"backing_size": 4096
}
},
"features": {
"bootmagic": false,
"console": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgblight": true
},
"processor": "STM32F411",
"qmk": {
"locking": {
"enabled": true,
"resync": true
}
},
"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
},
"led_count": 22
},
"usb": {
"device_version": "0.0.1",
"pid": "0x6BC7",
"shared_endpoint": {
"keyboard": true
},
"vid": "0x6369"
},
"ws2812": {
"driver": "pwm",
"pin": "B15"
},
"layouts": {
"LAYOUT_60_ansi_tsangan": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"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, 13], "x": 13.5, "y": 1, "w": 1.5},
{"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": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "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": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_iso_tsangan": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"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": 13.75, "y": 1, "w": 1.25, "h": 2},
{"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": [2, 12], "x": 12.75, "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, 13], "x": 12.25, "y": 3, "w": 2.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "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": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_60_jis": {
"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, 14], "x": 14, "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": 13.75, "y": 1, "w": 1.25, "h": 2},
{"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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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},
{"matrix": [3, 13], "x": 13.25, "y": 3, "w": 1.75},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 4], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 2.5},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 1.5},
{"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.5},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
},
"LAYOUT_all": {
"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, 14], "x": 14, "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, 13], "x": 13.5, "y": 1, "w": 0.75},
{"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75},
{"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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
{"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},
{"matrix": [3, 13], "x": 13.25, "y": 3, "w": 0.75},
{"matrix": [3, 14], "x": 14, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 4], "x": 4, "y": 4, "w": 1.5},
{"matrix": [4, 6], "x": 5.5, "y": 4, "w": 2.5},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 1.5},
{"matrix": [4, 10], "x": 9.5, "y": 4, "w": 1.5},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 12], "x": 12.5, "y": 4},
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
]
}
}
}

View File

@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[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_ENTER,
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, MO(1), KC_RCTL),
[1] = LAYOUT_60_ansi_tsangan(
_______, 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_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______,
_______, _______, _______, _______, MO(2), _______, _______),
[2] = LAYOUT_60_ansi_tsangan(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______)
// clang-format on
};

View File

@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[0] = LAYOUT_60_iso_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_ENTER,
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_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, MO(1), KC_RCTL),
[1] = LAYOUT_60_iso_tsangan(
_______, 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_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______,
_______, _______, _______, _______, MO(2), _______, _______),
[2] = LAYOUT_60_iso_tsangan(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______)
// clang-format on
};

View File

@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[0] = LAYOUT_60_jis(
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_INT3, 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_ENTER,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT,
KC_LCTL, KC_LGUI, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_INT2, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_60_jis(
_______, 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_UP, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______,
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______),
[2] = LAYOUT_60_jis(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
// clang-format on
};

View File

@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[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_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_ENTER,
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_ENTER,
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_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_all(
_______, 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_UP, _______, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______),
[2] = LAYOUT_all(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
// clang-format on
};

View File

@ -0,0 +1,42 @@
/* Copyright 2024 Cipulot
*
* 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 3 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] = {
// clang-format off
[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_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_ENTER,
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_ENTER,
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_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL),
[1] = LAYOUT_all(
_______, 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_UP, _______, _______, _______,
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______),
[2] = LAYOUT_all(
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
// clang-format on
};

View File

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

View File

@ -0,0 +1,25 @@
/* Copyright 2024 Cipulot
*
* 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 3 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_ADC_USE_ADC1
#define STM32_ADC_USE_ADC1 TRUE
#undef STM32_PWM_USE_TIM1
#define STM32_PWM_USE_TIM1 TRUE

View File

@ -0,0 +1,3 @@
ifeq ($(strip $(VIA_ENABLE)), yes)
SRC += keyboards/cipulot/common/via_ec.c
endif

View File

@ -0,0 +1,26 @@
# EC 60X
![EC 60X PCB](https://i.imgur.com/aYQgeSn.png)
Universal 60% Electrostatic Capacitive PCB, with multi-layout support.
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
* Hardware Supported: EC 60X
* Hardware Availability: TBD
Make example for this keyboard (after setting up your build environment):
make cipulot/ec_60x:default
Flashing example for this keyboard:
make cipulot/ec_60x: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 2 ways:
* **Physical reset**: Long short the exposed pins on the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -0,0 +1,5 @@
CUSTOM_MATRIX = lite
ANALOG_DRIVER_REQUIRED = yes
VPATH += keyboards/cipulot/common
SRC += matrix.c ec_board.c ec_switch_matrix.c
OPT = 2

View File

@ -100,7 +100,7 @@
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 17.25, "y": 3},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@ -170,7 +170,7 @@
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 1.75},
{"matrix": [3, 14], "x": 17.25, "y": 3},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@ -238,7 +238,7 @@
{"matrix": [3, 12], "x": 14.5, "y": 3},
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},
@ -307,7 +307,7 @@
{"matrix": [3, 12], "x": 14.5, "y": 3},
{"matrix": [3, 13], "x": 15.5, "y": 3, "w": 2.75},
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [4, 2], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 3], "x": 4.25, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 5.75, "y": 4, "w": 2},
{"matrix": [4, 6], "x": 7.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 9.5, "y": 4, "w": 2.75},

View File

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_PSCR, 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_BSPC, KC_DEL,
KC_PSCR, 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_BSPC, KC_BSPC,
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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),

View File

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_PSCR, 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_BSPC, KC_DEL,
KC_PSCR, 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_BSPC, KC_BSPC,
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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),

View File

@ -1,115 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2023 @asdfire1
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
/* Select hand configuration */
#define MASTER_LEFT
// #define MASTER_RIGHT
// #define EE_HANDS
#ifdef RGBLIGHT_ENABLE
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
#define RGBLIGHT_EFFECT_SNAKE
#define RGBLIGHT_EFFECT_KNIGHT
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
// #define RGBLIGHT_EFFECT_RGB_TEST
// #define RGBLIGHT_EFFECT_ALTERNATING
// #define RGBLIGHT_EFFECT_TWINKLE
#define RGBLIGHT_LIMIT_VAL 120
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
#endif
#ifdef RGB_MATRIX_ENABLE
//# define RGB_MATRIX_KEYPRESSES // reacts to keypresses
// # define RGB_MATRIX_KEYRELEASES // reacts to keyreleases (instead of keypresses)
// # define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects
# define RGB_MATRIX_SLEEP // turn off effects when suspended
//# define RGB_MATRIX_FRAMEBUFFER_EFFECTS
// # define RGB_MATRIX_LED_PROCESS_LIMIT (DRIVER_LED_TOTAL + 4) / 5 // limits the number of LEDs to process in an animation per task run (increases keyboard responsiveness)
// # define RGB_MATRIX_LED_FLUSH_LIMIT 16 // limits in milliseconds how frequently an animation will update the LEDs. 16 (16ms) is equivalent to limiting to 60fps (increases keyboard responsiveness)
# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 // limits maximum brightness of LEDs to 150 out of 255. Higher may cause the controller to crash.
# define RGB_MATRIX_HUE_STEP 8
# define RGB_MATRIX_SAT_STEP 8
# define RGB_MATRIX_VAL_STEP 8
# define RGB_MATRIX_SPD_STEP 10
/* Enable the animations you want/need. You may need to enable only a small number of these because *
* they take up a lot of space. Enable and confirm that you can still successfully compile your firmware. */
// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
# define ENABLE_RGB_MATRIX_ALPHAS_MODS
//# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
//# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
//# define ENABLE_RGB_MATRIX_BREATHING
//# define ENABLE_RGB_MATRIX_BAND_SAT
//# define ENABLE_RGB_MATRIX_BAND_VAL
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
//# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
//# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
//# define ENABLE_RGB_MATRIX_CYCLE_ALL
//# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
//# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
//# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
//# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
//# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
//# define ENABLE_RGB_MATRIX_DUAL_BEACON
//# define ENABLE_RGB_MATRIX_RAINBOW_BEACON
//# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
//# define ENABLE_RGB_MATRIX_RAINDROPS
//# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
//# define ENABLE_RGB_MATRIX_HUE_BREATHING
//# define ENABLE_RGB_MATRIX_HUE_PENDULUM
//# define ENABLE_RGB_MATRIX_HUE_WAVE
//# define ENABLE_RGB_MATRIX_PIXEL_RAIN
//# define ENABLE_RGB_MATRIX_PIXEL_FLOW
//# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
//# define ENABLE_RGB_MATRIX_TYPING_HEATMAP
//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
//# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
//# define ENABLE_RGB_MATRIX_SPLASH
//# define ENABLE_RGB_MATRIX_MULTISPLASH
//# define ENABLE_RGB_MATRIX_SOLID_SPLASH
//# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
#endif
#define OLED_FONT_H "keyboards/crkbd/lib/glcdfont.c"
#define SPLIT_LAYER_STATE_ENABLE
#define SPLIT_WPM_ENABLE //Enable WPM across split keyboards (+268).
#define NO_ACTION_ONESHOT
//#define SPLIT_OLED_ENABLE
#define DYNAMIC_KEYMAP_LAYER_COUNT 6

View File

@ -1,385 +0,0 @@
/*
Copyright 2019 @foostan
Copyright 2021 @HellSingCoder
Copyright 2023 @asdfire1
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
//#include <stdio.h>
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//COLEMAK
[0] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(3), KC_SPC, KC_ENT, MO(4), KC_RALT
//`--------------------------' `--------------------------'
),
//GAME1
[1] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ESC,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LALT, MO(2), KC_SPC, KC_ENT, MO(4), KC_RALT
//`--------------------------' `--------------------------'
),
//GAME2
[2] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_F1, KC_F2, XXXXXXX, XXXXXXX, KC_6, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F13,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_ENT, MO(5), KC_RALT
//`--------------------------' `--------------------------'
),
//LOWER
[3] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TAB, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, KC_MPRV, XXXXXXX, KC_MINS, KC_P7, KC_P8, KC_P9, KC_DEL,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LSFT, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, KC_MPLY, XXXXXXX, KC_PLUS, KC_P4, KC_P5, KC_P6, XXXXXXX,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MNXT, XXXXXXX, KC_EQL, KC_P1, KC_P2, KC_P3, KC_F13,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, KC_SPC, KC_SPC, MO(5), KC_P0
//`--------------------------' `--------------------------'
),
//RAISE
[4] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGUP,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_CAPS, KC_CIRC, KC_AMPR, KC_LCBR, KC_LBRC, KC_LPRN, KC_RPRN, KC_RBRC, KC_RCBR, XXXXXXX, KC_END, KC_PGDN,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
KC_LCTL, KC_ASTR, KC_UNDS, KC_BSLS, KC_PIPE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PSCR,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, MO(5), KC_BSPC, _______, _______, KC_LALT
//`--------------------------' `--------------------------'
),
//ADJUST
[5] = LAYOUT_split_3x6_3(
//,-----------------------------------------------------. ,-----------------------------------------------------.
QK_BOOT, TG(1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
KC_LGUI, _______, _______, _______, _______, KC_LALT
//`--------------------------' `--------------------------'
)
};
// clang-format on
#ifdef OLED_ENABLE
/* 32 * 32 logo */
static void render_logo(void) {
static const char PROGMEM hexagram_logo[] = {
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x70, 0x18, 0x06,
0x06, 0x18, 0x70, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0x07, 0x1f, 0x32, 0x66, 0xc4, 0x6c, 0x38, 0x1e, 0x37, 0x61, 0xc0, 0x80, 0x80,
0x80, 0x80, 0xc0, 0x61, 0x37, 0x1e, 0x38, 0x6c, 0xc4, 0x66, 0x32, 0x1f, 0x07, 0x01, 0x00, 0x00,
0x00, 0x00, 0x80, 0xe0, 0xf8, 0x4c, 0x66, 0x23, 0x36, 0x1c, 0x78, 0xec, 0x86, 0x03, 0x01, 0x01,
0x01, 0x01, 0x03, 0x86, 0xec, 0x78, 0x1c, 0x36, 0x23, 0x66, 0x4c, 0xf8, 0xe0, 0x80, 0x00, 0x00,
0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x0e, 0x18, 0x60,
0x60, 0x18, 0x0e, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00
};
oled_write_raw_P(hexagram_logo, sizeof(hexagram_logo));
}
/* KEYBOARD PET START */
/* settings */
# define MIN_WALK_SPEED 10
# define MIN_RUN_SPEED 40
/* advanced settings */
# define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
# define ANIM_SIZE 96 // number of bytes in array. If you change sprites, minimize for adequate firmware size. max is 1024
/* timers */
uint32_t anim_timer = 0;
uint32_t anim_sleep = 0;
/* current frame */
uint8_t current_frame = 0;
/* status variables */
int current_wpm = 0;
led_t led_usb_state;
bool isSneaking = false;
bool isJumping = false;
bool showedJump = true;
bool isBarking = false;
/* logic */
static void render_luna(int LUNA_X, int LUNA_Y) {
/* Sit */
static const char PROGMEM sit[2][ANIM_SIZE] = {/* 'sit1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x68, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x06, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'sit2', 32x22px */
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x1c, 0x02, 0x05, 0x02, 0x24, 0x04, 0x04, 0x02, 0xa9, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x90, 0x08, 0x18, 0x60, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0e, 0x82, 0x7c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x0c, 0x10, 0x10, 0x20, 0x20, 0x20, 0x28, 0x3e, 0x1c, 0x20, 0x20, 0x3e, 0x0f, 0x11, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
/* Walk */
static const char PROGMEM walk[2][ANIM_SIZE] = {/* 'walk1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x90, 0x90, 0x90, 0xa0, 0xc0, 0x80, 0x80, 0x80, 0x70, 0x08, 0x14, 0x08, 0x90, 0x10, 0x10, 0x08, 0xa4, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x08, 0xfc, 0x01, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x18, 0xea, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x03, 0x06, 0x18, 0x20, 0x20, 0x3c, 0x0c, 0x12, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'walk2', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x20, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x28, 0x10, 0x20, 0x20, 0x20, 0x10, 0x48, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x20, 0xf8, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x10, 0x30, 0xd5, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x02, 0x1c, 0x14, 0x08, 0x10, 0x20, 0x2c, 0x32, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* Run */
static const char PROGMEM run[2][ANIM_SIZE] = {/* 'run1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0xe0, 0x10, 0x08, 0x08, 0xc8, 0xb0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0xc4, 0xa4, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x58, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x09, 0x04, 0x04, 0x04, 0x04, 0x02, 0x03, 0x02, 0x01, 0x01, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'run2', 32x22px */
{
0x00, 0x00, 0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x78, 0x28, 0x08, 0x10, 0x20, 0x30, 0x08, 0x10, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0xb0, 0x50, 0x55, 0x20, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x1e, 0x20, 0x20, 0x18, 0x0c, 0x14, 0x1e, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* Bark */
static const char PROGMEM bark[2][ANIM_SIZE] = {/* 'bark1', 32x22px */
{
0x00, 0xc0, 0x20, 0x10, 0xd0, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x3c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc8, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
},
/* 'bark2', 32x22px */
{
0x00, 0xe0, 0x10, 0x10, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x2c, 0x14, 0x04, 0x08, 0x90, 0x18, 0x04, 0x08, 0xb0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x08, 0x10, 0x11, 0xf9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x48, 0x28, 0x2a, 0x10, 0x0f, 0x20, 0x4a, 0x09, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x0c, 0x10, 0x20, 0x28, 0x37, 0x02, 0x02, 0x04, 0x08, 0x10, 0x26, 0x2b, 0x32, 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* Sneak */
static const char PROGMEM sneak[2][ANIM_SIZE] = {/* 'sneak1', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x40, 0x40, 0x80, 0x00, 0x80, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x21, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x04, 0x04, 0x04, 0x03, 0x01, 0x00, 0x00, 0x09, 0x01, 0x80, 0x80, 0xab, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0x20, 0x20, 0x3c, 0x0f, 0x11, 0x1f, 0x02, 0x06, 0x18, 0x20, 0x20, 0x38, 0x08, 0x10, 0x18, 0x04, 0x04, 0x02, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
},
/* 'sneak2', 32x22px */
{
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xa0, 0x20, 0x40, 0x80, 0xc0, 0x20, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x41, 0xf0, 0x04, 0x02, 0x02, 0x02, 0x03, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x40, 0x40, 0x55, 0x82, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x20, 0x30, 0x0c, 0x02, 0x05, 0x09, 0x12, 0x1e, 0x04, 0x18, 0x10, 0x08, 0x10, 0x20, 0x28, 0x34, 0x06, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
}};
/* animation */
void animate_luna(void) {
/* jump */
if (isJumping || !showedJump) {
/* clear */
oled_set_cursor(LUNA_X, LUNA_Y + 2);
oled_write(" ", false);
oled_set_cursor(LUNA_X, LUNA_Y - 1);
showedJump = true;
} else {
/* clear */
oled_set_cursor(LUNA_X, LUNA_Y - 1);
oled_write(" ", false);
oled_set_cursor(LUNA_X, LUNA_Y);
}
/* switch frame */
current_frame = (current_frame + 1) % 2;
/* current status */
if (led_usb_state.caps_lock) {
oled_write_raw_P(bark[abs(1 - current_frame)], ANIM_SIZE);
} else if (isSneaking) {
oled_write_raw_P(sneak[abs(1 - current_frame)], ANIM_SIZE);
} else if (current_wpm <= MIN_WALK_SPEED) {
oled_write_raw_P(sit[abs(1 - current_frame)], ANIM_SIZE);
} else if (current_wpm <= MIN_RUN_SPEED) {
oled_write_raw_P(walk[abs(1 - current_frame)], ANIM_SIZE);
} else {
oled_write_raw_P(run[abs(1 - current_frame)], ANIM_SIZE);
}
}
/* animation timer */
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
anim_timer = timer_read32();
animate_luna();
}
/* this fixes the screen on and off bug */
if (current_wpm > 0) {
oled_on();
anim_sleep = timer_read32();
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
/* clear */
oled_set_cursor(0,0);
oled_write(" ", false);
oled_off();
oled_set_cursor(LUNA_X,LUNA_Y);
}
}
/* KEYBOARD PET END */
static void print_logo_narrow(void) {
render_logo();
if (current_wpm > 0) {
anim_sleep = timer_read32();
/* wpm counter */
oled_set_cursor(0, 14);
oled_write(get_u8_str(get_current_wpm(), '0'), false);
oled_set_cursor(0, 15);
oled_write(" wpm", false);
/* this fixes the screen on and off bug */
} else if(timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
/* clear */
oled_set_cursor(0,0);
oled_write(" ", false);
oled_off();
}
}
layer_state_t layer_state_set_user(layer_state_t state) {
switch (get_highest_layer(state)) {
case 0:
rgb_matrix_reload_from_eeprom();
break;
case 1:
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
rgb_matrix_sethsv_noeeprom(HSV_TEAL);
break;
case 2:
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
rgb_matrix_sethsv_noeeprom(HSV_PURPLE);
break;
case 5:
rgb_matrix_mode_noeeprom(RGB_MATRIX_ALPHAS_MODS);
rgb_matrix_sethsv_noeeprom(HSV_YELLOW);
break;
}
return state;
}
static void print_status_narrow(void) {
/* Print current layer */
oled_write("LAYER", false);
oled_set_cursor(0, 6);
switch (get_highest_layer(layer_state)) {
case 0:
oled_write("Base ", false);
break;
case 1:
oled_write("Game ", false);
break;
case 2:
oled_write("Game2", false);
break;
case 3:
oled_write("Lower", false);
break;
case 4:
oled_write("Raise", false);
break;
case 5:
oled_write("Adj ", false);
break;
default:
oled_write("Undef", false);
}
/* KEYBOARD PET RENDER START */
render_luna(0, 13);
/* KEYBOARD PET RENDER END */
}
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; }
bool oled_task_user(void) {
/* KEYBOARD PET VARIABLES START */
current_wpm = get_current_wpm();
led_usb_state = host_keyboard_led_state();
/* KEYBOARD PET VARIABLES END */
if (is_keyboard_master()) {
print_status_narrow();
} else {
print_logo_narrow();
}
return false;
}
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
/* KEYBOARD PET STATUS START */
case KC_LCTL:
isSneaking = record->event.pressed;
break;
case KC_SPC:
isJumping = record->event.pressed;
if (isJumping) {
showedJump = false;
}
break;
case KC_CAPS:
isBarking = record->event.pressed;
break;
/* KEYBOARD PET STATUS END */
}
return true;
}

View File

@ -1,17 +0,0 @@
# Personal keymap for the CRKBD
My own keymap with some custom OLED features, Colemak base layer and gaming layers. The F13 key on multiple layers can be bound to something, I use it as toggle mute microphone on Discord.
## Layers
- Colemak - Default layer
- Lower - Has numbers and arrows
- Raise - Has symbols
- Game1 - A QWERTY Gaming layer
- Game2 - An alternate lower layer when Game1 is active, has numbers and other keys that may be needed
- Adjust - Has F-keys and settings, allows to set the Game1 as base layer.
## Custom OLED
- Left side:
- Layer indicator
- Keyboard pet Luna from @HellSingCoder <https://github.com/HellSingCoder/qmk_firmware/tree/master/keyboards/sofle/keymaps/helltm>
- Right side
- Unicursal hexagram pixel art logo
- WPM counter

View File

@ -1,7 +0,0 @@
MOUSEKEY_ENABLE = no # Mouse keys
RGBLIGHT_ENABLE = no
RGB_MATRIX_ENABLE = yes # Enable WS2812 RGB underlight.
VIA_ENABLE = yes # Enable VIA
OLED_ENABLE = yes
LTO_ENABLE = yes
WPM_ENABLE = yes

View File

@ -23,8 +23,11 @@
"resync": true
}
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
[0] = LAYOUT( /* Base */
KC_INS, KC_HOME, KC_PGUP,
KC_DEL, KC_END, KC_PGDN,

View File

@ -16,31 +16,10 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all( /* Base */
[0] = LAYOUT( /* Base */
KC_INS, KC_HOME, KC_PGUP,
KC_DEL, KC_END, KC_PGDN,
KC_UP,
KC_LEFT, KC_DOWN, KC_RIGHT),
[1] = LAYOUT_all( /* Empty for Dynamic keymap */
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_all( /* Empty for Dynamic keymap */
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS),
[3] = LAYOUT_all( /* Empty for Dynamic keymap */
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_RIGHT)
};

View File

@ -0,0 +1,8 @@
// Copyright 2024 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Reset */
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U

View File

@ -0,0 +1,16 @@
// Copyright 2024 Hyojin Bak (@eerraa)
// SPDX-License-Identifier: GPL-2.0-or-later
#include "quantum.h"
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
}
if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color(0, 0, 128, 128);
} else {
rgb_matrix_set_color(0, 0, 0, 0);
}
return true;
}

View File

@ -0,0 +1,771 @@
{
"manufacturer": "eerraa",
"keyboard_name": "FAve65S",
"maintainer": "eerraa",
"bootloader": "rp2040",
"build": {
"debounce_type": "sym_defer_pk"
},
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"rgb_matrix": true
},
"matrix_pins": {
"cols": ["GP28", "GP27", "GP26", "GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP12", "GP11", "GP10"],
"rows": ["GP25", "GP29", "GP18", "GP23", "GP24"]
},
"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,
"dual_beacon": true,
"flower_blooming": true,
"gradient_left_right": true,
"gradient_up_down": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"jellybean_raindrops": true,
"pixel_flow": true,
"pixel_fractal": true,
"pixel_rain": true,
"rainbow_beacon": true,
"rainbow_moving_chevron": true,
"rainbow_pinwheels": true,
"raindrops": true,
"riverflow": true,
"starlight": true,
"starlight_dual_hue": true,
"starlight_dual_sat": true
},
"default": {
"animation": "rainbow_moving_chevron"
},
"driver": "ws2812",
"layout": [
{"matrix": [2, 0], "x": 10, "y": 39, "flags": 8},
{"x": 0, "y": 0, "flags": 2},
{"x": 13, "y": 0, "flags": 2},
{"x": 26, "y": 0, "flags": 2},
{"x": 40, "y": 0, "flags": 2},
{"x": 53, "y": 0, "flags": 2},
{"x": 66, "y": 0, "flags": 2},
{"x": 79, "y": 0, "flags": 2},
{"x": 92, "y": 0, "flags": 2},
{"x": 105, "y": 0, "flags": 2},
{"x": 119, "y": 0, "flags": 2},
{"x": 132, "y": 0, "flags": 2},
{"x": 145, "y": 0, "flags": 2},
{"x": 158, "y": 0, "flags": 2},
{"x": 171, "y": 0, "flags": 2},
{"x": 184, "y": 0, "flags": 2},
{"x": 198, "y": 0, "flags": 2},
{"x": 211, "y": 0, "flags": 2},
{"x": 224, "y": 0, "flags": 2},
{"x": 224, "y": 13, "flags": 2},
{"x": 224, "y": 26, "flags": 2},
{"x": 224, "y": 38, "flags": 2},
{"x": 224, "y": 51, "flags": 2},
{"x": 224, "y": 64, "flags": 2},
{"x": 211, "y": 64, "flags": 2},
{"x": 198, "y": 64, "flags": 2},
{"x": 184, "y": 64, "flags": 2},
{"x": 171, "y": 64, "flags": 2},
{"x": 158, "y": 64, "flags": 2},
{"x": 145, "y": 64, "flags": 2},
{"x": 132, "y": 64, "flags": 2},
{"x": 119, "y": 64, "flags": 2},
{"x": 105, "y": 64, "flags": 2},
{"x": 92, "y": 64, "flags": 2},
{"x": 79, "y": 64, "flags": 2},
{"x": 66, "y": 64, "flags": 2},
{"x": 53, "y": 64, "flags": 2},
{"x": 40, "y": 64, "flags": 2},
{"x": 26, "y": 64, "flags": 2},
{"x": 13, "y": 64, "flags": 2},
{"x": 0, "y": 64, "flags": 2},
{"x": 0, "y": 51, "flags": 2},
{"x": 0, "y": 38, "flags": 2},
{"x": 0, "y": 26, "flags": 2},
{"x": 0, "y": 13, "flags": 2}
],
"sleep": true
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0011",
"vid": "0x4552"
},
"ws2812": {
"driver": "vendor",
"pin": "GP19"
},
"community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"],
"layouts": {
"LAYOUT_65_ansi_blocker": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "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": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "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": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "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, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "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, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_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, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "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": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "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, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "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, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "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": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "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": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_ansi_blocker_tsangan_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, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "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": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_blocker": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "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, 15], "x": 15, "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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "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, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "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, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_blocker_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, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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, 15], "x": 15, "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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "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, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "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, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_blocker_tsangan": {
"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, 14], "x": 13, "y": 0, "w": 2},
{"matrix": [0, 15], "x": 15, "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, 15], "x": 15, "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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_65_iso_blocker_tsangan_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, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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, 15], "x": 15, "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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [2, 15], "x": 15, "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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
{"matrix": [4, 1], "x": 1.5, "y": 4},
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
{"matrix": [4, 5], "x": 4, "y": 4, "w": 7},
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
},
"LAYOUT_all": {
"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, 14], "x": 14, "y": 0},
{"matrix": [0, 15], "x": 15, "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": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 15], "x": 15, "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": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
{"matrix": [2, 15], "x": 15, "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, 14], "x": 14, "y": 3},
{"matrix": [3, 15], "x": 15, "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, 2], "x": 2.5, "y": 4, "w": 1.25},
{"matrix": [4, 5], "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, 13], "x": 13, "y": 4},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4}
]
}
}
}

View File

@ -0,0 +1,21 @@
// Copyright 2024 QMK (@qmk)
// SPDX-License-Identifier: GPL-2.0-or-later
#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_BSPC, KC_BSPC, KC_INS,
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_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_PGUP,
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_UP, KC_PGDN,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[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_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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, 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
)
};

View File

@ -0,0 +1,21 @@
// Copyright 2024 QMK (@qmk)
// SPDX-License-Identifier: GPL-2.0-or-later
#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_BSPC, KC_BSPC, KC_INS,
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_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_PGUP,
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_UP, KC_PGDN,
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
),
[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_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, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, 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
)
};

View File

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

View File

@ -0,0 +1,26 @@
# FAve 65S, Solder Ver
![head](https://i.imgur.com/4Sc42zO.jpg)
![tail](https://i.imgur.com/hgCPtWg.jpg)
* Keyboard Maintainer: [ERA](https://github.com/eerraa)
* Hardware supported: LINWORKS
* Hardware availability: [LINWORKS](https://allthatkeyboard.com/)
Make example for this keyboard (after setting up your build environment):
make era/linx3/fave65s:default
Flashing example for this keyboard:
make era/linx3/fave65s: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 ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -39,8 +39,11 @@
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"debounce": 3,
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -171,19 +171,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
TD(TD_CUT_REDO), TD(TD_MPRV_LEFT), TD(TD_PLAY_PAUSE_MUTE), TD(TD_MNXT_RIGHT), TD(QUAD_CVXA), TD(QUAD_LAYER_SWITCH)
),
[1] = LAYOUT_all(
[1] = LAYOUT(
YOUTUBE, KC_WBAK, TD(TD_SEARCH_REFRESH), KC_WFWD, FACEBOOK, TD(QUAD_LAYER_SWITCH)
),
[2] = LAYOUT_all(
[2] = LAYOUT(
A(KC_F4), SGUI(KC_S), KC_MYCM, LCA(KC_DEL), KC_CALC, TD(QUAD_LAYER_SWITCH)
),
[3] = LAYOUT_all(
[3] = LAYOUT(
C(KC_SLSH), VALORANT, VSCODE, DISCORD, LSA(KC_A), TD(QUAD_LAYER_SWITCH)
),
};

View File

@ -171,19 +171,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
TD(TD_CUT_REDO), TD(TD_MPRV_LEFT), TD(TD_PLAY_PAUSE_MUTE), TD(TD_MNXT_RIGHT), TD(QUAD_CVXA), TD(QUAD_LAYER_SWITCH)
),
[1] = LAYOUT_all(
[1] = LAYOUT(
YOUTUBE, KC_WBAK, TD(TD_SEARCH_REFRESH), KC_WFWD, FACEBOOK, TD(QUAD_LAYER_SWITCH)
),
[2] = LAYOUT_all(
[2] = LAYOUT(
A(KC_F4), SGUI(KC_S), KC_MYCM, LCA(KC_DEL), KC_CALC, TD(QUAD_LAYER_SWITCH)
),
[3] = LAYOUT_all(
[3] = LAYOUT(
C(KC_SLSH), VALORANT, VSCODE, DISCORD, LSA(KC_A), TD(QUAD_LAYER_SWITCH)
),
};

View File

@ -51,8 +51,11 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
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_BSPC, MO(1), 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_SLSH, 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,
@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_all(
[1] = LAYOUT(
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_TRNS, MO(1), TG(2), 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,
@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS
),
[2] = LAYOUT_all(
[2] = LAYOUT(
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,TG(2), MO(4),
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,
@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS
),
[3] = LAYOUT_all(
[3] = LAYOUT(
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,MO(4),
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

@ -18,7 +18,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
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_BSPC, MO(1), 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_SLSH, 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,
@ -26,7 +26,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
),
[1] = LAYOUT_all(
[1] = LAYOUT(
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_TRNS, MO(1), TG(2), 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,
@ -34,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS
),
[2] = LAYOUT_all(
[2] = LAYOUT(
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,TG(2), MO(4),
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,
@ -42,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS
),
[3] = LAYOUT_all(
[3] = LAYOUT(
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,MO(4),
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

@ -36,8 +36,11 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0, "w": 1.5},

View File

@ -26,19 +26,19 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DRV2605L_V_PEAK 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_ESC , 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_DEL ,
KC_F13 , 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_HOME,
KC_F14 , 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_END ,
KC_F15 , KC_LCTL, KC_LALT, KC_SPC , KC_MUTE, MO(1) , MO(2) , KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
[1] = LAYOUT(
_______, _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_all(
[2] = LAYOUT(
_______, _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -26,28 +26,22 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define DRV2605L_V_PEAK 5
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_ESC , 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_DEL ,
KC_F13 , 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_HOME,
KC_F14 , 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_END ,
KC_F15 , KC_LCTL, KC_LALT, KC_SPC , KC_MUTE, MO(1) , MO(2) , KC_LEFT, KC_DOWN, KC_RGHT
),
[1] = LAYOUT_all(
[1] = LAYOUT(
_______, _______, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[2] = LAYOUT_all(
[2] = LAYOUT(
_______, _______, KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
[3] = LAYOUT_all(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
),
)
};

View File

@ -23,8 +23,11 @@
"pid": "0x0000",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -11,40 +11,40 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* LP, LR, LM, LI, LT, RT, RI, RM, RR, RP
*
*/
[0] = LAYOUT_all(
[0] = LAYOUT(
LT(8, KC_A), LT(7, KC_O), LT(6, KC_E), LT(5, KC_U), LT(10,KC_BSPC), LT(9, KC_SPC), LT(1, KC_H), LT(2, KC_T), LT(3, KC_N), LT(4, KC_S)
),
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_Q, KC_K, KC_J, KC_I, KC_ESC, KC_TAB, KC_NO, KC_RGUI, KC_RGUI, KC_RGUI
),
[2] = LAYOUT_all(
[2] = LAYOUT(
KC_Z, KC_Y, KC_X, KC_P, KC_NO, KC_NO, KC_RCTL, KC_NO, KC_RCTL, KC_RCTL
),
[3] = LAYOUT_all(
[3] = LAYOUT(
KC_QUOT, KC_COMM, KC_DOT, KC_F, KC_NO, KC_NO, KC_RALT, KC_RALT, KC_NO, KC_RALT
),
[4] = LAYOUT_all(
[4] = LAYOUT(
KC_SCLN, KC_LPRN, KC_RPRN, KC_GRV, KC_NO, MO(11), KC_RSFT, KC_RSFT, KC_RSFT, KC_NO
),
[5] = LAYOUT_all(
[5] = LAYOUT(
KC_LGUI, KC_LGUI, KC_LGUI, KC_NO, LGUI(KC_GRV), LGUI(KC_TAB), KC_D, KC_G, KC_C, KC_ENT
),
[6] = LAYOUT_all(
[6] = LAYOUT(
KC_LCTL, KC_LCTL, KC_NO, KC_LCTL, KC_NO, KC_NO, KC_M, KC_B, KC_V, KC_W
),
[7] = LAYOUT_all(
[7] = LAYOUT(
KC_LALT, KC_NO, KC_LALT, KC_LALT, KC_NO, KC_NO, KC_SLSH, KC_L, KC_R, KC_BSLS
),
[8] = LAYOUT_all(
[8] = LAYOUT(
KC_NO, KC_LSFT, KC_LSFT, KC_LSFT, MO(11), KC_NO, KC_MINS, KC_LBRC, KC_RBRC, KC_EQL
),
[9] = LAYOUT_all(
[9] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_NO, KC_LEFT, KC_RGHT, KC_UP, KC_DOWN
),
[10] = LAYOUT_all(
[10] = LAYOUT(
KC_PGDN, KC_PGUP, KC_HOME, KC_END, KC_NO, KC_6, KC_7, KC_8, KC_9, KC_0
),
[11] = LAYOUT_all(
[11] = LAYOUT(
KC_WH_D, KC_WH_U, KC_WH_L, KC_WH_R, KC_BTN2, KC_BTN1, KC_MS_L, KC_MS_R, KC_MS_U, KC_MS_D
)
};

View File

@ -19,29 +19,6 @@
// OLED animation
#include "lib/logo.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED },
{ NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }
}, {
{152, 0}, {165, 0}, {190, 0}, {205, 0},
{224, 21}, {224, 43}, {224, 54},
{188, 64}, {172, 64}, {156, 64}, {140, 64}, {115, 64}, {99 , 64}, {75 , 64}, {59 , 64}, {43 , 64}, {26 , 64},
{0 , 15}, {0 , 50}, {0 , 39},
{18 , 0}, {36 , 0}, {57 , 0}, {67 , 0}
}, {
2, 2, 2, 2, 2, 2, 2, 2,
2, 2,
2, 2,
2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
} };
#endif
#ifdef OLED_ENABLE
uint16_t startup_timer;

View File

@ -34,7 +34,33 @@
"pixel_rain": true
},
"driver": "ws2812",
"max_brightness": 200
"max_brightness": 200,
"layout": [
{"x": 152, "y": 0, "flags": 2},
{"x": 165, "y": 0, "flags": 2},
{"x": 190, "y": 0, "flags": 2},
{"x": 205, "y": 0, "flags": 2},
{"x": 224, "y": 21, "flags": 2},
{"x": 224, "y": 43, "flags": 2},
{"x": 224, "y": 54, "flags": 2},
{"x": 188, "y": 64, "flags": 2},
{"x": 172, "y": 64, "flags": 2},
{"x": 156, "y": 64, "flags": 2},
{"x": 140, "y": 64, "flags": 2},
{"x": 115, "y": 64, "flags": 2},
{"x": 99, "y": 64, "flags": 2},
{"x": 75, "y": 64, "flags": 2},
{"x": 59, "y": 64, "flags": 2},
{"x": 43, "y": 64, "flags": 2},
{"x": 26, "y": 64, "flags": 2},
{"x": 0, "y": 50, "flags": 2},
{"x": 0, "y": 39, "flags": 2},
{"x": 0, "y": 15, "flags": 2},
{"x": 18, "y": 0, "flags": 2},
{"x": 36, "y": 0, "flags": 2},
{"x": 57, "y": 0, "flags": 2},
{"x": 67, "y": 0, "flags": 2}
]
},
"matrix_pins": {
"cols": ["B15", "C6", "C7", "A3", "A1", "C3", "C1", "B14", "B13", "A9", "B3", "B4", "A0", "C11", "C4", "C0", "C2"],

View File

@ -1,19 +0,0 @@
/* Copyright 2021 Wizad-GG
*
* 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 RGB_MATRIX_LED_COUNT 67

View File

@ -77,6 +77,79 @@
"animation": "cycle_all"
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
{"matrix": [0, 1], "x": 15, "y": 0, "flags": 4},
{"matrix": [0, 2], "x": 30, "y": 0, "flags": 4},
{"matrix": [0, 3], "x": 45, "y": 0, "flags": 4},
{"matrix": [0, 4], "x": 60, "y": 0, "flags": 4},
{"matrix": [0, 5], "x": 75, "y": 0, "flags": 4},
{"matrix": [0, 6], "x": 90, "y": 0, "flags": 4},
{"matrix": [0, 7], "x": 105, "y": 0, "flags": 4},
{"matrix": [0, 8], "x": 120, "y": 0, "flags": 4},
{"matrix": [0, 9], "x": 134, "y": 0, "flags": 4},
{"matrix": [0, 10], "x": 149, "y": 0, "flags": 4},
{"matrix": [0, 11], "x": 164, "y": 0, "flags": 4},
{"matrix": [0, 12], "x": 179, "y": 0, "flags": 4},
{"matrix": [0, 14], "x": 202, "y": 0, "flags": 1},
{"matrix": [0, 15], "x": 224, "y": 0, "flags": 1},
{"matrix": [1, 0], "x": 4, "y": 16, "flags": 1},
{"matrix": [1, 1], "x": 22, "y": 16, "flags": 4},
{"matrix": [1, 2], "x": 37, "y": 16, "flags": 4},
{"matrix": [1, 3], "x": 52, "y": 16, "flags": 4},
{"matrix": [1, 4], "x": 67, "y": 16, "flags": 4},
{"matrix": [1, 5], "x": 82, "y": 16, "flags": 4},
{"matrix": [1, 6], "x": 97, "y": 16, "flags": 4},
{"matrix": [1, 7], "x": 112, "y": 16, "flags": 4},
{"matrix": [1, 8], "x": 127, "y": 16, "flags": 4},
{"matrix": [1, 9], "x": 142, "y": 16, "flags": 4},
{"matrix": [1, 10], "x": 157, "y": 16, "flags": 4},
{"matrix": [1, 11], "x": 172, "y": 16, "flags": 4},
{"matrix": [1, 12], "x": 187, "y": 16, "flags": 4},
{"matrix": [1, 13], "x": 205, "y": 16, "flags": 4},
{"matrix": [1, 15], "x": 224, "y": 16, "flags": 1},
{"matrix": [2, 0], "x": 6, "y": 32, "flags": 1},
{"matrix": [2, 1], "x": 26, "y": 32, "flags": 4},
{"matrix": [2, 2], "x": 41, "y": 32, "flags": 4},
{"matrix": [2, 3], "x": 56, "y": 32, "flags": 4},
{"matrix": [2, 4], "x": 71, "y": 32, "flags": 4},
{"matrix": [2, 5], "x": 86, "y": 32, "flags": 4},
{"matrix": [2, 6], "x": 101, "y": 32, "flags": 4},
{"matrix": [2, 7], "x": 116, "y": 32, "flags": 4},
{"matrix": [2, 8], "x": 131, "y": 32, "flags": 4},
{"matrix": [2, 9], "x": 146, "y": 32, "flags": 4},
{"matrix": [2, 10], "x": 161, "y": 32, "flags": 4},
{"matrix": [2, 11], "x": 175, "y": 32, "flags": 4},
{"matrix": [2, 13], "x": 200, "y": 32, "flags": 1},
{"matrix": [2, 15], "x": 224, "y": 32, "flags": 1},
{"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
{"matrix": [3, 2], "x": 34, "y": 48, "flags": 4},
{"matrix": [3, 3], "x": 49, "y": 48, "flags": 4},
{"matrix": [3, 4], "x": 63, "y": 48, "flags": 4},
{"matrix": [3, 5], "x": 78, "y": 48, "flags": 4},
{"matrix": [3, 6], "x": 93, "y": 48, "flags": 4},
{"matrix": [3, 7], "x": 108, "y": 48, "flags": 4},
{"matrix": [3, 8], "x": 123, "y": 48, "flags": 4},
{"matrix": [3, 9], "x": 138, "y": 48, "flags": 4},
{"matrix": [3, 10], "x": 153, "y": 48, "flags": 4},
{"matrix": [3, 11], "x": 168, "y": 48, "flags": 4},
{"matrix": [3, 12], "x": 189, "y": 48, "flags": 1},
{"matrix": [3, 13], "x": 209, "y": 48, "flags": 1},
{"matrix": [3, 15], "x": 224, "y": 48, "flags": 1},
{"matrix": [4, 0], "x": 2, "y": 64, "flags": 1},
{"matrix": [4, 1], "x": 21, "y": 64, "flags": 1},
{"matrix": [4, 2], "x": 39, "y": 64, "flags": 1},
{"matrix": [4, 6], "x": 95, "y": 64, "flags": 4},
{"matrix": [4, 10], "x": 151, "y": 64, "flags": 1},
{"matrix": [4, 11], "x": 170, "y": 64, "flags": 1},
{"matrix": [4, 12], "x": 194, "y": 64, "flags": 1},
{"matrix": [4, 13], "x": 209, "y": 64, "flags": 1},
{"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}
],
"led_process_limit": 4,
"led_flush_limit": 26,
"sleep": true,

View File

@ -17,38 +17,11 @@
#include "quantum.h"
#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = { {
// Key Matrix to LED Index
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 },
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
{ 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 },
{ NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 },
{ 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66 }
}, {
// LED Index to Physical Position
{ 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
{ 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
{ 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
{ 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
{ 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right
}, {
// LED Index to Flag
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down
1, 1, 1, 4, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, Alt, FN, Left, Down, Right
} };
bool rgb_matrix_indicators_kb(void) {
if (!rgb_matrix_indicators_user()) {
return false;
}
if (host_keyboard_led_state().caps_lock) {
if (host_keyboard_led_state().caps_lock) {
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF);
}
return true;

View File

@ -29,8 +29,11 @@
"rows": ["D6", "B0", "D7", "B5", "B3", "B4", "B2"]
},
"diode_direction": "COL2ROW",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "Num Lock", "matrix": [2, 10], "x": 6.75, "y": 0},
{"label": "-", "matrix": [1, 10], "x": 6.75, "y": 1},

View File

@ -19,7 +19,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//base layer
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_NUM,
KC_PAST, KC_PSLS,
KC_P7, KC_P8, KC_P9,
@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_1, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_RSFT,
KC_LCTL, KC_LALT, KC_SPC, KC_1, KC_RALT, KC_RCTL
),
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_F2,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,

View File

@ -19,7 +19,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
//base layer
[0] = LAYOUT_all(
[0] = LAYOUT(
KC_NUM,
KC_PAST, KC_PSLS,
KC_P7, KC_P8, KC_P9,
@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT,
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RCTL
),
[1] = LAYOUT_all(
[1] = LAYOUT(
KC_F2,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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
),
[2] = LAYOUT_all(
[2] = LAYOUT(
KC_F2,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,
@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
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
),
[3] = LAYOUT_all(
[3] = LAYOUT(
KC_F2,
KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS,

View File

@ -117,6 +117,144 @@
{"matrix": [2, 5], "x": 12.25, "y": 4, "w": 1.5},
{"matrix": [3, 5], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_5u5_space_left": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [2, 0], "x": 2, "y": 0},
{"matrix": [3, 0], "x": 3, "y": 0},
{"matrix": [4, 0], "x": 4, "y": 0},
{"matrix": [5, 0], "x": 5, "y": 0},
{"matrix": [6, 0], "x": 6, "y": 0},
{"matrix": [7, 0], "x": 7, "y": 0},
{"matrix": [8, 0], "x": 8, "y": 0},
{"matrix": [9, 0], "x": 9, "y": 0},
{"matrix": [10, 0], "x": 10, "y": 0},
{"matrix": [11, 0], "x": 11, "y": 0},
{"matrix": [0, 1], "x": 12, "y": 0},
{"matrix": [1, 1], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 1], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 1], "x": 1.5, "y": 1},
{"matrix": [4, 1], "x": 2.5, "y": 1},
{"matrix": [5, 1], "x": 3.5, "y": 1},
{"matrix": [6, 1], "x": 4.5, "y": 1},
{"matrix": [7, 1], "x": 5.5, "y": 1},
{"matrix": [8, 1], "x": 6.5, "y": 1},
{"matrix": [9, 1], "x": 7.5, "y": 1},
{"matrix": [10, 1], "x": 8.5, "y": 1},
{"matrix": [11, 1], "x": 9.5, "y": 1},
{"matrix": [0, 2], "x": 10.5, "y": 1},
{"matrix": [1, 2], "x": 11.5, "y": 1},
{"matrix": [2, 2], "x": 12.5, "y": 1},
{"matrix": [3, 2], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 2], "x": 0, "y": 2, "w": 2},
{"matrix": [5, 2], "x": 2, "y": 2},
{"matrix": [6, 2], "x": 3, "y": 2},
{"matrix": [7, 2], "x": 4, "y": 2},
{"matrix": [8, 2], "x": 5, "y": 2},
{"matrix": [9, 2], "x": 6, "y": 2},
{"matrix": [10, 2], "x": 7, "y": 2},
{"matrix": [11, 2], "x": 8, "y": 2},
{"matrix": [0, 3], "x": 9, "y": 2},
{"matrix": [1, 3], "x": 10, "y": 2},
{"matrix": [2, 3], "x": 11, "y": 2},
{"matrix": [3, 3], "x": 12, "y": 2},
{"matrix": [4, 3], "x": 13, "y": 2, "w": 2},
{"matrix": [5, 3], "x": 0, "y": 3, "w": 2.5},
{"matrix": [6, 3], "x": 2.5, "y": 3},
{"matrix": [7, 3], "x": 3.5, "y": 3},
{"matrix": [8, 3], "x": 4.5, "y": 3},
{"matrix": [9, 3], "x": 5.5, "y": 3},
{"matrix": [10, 3], "x": 6.5, "y": 3},
{"matrix": [11, 3], "x": 7.5, "y": 3},
{"matrix": [0, 4], "x": 8.5, "y": 3},
{"matrix": [1, 4], "x": 9.5, "y": 3},
{"matrix": [2, 4], "x": 10.5, "y": 3},
{"matrix": [3, 4], "x": 11.5, "y": 3},
{"matrix": [4, 4], "x": 12.5, "y": 3, "w": 2.5},
{"matrix": [5, 4], "x": 0, "y": 4, "w": 1.25},
{"matrix": [6, 4], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [7, 4], "x": 2.75, "y": 4, "w": 1.5},
{"matrix": [10, 4], "x": 4.25, "y": 4, "w": 5.5},
{"matrix": [0, 5], "x": 9.75, "y": 4},
{"matrix": [1, 5], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [2, 5], "x": 12.25, "y": 4, "w": 1.5},
{"matrix": [3, 5], "x": 13.75, "y": 4, "w": 1.25}
]
},
"LAYOUT_5u5_space_right": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [1, 0], "x": 1, "y": 0},
{"matrix": [2, 0], "x": 2, "y": 0},
{"matrix": [3, 0], "x": 3, "y": 0},
{"matrix": [4, 0], "x": 4, "y": 0},
{"matrix": [5, 0], "x": 5, "y": 0},
{"matrix": [6, 0], "x": 6, "y": 0},
{"matrix": [7, 0], "x": 7, "y": 0},
{"matrix": [8, 0], "x": 8, "y": 0},
{"matrix": [9, 0], "x": 9, "y": 0},
{"matrix": [10, 0], "x": 10, "y": 0},
{"matrix": [11, 0], "x": 11, "y": 0},
{"matrix": [0, 1], "x": 12, "y": 0},
{"matrix": [1, 1], "x": 13, "y": 0, "w": 2},
{"matrix": [2, 1], "x": 0, "y": 1, "w": 1.5},
{"matrix": [3, 1], "x": 1.5, "y": 1},
{"matrix": [4, 1], "x": 2.5, "y": 1},
{"matrix": [5, 1], "x": 3.5, "y": 1},
{"matrix": [6, 1], "x": 4.5, "y": 1},
{"matrix": [7, 1], "x": 5.5, "y": 1},
{"matrix": [8, 1], "x": 6.5, "y": 1},
{"matrix": [9, 1], "x": 7.5, "y": 1},
{"matrix": [10, 1], "x": 8.5, "y": 1},
{"matrix": [11, 1], "x": 9.5, "y": 1},
{"matrix": [0, 2], "x": 10.5, "y": 1},
{"matrix": [1, 2], "x": 11.5, "y": 1},
{"matrix": [2, 2], "x": 12.5, "y": 1},
{"matrix": [3, 2], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [4, 2], "x": 0, "y": 2, "w": 2},
{"matrix": [5, 2], "x": 2, "y": 2},
{"matrix": [6, 2], "x": 3, "y": 2},
{"matrix": [7, 2], "x": 4, "y": 2},
{"matrix": [8, 2], "x": 5, "y": 2},
{"matrix": [9, 2], "x": 6, "y": 2},
{"matrix": [10, 2], "x": 7, "y": 2},
{"matrix": [11, 2], "x": 8, "y": 2},
{"matrix": [0, 3], "x": 9, "y": 2},
{"matrix": [1, 3], "x": 10, "y": 2},
{"matrix": [2, 3], "x": 11, "y": 2},
{"matrix": [3, 3], "x": 12, "y": 2},
{"matrix": [4, 3], "x": 13, "y": 2, "w": 2},
{"matrix": [5, 3], "x": 0, "y": 3, "w": 2.5},
{"matrix": [6, 3], "x": 2.5, "y": 3},
{"matrix": [7, 3], "x": 3.5, "y": 3},
{"matrix": [8, 3], "x": 4.5, "y": 3},
{"matrix": [9, 3], "x": 5.5, "y": 3},
{"matrix": [10, 3], "x": 6.5, "y": 3},
{"matrix": [11, 3], "x": 7.5, "y": 3},
{"matrix": [0, 4], "x": 8.5, "y": 3},
{"matrix": [1, 4], "x": 9.5, "y": 3},
{"matrix": [2, 4], "x": 10.5, "y": 3},
{"matrix": [3, 4], "x": 11.5, "y": 3},
{"matrix": [4, 4], "x": 12.5, "y": 3, "w": 2.5},
{"matrix": [5, 4], "x": 0, "y": 4, "w": 1.25},
{"matrix": [6, 4], "x": 1.25, "y": 4, "w": 1.5},
{"matrix": [7, 4], "x": 2.75, "y": 4, "w": 1.5},
{"matrix": [8, 4], "x": 4.25, "y": 4},
{"matrix": [10, 4], "x": 5.25, "y": 4, "w": 5.5},
{"matrix": [1, 5], "x": 10.75, "y": 4, "w": 1.5},
{"matrix": [2, 5], "x": 12.25, "y": 4, "w": 1.5},
{"matrix": [3, 5], "x": 13.75, "y": 4, "w": 1.25}
]
}
}
}

View File

@ -0,0 +1,22 @@
# Matrix Diagram for Angel64 Rev1
```
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
│00 │10 │20 │30 │40 │50 │60 │70 │80 │90 │A0 │B0 │01 │11 │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
│21 │31 │41 │51 │61 │71 │81 │91 │A1 │B1 │02 │12 │22 │32 │
├─────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─────┤
│42 │52 │62 │72 │82 │92 │A2 │B2 │03 │13 │23 │33 │43 │
├───────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
│53 │63 │73 │83 │93 │A3 │B3 │04 │14 │24 │34 │44 │
├────┬────┴┬──┴──┬┴──┬┴───┴┬──┴──┬┴───┴┬──┴┬──┴──┬┴────┬────┤
│54 │64 │74 │84 │94 │A4 │B4 │05 │15 │25 │35 │
└────┴─────┴─────┴───┴─────┴─────┴─────┴───┴─────┴─────┴────┘
┌────┬─────┬─────┬─────────────────────┬───┬─────┬─────┬────┐
│54 │64 │74 │A4 │05 │15 │25 │35 │ 5.5u Space (Left)
└────┴─────┴─────┴─────────────────────┴───┴─────┴─────┴────┘
┌────┬─────┬─────┬───┬─────────────────────┬─────┬─────┬────┐
│54 │64 │74 │84 │A4 │15 │25 │35 │ 5.5u Space (Right)
└────┴─────┴─────┴───┴─────────────────────┴─────┴─────┴────┘
```

View File

@ -57,8 +57,94 @@
},
"processor": "atmega32u4",
"bootloader": "caterina",
"layout_aliases": {
"LAYOUT_all": "LAYOUT_ansi_split_rshift"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0.41, "y": 0},
{"matrix": [0, 1], "x": 1.41, "y": 0},
{"matrix": [0, 2], "x": 2.72, "y": 0},
{"matrix": [0, 3], "x": 3.72, "y": 0},
{"matrix": [0, 4], "x": 4.72, "y": 0},
{"matrix": [0, 5], "x": 5.72, "y": 0},
{"matrix": [0, 6], "x": 6.72, "y": 0},
{"matrix": [5, 0], "x": 9.62, "y": 0},
{"matrix": [5, 1], "x": 10.62, "y": 0},
{"matrix": [5, 2], "x": 11.62, "y": 0},
{"matrix": [5, 3], "x": 12.62, "y": 0},
{"matrix": [5, 4], "x": 14.07, "y": 0},
{"matrix": [5, 5], "x": 15.07, "y": 0},
{"matrix": [5, 6], "x": 16.07, "y": 0},
{"matrix": [5, 7], "x": 17.07, "y": 0},
{"matrix": [1, 0], "x": 0.28, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.78, "y": 1},
{"matrix": [1, 2], "x": 3.22, "y": 1},
{"matrix": [1, 3], "x": 4.22, "y": 1},
{"matrix": [1, 4], "x": 5.22, "y": 1},
{"matrix": [1, 5], "x": 6.22, "y": 1},
{"matrix": [1, 6], "x": 7.22, "y": 1},
{"matrix": [6, 0], "x": 9.12, "y": 1},
{"matrix": [6, 1], "x": 10.12, "y": 1},
{"matrix": [6, 2], "x": 11.12, "y": 1},
{"matrix": [6, 3], "x": 12.12, "y": 1},
{"matrix": [6, 4], "x": 13.72, "y": 1},
{"matrix": [6, 5], "x": 14.72, "y": 1},
{"matrix": [6, 6], "x": 15.72, "y": 1},
{"matrix": [6, 7], "x": 16.72, "y": 1, "w": 1.5},
{"matrix": [2, 0], "x": 0.14, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.89, "y": 2},
{"matrix": [2, 2], "x": 3.47, "y": 2},
{"matrix": [2, 3], "x": 4.47, "y": 2},
{"matrix": [2, 4], "x": 5.47, "y": 2},
{"matrix": [2, 5], "x": 6.47, "y": 2},
{"matrix": [4, 5], "x": 7.47, "y": 2},
{"matrix": [7, 0], "x": 9.37, "y": 2},
{"matrix": [7, 1], "x": 10.37, "y": 2},
{"matrix": [7, 2], "x": 11.37, "y": 2},
{"matrix": [7, 3], "x": 12.37, "y": 2},
{"matrix": [7, 4], "x": 14.09, "y": 2},
{"matrix": [7, 5], "x": 15.09, "y": 2},
{"matrix": [7, 6], "x": 16.09, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.97, "y": 3},
{"matrix": [3, 3], "x": 4.97, "y": 3},
{"matrix": [3, 4], "x": 5.97, "y": 3},
{"matrix": [3, 5], "x": 6.97, "y": 3},
{"matrix": [8, 0], "x": 8.87, "y": 3},
{"matrix": [8, 1], "x": 9.87, "y": 3},
{"matrix": [8, 2], "x": 10.87, "y": 3},
{"matrix": [8, 3], "x": 11.87, "y": 3},
{"matrix": [8, 4], "x": 13.72, "y": 3},
{"matrix": [8, 5], "x": 14.72, "y": 3},
{"matrix": [8, 6], "x": 15.72, "y": 3, "w": 1.75},
{"matrix": [9, 0], "x": 18, "y": 3.25},
{"matrix": [4, 0], "x": 0.25, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4.47, "y": 4},
{"matrix": [4, 3], "x": 5.47, "y": 4, "w": 2},
{"matrix": [4, 4], "x": 7.47, "y": 4},
{"matrix": [9, 1], "x": 9.35, "y": 4, "w": 2.75},
{"matrix": [9, 2], "x": 12.1, "y": 4},
{"matrix": [9, 3], "x": 17, "y": 4.25},
{"matrix": [9, 4], "x": 18, "y": 4.25},
{"matrix": [9, 5], "x": 19, "y": 4.25}
]
},
"LAYOUT_ansi_split_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0.41, "y": 0},
{"matrix": [0, 1], "x": 1.41, "y": 0},
@ -137,6 +223,173 @@
{"matrix": [9, 1], "x": 9.35, "y": 4, "w": 2.75},
{"matrix": [9, 2], "x": 12.1, "y": 4},
{"matrix": [9, 3], "x": 17, "y": 4.25},
{"matrix": [9, 4], "x": 18, "y": 4.25},
{"matrix": [9, 5], "x": 19, "y": 4.25}
]
},
"LAYOUT_iso": {
"layout": [
{"matrix": [0, 0], "x": 0.41, "y": 0},
{"matrix": [0, 1], "x": 1.41, "y": 0},
{"matrix": [0, 2], "x": 2.72, "y": 0},
{"matrix": [0, 3], "x": 3.72, "y": 0},
{"matrix": [0, 4], "x": 4.72, "y": 0},
{"matrix": [0, 5], "x": 5.72, "y": 0},
{"matrix": [0, 6], "x": 6.72, "y": 0},
{"matrix": [5, 0], "x": 9.62, "y": 0},
{"matrix": [5, 1], "x": 10.62, "y": 0},
{"matrix": [5, 2], "x": 11.62, "y": 0},
{"matrix": [5, 3], "x": 12.62, "y": 0},
{"matrix": [5, 4], "x": 14.07, "y": 0},
{"matrix": [5, 5], "x": 15.07, "y": 0},
{"matrix": [5, 6], "x": 16.07, "y": 0},
{"matrix": [5, 7], "x": 17.07, "y": 0},
{"matrix": [1, 0], "x": 0.28, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.78, "y": 1},
{"matrix": [1, 2], "x": 3.22, "y": 1},
{"matrix": [1, 3], "x": 4.22, "y": 1},
{"matrix": [1, 4], "x": 5.22, "y": 1},
{"matrix": [1, 5], "x": 6.22, "y": 1},
{"matrix": [1, 6], "x": 7.22, "y": 1},
{"matrix": [6, 0], "x": 9.12, "y": 1},
{"matrix": [6, 1], "x": 10.12, "y": 1},
{"matrix": [6, 2], "x": 11.12, "y": 1},
{"matrix": [6, 3], "x": 12.12, "y": 1},
{"matrix": [6, 4], "x": 13.72, "y": 1},
{"matrix": [6, 5], "x": 14.72, "y": 1},
{"matrix": [6, 6], "x": 15.72, "y": 1},
{"matrix": [2, 0], "x": 0.14, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.89, "y": 2},
{"matrix": [2, 2], "x": 3.47, "y": 2},
{"matrix": [2, 3], "x": 4.47, "y": 2},
{"matrix": [2, 4], "x": 5.47, "y": 2},
{"matrix": [2, 5], "x": 6.47, "y": 2},
{"matrix": [4, 5], "x": 7.47, "y": 2},
{"matrix": [7, 0], "x": 9.37, "y": 2},
{"matrix": [7, 1], "x": 10.37, "y": 2},
{"matrix": [7, 2], "x": 11.37, "y": 2},
{"matrix": [7, 3], "x": 12.37, "y": 2},
{"matrix": [7, 4], "x": 14.09, "y": 2},
{"matrix": [7, 5], "x": 15.09, "y": 2},
{"matrix": [7, 6], "x": 16.09, "y": 2},
{"matrix": [6, 7], "x": 17.09, "y": 1, "w": 1.25, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.97, "y": 3},
{"matrix": [3, 3], "x": 4.97, "y": 3},
{"matrix": [3, 4], "x": 5.97, "y": 3},
{"matrix": [3, 5], "x": 6.97, "y": 3},
{"matrix": [8, 0], "x": 8.87, "y": 3},
{"matrix": [8, 1], "x": 9.87, "y": 3},
{"matrix": [8, 2], "x": 10.87, "y": 3},
{"matrix": [8, 3], "x": 11.87, "y": 3},
{"matrix": [8, 4], "x": 13.72, "y": 3},
{"matrix": [8, 5], "x": 14.72, "y": 3},
{"matrix": [8, 6], "x": 15.72, "y": 3, "w": 1.75},
{"matrix": [9, 0], "x": 18, "y": 3.25},
{"matrix": [4, 0], "x": 0.25, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4.47, "y": 4},
{"matrix": [4, 3], "x": 5.47, "y": 4, "w": 2},
{"matrix": [4, 4], "x": 7.47, "y": 4},
{"matrix": [9, 1], "x": 9.35, "y": 4, "w": 2.75},
{"matrix": [9, 2], "x": 12.1, "y": 4},
{"matrix": [9, 3], "x": 17, "y": 4.25},
{"matrix": [9, 4], "x": 18, "y": 4.25},
{"matrix": [9, 5], "x": 19, "y": 4.25}
]
},
"LAYOUT_iso_split_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0.41, "y": 0},
{"matrix": [0, 1], "x": 1.41, "y": 0},
{"matrix": [0, 2], "x": 2.72, "y": 0},
{"matrix": [0, 3], "x": 3.72, "y": 0},
{"matrix": [0, 4], "x": 4.72, "y": 0},
{"matrix": [0, 5], "x": 5.72, "y": 0},
{"matrix": [0, 6], "x": 6.72, "y": 0},
{"matrix": [5, 0], "x": 9.62, "y": 0},
{"matrix": [5, 1], "x": 10.62, "y": 0},
{"matrix": [5, 2], "x": 11.62, "y": 0},
{"matrix": [5, 3], "x": 12.62, "y": 0},
{"matrix": [5, 4], "x": 14.07, "y": 0},
{"matrix": [5, 5], "x": 15.07, "y": 0},
{"matrix": [5, 6], "x": 16.07, "y": 0},
{"matrix": [5, 7], "x": 17.07, "y": 0},
{"matrix": [1, 0], "x": 0.28, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.78, "y": 1},
{"matrix": [1, 2], "x": 3.22, "y": 1},
{"matrix": [1, 3], "x": 4.22, "y": 1},
{"matrix": [1, 4], "x": 5.22, "y": 1},
{"matrix": [1, 5], "x": 6.22, "y": 1},
{"matrix": [1, 6], "x": 7.22, "y": 1},
{"matrix": [6, 0], "x": 9.12, "y": 1},
{"matrix": [6, 1], "x": 10.12, "y": 1},
{"matrix": [6, 2], "x": 11.12, "y": 1},
{"matrix": [6, 3], "x": 12.12, "y": 1},
{"matrix": [6, 4], "x": 13.72, "y": 1},
{"matrix": [6, 5], "x": 14.72, "y": 1},
{"matrix": [6, 6], "x": 15.72, "y": 1},
{"matrix": [2, 0], "x": 0.14, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.89, "y": 2},
{"matrix": [2, 2], "x": 3.47, "y": 2},
{"matrix": [2, 3], "x": 4.47, "y": 2},
{"matrix": [2, 4], "x": 5.47, "y": 2},
{"matrix": [2, 5], "x": 6.47, "y": 2},
{"matrix": [4, 5], "x": 7.47, "y": 2},
{"matrix": [7, 0], "x": 9.37, "y": 2},
{"matrix": [7, 1], "x": 10.37, "y": 2},
{"matrix": [7, 2], "x": 11.37, "y": 2},
{"matrix": [7, 3], "x": 12.37, "y": 2},
{"matrix": [7, 4], "x": 14.09, "y": 2},
{"matrix": [7, 5], "x": 15.09, "y": 2},
{"matrix": [7, 6], "x": 16.09, "y": 2},
{"matrix": [6, 7], "x": 17.09, "y": 1, "w": 1.25, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 1], "x": 2.25, "y": 3},
{"matrix": [3, 2], "x": 3.97, "y": 3},
{"matrix": [3, 3], "x": 4.97, "y": 3},
{"matrix": [3, 4], "x": 5.97, "y": 3},
{"matrix": [3, 5], "x": 6.97, "y": 3},
{"matrix": [8, 0], "x": 8.87, "y": 3},
{"matrix": [8, 1], "x": 9.87, "y": 3},
{"matrix": [8, 2], "x": 10.87, "y": 3},
{"matrix": [8, 3], "x": 11.87, "y": 3},
{"matrix": [8, 4], "x": 13.72, "y": 3},
{"matrix": [8, 5], "x": 14.72, "y": 3},
{"matrix": [8, 6], "x": 15.72, "y": 3},
{"matrix": [8, 7], "x": 16.72, "y": 3},
{"matrix": [9, 0], "x": 18, "y": 3.25},
{"matrix": [4, 0], "x": 0.25, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.5, "y": 4, "w": 1.25},
{"matrix": [4, 2], "x": 4.47, "y": 4},
{"matrix": [4, 3], "x": 5.47, "y": 4, "w": 2},
{"matrix": [4, 4], "x": 7.47, "y": 4},
{"matrix": [9, 1], "x": 9.35, "y": 4, "w": 2.75},
{"matrix": [9, 2], "x": 12.1, "y": 4},
{"matrix": [9, 3], "x": 17, "y": 4.25},
{"matrix": [9, 4], "x": 18, "y": 4.25},
{"matrix": [9, 5], "x": 19, "y": 4.25}

View File

@ -22,14 +22,14 @@ enum layers{
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_all(
[_BASE] = LAYOUT_ansi_split_rshift(
KC_ESC, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
KC_LCAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_DEL, KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT
),
[_FN] = LAYOUT_all(
[_FN] = LAYOUT_ansi_split_rshift(
QK_BOOT, _______, 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______,_______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -0,0 +1,16 @@
# Matrix Diagram for rabbit_capture_plan
```
┌───┬───┐ ┌───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
│00 │01 │ │02 │03 │04 │05 │06 │ │50 │51 │52 │53 │ │54 │55 │56 │57 │
┌┴───┴┬──┴┐└─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┐ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐
│10 │11 │ │12 │13 │14 │15 │16 │ │60 │61 │62 │63 │ │64 │65 │66 │67 │ │67 │
┌┴─────┼───┤ └┬──┴┬──┴┬──┴┬──┴┬──┴┐ └┬──┴┬──┴┬──┴┬──┴┐ └─┬─┴─┬─┴─┬─┴─────┴┐ ┌──┴┐ │ ISO Enter
│20 │21 │ │22 │23 │24 │25 │26 │ │70 │71 │72 │73 │ │74 │75 │76 │ │76 │ │
┌┴──────┴┬──┴┐ └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬─┴─┬─┘ ┌─┴─┬─┴─┬─┴─┬───┬──┘ └───┴────┘
│30 │31 │ │32 │33 │34 │35 │ │80 │81 │82 │83 │ │84 │85 │86 │87 │ ┌───┐ ┌──────┐
└┬────┬──┴─┬─┘ └─┬─┴─┬─┴───┴─┬─┴─┐ └─┬─┴───┴───┴┬──┴┐ └───┴───┴───┴───┘ │90 │ │86 │ 1.75u Right Shift
│40 │41 │ │42 │43 │44 │ │91 │92 │ ┌───┼───┼───┐ └──────┘
└────┴────┘ └───┴───────┴───┘ └──────────┴───┘ │93 │94 │95 │
└───┴───┴───┘
```

View File

@ -80,8 +80,11 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -17,25 +17,25 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
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_BSPC, KC_GRAVE, KC_HOME,
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_END,
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_DEL, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT),
[1] = LAYOUT_all(
[1] = LAYOUT(
QK_GESC, 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_GRAVE, KC_PGUP,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN,
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
[2] = LAYOUT_all(
[2] = LAYOUT(
QK_GESC, 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_GRAVE, KC_PGUP,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN,
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
[3] = LAYOUT_all(
[3] = LAYOUT(
QK_GESC, 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_GRAVE, KC_PGUP,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN,
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,

View File

@ -17,25 +17,25 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
[0] = LAYOUT(
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_BSPC, KC_GRAVE, KC_HOME,
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_END,
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_DEL, KC_UP,
KC_LCTL, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT,KC_DOWN, KC_RIGHT),
[1] = LAYOUT_all(
[1] = LAYOUT(
QK_GESC, 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_GRAVE, KC_PGUP,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN,
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
[2] = LAYOUT_all(
[2] = LAYOUT(
QK_GESC, 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_GRAVE, KC_PGUP,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN,
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_VOLU,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT),
[3] = LAYOUT_all(
[3] = LAYOUT(
QK_GESC, 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_GRAVE, KC_PGUP,
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI,RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, QK_BOOT, KC_PGDN,
KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,

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