Merge branch 'master' into dev_branch

This commit is contained in:
atechofficials 2024-06-29 23:57:59 +05:30
commit 99ae294473
74 changed files with 1321 additions and 355 deletions

View File

@ -43,10 +43,10 @@
"levels": 6
},
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "ON/OFF", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "SAT+", "matrix": [0, 1], "x": 4, "y": 0},

View File

@ -0,0 +1,14 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
// FRAM configuration
#define EXTERNAL_EEPROM_SPI_SLAVE_SELECT_PIN B7
#define EXTERNAL_EEPROM_SPI_CLOCK_DIVISOR 4
// SPI configuration
#define SPI_DRIVER SPID1
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4

View File

@ -0,0 +1,14 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define HAL_USE_SPI TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD
#define SERIAL_BUFFERS_SIZE 256
#define SPI_USE_WAIT TRUE
#include_next <halconf.h>

View File

@ -0,0 +1,65 @@
{
"manufacturer": "customMK",
"keyboard_name": "Elysian",
"maintainer": "customMK",
"bootloader": "stm32-dfu",
"debounce": 10,
"diode_direction": "ROW2COL",
"dynamic_keymap": {
"layer_count": 32
},
"eeprom": {
"driver": "spi"
},
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true,
"encoder": true
},
"matrix_pins": {
"cols": ["A0", "A1", "A2", "A3", "A4"],
"rows": ["B0", "B1", "B6", "B8"]
},
"processor": "STM32F411",
"qmk": {
"tap_keycode_delay": 10
},
"url": "https://shop.custommk.com/collections/elysian/products/elysian",
"usb": {
"device_version": "1.0.0",
"pid": "0xFABB",
"vid": "0xF35B",
"force_nkro": true
},
"encoder": {
"rotary": [
{ "pin_a": "A5", "pin_b": "A6", "resolution": 2},
{ "pin_a": "A7", "pin_b": "A8", "resolution": 2}
]
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "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": [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": [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}
]
}
}
}

View File

@ -0,0 +1,19 @@
// Copyright 2024 customMK
// 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_ENT,
KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) }
};
#endif

View File

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

View File

@ -0,0 +1,6 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define DYNAMIC_KEYMAP_MACRO_COUNT 128

View File

@ -0,0 +1,19 @@
// Copyright 2024 customMK
// 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, MO(1),
KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_H, KC_J, KC_K, KC_L, KC_SCLN,
KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH
)
};
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_WH_D, KC_WH_U) }
};
#endif

View File

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

View File

@ -0,0 +1,10 @@
// Copyright 2024 customMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#include_next <mcuconf.h>
// FRAM
#undef STM32_SPI_USE_SPI1
#define STM32_SPI_USE_SPI1 TRUE

View File

@ -0,0 +1,27 @@
# Elysian
![Elysian](https://i.imgur.com/W8yx11qh.jpeg)
Elysian is a 3x5 macropad including two rotary encoders.
* Keyboard Maintainer: [customMK](https://github.com/customMK)
* Hardware Supported: Elysian
* Hardware Availability: [customMK](https://shop.custommk.com/collections/keyboards/products/elysian)
Make example for this keyboard (after setting up your build environment):
make custommk/elysian:default
Flashing example for this keyboard:
make custommk/elysian: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**: Press and hold down the rotary encoder at (0,0) in the matrix (the rotary encoder in the top left corner) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -27,8 +27,11 @@
"pid": "0x2320",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "D3", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "D2", "matrix": [1, 0], "x": 0, "y": 1},

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/promicro",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@ -33,8 +33,11 @@
"pid": "0x2321",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "A9", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "A10", "matrix": [1, 0], "x": 0, "y": 1},

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/proton_c",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@ -38,8 +38,11 @@
"pid": "0x2326",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "GP0", "matrix": [0, 0], "x": 0, "y": 0},
{"label": "GP1", "matrix": [1, 0], "x": 0, "y": 1},

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/rp2040",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

@ -30,8 +30,11 @@
"pid": "0x2322",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "B0", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "F0", "matrix": [0, 1], "x": 4, "y": 0},
{"label": "B1", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "F1", "matrix": [1, 1], "x": 4, "y": 1},

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_2",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0", "KC_1",

View File

@ -37,8 +37,11 @@
"pid": "0x2323",
"vid": "0xFEED"
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"label": "B7", "matrix": [0, 0], "x": 0, "y": 0}, {"label": "B6", "matrix": [0, 3], "x": 5, "y": 0},
{"label": "D0", "matrix": [1, 0], "x": 0, "y": 1}, {"label": "B5", "matrix": [1, 3], "x": 5, "y": 1},

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_2pp",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0", "KC_1",

View File

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

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_32",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

View File

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

View File

@ -1,7 +1,7 @@
{
"keyboard": "ez_maker/directpins/teensy_lc",
"keymap": "default",
"layout": "LAYOUT_all",
"layout": "LAYOUT",
"layers": [
[
"KC_0",

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

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1,6 @@
{
"features": {
"audio": true,
"extrakey": true
}
}

View File

@ -1,2 +0,0 @@
EXTRAKEY_ENABLE = yes # Audio control and System control
AUDIO_ENABLE = yes # Audio output

View File

@ -3,3 +3,5 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
DEFAULT_FOLDER = helix/pico/base

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -7,3 +7,5 @@ LED_BACK_ENABLE = no # LED backlight (Enable WS2812 RGB underlight.)
LED_UNDERGLOW_ENABLE = no # LED underglow (Enable WS2812 RGB underlight.)
LED_ANIMATIONS = yes # LED animations
IOS_DEVICE_ENABLE = no # connect to IOS device (iPad,iPhone)
DEFAULT_FOLDER = helix/rev2/base

View File

@ -0,0 +1 @@
{}

View File

@ -0,0 +1 @@
{}

View File

@ -1,18 +1,3 @@
# Build Options
# change yes to no to disable
#
# See TOP/docs/config_options.md for more information.
#
BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
MOUSEKEY_ENABLE = no # Mouse keys
EXTRAKEY_ENABLE = no # Audio control and System control
CONSOLE_ENABLE = no # Console for debug
COMMAND_ENABLE = no # Commands for debug and configuration
NKRO_ENABLE = no # Enable N-Key Rollover
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
AUDIO_ENABLE = no # Audio output
RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
DEFAULT_FOLDER = helix/rev2
HELIX_TOP_DIR := $(patsubst %/,%,$(dir $(lastword $(MAKEFILE_LIST))))

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

@ -22,8 +22,11 @@
"nkro": true
},
"board": "QMK_PROTON_C",
"layout_aliases": {
"LAYOUT_60_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
},
"layouts": {
"LAYOUT_60_hhkb": {
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@ -18,28 +18,28 @@
//This is the HHKB version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_hhkb( /* Base */
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */
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_GRV, KC_BSLS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ),
[1] = LAYOUT_60_hhkb( /* FN */
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */
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, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, KC_UP, KC_TRNS, KC_DEL,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
[2] = LAYOUT_60_hhkb( /* Empty for dynamic keymaps */
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_60_hhkb( /* Empty for dynamic keymaps */
[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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,28 +18,28 @@
//This is the HHKB version of the PCB
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_60_hhkb( /* Base */
[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Base */
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_GRV, KC_BSLS,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL ),
[1] = LAYOUT_60_hhkb( /* FN */
[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* FN */
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, EF_DEC, EF_INC, H1_DEC, H1_INC, H2_DEC, H2_INC, BR_DEC, BR_INC, ES_DEC, ES_INC, KC_UP, KC_TRNS, KC_DEL,
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
KC_TRNS, KC_TRNS, S1_DEC, S1_INC, S2_DEC, S2_INC, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
[2] = LAYOUT_60_hhkb( /* Empty for dynamic keymaps */
[2] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_60_hhkb( /* Empty for dynamic keymaps */
[3] = LAYOUT_60_ansi_tsangan_split_bs_rshift( /* Empty for dynamic keymaps */
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, 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

@ -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

@ -1,20 +0,0 @@
/*
Copyright 2017 Danny Nguyen <danny@hexwire.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
#define USE_I2C

View File

@ -1,221 +0,0 @@
#include QMK_KEYBOARD_H
extern keymap_config_t keymap_config;
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
// Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers.
#define _QWERTY 0
#define _COLEMAK 1
#define _DVORAK 2
#define _LOWER 3
#define _RAISE 4
#define _ADJUST 5
enum custom_keycodes {
QWERTY = SAFE_RANGE,
COLEMAK,
DVORAK,
LOWER,
RAISE,
ADJUST,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Qwerty
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_QWERTY] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
BL_STEP, KC_Q, KC_W, KC_E, KC_R, KC_T, BL_STEP, KC_U, KC_I, KC_O, KC_P, KC_DEL,
RGB_MOD, KC_A, KC_S, KC_D, KC_F, KC_G, RGB_MOD, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Colemak
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | Q | W | F | P | G | J | L | U | Y | ; | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | R | S | T | D | H | N | E | I | O | " |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| Z | X | C | V | B | K | M | , | . | / |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_COLEMAK] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_DEL,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Dvorak
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | Tab | " | , | . | P | Y | F | G | C | R | L | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Esc | A | O | E | U | I | D | H | T | N | S | / |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | Shift| ; | Q | J | K | X | B | M | W | V | Z |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* |Adjust| Ctrl | Alt | GUI |Lower |Space |Space |Raise | Left | Down | Up |Right |
* `-----------------------------------------------------------------------------------'
*/
[_DVORAK] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_DEL,
KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_ENT ,
ADJUST, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
),
/* Lower
* ,-----------------------------------------------------------------------------------.
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | | \ | | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_LOWER] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Raise
* ,-----------------------------------------------------------------------------------.
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / | | |Enter |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | Next | Vol- | Vol+ | Play |
* `-----------------------------------------------------------------------------------'
*/
[_RAISE] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
),
/* Adjust (Lower + Raise)
* ,-----------------------------------------------------------------------------------.
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | Reset|RGB Tg|RGB Md|Hue Up|Hue Dn|Sat Up|Sat Dn|Val Up|Val Dn| | Del |
* |------+------+------+------+------+-------------+------+------+------+------+------|
* | | | |Aud on|Audoff|AGnorm|AGswap|Qwerty|Colemk|Dvorak| | |
* |------+------+------+------+------+------|------+------+------+------+------+------|
* | | | | | | | | | | | | |
* |------+------+------+------+------+------+------+------+------+------+------+------|
* | | | | | | | | | | | |
* `-----------------------------------------------------------------------------------'
*/
[_ADJUST] = 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,
_______, QK_BOOT, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, _______, KC_DEL,
_______, _______, _______, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};
#ifdef AUDIO_ENABLE
float tone_qwerty[][2] = SONG(QWERTY_SOUND);
float tone_dvorak[][2] = SONG(DVORAK_SOUND);
float tone_colemak[][2] = SONG(COLEMAK_SOUND);
#endif
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QWERTY:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_qwerty);
#endif
set_single_persistent_default_layer(_QWERTY);
}
return false;
break;
case COLEMAK:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_colemak);
#endif
set_single_persistent_default_layer(_COLEMAK);
}
return false;
break;
case DVORAK:
if (record->event.pressed) {
#ifdef AUDIO_ENABLE
PLAY_SONG(tone_dvorak);
#endif
set_single_persistent_default_layer(_DVORAK);
}
return false;
break;
case LOWER:
if (record->event.pressed) {
layer_on(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_LOWER);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case RAISE:
if (record->event.pressed) {
layer_on(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
} else {
layer_off(_RAISE);
update_tri_layer(_LOWER, _RAISE, _ADJUST);
}
return false;
break;
case ADJUST:
if (record->event.pressed) {
layer_on(_ADJUST);
} else {
layer_off(_ADJUST);
}
return false;
break;
}
return true;
}

View File

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

View File

@ -0,0 +1,20 @@
// Copyright 2024 Danny Nguyen (danny@keeb.io)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define SPLIT_HAND_PIN GP23
#define USB_VBUS_PIN GP18
#define SERIAL_USART_FULL_DUPLEX
#define SERIAL_USART_TX_PIN GP8
#define SERIAL_USART_RX_PIN GP9
#define SERIAL_USART_PIN_SWAP
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U
#define I2C_DRIVER I2CD0
#define I2C0_SDA_PIN GP4
#define I2C0_SCL_PIN GP5

View File

@ -0,0 +1,322 @@
{
"keyboard_name": "Nyquist Rev. 5",
"usb": {
"pid": "0x5156",
"device_version": "5.0.0"
},
"processor": "RP2040",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"rgb_matrix": true
},
"split": {
"bootmagic": {
"matrix": [9, 0]
},
"enabled": true,
"encoder": {
"right": {
"rotary": [
{"pin_a": "GP1", "pin_b": "GP0" }
]
}
},
"matrix_pins": {
"right":{
"cols": ["GP25", "GP29", "GP20", "GP11", "GP3", "GP2"],
"rows": ["GP24", "GP17", "GP15", "GP14", "GP12"]
}
},
"transport": {
"sync" :{
"matrix_state": true
}
}
},
"matrix_pins": {
"cols": ["GP29", "GP22", "GP0", "GP3", "GP11", "GP6"],
"rows": ["GP2", "GP1", "GP17", "GP25", "GP24"]
},
"encoder": {
"enabled": true,
"rotary": [
{"pin_a": "GP26", "pin_b": "GP27" }
]
},
"ws2812": {
"driver": "vendor",
"pin": "GP28"
},
"layouts": {
"LAYOUT_ortho_5x12": {
"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": [5, 0], "x": 7, "y": 0},
{"matrix": [5, 1], "x": 8, "y": 0},
{"matrix": [5, 2], "x": 9, "y": 0},
{"matrix": [5, 3], "x": 10, "y": 0},
{"matrix": [5, 4], "x": 11, "y": 0},
{"matrix": [5, 5], "x": 12, "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": [6, 0], "x": 7, "y": 1},
{"matrix": [6, 1], "x": 8, "y": 1},
{"matrix": [6, 2], "x": 9, "y": 1},
{"matrix": [6, 3], "x": 10, "y": 1},
{"matrix": [6, 4], "x": 11, "y": 1},
{"matrix": [6, 5], "x": 12, "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": [7, 0], "x": 7, "y": 2},
{"matrix": [7, 1], "x": 8, "y": 2},
{"matrix": [7, 2], "x": 9, "y": 2},
{"matrix": [7, 3], "x": 10, "y": 2},
{"matrix": [7, 4], "x": 11, "y": 2},
{"matrix": [7, 5], "x": 12, "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": [8, 0], "x": 7, "y": 3},
{"matrix": [8, 1], "x": 8, "y": 3},
{"matrix": [8, 2], "x": 9, "y": 3},
{"matrix": [8, 3], "x": 10, "y": 3},
{"matrix": [8, 4], "x": 11, "y": 3},
{"matrix": [8, 5], "x": 12, "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": [9, 0], "x": 7, "y": 4},
{"matrix": [9, 1], "x": 8, "y": 4},
{"matrix": [9, 2], "x": 9, "y": 4},
{"matrix": [9, 3], "x": 10, "y": 4},
{"matrix": [9, 4], "x": 11, "y": 4},
{"matrix": [9, 5], "x": 12, "y": 4}
]
},
"LAYOUT_ortho_4x12": {
"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": [5, 0], "x": 7, "y": 0},
{"matrix": [5, 1], "x": 8, "y": 0},
{"matrix": [5, 2], "x": 9, "y": 0},
{"matrix": [5, 3], "x": 10, "y": 0},
{"matrix": [5, 4], "x": 11, "y": 0},
{"matrix": [5, 5], "x": 12, "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": [6, 0], "x": 7, "y": 1},
{"matrix": [6, 1], "x": 8, "y": 1},
{"matrix": [6, 2], "x": 9, "y": 1},
{"matrix": [6, 3], "x": 10, "y": 1},
{"matrix": [6, 4], "x": 11, "y": 1},
{"matrix": [6, 5], "x": 12, "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": [7, 0], "x": 7, "y": 2},
{"matrix": [7, 1], "x": 8, "y": 2},
{"matrix": [7, 2], "x": 9, "y": 2},
{"matrix": [7, 3], "x": 10, "y": 2},
{"matrix": [7, 4], "x": 11, "y": 2},
{"matrix": [7, 5], "x": 12, "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": [8, 0], "x": 7, "y": 3},
{"matrix": [8, 1], "x": 8, "y": 3},
{"matrix": [8, 2], "x": 9, "y": 3},
{"matrix": [8, 3], "x": 10, "y": 3},
{"matrix": [8, 4], "x": 11, "y": 3},
{"matrix": [8, 5], "x": 12, "y": 3}
]
}
},
"rgb_matrix": {
"driver": "ws2812",
"split_count": [36, 36],
"max_brightness": 120,
"animations": {
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_reactive": true,
"solid_reactive_wide": true,
"solid_reactive_multiwide": true,
"solid_reactive_cross": true,
"solid_reactive_multicross": true,
"solid_reactive_nexus": true,
"solid_reactive_multinexus": true,
"splash": true,
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"layout": [
{ "flags": 4, "matrix": [0, 0], "x": 9, "y": 6 },
{ "flags": 4, "matrix": [0, 1], "x": 28, "y": 6 },
{ "flags": 4, "matrix": [0, 2], "x": 46, "y": 6 },
{ "flags": 2, "x": 56, "y": 6 },
{ "flags": 4, "matrix": [0, 3], "x": 65, "y": 6 },
{ "flags": 4, "matrix": [0, 4], "x": 84, "y": 6 },
{ "flags": 4, "matrix": [0, 5], "x": 102, "y": 6 },
{ "flags": 4, "matrix": [1, 5], "x": 102, "y": 19 },
{ "flags": 2, "x": 93, "y": 12 },
{ "flags": 4, "matrix": [1, 4], "x": 84, "y": 19 },
{ "flags": 4, "matrix": [1, 3], "x": 65, "y": 19 },
{ "flags": 4, "matrix": [1, 2], "x": 46, "y": 19 },
{ "flags": 4, "matrix": [1, 1], "x": 28, "y": 19 },
{ "flags": 2, "x": 18, "y": 12 },
{ "flags": 4, "matrix": [1, 0], "x": 9, "y": 19 },
{ "flags": 4, "matrix": [2, 0], "x": 9, "y": 32 },
{ "flags": 4, "matrix": [2, 1], "x": 28, "y": 32 },
{ "flags": 4, "matrix": [2, 2], "x": 46, "y": 32 },
{ "flags": 4, "matrix": [2, 3], "x": 65, "y": 32 },
{ "flags": 4, "matrix": [2, 4], "x": 84, "y": 32 },
{ "flags": 4, "matrix": [2, 5], "x": 102, "y": 32 },
{ "flags": 4, "matrix": [3, 5], "x": 102, "y": 44 },
{ "flags": 2, "x": 93, "y": 40 },
{ "flags": 4, "matrix": [3, 4], "x": 84, "y": 44 },
{ "flags": 4, "matrix": [3, 3], "x": 65, "y": 44 },
{ "flags": 2, "x": 56, "y": 44 },
{ "flags": 4, "matrix": [3, 2], "x": 46, "y": 44 },
{ "flags": 4, "matrix": [3, 1], "x": 28, "y": 44 },
{ "flags": 2, "x": 18, "y": 44 },
{ "flags": 4, "matrix": [3, 0], "x": 9, "y": 44 },
{ "flags": 4, "matrix": [4, 0], "x": 9, "y": 57 },
{ "flags": 4, "matrix": [4, 1], "x": 28, "y": 57 },
{ "flags": 4, "matrix": [4, 2], "x": 46, "y": 57 },
{ "flags": 4, "matrix": [4, 3], "x": 65, "y": 57 },
{ "flags": 4, "matrix": [4, 4], "x": 81, "y": 57 },
{ "flags": 4, "matrix": [4, 5], "x": 105, "y": 57 },
{ "flags": 4, "matrix": [5, 0], "x": 121, "y": 6 },
{ "flags": 4, "matrix": [5, 1], "x": 140, "y": 6 },
{ "flags": 4, "matrix": [5, 2], "x": 158, "y": 6 },
{ "flags": 2, "x": 168, "y": 6 },
{ "flags": 4, "matrix": [5, 3], "x": 177, "y": 6 },
{ "flags": 4, "matrix": [5, 4], "x": 196, "y": 6 },
{ "flags": 4, "matrix": [5, 5], "x": 214, "y": 6 },
{ "flags": 4, "matrix": [6, 5], "x": 214, "y": 19 },
{ "flags": 2, "x": 205, "y": 12 },
{ "flags": 4, "matrix": [6, 4], "x": 196, "y": 19 },
{ "flags": 4, "matrix": [6, 3], "x": 177, "y": 19 },
{ "flags": 4, "matrix": [6, 2], "x": 158, "y": 19 },
{ "flags": 4, "matrix": [6, 1], "x": 140, "y": 19 },
{ "flags": 2, "x": 130, "y": 12 },
{ "flags": 4, "matrix": [6, 0], "x": 121, "y": 19 },
{ "flags": 4, "matrix": [7, 0], "x": 121, "y": 32 },
{ "flags": 4, "matrix": [7, 1], "x": 140, "y": 32 },
{ "flags": 4, "matrix": [7, 2], "x": 158, "y": 32 },
{ "flags": 4, "matrix": [7, 3], "x": 177, "y": 32 },
{ "flags": 4, "matrix": [7, 4], "x": 196, "y": 32 },
{ "flags": 4, "matrix": [7, 5], "x": 214, "y": 32 },
{ "flags": 4, "matrix": [8, 5], "x": 214, "y": 44 },
{ "flags": 2, "x": 205, "y": 44 },
{ "flags": 4, "matrix": [8, 4], "x": 196, "y": 44 },
{ "flags": 4, "matrix": [8, 3], "x": 177, "y": 44 },
{ "flags": 2, "x": 168, "y": 44 },
{ "flags": 4, "matrix": [8, 2], "x": 158, "y": 44 },
{ "flags": 4, "matrix": [8, 1], "x": 140, "y": 44 },
{ "flags": 2, "x": 130, "y": 40 },
{ "flags": 4, "matrix": [8, 0], "x": 121, "y": 44 },
{ "flags": 4, "matrix": [9, 0], "x": 121, "y": 57 },
{ "flags": 4, "matrix": [9, 1], "x": 140, "y": 57 },
{ "flags": 4, "matrix": [9, 2], "x": 158, "y": 57 },
{ "flags": 4, "matrix": [9, 3], "x": 177, "y": 57 },
{ "flags": 4, "matrix": [9, 4], "x": 196, "y": 57 },
{ "flags": 4, "matrix": [9, 5], "x": 214, "y": 57 }
],
"sleep": true
}
}

View File

@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View File

@ -1,11 +0,0 @@
// Copyright 2023 QMK
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* don't know if this should be defined at the board or top level. Assuming board
#define MOUSEKEY_DELAY 100
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 3
#define MOUSEKEY_TIME_TO_MAX 10
*/

View File

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

View File

@ -0,0 +1,104 @@
{
"manufacturer": "TyraelWasTaken",
"keyboard_name": "Equanimity",
"maintainer": "TyraelWasTaken",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"encoder": {
"rotary": [
{"pin_a": "A9", "pin_b": "A10", "resolution": 1}
]
},
"features": {
"bootmagic": true,
"encoder": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B2", "B1", "B0", "A7", "A6", "A5", "A2", "B12", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15"],
"rows": ["B11", "B10", "A1", "A3", "A4"]
},
"processor": "STM32F072",
"url": "https://github.com/TyraelWasTaken/Equanimity",
"usb": {
"device_version": "1.0.0",
"pid": "0x5343",
"vid": "0x6571"
},
"layouts": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [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},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "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, 6], "x": 6, "y": 2},
{"matrix": [2, 8], "x": 8, "y": 2},
{"matrix": [2, 9], "x": 9, "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": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [4, 5], "x": 5, "y": 4},
{"matrix": [4, 7], "x": 7, "y": 4},
{"matrix": [4, 8], "x": 8, "y": 4},
{"matrix": [4, 10], "x": 10, "y": 4},
{"matrix": [4, 12], "x": 12, "y": 4},
{"matrix": [4, 13], "x": 13, "y": 4},
{"matrix": [4, 15], "x": 5, "y": 4}
]
}
}
}

View File

@ -0,0 +1,35 @@
// Copyright 2024 TyraelWasTaken (@TyraelWasTaken)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layer_names {
_BL,
_FL,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BL] = LAYOUT(
KC_DELETE, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE,
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_PGUP, KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_ENT, KC_MEDIA_PLAY_PAUSE,
KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_SPC, MO(_FL), KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FL] = LAYOUT(
KC_TRNS, KC_GRAVE, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif

View File

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

View File

@ -0,0 +1,35 @@
// Copyright 2024 TyraelWasTaken (@TyraelWasTaken)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layer_names {
_BL,
_FL,
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BL] = LAYOUT(
KC_DELETE, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE,
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_PGUP, KC_CAPS_LOCK, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOTE, KC_ENT, KC_MEDIA_PLAY_PAUSE,
KC_PGDN, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP,
KC_LCTL, KC_LGUI, KC_SPC, MO(_FL), KC_SPC, KC_LALT, KC_LEFT, KC_DOWN, KC_RGHT
),
[_FL] = LAYOUT(
KC_TRNS, KC_GRAVE, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
)
};
#ifdef ENCODER_MAP_ENABLE
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
[_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
[_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
};
#endif

View File

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

View File

@ -0,0 +1,27 @@
# equanimity
![equanimity](https://i.imgur.com/kIGyOi4.png)
Arisu-ish Alice keyboard with an EC11 and some accent keys, staggered.
* Keyboard Maintainer: [TyraelWasTaken](https://github.com/TyraelWasTaken)
* Hardware Supported: *UDB C3 or greater with Equanimity PCB, no other PCBs are supported for the case*
* Hardware Availability: *If you wish to build this, all files are available here: https://github.com/TyraelWasTaken/Equanimity*
Make example for this keyboard (after setting up your build environment):
make tyraelwastaken/equanimity:default
Flashing example for this keyboard:
make tyraelwastaken/equanimity:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@ -70,8 +70,11 @@
{"pin_a": "C14", "pin_b": "C15", "resolution": 2}
]
},
"layout_aliases": {
"LAYOUT_all": "LAYOUT"
},
"layouts": {
"LAYOUT_all": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "label": "Esc", "x": 0, "y": 0.88},
{"matrix": [0, 1], "label": "1", "x": 1, "y": 0.63},

View File

@ -11,7 +11,7 @@ enum { _QWERTY, _LOWER, _RAISE, _ADJUST };
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_all(
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, _______, KC_RIGHT, KC_LEFT, _______, KC_RIGHT,
KC_DOWN, KC_DOWN
),
[_LOWER] = LAYOUT_all(
[_LOWER] = LAYOUT(
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
_______, _______
),
[_RAISE] = LAYOUT_all(
[_RAISE] = LAYOUT(
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______,KC_LEFT, KC_DOWN, KC_RIGHT,_______, KC_UNDS, KC_NO, KC_NO, KC_EQL, _______, _______, _______, _______, _______,
@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
_______, _______
),
[_ADJUST] = LAYOUT_all(
[_ADJUST] = LAYOUT(
_______, KC_CAPS, KC_NUM, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, DB_TOGG, EE_CLR, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -11,7 +11,7 @@ enum { _QWERTY, _LOWER, _RAISE, _ADJUST };
// clang-format off
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_all(
[_QWERTY] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_GRV, KC_DEL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LEFT, _______, KC_RIGHT, KC_LEFT, _______, KC_RIGHT,
KC_DOWN, KC_DOWN
),
[_LOWER] = LAYOUT_all(
[_LOWER] = LAYOUT(
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_LEFT, KC_DOWN, KC_RIGHT,_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
_______, _______
),
[_RAISE] = LAYOUT_all(
[_RAISE] = LAYOUT(
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
_______,_______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______,KC_LEFT, KC_DOWN, KC_RIGHT,_______, KC_UNDS, KC_NO, KC_NO, KC_EQL, _______, _______, _______, _______, _______,
@ -44,7 +44,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______,
_______, _______
),
[_ADJUST] = LAYOUT_all(
[_ADJUST] = LAYOUT(
_______, KC_CAPS, KC_NUM, KC_SCRL, _______, _______, _______, _______, _______, _______, _______, DB_TOGG, EE_CLR, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

View File

@ -144,6 +144,434 @@
{"matrix": [11, 7], "x": 17, "y": 5},
{"matrix": [11, 8], "x": 18, "y": 5}
]
},
"LAYOUT_ansi": {
"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": [6, 0], "x": 10, "y": 0},
{"matrix": [6, 1], "x": 11, "y": 0},
{"matrix": [6, 2], "x": 12, "y": 0},
{"matrix": [6, 3], "x": 13, "y": 0},
{"matrix": [6, 4], "x": 14, "y": 0},
{"matrix": [6, 5], "x": 15, "y": 0},
{"matrix": [6, 6], "x": 16, "y": 0},
{"matrix": [6, 7], "x": 17, "y": 0},
{"matrix": [6, 8], "x": 18, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [7, 0], "x": 10, "y": 1},
{"matrix": [7, 1], "x": 11, "y": 1},
{"matrix": [7, 2], "x": 12, "y": 1},
{"matrix": [7, 4], "x": 13, "y": 1, "w": 2},
{"matrix": [7, 5], "x": 15, "y": 1},
{"matrix": [7, 6], "x": 16, "y": 1},
{"matrix": [7, 7], "x": 17, "y": 1},
{"matrix": [7, 8], "x": 18, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [8, 0], "x": 10.5, "y": 2},
{"matrix": [8, 1], "x": 11.5, "y": 2},
{"matrix": [8, 2], "x": 12.5, "y": 2},
{"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [8, 5], "x": 15, "y": 2},
{"matrix": [8, 6], "x": 16, "y": 2},
{"matrix": [8, 7], "x": 17, "y": 2},
{"matrix": [9, 8], "x": 18, "y": 2, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [9, 0], "x": 10.75, "y": 3},
{"matrix": [9, 1], "x": 11.75, "y": 3},
{"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25},
{"matrix": [9, 5], "x": 15, "y": 3},
{"matrix": [9, 6], "x": 16, "y": 3},
{"matrix": [9, 7], "x": 17, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [10, 0], "x": 10.25, "y": 4},
{"matrix": [10, 1], "x": 11.25, "y": 4},
{"matrix": [10, 3], "x": 12.25, "y": 4, "w": 2.75},
{"matrix": [10, 5], "x": 15, "y": 4},
{"matrix": [10, 6], "x": 16, "y": 4},
{"matrix": [10, 7], "x": 17, "y": 4},
{"matrix": [11, 8], "x": 18, "y": 4, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [11, 0], "x": 10, "y": 5, "w": 1.25},
{"matrix": [11, 1], "x": 11.25, "y": 5, "w": 1.25},
{"matrix": [11, 3], "x": 12.5, "y": 5, "w": 1.25},
{"matrix": [11, 4], "x": 13.75, "y": 5, "w": 1.25},
{"matrix": [11, 5], "x": 15, "y": 5, "w": 2},
{"matrix": [11, 7], "x": 17, "y": 5}
]
},
"LAYOUT_ansi_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": [6, 0], "x": 10, "y": 0},
{"matrix": [6, 1], "x": 11, "y": 0},
{"matrix": [6, 2], "x": 12, "y": 0},
{"matrix": [6, 3], "x": 13, "y": 0},
{"matrix": [6, 4], "x": 14, "y": 0},
{"matrix": [6, 5], "x": 15, "y": 0},
{"matrix": [6, 6], "x": 16, "y": 0},
{"matrix": [6, 7], "x": 17, "y": 0},
{"matrix": [6, 8], "x": 18, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [7, 0], "x": 10, "y": 1},
{"matrix": [7, 1], "x": 11, "y": 1},
{"matrix": [7, 2], "x": 12, "y": 1},
{"matrix": [7, 3], "x": 13, "y": 1},
{"matrix": [7, 4], "x": 14, "y": 1},
{"matrix": [7, 5], "x": 15, "y": 1},
{"matrix": [7, 6], "x": 16, "y": 1},
{"matrix": [7, 7], "x": 17, "y": 1},
{"matrix": [7, 8], "x": 18, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [8, 0], "x": 10.5, "y": 2},
{"matrix": [8, 1], "x": 11.5, "y": 2},
{"matrix": [8, 2], "x": 12.5, "y": 2},
{"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [8, 5], "x": 15, "y": 2},
{"matrix": [8, 6], "x": 16, "y": 2},
{"matrix": [8, 7], "x": 17, "y": 2},
{"matrix": [9, 8], "x": 18, "y": 2, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [9, 0], "x": 10.75, "y": 3},
{"matrix": [9, 1], "x": 11.75, "y": 3},
{"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25},
{"matrix": [9, 5], "x": 15, "y": 3},
{"matrix": [9, 6], "x": 16, "y": 3},
{"matrix": [9, 7], "x": 17, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [10, 0], "x": 10.25, "y": 4},
{"matrix": [10, 1], "x": 11.25, "y": 4},
{"matrix": [10, 3], "x": 12.25, "y": 4, "w": 2.75},
{"matrix": [10, 5], "x": 15, "y": 4},
{"matrix": [10, 6], "x": 16, "y": 4},
{"matrix": [10, 7], "x": 17, "y": 4},
{"matrix": [11, 8], "x": 18, "y": 4, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [11, 0], "x": 10, "y": 5, "w": 1.25},
{"matrix": [11, 1], "x": 11.25, "y": 5, "w": 1.25},
{"matrix": [11, 3], "x": 12.5, "y": 5, "w": 1.25},
{"matrix": [11, 4], "x": 13.75, "y": 5, "w": 1.25},
{"matrix": [11, 5], "x": 15, "y": 5, "w": 2},
{"matrix": [11, 7], "x": 17, "y": 5}
]
},
"LAYOUT_iso": {
"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": [6, 0], "x": 10, "y": 0},
{"matrix": [6, 1], "x": 11, "y": 0},
{"matrix": [6, 2], "x": 12, "y": 0},
{"matrix": [6, 3], "x": 13, "y": 0},
{"matrix": [6, 4], "x": 14, "y": 0},
{"matrix": [6, 5], "x": 15, "y": 0},
{"matrix": [6, 6], "x": 16, "y": 0},
{"matrix": [6, 7], "x": 17, "y": 0},
{"matrix": [6, 8], "x": 18, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [7, 0], "x": 10, "y": 1},
{"matrix": [7, 1], "x": 11, "y": 1},
{"matrix": [7, 2], "x": 12, "y": 1},
{"matrix": [7, 4], "x": 13, "y": 1, "w": 2},
{"matrix": [7, 5], "x": 15, "y": 1},
{"matrix": [7, 6], "x": 16, "y": 1},
{"matrix": [7, 7], "x": 17, "y": 1},
{"matrix": [7, 8], "x": 18, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [8, 0], "x": 10.5, "y": 2},
{"matrix": [8, 1], "x": 11.5, "y": 2},
{"matrix": [8, 2], "x": 12.5, "y": 2},
{"matrix": [8, 5], "x": 15, "y": 2},
{"matrix": [8, 6], "x": 16, "y": 2},
{"matrix": [8, 7], "x": 17, "y": 2},
{"matrix": [9, 8], "x": 18, "y": 2, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [9, 0], "x": 10.75, "y": 3},
{"matrix": [9, 1], "x": 11.75, "y": 3},
{"matrix": [9, 3], "x": 12.75, "y": 3},
{"matrix": [8, 4], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
{"matrix": [9, 5], "x": 15, "y": 3},
{"matrix": [9, 6], "x": 16, "y": 3},
{"matrix": [9, 7], "x": 17, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [10, 0], "x": 10.25, "y": 4},
{"matrix": [10, 1], "x": 11.25, "y": 4},
{"matrix": [10, 3], "x": 12.25, "y": 4, "w": 2.75},
{"matrix": [10, 5], "x": 15, "y": 4},
{"matrix": [10, 6], "x": 16, "y": 4},
{"matrix": [10, 7], "x": 17, "y": 4},
{"matrix": [11, 8], "x": 18, "y": 4, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [11, 0], "x": 10, "y": 5, "w": 1.25},
{"matrix": [11, 1], "x": 11.25, "y": 5, "w": 1.25},
{"matrix": [11, 3], "x": 12.5, "y": 5, "w": 1.25},
{"matrix": [11, 4], "x": 13.75, "y": 5, "w": 1.25},
{"matrix": [11, 5], "x": 15, "y": 5, "w": 2},
{"matrix": [11, 7], "x": 17, "y": 5}
]
},
"LAYOUT_iso_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": [6, 0], "x": 10, "y": 0},
{"matrix": [6, 1], "x": 11, "y": 0},
{"matrix": [6, 2], "x": 12, "y": 0},
{"matrix": [6, 3], "x": 13, "y": 0},
{"matrix": [6, 4], "x": 14, "y": 0},
{"matrix": [6, 5], "x": 15, "y": 0},
{"matrix": [6, 6], "x": 16, "y": 0},
{"matrix": [6, 7], "x": 17, "y": 0},
{"matrix": [6, 8], "x": 18, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [7, 0], "x": 10, "y": 1},
{"matrix": [7, 1], "x": 11, "y": 1},
{"matrix": [7, 2], "x": 12, "y": 1},
{"matrix": [7, 3], "x": 13, "y": 1},
{"matrix": [7, 4], "x": 14, "y": 1},
{"matrix": [7, 5], "x": 15, "y": 1},
{"matrix": [7, 6], "x": 16, "y": 1},
{"matrix": [7, 7], "x": 17, "y": 1},
{"matrix": [7, 8], "x": 18, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [8, 0], "x": 10.5, "y": 2},
{"matrix": [8, 1], "x": 11.5, "y": 2},
{"matrix": [8, 2], "x": 12.5, "y": 2},
{"matrix": [8, 5], "x": 15, "y": 2},
{"matrix": [8, 6], "x": 16, "y": 2},
{"matrix": [8, 7], "x": 17, "y": 2},
{"matrix": [9, 8], "x": 18, "y": 2, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [9, 0], "x": 10.75, "y": 3},
{"matrix": [9, 1], "x": 11.75, "y": 3},
{"matrix": [9, 3], "x": 12.75, "y": 3},
{"matrix": [8, 4], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
{"matrix": [9, 5], "x": 15, "y": 3},
{"matrix": [9, 6], "x": 16, "y": 3},
{"matrix": [9, 7], "x": 17, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [10, 0], "x": 10.25, "y": 4},
{"matrix": [10, 1], "x": 11.25, "y": 4},
{"matrix": [10, 3], "x": 12.25, "y": 4, "w": 2.75},
{"matrix": [10, 5], "x": 15, "y": 4},
{"matrix": [10, 6], "x": 16, "y": 4},
{"matrix": [10, 7], "x": 17, "y": 4},
{"matrix": [11, 8], "x": 18, "y": 4, "h": 2},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 6], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [11, 0], "x": 10, "y": 5, "w": 1.25},
{"matrix": [11, 1], "x": 11.25, "y": 5, "w": 1.25},
{"matrix": [11, 3], "x": 12.5, "y": 5, "w": 1.25},
{"matrix": [11, 4], "x": 13.75, "y": 5, "w": 1.25},
{"matrix": [11, 5], "x": 15, "y": 5, "w": 2},
{"matrix": [11, 7], "x": 17, "y": 5}
]
}
}
}

View File

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

View File

@ -4,5 +4,5 @@ from qmk.constants import QMK_USERSPACE
@cli.subcommand('Detected path to QMK Userspace.', hidden=True)
def userspace_path(cli):
print(QMK_USERSPACE)
print(QMK_USERSPACE or '')
return