From 8ccc1e3423291b718de1fd691d5ff2dec5bb4f25 Mon Sep 17 00:00:00 2001 From: ClownFish <177758267+clownfish-og@users.noreply.github.com> Date: Sun, 20 Jul 2025 16:39:08 -0400 Subject: [PATCH 01/24] add vial support for doio kb03 (#911) * add vial keymap for doio/kb03 * Update keyboards/doio/kb03/keymaps/vial/vial.json Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --------- Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- keyboards/doio/kb03/keymaps/vial/config.h | 7 ++++ keyboards/doio/kb03/keymaps/vial/keymap.c | 44 +++++++++++++++++++ keyboards/doio/kb03/keymaps/vial/rules.mk | 4 ++ keyboards/doio/kb03/keymaps/vial/vial.json | 49 ++++++++++++++++++++++ 4 files changed, 104 insertions(+) create mode 100644 keyboards/doio/kb03/keymaps/vial/config.h create mode 100644 keyboards/doio/kb03/keymaps/vial/keymap.c create mode 100644 keyboards/doio/kb03/keymaps/vial/rules.mk create mode 100644 keyboards/doio/kb03/keymaps/vial/vial.json diff --git a/keyboards/doio/kb03/keymaps/vial/config.h b/keyboards/doio/kb03/keymaps/vial/config.h new file mode 100644 index 0000000000..b07dc742ce --- /dev/null +++ b/keyboards/doio/kb03/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xF5, 0x92, 0xBC, 0x63, 0x72, 0x84, 0xCA, 0x4E} +#define VIAL_UNLOCK_COMBO_ROWS {0, 0} +#define VIAL_UNLOCK_COMBO_COLS {0, 2} diff --git a/keyboards/doio/kb03/keymaps/vial/keymap.c b/keyboards/doio/kb03/keymaps/vial/keymap.c new file mode 100644 index 0000000000..79365003e3 --- /dev/null +++ b/keyboards/doio/kb03/keymaps/vial/keymap.c @@ -0,0 +1,44 @@ +// Copyright 2025 DOIO +// Copyright 2025 ClownFish (@clownfish-og) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _BASE, + _MOUSE, + _MEDIA, + _LIGHTS +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT( + TO(_MOUSE), + KC_ENT, C(KC_C), C(KC_V), + C(KC_Z) + ), + [_MOUSE] = LAYOUT( + TO(_MEDIA), + MS_BTN1, MS_BTN3, MS_BTN2, + KC_LCTL + ), + [_MEDIA] = LAYOUT( + TO(_LIGHTS), + KC_MRWD, KC_MPLY, KC_MFFD, + KC_MUTE + ), + [_LIGHTS] = LAYOUT( + TO(_BASE), + RM_VALD, RM_NEXT, RM_VALU, + RM_TOGG + ) +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BASE] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(MS_WHLL, MS_WHLR) }, + [_MOUSE] = { ENCODER_CCW_CW(MS_LEFT, MS_RGHT), ENCODER_CCW_CW(MS_UP, MS_DOWN) }, + [_MEDIA] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, + [_LIGHTS] = { ENCODER_CCW_CW(RM_SATD, RM_SATU), ENCODER_CCW_CW(RM_HUED, RM_HUEU) } +}; +#endif diff --git a/keyboards/doio/kb03/keymaps/vial/rules.mk b/keyboards/doio/kb03/keymaps/vial/rules.mk new file mode 100644 index 0000000000..51d8828105 --- /dev/null +++ b/keyboards/doio/kb03/keymaps/vial/rules.mk @@ -0,0 +1,4 @@ +ENCODER_MAP_ENABLE = yes +VIA_ENABLE = yes +VIAL_ENABLE = yes +VIALRGB_ENABLE = yes diff --git a/keyboards/doio/kb03/keymaps/vial/vial.json b/keyboards/doio/kb03/keymaps/vial/vial.json new file mode 100644 index 0000000000..130fe8a295 --- /dev/null +++ b/keyboards/doio/kb03/keymaps/vial/vial.json @@ -0,0 +1,49 @@ +{ + "lighting": "vialrgb", + "matrix": {"rows": 1, "cols": 5}, + "layouts": { + "keymap": [ + [ + { + "x": 0.5, + "y": 0.25, + "h": 0.5 + }, + "0,3" + ], + [ + "0,0", + "0,1", + "0,2" + ], + [ + { + "y": 0.25, + "x": 0.5 + }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "x": 1 + }, + "0,4" + ], + [ + { + "x": 0.25, + "y": 0.25, + "w": 1.25, + "h": 1.25 + }, + "1,0\n\n\n\n\n\n\n\n\ne", + { + "w": 1.25, + "h": 1.25 + }, + "1,1\n\n\n\n\n\n\n\n\ne" + ] + ] + } +} From e30ff448af0c8504b3cd488830fc768abcd13756 Mon Sep 17 00:00:00 2001 From: Bailey <69098787+Ll3ma@users.noreply.github.com> Date: Mon, 21 Jul 2025 04:40:06 +0800 Subject: [PATCH 02/24] Ll3ma Rebrand (#912) * Rebrand to Ll3ma * Rebrand to Ll3ma * Update keyboard_aliases.hjson --- data/mappings/keyboard_aliases.hjson | 3 +++ keyboards/{ll3macorn => ll3ma}/bongopad/bongopad.c | 2 +- keyboards/{ll3macorn => ll3ma}/bongopad/config.h | 2 +- keyboards/{ll3macorn => ll3ma}/bongopad/keyboard.json | 6 +++--- .../{ll3macorn => ll3ma}/bongopad/keymaps/default/keymap.c | 2 +- .../{ll3macorn => ll3ma}/bongopad/keymaps/default/rules.mk | 0 .../{ll3macorn => ll3ma}/bongopad/keymaps/vial/config.h | 2 +- .../{ll3macorn => ll3ma}/bongopad/keymaps/vial/keymap.c | 2 +- .../{ll3macorn => ll3ma}/bongopad/keymaps/vial/rules.mk | 0 .../{ll3macorn => ll3ma}/bongopad/keymaps/vial/vial.json | 0 keyboards/{ll3macorn => ll3ma}/bongopad/readme.md | 4 ++-- 11 files changed, 13 insertions(+), 10 deletions(-) rename keyboards/{ll3macorn => ll3ma}/bongopad/bongopad.c (99%) rename keyboards/{ll3macorn => ll3ma}/bongopad/config.h (74%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keyboard.json (94%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keymaps/default/keymap.c (94%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keymaps/default/rules.mk (100%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keymaps/vial/config.h (87%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keymaps/vial/keymap.c (95%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keymaps/vial/rules.mk (100%) rename keyboards/{ll3macorn => ll3ma}/bongopad/keymaps/vial/vial.json (100%) rename keyboards/{ll3macorn => ll3ma}/bongopad/readme.md (79%) diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 86850af7a4..87f93798a8 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -407,6 +407,9 @@ "lfkeyboards/smk65": { "target": "lfkeyboards/smk65/revb" }, + "ll3macorn/bongopad": { + "target": "ll3ma/bongopad" + }, "m3v3van": { "target": "matthewdias/m3n3van" }, diff --git a/keyboards/ll3macorn/bongopad/bongopad.c b/keyboards/ll3ma/bongopad/bongopad.c similarity index 99% rename from keyboards/ll3macorn/bongopad/bongopad.c rename to keyboards/ll3ma/bongopad/bongopad.c index f6d03ded6c..910e5a4d70 100644 --- a/keyboards/ll3macorn/bongopad/bongopad.c +++ b/keyboards/ll3ma/bongopad/bongopad.c @@ -1,4 +1,4 @@ -// Copyright 2021 Ll3macorn (@ll3macorn) +// Copyright 2025 Ll3ma (@ll3ma) // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" diff --git a/keyboards/ll3macorn/bongopad/config.h b/keyboards/ll3ma/bongopad/config.h similarity index 74% rename from keyboards/ll3macorn/bongopad/config.h rename to keyboards/ll3ma/bongopad/config.h index 4ee4b5a997..c9f7f102de 100644 --- a/keyboards/ll3macorn/bongopad/config.h +++ b/keyboards/ll3ma/bongopad/config.h @@ -1,4 +1,4 @@ -// Copyright 2021 Ll3macorn (@ll3macorn) +// Copyright 2025 Ll3ma (@ll3ma) // SPDX-License-Identifier: GPL-2.0-or-later #pragma once diff --git a/keyboards/ll3macorn/bongopad/keyboard.json b/keyboards/ll3ma/bongopad/keyboard.json similarity index 94% rename from keyboards/ll3macorn/bongopad/keyboard.json rename to keyboards/ll3ma/bongopad/keyboard.json index a47529ed28..c3abc03fc9 100644 --- a/keyboards/ll3macorn/bongopad/keyboard.json +++ b/keyboards/ll3ma/bongopad/keyboard.json @@ -1,8 +1,8 @@ { "keyboard_name": "BongoPad", - "manufacturer": "Ll3macorn", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3macorn/bongopad", - "maintainer": "Ll3macorn", + "manufacturer": "Ll3ma", + "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3ma/bongopad", + "maintainer": "Ll3ma", "usb": { "vid": "0x3728", "pid": "0x2949", diff --git a/keyboards/ll3macorn/bongopad/keymaps/default/keymap.c b/keyboards/ll3ma/bongopad/keymaps/default/keymap.c similarity index 94% rename from keyboards/ll3macorn/bongopad/keymaps/default/keymap.c rename to keyboards/ll3ma/bongopad/keymaps/default/keymap.c index d91a949dee..1afcc87cfe 100644 --- a/keyboards/ll3macorn/bongopad/keymaps/default/keymap.c +++ b/keyboards/ll3ma/bongopad/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -// Copyright 2021 Ll3macorn (@ll3macorn) +// Copyright 2025 Ll3ma (@ll3ma) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H diff --git a/keyboards/ll3macorn/bongopad/keymaps/default/rules.mk b/keyboards/ll3ma/bongopad/keymaps/default/rules.mk similarity index 100% rename from keyboards/ll3macorn/bongopad/keymaps/default/rules.mk rename to keyboards/ll3ma/bongopad/keymaps/default/rules.mk diff --git a/keyboards/ll3macorn/bongopad/keymaps/vial/config.h b/keyboards/ll3ma/bongopad/keymaps/vial/config.h similarity index 87% rename from keyboards/ll3macorn/bongopad/keymaps/vial/config.h rename to keyboards/ll3ma/bongopad/keymaps/vial/config.h index eb1da9fdd2..81b42cd14d 100644 --- a/keyboards/ll3macorn/bongopad/keymaps/vial/config.h +++ b/keyboards/ll3ma/bongopad/keymaps/vial/config.h @@ -1,4 +1,4 @@ -// Copyright 2021 Ll3macorn (@ll3macorn) +// Copyright 2025 Ll3ma (@ll3ma) // SPDX-License-Identifier: GPL-2.0-or-later #define VIAL_KEYBOARD_UID {0x08, 0xDB, 0x6F, 0x28, 0x40, 0xFD, 0x6F, 0x58} diff --git a/keyboards/ll3macorn/bongopad/keymaps/vial/keymap.c b/keyboards/ll3ma/bongopad/keymaps/vial/keymap.c similarity index 95% rename from keyboards/ll3macorn/bongopad/keymaps/vial/keymap.c rename to keyboards/ll3ma/bongopad/keymaps/vial/keymap.c index 1d2d8c4b4b..96c01effef 100644 --- a/keyboards/ll3macorn/bongopad/keymaps/vial/keymap.c +++ b/keyboards/ll3ma/bongopad/keymaps/vial/keymap.c @@ -1,4 +1,4 @@ -// Copyright 2021 Ll3macorn (@ll3macorn) +// Copyright 2025 Ll3ma (@ll3ma) // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H #include diff --git a/keyboards/ll3macorn/bongopad/keymaps/vial/rules.mk b/keyboards/ll3ma/bongopad/keymaps/vial/rules.mk similarity index 100% rename from keyboards/ll3macorn/bongopad/keymaps/vial/rules.mk rename to keyboards/ll3ma/bongopad/keymaps/vial/rules.mk diff --git a/keyboards/ll3macorn/bongopad/keymaps/vial/vial.json b/keyboards/ll3ma/bongopad/keymaps/vial/vial.json similarity index 100% rename from keyboards/ll3macorn/bongopad/keymaps/vial/vial.json rename to keyboards/ll3ma/bongopad/keymaps/vial/vial.json diff --git a/keyboards/ll3macorn/bongopad/readme.md b/keyboards/ll3ma/bongopad/readme.md similarity index 79% rename from keyboards/ll3macorn/bongopad/readme.md rename to keyboards/ll3ma/bongopad/readme.md index d2902aae6a..0751ac4fc8 100644 --- a/keyboards/ll3macorn/bongopad/readme.md +++ b/keyboards/ll3ma/bongopad/readme.md @@ -1,10 +1,10 @@ # BongoPad -* Keyboard Maintainer: [Ll3macorn](https://github.com/Ll3macorn) +* Keyboard Maintainer: [Ll3ma](https://github.com/Ll3ma) * Hardware Supported: Pro micro Make example for this keyboard (after setting up your build environment): - make ll3macorn/bongopad:default + make ll3ma/bongopad:default See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). From 80393c53adf7ac8f7ef7daa6314861489d8dae31 Mon Sep 17 00:00:00 2001 From: mizma Date: Sun, 27 Jul 2025 11:58:28 +0900 Subject: [PATCH 03/24] Keyboard/slimdash (#915) * add mzmkb/slimdash vial config * fix keymap for RGB backlight control --- .../mzmkb/slimdash/rev1/keymaps/vial/config.h | 23 ++++ .../mzmkb/slimdash/rev1/keymaps/vial/keymap.c | 126 ++++++++++++++++++ .../mzmkb/slimdash/rev1/keymaps/vial/rules.mk | 7 + .../slimdash/rev1/keymaps/vial/vial.json | 41 ++++++ 4 files changed, 197 insertions(+) create mode 100644 keyboards/mzmkb/slimdash/rev1/keymaps/vial/config.h create mode 100644 keyboards/mzmkb/slimdash/rev1/keymaps/vial/keymap.c create mode 100644 keyboards/mzmkb/slimdash/rev1/keymaps/vial/rules.mk create mode 100644 keyboards/mzmkb/slimdash/rev1/keymaps/vial/vial.json diff --git a/keyboards/mzmkb/slimdash/rev1/keymaps/vial/config.h b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/config.h new file mode 100644 index 0000000000..76cf704637 --- /dev/null +++ b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/config.h @@ -0,0 +1,23 @@ +/* Copyright 2025 mizma (@mizma) + * + * 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 . + */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xF8, 0x33, 0xE5, 0xA6, 0x5B, 0x24, 0x72, 0x00} + +#define VIAL_UNLOCK_COMBO_ROWS {0, 9} +#define VIAL_UNLOCK_COMBO_COLS {0, 5} +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/mzmkb/slimdash/rev1/keymaps/vial/keymap.c b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/keymap.c new file mode 100644 index 0000000000..a496950ad8 --- /dev/null +++ b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/keymap.c @@ -0,0 +1,126 @@ +/* Copyright 2025 mizma (@mizma) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +enum layer_names { + _QWERTY, + _GAMEMODE, + _LOWER, + _RAISE +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define GAMEM TG(_GAMEMODE) + +#define EISU LALT(KC_GRV) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ,------------------------------------------------. .------------------------------------------------. + * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | \ | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | LCTL | A | S | D | F | G | Del | | Ins | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| + * | LSFT | Z | X | C | V | B | | N | M | , | . | / | RSFT | + * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| + * | RM_DN| RM_UP| GAMEM| GUI | | | LALT | | RALT | | | HOME | END |PageUp|PageDn| + * .---------------------------. .------| Space|------| |------| Enter|------. .---------------------------. + * | Lower| | LSFT | | RCTL | | Raise| + * .--------------------. .--------------------. + */ + [_QWERTY] = LAYOUT( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, 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_DEL , KC_INS, 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_LALT, KC_RALT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + RGB_VAD, RGB_VAI, GAMEM, KC_LGUI, LOWER, KC_SPC, KC_LSFT, KC_RCTL, KC_ENT, RAISE, KC_HOME, KC_END, KC_PGUP, KC_PGDN + ), + + /* Game Mode Toggle: sample toggle layer. turn off GUI key and add arrows + * ,------------------------------------------------. .------------------------------------------------. + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| + * | | | | | | | | | | | | | | + * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| + * | | | | NOOP | | | | | | | | ← | ↓ | ↑ | → | + * .---------------------------. .------| |------| |------| |------. .---------------------------. + * | | | | | | | | + * .--------------------. .--------------------. + */ + [_GAMEMODE] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, KC_NO, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower: NUMPAD, App/Media keys and RGM Matrix + * ,------------------------------------------------. .------------------------------------------------. + * | ` | | | | | Mute | Vol- | | Vol+ | | NumL | / | * | - | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | | |RGBTGL| | BrDn | | BrUp | | 7 | 8 | 9 | + | | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | CAPS | | |RM_HUD|RM_HUU| |RM_PRV| |RM_NXT| | 4 | 5 | 6 | , | | + * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| + * | | | |RM_SPD|RM_SPU| | | | 1 | 2 | 3 | = | | + * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| + * | | | | | | | | | | | | 0 | . | | | + * .---------------------------. .------| |------| |------| PENT |------. .---------------------------. + * | | | | | | | | + * .--------------------. .--------------------. + */ + [_LOWER] = LAYOUT( + KC_GRV, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, _______, + _______, _______, _______, _______, RGB_TOG, _______, KC_BRID, KC_BRIU, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, + KC_CAPS, _______, _______, RGB_HUD, RGB_HUI, _______, RGB_RMOD, RGB_MOD, _______, KC_P4, KC_P5, KC_P6, KC_PCMM, _______, + _______, _______, _______, RGB_SPD, RGB_SPI, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PEQL, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_PENT, _______, KC_P0, KC_PDOT, _______, _______ + ), + + /* Raise: Functions and Mouse + * ,------------------------------------------------. .------------------------------------------------. + * | ` | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | | | |WheelL|WheelR| | | | | | | Pause|ScrolL| PrnSc| F12 | + * |------+------+------+------+------+------+------| |------+------+------+------+------+------+------| + * | CAPS | |Mouse3|Mouse2|Mouse1|WheelU| | | | ← | ↓ | ↑ | → | | | + * |------+------+------+------+------+------+------. .------+------+------+------+------+------+------| + * | |Accel0|Accel1|Accel2| |WheelD| |MouseL|MouseD|MouseU|MouseR| | | + * |------+------+------+------+------+--+---+--+------. .------+--+---+--+------+------+------+------+------| + * | | | | | | | | | | | | | | | | + * .---------------------------. .------| |------| |------| |------. .---------------------------. + * | | | | | | | | + * .--------------------. .--------------------. + */ + [_RAISE] = 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, + _______, _______, _______, MS_WHLL, MS_WHLR, _______, _______, _______, _______, _______, KC_PAUS, KC_SCRL, KC_PSCR, KC_F12, + KC_CAPS, _______, MS_BTN3, MS_BTN2, MS_BTN1, MS_WHLU, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, MS_ACL0, MS_ACL1, MS_ACL2, _______, MS_WHLD, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + diff --git a/keyboards/mzmkb/slimdash/rev1/keymaps/vial/rules.mk b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/rules.mk new file mode 100644 index 0000000000..e2e5ae028c --- /dev/null +++ b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/rules.mk @@ -0,0 +1,7 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes + +OLED_ENABLE = no +ENCODER_ENABLE = no +ENCODER_MAP_ENABLE = no +VIALRGB_ENABLE = yes diff --git a/keyboards/mzmkb/slimdash/rev1/keymaps/vial/vial.json b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/vial.json new file mode 100644 index 0000000000..aaa855da67 --- /dev/null +++ b/keyboards/mzmkb/slimdash/rev1/keymaps/vial/vial.json @@ -0,0 +1,41 @@ +{ + "lighting": "vialrgb", + "matrix": { + "rows": 10, + "cols": 7 + }, + "layouts": { + "keymap": [ + { + "name": "slimDash" + }, + [ { "x": 3 }, "0,3", { "x": 10.5 }, "5,3" ], + [ { "y": -0.875, "x": 2 }, "0,2", { "x": 1 }, "0,4", { "x": 8.5 }, "5,4", { "x": 1 }, "5,2" ], + [ { "y": -0.875, "x": 5 }, "0,5", { "x": 6.5 }, "5,5" ], + [ { "y": -0.875 }, "0,0", "0,1", { "x": 14.5 }, "5,1", "5,0" ], + [ { "y": -0.625, "x": 6 }, "0,6", { "x": 4.5 }, "5,6" ], + [ { "y": -0.75, "x": 3 }, "1,3", { "x": 10.5 }, "6,3" ], + [ { "y": -0.875, "x": 2 }, "1,2", { "x": 1 }, "1,4", { "x": 8.5 }, "6,4", { "x": 1 }, "6,2" ], + [ { "y": -0.875, "x": 5 }, "1,5", { "x": 6.5 }, "6,5" ], + [ { "y": -0.875 }, "1,0", "1,1", { "x": 14.5 }, "6,1", "6,0" ], + [ { "y": -0.625, "x": 6 }, "1,6", { "x": 4.5 }, "6,6" ], + [ { "y": -0.75, "x": 3 }, "2,3", { "x": 10.5 }, "7,3" ], + [ { "y": -0.875, "x": 2 }, "2,2", { "x": 1, "n": true }, "2,4", { "x": 8.5, "n": true }, "7,4", { "x": 1 }, "7,2" ], + [ { "y": -0.875, "x": 5 }, "2,5", { "x": 6.5 }, "7,5" ], + [ { "y": -0.875 }, "2,0", "2,1", { "x": 14.5 }, "7,1", "7,0" ], + [ { "y": -0.625, "x": 6 }, "2,6", { "x": 4.5 }, "7,6" ], + [ { "y": -0.75, "x": 3 }, "3,3", { "x": 10.5 }, "8,3" ], + [ { "y": -0.875, "x": 2 }, "3,2", { "x": 1 }, "3,4", { "x": 8.5 }, "8,4", { "x": 1 }, "8,2" ], + [ { "y": -0.875, "x": 5 }, "3,5", { "x": 6.5 }, "8,5" ], + [ { "y": -0.875 }, "3,0", "3,1", { "x": 14.5 }, "8,1", "8,0" ], + [ { "y": -0.375, "x": 3 }, "4,3", { "x": 10.5 }, "9,3" ], + [ { "y": -0.875, "x": 2 }, "4,2", { "x": 12.5 }, "9,2" ], + [ { "y": -0.75 }, "4,0", "4,1", { "x": 14.5 }, "9,1", "9,0" ], + [ { "ry": 4.25, "y": -0.25, "x": 11.25, "h": 2 }, "9,5" ], + [ { "rx": 6.5, "y": -0.25, "x": -0.25, "h": 2 }, "4,5", "3,6" ], + [ { "x": -1.25 }, "4,4", { "x": 1 }, "4,6" ], + [ { "rx": 13, "y": -0.25, "x": -2.75 }, "8,6" ], + [ { "x": -2.75 }, "9,6", { "x": 1 }, "9,4" ] + ] + } +} From 2a8b23eb87b4ff8c2584bcd0c3fb580d2cd0ab01 Mon Sep 17 00:00:00 2001 From: H3lli0n Date: Sun, 27 Jul 2025 05:57:48 +0200 Subject: [PATCH 04/24] feat: adding vial support on WiredIn Protagonist (#913) * feat: adding vial support on WiredIn Protagonist * fix: pro_h/keymaps/vial/vial.json Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: pro_s/keymaps/vial/vial.json Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: pro_s unnecessary config.h define Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: pro_s unnecessary config.h define Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: pro_h unnecessary config.h define Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * fix: missing json tag * fix: pro-s row number Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --------- Co-authored-by: H3lli0n Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> --- .../protagonist/pro_h/keymaps/vial/config.h | 12 + .../protagonist/pro_h/keymaps/vial/keymap.c | 33 +++ .../protagonist/pro_h/keymaps/vial/rules.mk | 2 + .../protagonist/pro_h/keymaps/vial/vial.json | 227 ++++++++++++++++ .../protagonist/pro_s/keymaps/vial/config.h | 12 + .../protagonist/pro_s/keymaps/vial/keymap.c | 33 +++ .../protagonist/pro_s/keymaps/vial/rules.mk | 2 + .../protagonist/pro_s/keymaps/vial/vial.json | 255 ++++++++++++++++++ 8 files changed, 576 insertions(+) create mode 100644 keyboards/wiredin/protagonist/pro_h/keymaps/vial/config.h create mode 100644 keyboards/wiredin/protagonist/pro_h/keymaps/vial/keymap.c create mode 100644 keyboards/wiredin/protagonist/pro_h/keymaps/vial/rules.mk create mode 100644 keyboards/wiredin/protagonist/pro_h/keymaps/vial/vial.json create mode 100644 keyboards/wiredin/protagonist/pro_s/keymaps/vial/config.h create mode 100644 keyboards/wiredin/protagonist/pro_s/keymaps/vial/keymap.c create mode 100644 keyboards/wiredin/protagonist/pro_s/keymaps/vial/rules.mk create mode 100644 keyboards/wiredin/protagonist/pro_s/keymaps/vial/vial.json diff --git a/keyboards/wiredin/protagonist/pro_h/keymaps/vial/config.h b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/config.h new file mode 100644 index 0000000000..bb4022efee --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/config.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#define VIAL_KEYBOARD_UID {0x1E, 0xE4, 0x47, 0x11, 0xD0, 0xB6, 0xE2, 0x7E} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#define VIAL_TAP_DANCE_ENTRIES 10 +#define VIAL_COMBO_ENTRIES 15 +#define VIAL_KEY_OVERRIDE_ENTRIES 10 diff --git a/keyboards/wiredin/protagonist/pro_h/keymaps/vial/keymap.c b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/keymap.c new file mode 100644 index 0000000000..4c437d8da9 --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 Gondolindrim + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + QK_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_BSPC, + KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_COLN, 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, MO(1) , KC_RCTL +), +[1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/wiredin/protagonist/pro_h/keymaps/vial/rules.mk b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/rules.mk new file mode 100644 index 0000000000..6bc7063adc --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/wiredin/protagonist/pro_h/keymaps/vial/vial.json b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/vial.json new file mode 100644 index 0000000000..254c450a62 --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_h/keymaps/vial/vial.json @@ -0,0 +1,227 @@ + { + "matrix": { + "rows": 6, + "cols": 14 + }, + "lighting": "qmk_rgblight", + "layouts": { + "labels":[ + "Split Backspace", + "Split Right Shift", + [ + "Bottom Row", + "WK", + "WKL", + "HHKB" + ] + ], + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "c": "#777777", + "w": 2 + }, + "0,13\n\n\n0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "0,13\n\n\n0,1", + "4,13\n\n\n0,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "c": "#777777", + "w": 2.25 + }, + "2,13" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "3,12\n\n\n1,0", + { + "x": 0.25, + "w": 1.75 + }, + "3,12\n\n\n1,1", + { + "c": "#cccccc" + }, + "3,13\n\n\n1,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "5,0\n\n\n2,0", + "5,1\n\n\n2,0", + { + "w": 1.5 + }, + "5,2\n\n\n2,0", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,0", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n2,0", + "4,11\n\n\n2,0", + { + "w": 1.5 + }, + "4,12\n\n\n2,0" + ], + [ + { + "y": 0.25, + "w": 1.5 + }, + "5,0\n\n\n2,1", + { + "d": true + }, + "5,1\n\n\n2,1", + { + "w": 1.5 + }, + "5,2\n\n\n2,1", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,1", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n2,1", + { + "d": true + }, + "4,11\n\n\n2,1", + { + "w": 1.5 + }, + "4,12\n\n\n2,1" + ], + [ + { + "w": 1.5, + "d": true + }, + "5,0\n\n\n2,2", + "5,1\n\n\n2,2", + { + "w": 1.5 + }, + "5,2\n\n\n2,2", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,2", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n2,2", + "4,11\n\n\n2,2", + { + "w": 1.5, + "d": true + }, + "4,12\n\n\n2,2" + ] + ] + } +} diff --git a/keyboards/wiredin/protagonist/pro_s/keymaps/vial/config.h b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/config.h new file mode 100644 index 0000000000..1f0c01c683 --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/config.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#pragma once + +#define VIAL_KEYBOARD_UID {0xAC, 0xE2, 0x20, 0xEF, 0x1D, 0x04, 0x18, 0x8C} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#define VIAL_TAP_DANCE_ENTRIES 10 +#define VIAL_COMBO_ENTRIES 15 +#define VIAL_KEY_OVERRIDE_ENTRIES 10 diff --git a/keyboards/wiredin/protagonist/pro_s/keymaps/vial/keymap.c b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/keymap.c new file mode 100644 index 0000000000..68bc778caa --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/keymap.c @@ -0,0 +1,33 @@ +/* Copyright 2020 Gondolindrim + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all(/* Base */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, 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_RALT, MO(1), KC_RCTL + ), + [1] = LAYOUT_all( + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +}; diff --git a/keyboards/wiredin/protagonist/pro_s/keymaps/vial/rules.mk b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/wiredin/protagonist/pro_s/keymaps/vial/vial.json b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/vial.json new file mode 100644 index 0000000000..23740636c6 --- /dev/null +++ b/keyboards/wiredin/protagonist/pro_s/keymaps/vial/vial.json @@ -0,0 +1,255 @@ +{ + "matrix": { + "rows": 7, + "cols": 14 + }, + "lighting": "qmk_rgblight", + "layouts": { + "labels":[ + "Split Backspace", + "Split Right Shift", + [ + "Bottom Row", + "WK", + "WKL", + "HHKB" + ], + "Split Left Shift", + "ISO Enter" + ], + "keymap": [ + [ + { + "x": 2.5, + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "c": "#777777", + "w": 2 + }, + "0,13\n\n\n0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "0,13\n\n\n0,1", + "4,13\n\n\n0,1" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13\n\n\n4,0", + { + "x": 1.25, + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "2,13\n\n\n4,1" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "c": "#777777", + "w": 2.25 + }, + "2,13\n\n\n4,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "2,12\n\n\n4,1" + ], + [ + { + "w": 1.25 + }, + "6,0\n\n\n3,1", + "6,1\n\n\n3,1", + { + "x": 0.25, + "c": "#aaaaaa", + "w": 2.25 + }, + "6,0\n\n\n3,0", + { + "c": "#cccccc" + }, + "6,2", + "6,3", + "6,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "3,12\n\n\n1,0", + { + "x": 0.25, + "w": 1.75 + }, + "3,12\n\n\n1,1", + { + "c": "#cccccc" + }, + "3,13\n\n\n1,1" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.5 + }, + "5,0\n\n\n2,0", + "5,1\n\n\n2,0", + { + "w": 1.5 + }, + "5,2\n\n\n2,0", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,0", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n2,0", + "4,11\n\n\n2,0", + { + "w": 1.5 + }, + "4,12\n\n\n2,0" + ], + [ + { + "y": 0.25, + "x": 2.5, + "w": 1.5 + }, + "5,0\n\n\n2,1", + { + "d": true + }, + "5,1\n\n\n2,1", + { + "w": 1.5 + }, + "5,2\n\n\n2,1", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,1", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n2,1", + { + "d": true + }, + "4,11\n\n\n2,1", + { + "w": 1.5 + }, + "4,12\n\n\n2,1" + ], + [ + { + "x": 2.5, + "w": 1.5, + "d": true + }, + "5,0\n\n\n2,2", + "5,1\n\n\n2,2", + { + "w": 1.5 + }, + "5,2\n\n\n2,2", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,2", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n2,2", + "4,11\n\n\n2,2", + { + "w": 1.5, + "d": true + }, + "4,12\n\n\n2,2" + ] + ] + } +} From 79feea235c0f3eb767671defff415f512e65ff92 Mon Sep 17 00:00:00 2001 From: VeyPatch <126267034+VeyPatch@users.noreply.github.com> Date: Tue, 29 Jul 2025 04:04:50 +0200 Subject: [PATCH 05/24] fix: Don't disable LTO (#916) --- keyboards/splitkb/elora/keymaps/vial/rules.mk | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/splitkb/elora/keymaps/vial/rules.mk b/keyboards/splitkb/elora/keymaps/vial/rules.mk index 236f77f192..62cdf018e7 100644 --- a/keyboards/splitkb/elora/keymaps/vial/rules.mk +++ b/keyboards/splitkb/elora/keymaps/vial/rules.mk @@ -1,8 +1,6 @@ # Copyright 2024 splitkb.com (support@splitkb.com) # SPDX-License-Identifier: GPL-2.0-or-later -LTO_ENABLE = no - ## Vial-specific settings VIA_ENABLE = yes From df52e039b2aa7c9ee40641c7add69c7b4d4783a9 Mon Sep 17 00:00:00 2001 From: "A.L.Ko" Date: Sat, 2 Aug 2025 06:43:01 +0500 Subject: [PATCH 06/24] Add keyboards/alk0/cornedeon (#914) * +keyboards/alk0/cornedeon * *READMI * Update keyboards/alk0/cornedeon/keymaps/vial/vial.json Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update keyboards/alk0/cornedeon/README.md Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update keyboards/alk0/cornedeon/README.md Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update keyboards/alk0/cornedeon/keymaps/vial/keymap.c Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update keyboards/alk0/cornedeon/keymaps/vial/rules.mk Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update keyboards/alk0/cornedeon/keymaps/vial/rules.mk Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Update keyboards/alk0/cornedeon/keymaps/default/keymap.c Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> * Fixed suggestions * -postconfig; +readme; * +rev2 native rp2040 * Update README.md * *fix rgb matrix * +rev2 tested * Fix vial rules.mk for rev1_5 compatibility --------- Co-authored-by: alko Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Co-authored-by: A.L.K Co-authored-by: alko --- keyboards/alko/cornedeon/README.md | 10 + keyboards/alko/cornedeon/info.json | 159 +++++++++++++++ .../alko/cornedeon/keymaps/default/config.h | 22 +++ .../alko/cornedeon/keymaps/default/keymap.c | 44 +++++ .../alko/cornedeon/keymaps/vial/config.h | 34 ++++ .../alko/cornedeon/keymaps/vial/keymap.c | 67 +++++++ .../alko/cornedeon/keymaps/vial/rules.mk | 18 ++ .../alko/cornedeon/keymaps/vial/vial.json | 27 +++ keyboards/alko/cornedeon/rev1_5/config.h | 1 + keyboards/alko/cornedeon/rev1_5/keyboard.json | 46 +++++ keyboards/alko/cornedeon/rev2/config.h | 18 ++ keyboards/alko/cornedeon/rev2/keyboard.json | 182 ++++++++++++++++++ 12 files changed, 628 insertions(+) create mode 100644 keyboards/alko/cornedeon/README.md create mode 100644 keyboards/alko/cornedeon/info.json create mode 100644 keyboards/alko/cornedeon/keymaps/default/config.h create mode 100644 keyboards/alko/cornedeon/keymaps/default/keymap.c create mode 100644 keyboards/alko/cornedeon/keymaps/vial/config.h create mode 100644 keyboards/alko/cornedeon/keymaps/vial/keymap.c create mode 100644 keyboards/alko/cornedeon/keymaps/vial/rules.mk create mode 100644 keyboards/alko/cornedeon/keymaps/vial/vial.json create mode 100644 keyboards/alko/cornedeon/rev1_5/config.h create mode 100644 keyboards/alko/cornedeon/rev1_5/keyboard.json create mode 100644 keyboards/alko/cornedeon/rev2/config.h create mode 100644 keyboards/alko/cornedeon/rev2/keyboard.json diff --git a/keyboards/alko/cornedeon/README.md b/keyboards/alko/cornedeon/README.md new file mode 100644 index 0000000000..5ea8627341 --- /dev/null +++ b/keyboards/alko/cornedeon/README.md @@ -0,0 +1,10 @@ +# Cornedeon Keyboard +## Based on Corne Keyboard [CRKBD](https://github.com/foostan/crkbd) +Improved Corne 3 keyboard with full 4x6 matrix. + +Keyboard Maintainer: [alk0](https://github.com/alk0-kbd/) [alko-kbd@alk0.ru](mailto:alko-kbd@alk0.ru) +Hardware Supported: Corne 3 PCB, Handwired + +![Corne3-based Cornedeon](https://cornedeon.ru/img/cornedeon_3_overviev.jpg) + +qmk compile -kb alko/cornedeon/rev2 -km vial diff --git a/keyboards/alko/cornedeon/info.json b/keyboards/alko/cornedeon/info.json new file mode 100644 index 0000000000..cab4e69338 --- /dev/null +++ b/keyboards/alko/cornedeon/info.json @@ -0,0 +1,159 @@ +{ + "maintainer": "alko", + "manufacturer": "alko", + "keyboard_name": "Cornedeon", + "url": "https://github.com/alko-kbd/qmk-vial", + "usb": { + "vid": "0x4653" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "oled": false, + "rgblight": false, + "rgb_matrix": true + }, + "bootmagic": { + "matrix": [0, 1] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [4, 1] + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + + {"matrix": [3, 0], "x": 0, "y": 3.7}, + {"matrix": [3, 1], "x": 1, "y": 3.7}, + {"matrix": [3, 2], "x": 2, "y": 3.7}, + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + {"matrix": [7, 2], "x": 12, "y": 3.7} + {"matrix": [7, 1], "x": 13, "y": 3.7} + {"matrix": [7, 0], "x": 14, "y": 3.7} + ] + } + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 120 + "led_count": 60, + "split": true, + "split_count": [30, 30], + "layout": [ + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 1}, + {"matrix": [2, 5], "x": 85, "y": 39, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 2, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 19, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 55, "flags": 1}, + {"matrix": [2, 3], "x": 50, "y": 35, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 3, "flags": 4}, + {"matrix": [1, 2], "x": 33, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 42, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 24, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 7, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 41, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 63, "flags": 1}, + {"matrix": [3, 1], "x": 16, "y": 63, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 63, "flags": 1}, + {"x": 139, "y": 16, "flags": 2}, + {"x": 174, "y": 13, "flags": 2}, + {"x": 208, "y": 20, "flags": 2}, + {"x": 208, "y": 38, "flags": 2}, + {"x": 174, "y": 48, "flags": 2}, + {"x": 139, "y": 52, "flags": 2}, + {"matrix": [7, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [6, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [4, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [6, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [4, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 41, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 63, "flags": 1}, + {"matrix": [7, 1], "x": 208, "y": 63, "flags": 1}, + {"matrix": [7, 2], "x": 191, "y": 63, "flags": 1} + ], + }, + "rgblight": { + "max_brightness": 120 + } +} diff --git a/keyboards/alko/cornedeon/keymaps/default/config.h b/keyboards/alko/cornedeon/keymaps/default/config.h new file mode 100644 index 0000000000..b045efebfc --- /dev/null +++ b/keyboards/alko/cornedeon/keymaps/default/config.h @@ -0,0 +1,22 @@ +/* +This is the c configuration file for the keymap + +Copyright 2012 Jun Wako +Copyright 2015 Jack Humbert + +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 . +*/ + +#pragma once + diff --git a/keyboards/alko/cornedeon/keymaps/default/keymap.c b/keyboards/alko/cornedeon/keymaps/default/keymap.c new file mode 100644 index 0000000000..9c76166885 --- /dev/null +++ b/keyboards/alko/cornedeon/keymaps/default/keymap.c @@ -0,0 +1,44 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#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_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL,KC_LEFT,KC_RIGHT, KC_LALT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RGUI, KC_DOWN, KC_UP, KC_RCTL + //`------------------------------------------------------' `-----------------------------------------------------' + ), + [1] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_TAB, KC_TILD, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_INS, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, XXXXXXX, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_UNDS, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3,KC_KP_EQUAL,KC_SLSH,KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_HOME, KC_END, KC_LALT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RGUI, KC_PGDN, KC_PGUP, KC_RCTL + //`-----------------------------------------------------' `-----------------------------------------------------' + ) +}; diff --git a/keyboards/alko/cornedeon/keymaps/vial/config.h b/keyboards/alko/cornedeon/keymaps/vial/config.h new file mode 100644 index 0000000000..fc243f8896 --- /dev/null +++ b/keyboards/alko/cornedeon/keymaps/vial/config.h @@ -0,0 +1,34 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xA8, 0xE7, 0xCA, 0x40, 0x6B, 0x53, 0x0B, 0x1F} +#define VIAL_UNLOCK_COMBO_ROWS {0, 0} +#define VIAL_UNLOCK_COMBO_COLS {0, 1} + +// For master half only when MASTER_LEFT/MASTER_RIGHT using +//#define WAIT_FOR_USB + +/* Select hand configuration */ + +//#define MASTER_LEFT +//#define MASTER_RIGHT +// #define EE_HANDS +// moved to revXX +//#define SPLIT_HAND_PIN GP8 diff --git a/keyboards/alko/cornedeon/keymaps/vial/keymap.c b/keyboards/alko/cornedeon/keymaps/vial/keymap.c new file mode 100644 index 0000000000..1faf8a230f --- /dev/null +++ b/keyboards/alko/cornedeon/keymaps/vial/keymap.c @@ -0,0 +1,67 @@ +/* +Copyright 2019 @foostan +Copyright 2020 Drashna Jaelre <@drashna> + +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 . +*/ + +#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_BSPC, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL,KC_LEFT,KC_RIGHT, KC_LALT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RGUI, KC_UP, KC_DOWN, KC_RCTL + //`------------------------------------------------------' `-----------------------------------------------------' + ), + [1] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_ESC,KC_GRAVE, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_INS, KC_DEL, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_TAB, XXXXXXX, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_UNDS, KC_BSLS, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3,KC_KP_EQUAL,KC_SLSH,KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_HOME, KC_END, KC_LALT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, KC_PGUP, KC_PGDN, KC_RCTL + //`-----------------------------------------------------' `-----------------------------------------------------' + ), + [2] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + KC_PAST, KC_PSLS, KC_KP_0, KC_KP_7, KC_KP_8, KC_KP_9, KC_F7, KC_F8, KC_F9, KC_F10, KC_PSCR, KC_BRK, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_PPLS, KC_PMNS, KC_PDOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM, KC_SCLN, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LSFT, XXXXXXX, KC_PEQL, KC_KP_1, KC_KP_2, KC_KP_3, KC_F1, KC_F2, KC_F3, KC_F12, KC_APP, KC_RSFT, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + KC_LCTL, KC_HOME, KC_END, KC_CALC, KC_TRNS, KC_PENT, KC_ENT, KC_TRNS, KC_CAPS, KC_PGUP, KC_PGDN, KC_RCTL + //`-----------------------------------------------------' `-----------------------------------------------------' + ), + [3] = LAYOUT( + //,-----------------------------------------------------. ,-----------------------------------------------------. + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + //|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + //`-----------------------------------------------------' `-----------------------------------------------------' + ) +}; + diff --git a/keyboards/alko/cornedeon/keymaps/vial/rules.mk b/keyboards/alko/cornedeon/keymaps/vial/rules.mk new file mode 100644 index 0000000000..1243e76d14 --- /dev/null +++ b/keyboards/alko/cornedeon/keymaps/vial/rules.mk @@ -0,0 +1,18 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes + +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = yes # Can't have RGBLIGHT and RGB_MATRIX at the same time. +VIALRGB_ENABLE = yes +MOUSEKEY_ENABLE = no +OLED_ENABLE = no +OLED_DRIVER = SSD1306 +EXTRAKEY_ENABLE = no +COMBO_ENABLE = no + +QMK_SETTINGS = no + +CAPS_WORD_ENABLE = no +LAYER_LOCK_ENABLE = no +REPEAT_KEY_ENABLE = no diff --git a/keyboards/alko/cornedeon/keymaps/vial/vial.json b/keyboards/alko/cornedeon/keymaps/vial/vial.json new file mode 100644 index 0000000000..de2e6f7b1f --- /dev/null +++ b/keyboards/alko/cornedeon/keymaps/vial/vial.json @@ -0,0 +1,27 @@ +{ + "lighting": "vialrgb", + "matrix": { "rows": 8, "cols": 6 }, + "layouts": { + "keymap": [ + [{"y":1,"x":3.5},"0,3",{"x":7.5},"4,3"], + [{"y":-0.875,"x":2.5},"0,2",{"x":1},"0,4",{"x":5.5},"4,4",{"x":1},"4,2"], + [{"y":-0.875,"x":5.5},"0,5",{"x":3.5},"4,5"], + [{"y":-0.875,"x":0.5},"0,0","0,1",{"x":11.5},"4,1","4,0"], + [{"y":-0.375,"x":3.5},"1,3",{"x":7.5},"5,3"], + [{"y":-0.875,"x":2.5},"1,2",{"x":1},"1,4",{"x":5.5},"5,4",{"x":1},"5,2"], + [{"y":-0.875,"x":5.5},"1,5",{"x":3.5},"5,5"], + [{"y":-0.875,"x":0.5},"1,0","1,1",{"x":11.5},"5,1","5,0"], + [{"y":-0.375,"x":3.5},"2,3",{"x":7.5},"6,3"], + [{"y":-0.875,"x":2.5},"2,2",{"x":1},"2,4",{"x":5.5},"6,4",{"x":1},"6,2"], + [{"y":-0.875,"x":5.5},"2,5",{"x":3.5},"6,5"], + [{"y":-0.875,"x":0.5},"2,0","2,1",{"x":11.5},"6,1","6,0"], + [{"y":-0.125,"x":4},"3,3",{"x":6.5},"7,3"], + [{"y":-0.875,"x":0.5},"3,0","3,1",{"x":11.5},"7,1","7,0"], + [{"y":-1.25,"x":2.5},"3,2",{"x":9.5},"7,2"], + [{"r":15,"rx":4.5,"ry":9.1,"y":-4.85,"x":-0.5},"3,4"], + [{"r":30,"rx":5.4,"ry":9.3,"y":-5.05,"x":-1.4,"h":1.5},"3,5"], + [{"r":-30,"rx":11.1,"y":-5.05,"x":0.4,"h":1.5},"7,5"], + [{"r":-15,"rx":12,"ry":9.1,"y":-4.85,"x":-0.5},"7,4"] + ] + } +} diff --git a/keyboards/alko/cornedeon/rev1_5/config.h b/keyboards/alko/cornedeon/rev1_5/config.h new file mode 100644 index 0000000000..74f9e7d32a --- /dev/null +++ b/keyboards/alko/cornedeon/rev1_5/config.h @@ -0,0 +1 @@ +#define SPLIT_HAND_PIN B4 \ No newline at end of file diff --git a/keyboards/alko/cornedeon/rev1_5/keyboard.json b/keyboards/alko/cornedeon/rev1_5/keyboard.json new file mode 100644 index 0000000000..cd433d042c --- /dev/null +++ b/keyboards/alko/cornedeon/rev1_5/keyboard.json @@ -0,0 +1,46 @@ +{ + "keyboard_name": "Cornedion", + "usb": { + "pid": "0x0001", + "device_version": "0.0.1" + }, + "features": { + "extrakey": false, + "nkro": false, + "oled": false, + "mousekey": false, + "encoder": false, + "rgblight": false, + "rgbmatrix": true + }, + "build": { + "lto": false + }, + "matrix_pins": { + "cols": [ "F4", "F5", "F6", "F7", "B1", "B3" ], + "rows": [ "D4", "C6", "D7", "E6" ] + }, + "diode_direction": "COL2ROW", + "split": { + "serial": { + "pin": "D2" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "rgblight": { + "led_count": 60, + "split_count": [30, 30] + }, + "rgb_matrix": { + "led_count": 60, + "split_count": [30, 30] + }, + "ws2812": { + "pin": "D3" + }, + "development_board": "promicro" +} diff --git a/keyboards/alko/cornedeon/rev2/config.h b/keyboards/alko/cornedeon/rev2/config.h new file mode 100644 index 0000000000..ef09659326 --- /dev/null +++ b/keyboards/alko/cornedeon/rev2/config.h @@ -0,0 +1,18 @@ +// Copyright 2024 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +//#define SERIAL_USART_FULL_DUPLEX +//#define SERIAL_USART_RX_PIN GP2 +//#define SERIAL_USART_TX_PIN GP1 +#define USE_SERIAL +//#define SOFT_SERIAL_PIN GP1 +//#define USB_VBUS_PIN GP2 + +/* RP2040- and hardware-specific config */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 + +//#define SPLIT_HAND_PIN GP8 diff --git a/keyboards/alko/cornedeon/rev2/keyboard.json b/keyboards/alko/cornedeon/rev2/keyboard.json new file mode 100644 index 0000000000..5c647b1844 --- /dev/null +++ b/keyboards/alko/cornedeon/rev2/keyboard.json @@ -0,0 +1,182 @@ +{ + "maintainer": "alko", + "manufacturer": "alko", + "url": "https://github.com/alko-kbd/cornedeon", + "usb": { + "vid": "0x4653", + "pid": "0x0002", + "suspend_wakeup_delay": 200, + "device_version": "2.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "oled": false, + "rgblight": false, + "rgb_matrix": true, + "mousekey": true, + "encoder": false + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP22", "GP20"], + "rows": ["GP4", "GP5", "GP6", "GP7"] + }, + "bootmagic": { + "enabled": true, + "matrix": [ 0, 1 ] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [4, 1] + }, + "handedness": { + "pin": "GP8" + }, + "serial": { + "driver": "vendor", + "pin": "GP1" + }, + "transport": { + "sync": { + "matrix_state": true + }, + "watchdog": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.3}, + {"matrix": [0, 1], "x": 1, "y": 0.3}, + {"matrix": [0, 2], "x": 2, "y": 0.1}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.1}, + {"matrix": [0, 5], "x": 5, "y": 0.2}, + + {"matrix": [4, 5], "x": 9, "y": 0.2}, + {"matrix": [4, 4], "x": 10, "y": 0.1}, + {"matrix": [4, 3], "x": 11, "y": 0}, + {"matrix": [4, 2], "x": 12, "y": 0.1}, + {"matrix": [4, 1], "x": 13, "y": 0.3}, + {"matrix": [4, 0], "x": 14, "y": 0.3}, + + {"matrix": [1, 0], "x": 0, "y": 1.3}, + {"matrix": [1, 1], "x": 1, "y": 1.3}, + {"matrix": [1, 2], "x": 2, "y": 1.1}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.1}, + {"matrix": [1, 5], "x": 5, "y": 1.2}, + + {"matrix": [5, 5], "x": 9, "y": 1.2}, + {"matrix": [5, 4], "x": 10, "y": 1.1}, + {"matrix": [5, 3], "x": 11, "y": 1}, + {"matrix": [5, 2], "x": 12, "y": 1.1}, + {"matrix": [5, 1], "x": 13, "y": 1.3}, + {"matrix": [5, 0], "x": 14, "y": 1.3}, + + {"matrix": [2, 0], "x": 0, "y": 2.3}, + {"matrix": [2, 1], "x": 1, "y": 2.3}, + {"matrix": [2, 2], "x": 2, "y": 2.1}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.1}, + {"matrix": [2, 5], "x": 5, "y": 2.2}, + + {"matrix": [6, 5], "x": 9, "y": 2.2}, + {"matrix": [6, 4], "x": 10, "y": 2.1}, + {"matrix": [6, 3], "x": 11, "y": 2}, + {"matrix": [6, 2], "x": 12, "y": 2.1}, + {"matrix": [6, 1], "x": 13, "y": 2.3}, + {"matrix": [6, 0], "x": 14, "y": 2.3}, + + {"matrix": [3, 0], "x": 0, "y": 3.7}, + {"matrix": [3, 1], "x": 1, "y": 3.7}, + {"matrix": [3, 2], "x": 2, "y": 3.7}, + {"matrix": [3, 3], "x": 4, "y": 3.7}, + {"matrix": [3, 4], "x": 5, "y": 3.7}, + {"matrix": [3, 5], "x": 6, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 5], "x": 8, "y": 3.2, "h": 1.5}, + {"matrix": [7, 4], "x": 9, "y": 3.7}, + {"matrix": [7, 3], "x": 10, "y": 3.7} + {"matrix": [7, 2], "x": 12, "y": 3.7} + {"matrix": [7, 1], "x": 13, "y": 3.7} + {"matrix": [7, 0], "x": 14, "y": 3.7} + ] + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP0" + }, + "rgblight": { + "led_count": 60, + "split": true, + "split_count": [30, 30], + "max_brightness": 120, + "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 + } + }, + "rgb_matrix": { + "animations": { + "alphas_mods": true, + "gradient_up_down": true, + "gradient_left_right": true, + "breathing": true, + "band_sat": true, + "band_val": true, + "band_pinwheel_sat": true, + "band_pinwheel_val": true, + "band_spiral_sat": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": 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 + }, + "sleep": true + }, +} From 8aee20919a28baf19d78996a54ee71de508e7153 Mon Sep 17 00:00:00 2001 From: H3lli0n Date: Sat, 2 Aug 2025 03:43:27 +0200 Subject: [PATCH 07/24] feat: adding support for HLB CantorMX F411 (#917) * feat: adding CantorMX F411 support * fix: documentation * fix: bootloader definition --------- Co-authored-by: H3lli0n --- keyboards/hlb/cantor/config.h | 14 + keyboards/hlb/cantor/halconf.h | 8 + keyboards/hlb/cantor/keyboard.json | 92 +++++++ keyboards/hlb/cantor/keymaps/default/keymap.c | 28 ++ keyboards/hlb/cantor/keymaps/vial/config.h | 16 ++ keyboards/hlb/cantor/keymaps/vial/keymap.c | 97 +++++++ keyboards/hlb/cantor/keymaps/vial/rules.mk | 9 + keyboards/hlb/cantor/keymaps/vial/vial.json | 259 ++++++++++++++++++ keyboards/hlb/cantor/mcuconf.h | 9 + keyboards/hlb/cantor/readme.md | 28 ++ 10 files changed, 560 insertions(+) create mode 100644 keyboards/hlb/cantor/config.h create mode 100644 keyboards/hlb/cantor/halconf.h create mode 100644 keyboards/hlb/cantor/keyboard.json create mode 100644 keyboards/hlb/cantor/keymaps/default/keymap.c create mode 100644 keyboards/hlb/cantor/keymaps/vial/config.h create mode 100644 keyboards/hlb/cantor/keymaps/vial/keymap.c create mode 100644 keyboards/hlb/cantor/keymaps/vial/rules.mk create mode 100644 keyboards/hlb/cantor/keymaps/vial/vial.json create mode 100644 keyboards/hlb/cantor/mcuconf.h create mode 100644 keyboards/hlb/cantor/readme.md diff --git a/keyboards/hlb/cantor/config.h b/keyboards/hlb/cantor/config.h new file mode 100644 index 0000000000..cf52d85ad7 --- /dev/null +++ b/keyboards/hlb/cantor/config.h @@ -0,0 +1,14 @@ +// Copyright 2022 Diego Palacios (@diepala) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN B6 // USART TX pin +#define SERIAL_USART_RX_PIN B7 // USART RX pin + +#define BOOTMAGIC_ROW 3 +#define BOOTMAGIC_COLUMN 0 + +#define BOOTMAGIC_ROW_RIGHT 7 +#define BOOTMAGIC_COLUMN_RIGHT 2 diff --git a/keyboards/hlb/cantor/halconf.h b/keyboards/hlb/cantor/halconf.h new file mode 100644 index 0000000000..8214c4bc6d --- /dev/null +++ b/keyboards/hlb/cantor/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2022 Diego Palacios (@diepala) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SERIAL TRUE + +#include_next diff --git a/keyboards/hlb/cantor/keyboard.json b/keyboards/hlb/cantor/keyboard.json new file mode 100644 index 0000000000..7cfdbbbf9b --- /dev/null +++ b/keyboards/hlb/cantor/keyboard.json @@ -0,0 +1,92 @@ +{ + "manufacturer": "HLB", + "keyboard_name": "CantorMX F411", + "maintainer": "H3lli0n", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "processor": "STM32F411", + "bootloader": "stm32-dfu", + "url": "https://github.com/H3lli0n/CantorMx-3DP-case", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "matrix_pins": { + "direct": [ + ["B1", "B10", "A8", "B15", "B14", "B13"], + ["B9", "B8", "B5", "B4", "B3", "A15"], + ["A3", "A4", "A5", "A6", "A7", "B0"], + ["A2", "A1", "A0", null, null, null] + ] + }, + "split": { + "enabled": true, + "matrix_pins": { + "right": { + "direct": [ + ["B13", "B14", "B15", "A8", "B10", "B1"], + ["A15", "B3", "B4", "B5", "B8", "B9"], + ["B0", "A7", "A6", "A5", "A4", "A3"], + ["A0", "A1", "A2", null, null, null] + ] + } + }, + "serial": { + "driver": "usart" + } + }, + "community_layouts": ["split_3x6_3"], + "layouts": { + "LAYOUT_split_3x6_3": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.25}, + {"matrix": [0, 1], "x": 1, "y": 0.25}, + {"matrix": [0, 2], "x": 2, "y": 0.125}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0.125}, + {"matrix": [0, 5], "x": 5, "y": 0.25}, + {"matrix": [4, 0], "x": 8, "y": 0.25}, + {"matrix": [4, 1], "x": 9, "y": 0.125}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 3], "x": 11, "y": 0.125}, + {"matrix": [4, 4], "x": 12, "y": 0.25}, + {"matrix": [4, 5], "x": 13, "y": 0.25}, + {"matrix": [1, 0], "x": 0, "y": 1.25}, + {"matrix": [1, 1], "x": 1, "y": 1.25}, + {"matrix": [1, 2], "x": 2, "y": 1.125}, + {"matrix": [1, 3], "x": 3, "y": 1}, + {"matrix": [1, 4], "x": 4, "y": 1.125}, + {"matrix": [1, 5], "x": 5, "y": 1.25}, + {"matrix": [5, 0], "x": 8, "y": 1.25}, + {"matrix": [5, 1], "x": 9, "y": 1.125}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 3], "x": 11, "y": 1.125}, + {"matrix": [5, 4], "x": 12, "y": 1.25}, + {"matrix": [5, 5], "x": 13, "y": 1.25}, + {"matrix": [2, 0], "x": 0, "y": 2.25}, + {"matrix": [2, 1], "x": 1, "y": 2.25}, + {"matrix": [2, 2], "x": 2, "y": 2.125}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2.125}, + {"matrix": [2, 5], "x": 5, "y": 2.25}, + {"matrix": [6, 0], "x": 8, "y": 2.25}, + {"matrix": [6, 1], "x": 9, "y": 2.125}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 3], "x": 11, "y": 2.125}, + {"matrix": [6, 4], "x": 12, "y": 2.25}, + {"matrix": [6, 5], "x": 13, "y": 2.25}, + {"matrix": [3, 0], "x": 3.5, "y": 3.25}, + {"matrix": [3, 1], "x": 4.5, "y": 3.5}, + {"matrix": [3, 2], "x": 5.5, "y": 3.75}, + {"matrix": [7, 0], "x": 7.5, "y": 3.75}, + {"matrix": [7, 1], "x": 8.5, "y": 3.5}, + {"matrix": [7, 2], "x": 9.5, "y": 3.25} + ] + } + } +} diff --git a/keyboards/hlb/cantor/keymaps/default/keymap.c b/keyboards/hlb/cantor/keymaps/default/keymap.c new file mode 100644 index 0000000000..d4e03aa615 --- /dev/null +++ b/keyboards/hlb/cantor/keymaps/default/keymap.c @@ -0,0 +1,28 @@ +// Copyright 2022 Diego Palacios (@diepala) +// SPDX-License-Identifier: GPL-2.0 + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + * │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│ + * └───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┘ + * ┌───┐ ┌───┐ + * │GUI├───┐ ┌───┤Alt│ + * └───┤ ├───┐ ┌───┤ ├───┘ + * └───┤Bsp│ │Ent├───┘ + * └───┘ └───┘ + */ + [0] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LGUI, KC_SPC, KC_BSPC, KC_ENT, KC_SPC, KC_RALT + ) +}; + diff --git a/keyboards/hlb/cantor/keymaps/vial/config.h b/keyboards/hlb/cantor/keymaps/vial/config.h new file mode 100644 index 0000000000..fc583cd668 --- /dev/null +++ b/keyboards/hlb/cantor/keymaps/vial/config.h @@ -0,0 +1,16 @@ +#pragma once + +/* keyboard uid */ +#define VIAL_KEYBOARD_UID {0x0C, 0xA9, 0xA3, 0x03, 0xE0, 0x06, 0x52, 0x7E} + +#define VIAL_UNLOCK_COMBO_ROWS { 3, 7 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 2 } + +/* default layer count */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 +#define VIAL_TAP_DANCE_ENTRIES 20 + +/* Select hand configuration */ +#define EE_HANDS +#define SPLIT_WATCHDOG_ENABLE +#define SPLIT_WATCHDOG_TIMEOUT 20000 diff --git a/keyboards/hlb/cantor/keymaps/vial/keymap.c b/keyboards/hlb/cantor/keymaps/vial/keymap.c new file mode 100644 index 0000000000..74c0057137 --- /dev/null +++ b/keyboards/hlb/cantor/keymaps/vial/keymap.c @@ -0,0 +1,97 @@ +// Copyright 2022 Diego Palacios (@diepala) +// SPDX-License-Identifier: GPL-2.0 + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY = 0, + _DVORAK, + _COLEMAK_DH, + _NAV, + _SYM, + _MODS, +}; + +// Aliases for readability +#define QWERTY DF(_QWERTY) +#define COLEMAK DF(_COLEMAK_DH) +#define DVORAK DF(_DVORAK) + +#define SYM MO(_SYM) +#define NAV MO(_NAV) +#define MODS MO(_MODS) + +#define CTL_ESC MT(MOD_LCTL, KC_ESC) +#define CTL_QUOT MT(MOD_RCTL, KC_QUOTE) +#define CTL_MINS MT(MOD_RCTL, KC_MINUS) +#define ALT_ENT MT(MOD_LALT, KC_ENT) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * Base Layer: QWERTY + * ┌───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┬───┬───┬───┐ + * │Tab│ Q │ W │ E │ R │ T │ │ Y │ U │ I │ O │ P │Bsp│ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Ctl│ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ + * ├───┼───┼───┼───┼───┼───┤ ├───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │Sft│ + * └───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┴───┴───┘ + * ┌───┐ ┌───┐ + * │GUI├───┐ ┌───┤Alt│ + * └───┤ ├───┐ ┌───┤ ├───┘ + * └───┤Bsp│ │Ent├───┘ + * └───┘ └───┘ + */ + [_QWERTY] = LAYOUT_split_3x6_3( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTL_QUOT, + 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_BSPC, ALT_ENT, NAV, SYM, KC_SPC, MODS + ), + /* + * Base Layer: Dvorak + */ + [_DVORAK] = LAYOUT_split_3x6_3( + KC_TAB, KC_QUOTE, KC_COMM, KC_DOT, KC_P , KC_Y, KC_F, KC_G , KC_C , KC_R , KC_L , KC_BSPC, + CTL_ESC, KC_A , KC_S , KC_D , KC_F , KC_G, KC_D, KC_H , KC_T , KC_N , KC_S , CTL_MINS, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B, KC_B, KC_M , KC_W , KC_V , KC_Z , KC_RSFT, + KC_BSPC, ALT_ENT, NAV, SYM, KC_SPC, MODS + ), + /* + * Base Layer: Colemak DH + */ + [_COLEMAK_DH] = LAYOUT_split_3x6_3( + KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_B, KC_J, KC_L , KC_U , KC_Y ,KC_SCLN, KC_BSPC, + CTL_ESC , KC_A , KC_R , KC_S , KC_T , KC_G, KC_M, KC_N , KC_E , KC_I , KC_O , CTL_QUOT, + KC_LSFT , KC_Z , KC_X , KC_C , KC_D , KC_V, KC_K, KC_H ,KC_COMM, KC_DOT ,KC_SLSH, KC_RSFT, + KC_BSPC, ALT_ENT, NAV, SYM, KC_SPC, MODS + ), + /* + * Nav Layer: Fn, navigation + */ + [_NAV] = LAYOUT_split_3x6_3( + KC_TRNS, KC_F9 , KC_F10, KC_F11, KC_F12, KC_TRNS, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_VOLU, KC_DEL, + KC_TRNS, KC_F5 , KC_F6 , KC_F7 , KC_F8, KC_TRNS, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_VOLD, KC_INS, + KC_TRNS, KC_F1 , KC_F2 , KC_F3 , KC_F4, KC_TRNS, KC_PAUSE, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_PSCR, + KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_RALT, KC_TRNS + ), + /* + * Symboles + */ + [_SYM] = LAYOUT_split_3x6_3( + KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_EQL, + KC_TILD , KC_EXLM, KC_AT , KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PLUS, + KC_PIPE , KC_BSLS, KC_COLN, KC_SCLN, KC_MINS, KC_LBRC, KC_RBRC, KC_UNDS, KC_COMM, KC_DOT, KC_SLSH, KC_QUES, + KC_CAPS, KC_LCBR, KC_RCBR, KC_TRNS, KC_TRNS, KC_TRNS + ), + /* + * Layer for mods + */ + [_MODS] = LAYOUT_split_3x6_3( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QWERTY, + KC_TRNS, KC_LGUI, KC_LCTL, KC_LALT, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, DVORAK, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, COLEMAK, + KC_QUOTE, KC_CIRC, KC_SCLN, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + diff --git a/keyboards/hlb/cantor/keymaps/vial/rules.mk b/keyboards/hlb/cantor/keymaps/vial/rules.mk new file mode 100644 index 0000000000..06783389f9 --- /dev/null +++ b/keyboards/hlb/cantor/keymaps/vial/rules.mk @@ -0,0 +1,9 @@ +VIA_ENABLE = yes # Enable VIA +VIAL_ENABLE = yes # Enable VIAL + +#We need to specify bootloader and MCU for F411 8Mhz version of BlackPillS +MCU = STM32F411 + +#We are in split keyboard mode +SPLIT_KEYBOARD = yes +SERIAL_DRIVER = usart diff --git a/keyboards/hlb/cantor/keymaps/vial/vial.json b/keyboards/hlb/cantor/keymaps/vial/vial.json new file mode 100644 index 0000000000..257639300b --- /dev/null +++ b/keyboards/hlb/cantor/keymaps/vial/vial.json @@ -0,0 +1,259 @@ +{ + "lighting": "none", + "matrix": { + "rows": 8, + "cols": 6 + }, + "layouts": { + "keymap": [ + [ + { + "x": 3 + }, + "0,3", + { + "x": 7.5 + }, + "4,2" + ], + [ + { + "y": -0.75, + "x": 2 + }, + "0,2", + { + "x": 1 + }, + "0,4", + { + "x": 5.5 + }, + "4,1", + { + "x": 1 + }, + "4,3" + ], + [ + { + "y": -0.9, + "x": 5 + }, + "0,5", + { + "x": 3.5 + }, + "4,0" + ], + [ + { + "y": -0.3500000000000001 + }, + "0,0", + "0,1", + { + "x": 1 + }, + "1,3", + { + "x": 7.5 + }, + "5,2", + { + "x": 1 + }, + "4,4", + "4,5" + ], + [ + { + "y": -0.75, + "x": 2 + }, + "1,2", + { + "x": 1 + }, + "1,4", + { + "x": 5.5 + }, + "5,1", + { + "x": 1 + }, + "5,3" + ], + [ + { + "y": -0.8999999999999999, + "x": 5 + }, + "1,5", + { + "x": 3.5 + }, + "5,0" + ], + [ + { + "y": -0.3500000000000001 + }, + "1,0", + "1,1", + { + "x": 1 + }, + "2,3", + { + "x": 7.5 + }, + "6,2", + { + "x": 1 + }, + "5,4", + "5,5" + ], + [ + { + "y": -0.75, + "x": 2 + }, + "2,2", + { + "x": 1 + }, + "2,4", + { + "x": 5.5 + }, + "6,1", + { + "x": 1 + }, + "6,3" + ], + [ + { + "y": -0.8999999999999999, + "x": 5 + }, + "2,5", + { + "x": 3.5 + }, + "6,0" + ], + [ + { + "y": -0.3500000000000001 + }, + "2,0", + "2,1", + { + "x": 11.5 + }, + "6,4", + "6,5" + ], + [ + { + "r": 5, + "rx": 5, + "ry": 3.5, + "x": 0.09999999999999964 + }, + "3,1" + ], + [ + { + "rx": 10.75 + }, + "7,2" + ], + [ + { + "r": 15, + "rx": 6.5, + "y": 0.20000000000000018, + "x": -0.04999999999999982 + }, + "3,2" + ], + [ + { + "r": -15, + "rx": 8.25, + "y": 0.3900000000000001, + "x": -0.15000000000000036 + }, + "7,0" + ], + [ + { + "r": -5, + "rx": 3.6, + "y": 0.10000000000000009, + "x": 0.20000000000000018 + }, + "3,0" + ], + [ + { + "rx": 9.5, + "y": 0.10000000000000009, + "x": -0.05000000000000071 + }, + "7,1" + ] + ], + "LAYOUT_split_3x6_3": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0.25 }, + { "matrix": [0, 1], "x": 1, "y": 0.25 }, + { "matrix": [0, 2], "x": 2, "y": 0.125 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0.125 }, + { "matrix": [0, 5], "x": 5, "y": 0.25 }, + { "matrix": [4, 0], "x": 8, "y": 0.25 }, + { "matrix": [4, 1], "x": 9, "y": 0.125 }, + { "matrix": [4, 2], "x": 10, "y": 0 }, + { "matrix": [4, 3], "x": 11, "y": 0.125 }, + { "matrix": [4, 4], "x": 12, "y": 0.25 }, + { "matrix": [4, 5], "x": 13, "y": 0.25 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, + { "matrix": [1, 1], "x": 1, "y": 1.25 }, + { "matrix": [1, 2], "x": 2, "y": 1.125 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1.125 }, + { "matrix": [1, 5], "x": 5, "y": 1.25 }, + { "matrix": [5, 0], "x": 8, "y": 1.25 }, + { "matrix": [5, 1], "x": 9, "y": 1.125 }, + { "matrix": [5, 2], "x": 10, "y": 1 }, + { "matrix": [5, 3], "x": 11, "y": 1.125 }, + { "matrix": [5, 4], "x": 12, "y": 1.25 }, + { "matrix": [5, 5], "x": 13, "y": 1.25 }, + { "matrix": [2, 0], "x": 0, "y": 2.25 }, + { "matrix": [2, 1], "x": 1, "y": 2.25 }, + { "matrix": [2, 2], "x": 2, "y": 2.125 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2.125 }, + { "matrix": [2, 5], "x": 5, "y": 2.25 }, + { "matrix": [6, 0], "x": 8, "y": 2.25 }, + { "matrix": [6, 1], "x": 9, "y": 2.125 }, + { "matrix": [6, 2], "x": 10, "y": 2 }, + { "matrix": [6, 3], "x": 11, "y": 2.125 }, + { "matrix": [6, 4], "x": 12, "y": 2.25 }, + { "matrix": [6, 5], "x": 13, "y": 2.25 }, + { "matrix": [3, 0], "x": 3.5, "y": 3.25 }, + { "matrix": [3, 1], "x": 4.5, "y": 3.5 }, + { "matrix": [3, 2], "x": 5.5, "y": 3.75 }, + { "matrix": [7, 0], "x": 7.5, "y": 3.75 }, + { "matrix": [7, 1], "x": 8.5, "y": 3.5 }, + { "matrix": [7, 2], "x": 9.5, "y": 3.25 } + ] + } + } +} diff --git a/keyboards/hlb/cantor/mcuconf.h b/keyboards/hlb/cantor/mcuconf.h new file mode 100644 index 0000000000..9274e1b9ca --- /dev/null +++ b/keyboards/hlb/cantor/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2022 Diego Palacios (@diepala) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE diff --git a/keyboards/hlb/cantor/readme.md b/keyboards/hlb/cantor/readme.md new file mode 100644 index 0000000000..1827345ec5 --- /dev/null +++ b/keyboards/hlb/cantor/readme.md @@ -0,0 +1,28 @@ +# HLB CantorMX F411 + +Project based on original Cantor keyboard (42 key diodeless split keyboard), designed with simplicity in mind. It is inspired on the popular [corne](https://github.com/foostan/crkbd), [ferris](https://github.com/pierrechevalier83/ferris) and [sweep](https://github.com/davidphilipbarr/Sweep) keyboards, aiming to provide a more ergonomic (stronger column stagger) corne-like layout with a simple, easy to assemble and cheap design. +We upgraded blackpill version to STM32F411 8Mhz therefore original firmware maintained by [Diego Palacios](https://github.com/diepala) must be adapted to this hardware. +A case design has beed made to get a full 3DP Cantor project (see below) + +* Keyboard Maintainer: [HLB H3lli0n](https://github.com/H3lli0n) +* Hardware Supported: Blackpill STM32F411 8Mhz only +* Hardware Availability: https://github.com/H3lli0n/CantorMx-3DP-case + +This firmware is made for EE_HANDS split, to build and flash your firmwares (left and right) please follow the examples below with hand in DFU mode: + +Make+flash example for this split (after setting up your build environment): + make hlb/cantor:vial::dfu-util-split-left + make hlb/cantor:vial::dfu-util-split-right + +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 thumb key on the left and plug in the keyboard. For the right side, hold the thumb key on the right and plug the keyboard. +* **Physical reset button**: + * Press and hold the BOOT0 button. + * Press and release the NRST button. + * Release the BOOT0 button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From ee919eedb35332743d830b842da1c225df8c7d3f Mon Sep 17 00:00:00 2001 From: H3lli0n Date: Sat, 2 Aug 2025 03:43:53 +0200 Subject: [PATCH 08/24] feat: adding support for HLB PoorKoi R1/R2 (#918) * feat: initial PoorKoi keymap * fix: underglow and led capslock * feat: activating underglow * fix: bad parameters * feat: activating rgblights * feat: default activated feature * fix: supported layout clean up * fix: led count * fix: change to vialrgb * fix: change to vialrgb * fix: bad parameters * fix: led count * fix: enable animation * feat: updating configuration * fix: typo * fix: wrong column * fix: capslock led fixed and layer indicator added * fix: color of first layer * feat: custom keycode and saved settings for indicator * fix: change layer 4 color * fix: layer indicator management + capslock led indicator * fix: clean code and keymap * fix: default keymap and community definitions * fix: licence headers and console default value --------- Co-authored-by: H3lli0n --- keyboards/hlb/poorkoi/config.h | 21 ++ keyboards/hlb/poorkoi/keyboard.json | 320 ++++++++++++++++++ .../hlb/poorkoi/keymaps/default/keymap.c | 61 ++++ keyboards/hlb/poorkoi/keymaps/vial/config.h | 13 + keyboards/hlb/poorkoi/keymaps/vial/keymap.c | 60 ++++ keyboards/hlb/poorkoi/keymaps/vial/rules.mk | 2 + keyboards/hlb/poorkoi/keymaps/vial/vial.json | 282 +++++++++++++++ keyboards/hlb/poorkoi/matrix_diagram.md | 28 ++ keyboards/hlb/poorkoi/poorkoi.c | 140 ++++++++ keyboards/hlb/poorkoi/poorkoi.h | 38 +++ keyboards/hlb/poorkoi/readme.md | 25 ++ keyboards/hlb/poorkoi/rules.mk | 2 + 12 files changed, 992 insertions(+) create mode 100644 keyboards/hlb/poorkoi/config.h create mode 100644 keyboards/hlb/poorkoi/keyboard.json create mode 100644 keyboards/hlb/poorkoi/keymaps/default/keymap.c create mode 100644 keyboards/hlb/poorkoi/keymaps/vial/config.h create mode 100644 keyboards/hlb/poorkoi/keymaps/vial/keymap.c create mode 100644 keyboards/hlb/poorkoi/keymaps/vial/rules.mk create mode 100644 keyboards/hlb/poorkoi/keymaps/vial/vial.json create mode 100644 keyboards/hlb/poorkoi/matrix_diagram.md create mode 100644 keyboards/hlb/poorkoi/poorkoi.c create mode 100644 keyboards/hlb/poorkoi/poorkoi.h create mode 100644 keyboards/hlb/poorkoi/readme.md create mode 100644 keyboards/hlb/poorkoi/rules.mk diff --git a/keyboards/hlb/poorkoi/config.h b/keyboards/hlb/poorkoi/config.h new file mode 100644 index 0000000000..67a47ab07e --- /dev/null +++ b/keyboards/hlb/poorkoi/config.h @@ -0,0 +1,21 @@ +/* + * 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 . + */ +#pragma once + +#define WS2812_EXTERNAL_PULLUP + +#define RGBLIGHT_LAYERS +#define RGBLIGHT_LAYER_BLINK +#define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF \ No newline at end of file diff --git a/keyboards/hlb/poorkoi/keyboard.json b/keyboards/hlb/poorkoi/keyboard.json new file mode 100644 index 0000000000..ee728c7496 --- /dev/null +++ b/keyboards/hlb/poorkoi/keyboard.json @@ -0,0 +1,320 @@ +{ + "manufacturer": "HLB", + "keyboard_name": "PoorKoi", + "maintainer": "H3lli0n", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A2", "pin_b": "A1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "extrakey": true, + "key_lock": true, + "mousekey": true, + "encoder": false, + "nkro": true, + "rgblight": 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", + "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": 17, + "driver": "ws2812" + }, + "usb": { + "device_version": "0.0.5", + "pid": "0x0014", + "vid": "0x4444" + }, + "ws2812": { + "pin": "A8" + }, + "layout_aliases": { + "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "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, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_iso_tsangan": { + "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": "Backspace", "matrix": [2, 13], "x": 13, "y": 0, "w": 2}, + {"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": "Enter", "matrix": [3, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"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": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"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": 2.75}, + {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"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, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_bs_rshift": { + "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": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"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, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_all": { + "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": "Backspace", "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": "NUHS", "matrix": [2, 12], "x": 12.75, "y": 2}, + {"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "NUBS", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"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": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"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, 4], "x": 4, "y": 4, "w": 3}, + {"label": "Space", "matrix": [4, 6], "x": 7, "y": 4}, + {"label": "Space", "matrix": [4, 8], "x": 8, "y": 4, "w": 3}, + {"label": "Alt", "matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"label": "Win", "matrix": [4, 11], "x": 12.5, "y": 4}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/hlb/poorkoi/keymaps/default/keymap.c b/keyboards/hlb/poorkoi/keymaps/default/keymap.c new file mode 100644 index 0000000000..18de982f4d --- /dev/null +++ b/keyboards/hlb/poorkoi/keymaps/default/keymap.c @@ -0,0 +1,61 @@ +/* +Copyright 2024 HLB + +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 . +*/ +#include QMK_KEYBOARD_H +#include "poorkoi.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RCTL), + +// basic function layer +[_FN] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_VOLD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS), + +// rgb/media layer +[_MEDIA] = LAYOUT_all( + KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_VAI, RGB_VAD, 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), + +// gaming layer +[_GAME] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// mac +[_MAC] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_RALT, KC_TRNS) +}; + diff --git a/keyboards/hlb/poorkoi/keymaps/vial/config.h b/keyboards/hlb/poorkoi/keymaps/vial/config.h new file mode 100644 index 0000000000..c278d7903a --- /dev/null +++ b/keyboards/hlb/poorkoi/keymaps/vial/config.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xE8, 0x87, 0xFD, 0x48, 0x56, 0xCB, 0xA9, 0x09} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#define VIAL_TAP_DANCE_ENTRIES 10 +#define VIAL_COMBO_ENTRIES 15 +#define VIAL_KEY_OVERRIDE_ENTRIES 10 diff --git a/keyboards/hlb/poorkoi/keymaps/vial/keymap.c b/keyboards/hlb/poorkoi/keymaps/vial/keymap.c new file mode 100644 index 0000000000..87bb046271 --- /dev/null +++ b/keyboards/hlb/poorkoi/keymaps/vial/keymap.c @@ -0,0 +1,60 @@ +/* +Copyright 2024 HLB + +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 . +*/ +#include QMK_KEYBOARD_H +#include "poorkoi.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +// main layer +[_BASE] = LAYOUT_all( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_RCTL), + +// basic function layer +[_FN] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_TRNS, KC_TRNS, + KC_TRNS, KC_F5, KC_F6, KC_F7, KC_F8, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_PGDN, KC_VOLD, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_MUTE, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS), + +// rgb/media layer +[_MEDIA] = LAYOUT_all( + KC_TRNS, KC_MPRV, KC_MNXT, KC_MPLY, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, RGB_VAI, RGB_VAD, 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), + +// gaming layer +[_GAME] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + +// mac +[_MAC] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_RGUI, KC_RALT, KC_TRNS) +}; \ No newline at end of file diff --git a/keyboards/hlb/poorkoi/keymaps/vial/rules.mk b/keyboards/hlb/poorkoi/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/hlb/poorkoi/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/hlb/poorkoi/keymaps/vial/vial.json b/keyboards/hlb/poorkoi/keymaps/vial/vial.json new file mode 100644 index 0000000000..e0952b04ea --- /dev/null +++ b/keyboards/hlb/poorkoi/keymaps/vial/vial.json @@ -0,0 +1,282 @@ +{ + "lighting": "qmk_rgblight", + "customKeycodes": [ + {"name": "LAY_INDIC_RGB", + "title": "Layer indicator on capslock LED", + "shortName": "L_INDIC" + } + ], + "matrix": { + "rows": 5, + "cols": 14 + }, + "layouts": { + "labels":[ + "Split Backspace", + "ISO Enter", + "Split Left Shift", + "Split Spacebar", + [ + "Bottom Row", + "WK", + "WKL", + "HHKB" + ] + ], + "keymap": [ + [ + { + "x": 15.5 + }, + "0,13\n\n\n0,1", + "2,13\n\n\n0,1" + ], + [ + { + "y": 0.25, + "x": 2.5 + }, + "0,0", + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "fa": [ + 0, + 0, + 0, + 1 + ], + "w": 2 + }, + "2,13\n\n\n0,0" + ], + [ + { + "x": 2.5, + "w": 1.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "f": 3, + "w": 1.5 + }, + "1,13\n\n\n1,0", + { + "x": 1.25, + "f": 3, + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "3,13\n\n\n1,1" + ], + [ + { + "x": 2.5, + "w": 1.75 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "f": 3, + "w": 2.25 + }, + "3,13\n\n\n1,0", + { + "x": 0.25, + "f": 3 + }, + "2,12\n\n\n1,1" + ], + [ + { + "f": 3, + "w": 1.25 + }, + "3,0\n\n\n2,1", + { + "f": 3 + }, + "3,1\n\n\n2,1", + { + "x": 0.25, + "f": 3, + "w": 2.25 + }, + "3,0\n\n\n2,0", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "w": 1.75 + }, + "3,12", + "4,13" + ], + [ + { + "x": 2.5, + "f": 3, + "w": 1.5 + }, + "4,0\n\n\n4,0", + { + "f": 3 + }, + "4,1\n\n\n4,0", + { + "f": 3, + "w": 1.5 + }, + "4,2\n\n\n4,0", + { + "f": 3, + "w": 7 + }, + "4,6\n\n\n3,0", + { + "f": 3, + "w": 1.5 + }, + "4,10\n\n\n4,0", + { + "f": 3 + }, + "4,11\n\n\n4,0", + { + "f": 3, + "w": 1.5 + }, + "4,12\n\n\n4,0" + ], + [ + { + "y": 0.25, + "x": 2.5, + "f": 3, + "w": 1.5 + }, + "4,0\n\n\n4,1", + { + "f": 3, + "d": true + }, + "4,1\n\n\n4,1", + { + "f": 3, + "w": 1.5 + }, + "4,2\n\n\n4,1", + { + "x": 7, + "f": 3, + "w": 1.5 + }, + "4,10\n\n\n4,1", + { + "f": 3, + "d": true + }, + "4,11\n\n\n4,1", + { + "f": 3, + "w": 1.5 + }, + "4,12\n\n\n4,1" + ], + [ + { + "x": 2.5, + "f": 3, + "w": 1.5, + "d": true + }, + "4,0\n\n\n4,2", + { + "f": 3 + }, + "4,1\n\n\n4,2", + { + "f": 3, + "w": 1.5 + }, + "4,2\n\n\n4,2", + { + "x": 7, + "f": 3, + "w": 1.5 + }, + "4,10\n\n\n4,2", + { + "f": 3 + }, + "4,11\n\n\n4,2", + { + "f": 3, + "w": 1.5, + "d": true + }, + "4,12\n\n\n4,2" + ], + [ + { + "y": 0.5, + "x": 6.5, + "f": 3, + "w": 3 + }, + "4,4\n\n\n3,1", + { + "f": 3 + }, + "4,6\n\n\n3,1", + { + "f": 3, + "w": 3 + }, + "4,8\n\n\n3,1" + ] + ] + } +} diff --git a/keyboards/hlb/poorkoi/matrix_diagram.md b/keyboards/hlb/poorkoi/matrix_diagram.md new file mode 100644 index 0000000000..b4a012b482 --- /dev/null +++ b/keyboards/hlb/poorkoi/matrix_diagram.md @@ -0,0 +1,28 @@ +# Matrix Diagram for PoorKoi based on 4pplet Waffling60 Rev E Solder + +``` + ┌───────┐ + 2u Backspace │2D │ + └───────┘ +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2D │ +├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ┌─────┐ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ +├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐3D │ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │3D │ │2C │ │ +├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ └───┴────┘ +│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │4D │ ISO Enter +├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬────┬┴───┤ +│40 │41 │42 │44 │46 │48 │49 │4A │4B │4C │ +└────┴────┴────┴────────┴────┴──────────┴────┴────┴────┴────┘ +┌────────┐ +│30 │ 2.25u LShift +└────────┘ +┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ +│40 │41 │42 │46 │4A │4B │4C │ Tsangan/WKL +└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ +┌─────┬───┬─────┬──────────┬──────┬─────────┬─────┬───┬─────┐ +│40 │41 │42 │44 │46 │48 │4A │4B │4C │ 3U split space +└─────┴───┴─────┴──────────┴──────┴─────────┴─────┴───┴─────┘ + +``` diff --git a/keyboards/hlb/poorkoi/poorkoi.c b/keyboards/hlb/poorkoi/poorkoi.c new file mode 100644 index 0000000000..af3071cb73 --- /dev/null +++ b/keyboards/hlb/poorkoi/poorkoi.c @@ -0,0 +1,140 @@ +/* + * 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 . + */ +#include "poorkoi.h" + +typedef union { + uint32_t raw; + struct { + bool rgb_layer_change :1; + }; +} user_config_t; + +/* User preference */ +user_config_t user_config; + +/* Feature toggle blink duration */ +const uint16_t rgbBlinkDuration = 300; + +/* RGB Layers definition*/ +const rgblight_segment_t PROGMEM my_base_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, HSV_OFF} +); +const rgblight_segment_t PROGMEM my_fn_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, LAYER_FN_COLOR} +); +const rgblight_segment_t PROGMEM my_media_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, LAYER_MEDIA_COLOR} +); +const rgblight_segment_t PROGMEM my_gaming_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, LAYER_GAMING_COLOR} +); +const rgblight_segment_t PROGMEM my_mac_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, LAYER_MAC_COLOR} +); +const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, CAPS_LOCK_COLOR} +); +const rgblight_segment_t PROGMEM my_indicator_on_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, LAYER_INDIC_COLOR}, + {9, 5, LAYER_INDIC_COLOR} +); +const rgblight_segment_t PROGMEM my_indicator_off_layer[] = RGBLIGHT_LAYER_SEGMENTS( + {16, 1, LAYER_INDIC_COLOR}, + {2, 5, LAYER_INDIC_COLOR} +); + +const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST( + my_base_layer, + my_fn_layer, + my_media_layer, + my_gaming_layer, + my_mac_layer, + my_capslock_layer, + my_indicator_on_layer, + my_indicator_off_layer +); + + +void eeconfig_init_user(void) { // EEPROM is getting reset! + user_config.raw = 0; + user_config.rgb_layer_change = false; // We want this enabled by default + eeconfig_update_user(user_config.raw); // Write default value to EEPROM now + + // use the non noeeprom versions, to write these values to EEPROM too + rgblight_enable(); // Enable RGB by default + rgblight_sethsv(HSV_PURPLE); // Set it to PURPLE by default + rgblight_mode(1); // set to solid by default +} + +void keyboard_pre_init_kb(void) { + rgblight_set_effect_range(0, RGBLIGHT_LED_COUNT - 1); + keyboard_pre_init_user(); +} + +void keyboard_post_init_user(void) { + // Enable the LED layers + rgblight_layers = my_rgb_layers; + + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); +} + +/* Updating LED located under capslock */ +bool led_update_kb(led_t led_state) { + rgblight_set_layer_state(5, host_keyboard_led_state().caps_lock); + return true; +} + +layer_state_t default_layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE)); + return state; +} + +/* Use capslock led for layer indicator */ +layer_state_t layer_state_set_user(layer_state_t state) { + rgblight_set_layer_state(_BASE, layer_state_cmp(state, _BASE)); + + if(user_config.rgb_layer_change){ + rgblight_set_layer_state(_FN, layer_state_cmp(state, _FN)); + rgblight_set_layer_state(_MEDIA, layer_state_cmp(state, _MEDIA)); + rgblight_set_layer_state(_GAME, layer_state_cmp(state, _GAME)); + rgblight_set_layer_state(_MAC, layer_state_cmp(state, _MAC)); + } + + return state; +} + +/* Update user preference on layer indicator*/ +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LAY_INDIC_RGB: + if (record->event.pressed) { + user_config.rgb_layer_change ^= 1; // Toggles the status + eeconfig_update_user(user_config.raw); // Writes the new status to EEPROM + + if (user_config.rgb_layer_change) { // if layer state indication is enabled, + rgblight_blink_layer(6, rgbBlinkDuration); + }else{ + rgblight_blink_layer(7, rgbBlinkDuration); + } + + layer_state_set(layer_state); // then immediately update the layer color + } + return false; // Skip all further processing of this key + + default: + return true; // Process all other keycodes normally + } +} diff --git a/keyboards/hlb/poorkoi/poorkoi.h b/keyboards/hlb/poorkoi/poorkoi.h new file mode 100644 index 0000000000..71d6268440 --- /dev/null +++ b/keyboards/hlb/poorkoi/poorkoi.h @@ -0,0 +1,38 @@ +/* + * 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 . + */ +#pragma once + +#include "quantum.h" + +#define CAPS_LOCK_ENABLE true +#define CAPS_LOCK_COLOR HSV_GREEN + +#define LAYER_FN_COLOR HSV_PURPLE +#define LAYER_MEDIA_COLOR HSV_ORANGE +#define LAYER_GAMING_COLOR HSV_CYAN +#define LAYER_MAC_COLOR HSV_RED +#define LAYER_INDIC_COLOR HSV_WHITE + +enum layers { + _BASE = 0, + _FN, + _MEDIA, + _GAME, + _MAC, +}; + +enum hlbKeycodes { + LAY_INDIC_RGB = QK_KB_0, +}; diff --git a/keyboards/hlb/poorkoi/readme.md b/keyboards/hlb/poorkoi/readme.md new file mode 100644 index 0000000000..f2ee797301 --- /dev/null +++ b/keyboards/hlb/poorkoi/readme.md @@ -0,0 +1,25 @@ +# HLB PoorKoi + +60% HLB PoorKoi's pcb is based on 4pplet/waffling60/rev_e (https://github.com/4pplet/waffling60). +* PCB features tsangan layout with ansi/iso layouts as well as split spacebar, split left/right shift, stepped capslock. +* PCB feature dedicated graphic art and flex cut were removed. + +Regarding source code we added extra features with dedicated custom keycode **L_INDIC**: + +* LED indicator and capslock indicator are managed through lightning layers +* Layer indicator is shown even if rgb underglow is off +* Added a led indicator when custom keycode L_INDIC is on/off + * Blink on top when off + * Blink on bottom when on + +Make example for this keyboard (after setting up your build environment): + + make hlb/poorkoi:vial + +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). + +How to enter bootloader (DFU): +* Short the reset-header (labled BL/RESET) on the back of the PCB for about 2 seconds for the keyboard to enter DFU. When in DFU, it's ready to flash the firmware. If using a APM MCU it will not automatically reset after flash. Simply short the reset-header for a very short time to just reset the PCB, alternatively unplug and repluck the USB-cable to the keyboard. + +Alternative option if the firmware is already pre-flashed: +* Unplug your keyboard, hold down the Spacebar and B at the same time, plug in your keyboard and wait a second before releasing the keys. The keyboard will enter DFU and is ready to flash the firmware. diff --git a/keyboards/hlb/poorkoi/rules.mk b/keyboards/hlb/poorkoi/rules.mk new file mode 100644 index 0000000000..04fe1eba2a --- /dev/null +++ b/keyboards/hlb/poorkoi/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF From 97bf893338450db7629d8d378675307a4919b77d Mon Sep 17 00:00:00 2001 From: AP Date: Fri, 1 Aug 2025 21:44:10 -0400 Subject: [PATCH 09/24] Support for dmqdesign-spin (#920) --- .../dmqdesign/spin/keymaps/vial/config.h | 37 ++++++++++++ .../dmqdesign/spin/keymaps/vial/keymap.c | 39 +++++++++++++ .../dmqdesign/spin/keymaps/vial/rules.mk | 11 ++++ .../dmqdesign/spin/keymaps/vial/vial.json | 58 +++++++++++++++++++ 4 files changed, 145 insertions(+) create mode 100644 keyboards/dmqdesign/spin/keymaps/vial/config.h create mode 100644 keyboards/dmqdesign/spin/keymaps/vial/keymap.c create mode 100644 keyboards/dmqdesign/spin/keymaps/vial/rules.mk create mode 100644 keyboards/dmqdesign/spin/keymaps/vial/vial.json diff --git a/keyboards/dmqdesign/spin/keymaps/vial/config.h b/keyboards/dmqdesign/spin/keymaps/vial/config.h new file mode 100644 index 0000000000..f27b251413 --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/vial/config.h @@ -0,0 +1,37 @@ +/* Copyright 2019-2020 DMQ Design + * + * 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 . + */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xB5, 0xA8, 0x3A, 0x61, 0x86, 0x45, 0x95, 0xDF} + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 + +#undef RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_TWINKLE + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 2, 3 } \ No newline at end of file diff --git a/keyboards/dmqdesign/spin/keymaps/vial/keymap.c b/keyboards/dmqdesign/spin/keymaps/vial/keymap.c new file mode 100644 index 0000000000..9b9de7816d --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/vial/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2019-2020 DMQ Design + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_7, KC_8, KC_9, KC_MUTE, + KC_4, KC_5, KC_6, KC_MUTE, + KC_1, KC_2, KC_3, KC_MUTE, + KC_0, UG_TOGG, KC_ENTER + ), + [1] = LAYOUT( + KC_7, KC_8, KC_9, KC_MUTE, + KC_4, KC_5, KC_6, KC_MUTE, + KC_1, KC_2, KC_3, KC_MUTE, + KC_0, UG_TOGG, KC_ENTER + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + // Encoder 1 Encoder 2 Encoder 3 +}; +#endif \ No newline at end of file diff --git a/keyboards/dmqdesign/spin/keymaps/vial/rules.mk b/keyboards/dmqdesign/spin/keymaps/vial/rules.mk new file mode 100644 index 0000000000..eadfac430f --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/vial/rules.mk @@ -0,0 +1,11 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes + +LTO_ENABLE = yes +QMK_SETTINGS = no +COMBO_ENABLE = no +KEY_OVERRIDE_ENABLE = no +TAP_DANCE_ENABLE = no + +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/dmqdesign/spin/keymaps/vial/vial.json b/keyboards/dmqdesign/spin/keymaps/vial/vial.json new file mode 100644 index 0000000000..4a9ad69472 --- /dev/null +++ b/keyboards/dmqdesign/spin/keymaps/vial/vial.json @@ -0,0 +1,58 @@ +{ + "name": "SPIN Macropad", + "vendorId": "0xA455", + "productId": "0x0001", + "matrix": { + "rows": 3, + "cols": 5 + }, + "lighting": "qmk_rgblight", + "layouts": { + "keymap": [ + [ + "0,0", + "1,0", + "2,0", + { + "x": 0.25 + }, + "2,4", + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne" + ], + [ + "0,1", + "1,1", + "2,1" + ], + [ + { + "y": -0.5, + "x": 3.25 + }, + "1,4", + "1,0\n\n\n\n\n\n\n\n\ne", + "1,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "y": -0.5 + }, + "0,2", + "1,2", + "2,2" + ], + [ + "0,3", + "1,3", + "2,3", + { + "x": 0.25 + }, + "0,4", + "2,0\n\n\n\n\n\n\n\n\ne", + "2,1\n\n\n\n\n\n\n\n\ne" + ] + ] + } +} \ No newline at end of file From 579b8ffacd17555f83968c974acee3c39c580b5f Mon Sep 17 00:00:00 2001 From: H3lli0n Date: Tue, 5 Aug 2025 01:36:31 +0200 Subject: [PATCH 10/24] feat: adding support to HLB Hyperbolas TKL / 8k (#922) * feat: adding support to HLB Hyperbolas * fix: matrix and keymap * fix: keymap indexes errors * fix: updated default keymap --------- Co-authored-by: H3lli0n --- keyboards/hlb/hyperbolas/hyp_s/keyboard.json | 492 ++++++++++++++++++ .../hyperbolas/hyp_s/keymaps/default/keymap.c | 41 ++ .../hyperbolas/hyp_s/keymaps/vial/config.h | 13 + .../hyperbolas/hyp_s/keymaps/vial/keymap.c | 41 ++ .../hyperbolas/hyp_s/keymaps/vial/rules.mk | 2 + .../hyperbolas/hyp_s/keymaps/vial/vial.json | 296 +++++++++++ keyboards/hlb/hyperbolas/hyp_s/readme.md | 26 + 7 files changed, 911 insertions(+) create mode 100644 keyboards/hlb/hyperbolas/hyp_s/keyboard.json create mode 100644 keyboards/hlb/hyperbolas/hyp_s/keymaps/default/keymap.c create mode 100644 keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/config.h create mode 100644 keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/keymap.c create mode 100644 keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/rules.mk create mode 100644 keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/vial.json create mode 100644 keyboards/hlb/hyperbolas/hyp_s/readme.md diff --git a/keyboards/hlb/hyperbolas/hyp_s/keyboard.json b/keyboards/hlb/hyperbolas/hyp_s/keyboard.json new file mode 100644 index 0000000000..db39798f88 --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/keyboard.json @@ -0,0 +1,492 @@ +{ + "manufacturer": "HLB", + "keyboard_name": "hyperbolas", + "maintainer": "H3lli0n", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": [ + "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP23", "GP24", + "GP12", "GP6", "GP5", "GP4", "GP3", "GP25", "GP2", "GP1", "GP0" + ], + "rows": ["GP11", "GP10", "GP9", "GP8", "GP7", "GP15"] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0x0007", + "vid": "0x3025" + }, + "layouts": { + "LAYOUT_tkl_ansi": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,2], "label":"F1", "x":2, "y":0}, + {"matrix": [0,3], "label":"F2", "x":3, "y":0}, + {"matrix": [0,4], "label":"F3", "x":4, "y":0}, + {"matrix": [0,5], "label":"F4", "x":5, "y":0}, + {"matrix": [0,6], "label":"F5", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F6", "x":7.8, "y":0}, + {"matrix": [0,8], "label":"F7", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F8", "x":9.5, "y":0}, + {"matrix": [0,10], "label":"F9", "x":11, "y":0}, + {"matrix": [0,11], "label":"F10", "x":12, "y":0}, + {"matrix": [0,12], "label":"F11", "x":13, "y":0}, + {"matrix": [0,13], "label":"F12", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5,6], "label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,2], "label":"F1", "x":2, "y":0}, + {"matrix": [0,3], "label":"F2", "x":3, "y":0}, + {"matrix": [0,4], "label":"F3", "x":4, "y":0}, + {"matrix": [0,5], "label":"F4", "x":5, "y":0}, + {"matrix": [0,6], "label":"F5", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F6", "x":7.8, "y":0}, + {"matrix": [0,8], "label":"F7", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F8", "x":9.5, "y":0}, + {"matrix": [0,10], "label":"F9", "x":11, "y":0}, + {"matrix": [0,11], "label":"F10", "x":12, "y":0}, + {"matrix": [0,12], "label":"F11", "x":13, "y":0}, + {"matrix": [0,13], "label":"F12", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"matrix": [5,1], "label":"Win", "x":1.5, "y":5.25, "w":1.5}, + {"matrix": [5,2], "label":"Alt", "x":3, "y":5.25, "w":1.5}, + {"matrix": [5,6], "label":"Space", "x":4.5, "y":5.25, "w":7}, + {"matrix": [5,11], "label":"Alt", "x":11.5, "y":5.25, "w":1.5}, + {"matrix": [5,12], "label":"Win", "x":13, "y":5.25, "w":1.5}, + {"matrix": [5,13], "label":"Ctrl", "x":14.5, "y":5.25, "w":1.5}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,2], "label":"F1", "x":2, "y":0}, + {"matrix": [0,3], "label":"F2", "x":3, "y":0}, + {"matrix": [0,4], "label":"F3", "x":4, "y":0}, + {"matrix": [0,5], "label":"F4", "x":5, "y":0}, + {"matrix": [0,6], "label":"F5", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F6", "x":7.8, "y":0}, + {"matrix": [0,8], "label":"F7", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F8", "x":9.5, "y":0}, + {"matrix": [0,10], "label":"F9", "x":11, "y":0}, + {"matrix": [0,11], "label":"F10", "x":12, "y":0}, + {"matrix": [0,12], "label":"F11", "x":13, "y":0}, + {"matrix": [0,13], "label":"F12", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,12], "label":"|", "x":12.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":13.75, "y":3.25, "w": 1.25, "h": 2}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"matrix": [4,1], "label":"<>", "x":1.25, "y":4.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5,6], "label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_iso_tsangan": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,2], "label":"F1", "x":2, "y":0}, + {"matrix": [0,3], "label":"F2", "x":3, "y":0}, + {"matrix": [0,4], "label":"F3", "x":4, "y":0}, + {"matrix": [0,5], "label":"F4", "x":5, "y":0}, + {"matrix": [0,6], "label":"F5", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F6", "x":7.8, "y":0}, + {"matrix": [0,8], "label":"F7", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F8", "x":9.5, "y":0}, + {"matrix": [0,10], "label":"F9", "x":11, "y":0}, + {"matrix": [0,11], "label":"F10", "x":12, "y":0}, + {"matrix": [0,12], "label":"F11", "x":13, "y":0}, + {"matrix": [0,13], "label":"F12", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":13, "y":2.25}, + {"matrix": [1,15], "label":"Insert", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"Home", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"PgUp", "x":17.25, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,15], "label":"Delete", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"End", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"PgDown", "x":17.25, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":11.75, "y":3.25}, + {"matrix": [3,12], "label":"|", "x":12.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":13.75, "y":3.25, "w": 1.25, "h": 2}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"matrix": [4,1], "label":"<>", "x":1.25, "y":4.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"matrix": [4,16], "label":"Up Arrow", "x":16.25, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"matrix": [5,1], "label":"Win", "x":1.5, "y":5.25, "w":1.5}, + {"matrix": [5,2], "label":"Alt", "x":3, "y":5.25, "w":1.5}, + {"matrix": [5,6], "label":"Space", "x":4.5, "y":5.25, "w":7}, + {"matrix": [5,11], "label":"Alt", "x":11.5, "y":5.25, "w":1.5}, + {"matrix": [5,12], "label":"Win", "x":13, "y":5.25, "w":1.5}, + {"matrix": [5,13], "label":"Ctrl", "x":14.5, "y":5.25, "w":1.5}, + {"matrix": [5,15], "label":"Left Arrow", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"Down Arrow", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":"Right Arrow", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_all": { + "layout": [ + {"matrix": [0,0], "label":"Esc", "x":0, "y":0}, + {"matrix": [0,2], "label":"F1", "x":2, "y":0}, + {"matrix": [0,3], "label":"F2", "x":3, "y":0}, + {"matrix": [0,4], "label":"F3", "x":4, "y":0}, + {"matrix": [0,5], "label":"F4", "x":5, "y":0}, + {"matrix": [0,6], "label":"F5", "x":6.5, "y":0}, + {"matrix": [0,7], "label":"F6", "x":7.8, "y":0}, + {"matrix": [0,8], "label":"F7", "x":8.5, "y":0}, + {"matrix": [0,9], "label":"F8", "x":9.5, "y":0}, + {"matrix": [0,10], "label":"F9", "x":11, "y":0}, + {"matrix": [0,11], "label":"F10", "x":12, "y":0}, + {"matrix": [0,12], "label":"F11", "x":13, "y":0}, + {"matrix": [0,13], "label":"F12", "x":14, "y":0}, + {"matrix": [0,15], "label":"PrtSc", "x":15.25, "y":0}, + {"matrix": [0,16], "label":"Scroll Lock", "x":16.25, "y":0}, + {"matrix": [0,17], "label":"Pause", "x":17.25, "y":0}, + {"matrix": [1,0], "label":"~", "x":0, "y":1.25}, + {"matrix": [1,1], "label":"!", "x":1, "y":1.25}, + {"matrix": [1,2], "label":"@", "x":2, "y":1.25}, + {"matrix": [1,3], "label":"#", "x":3, "y":1.25}, + {"matrix": [1,4], "label":"$", "x":4, "y":1.25}, + {"matrix": [1,5], "label":"%", "x":5, "y":1.25}, + {"matrix": [1,6], "label":"^", "x":6, "y":1.25}, + {"matrix": [1,7], "label":"&", "x":7, "y":1.25}, + {"matrix": [1,8], "label":"*", "x":8, "y":1.25}, + {"matrix": [1,9], "label":"(", "x":9, "y":1.25}, + {"matrix": [1,10], "label":")", "x":10, "y":1.25}, + {"matrix": [1,11], "label":"_", "x":11, "y":1.25}, + {"matrix": [1,12], "label":"+", "x":12, "y":1.25}, + {"matrix": [1,13], "label":"1U Split Bksp", "x":13, "y":1.25}, + {"matrix": [1,14], "label":"Backspace", "x":14, "y":1.25}, + {"matrix": [1,15], "label":"/", "x":15.25, "y":1.25}, + {"matrix": [1,16], "label":"*", "x":16.25, "y":1.25}, + {"matrix": [1,17], "label":"-", "x":17.25, "y":1.25}, + {"matrix": [2,0], "label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"matrix": [2,1], "label":"Q", "x":1.5, "y":2.25}, + {"matrix": [2,2], "label":"W", "x":2.5, "y":2.25}, + {"matrix": [2,3], "label":"E", "x":3.5, "y":2.25}, + {"matrix": [2,4], "label":"R", "x":4.5, "y":2.25}, + {"matrix": [2,5], "label":"T", "x":5.5, "y":2.25}, + {"matrix": [2,6], "label":"Y", "x":6.5, "y":2.25}, + {"matrix": [2,7], "label":"U", "x":7.5, "y":2.25}, + {"matrix": [2,8], "label":"I", "x":8.5, "y":2.25}, + {"matrix": [2,9], "label":"O", "x":9.5, "y":2.25}, + {"matrix": [2,10], "label":"P", "x":10.5, "y":2.25}, + {"matrix": [2,11], "label":"{", "x":11.5, "y":2.25}, + {"matrix": [2,12], "label":"}", "x":12.5, "y":2.25}, + {"matrix": [2,13], "label":"|", "x":13.5, "y":2.25, "w":1.5}, + {"matrix": [2,15], "label":"7", "x":15.25, "y":2.25}, + {"matrix": [2,16], "label":"8", "x":16.25, "y":2.25}, + {"matrix": [2,17], "label":"9", "x":17.25, "y":2.25}, + {"matrix": [3,0], "label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"matrix": [3,1], "label":"A", "x":1.75, "y":3.25}, + {"matrix": [3,2], "label":"S", "x":2.75, "y":3.25}, + {"matrix": [3,3], "label":"D", "x":3.75, "y":3.25}, + {"matrix": [3,4], "label":"F", "x":4.75, "y":3.25}, + {"matrix": [3,5], "label":"G", "x":5.75, "y":3.25}, + {"matrix": [3,6], "label":"H", "x":6.75, "y":3.25}, + {"matrix": [3,7], "label":"J", "x":7.75, "y":3.25}, + {"matrix": [3,8], "label":"K", "x":8.75, "y":3.25}, + {"matrix": [3,9], "label":"L", "x":9.75, "y":3.25}, + {"matrix": [3,10], "label":":", "x":10.75, "y":3.25}, + {"matrix": [3,11], "label":"\"", "x":12.75, "y":3.25}, + {"matrix": [3,12], "label":"|", "x":13.75, "y":3.25}, + {"matrix": [3,13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + {"matrix": [3,15], "label":"4", "x":15.25, "y":3.25}, + {"matrix": [3,16], "label":"5", "x":16.25, "y":3.25}, + {"matrix": [3,17], "label":"6", "x":17.25, "y":3.25}, + {"matrix": [4,0], "label":"Shift", "x":0, "y":4.25, "w":1.25}, + {"matrix": [4,1], "label":"<>", "x":1.25, "y":4.25}, + {"matrix": [4,2], "label":"Z", "x":2.25, "y":4.25}, + {"matrix": [4,3], "label":"X", "x":3.25, "y":4.25}, + {"matrix": [4,4], "label":"C", "x":4.25, "y":4.25}, + {"matrix": [4,5], "label":"V", "x":5.25, "y":4.25}, + {"matrix": [4,6], "label":"B", "x":6.25, "y":4.25}, + {"matrix": [4,7], "label":"N", "x":7.25, "y":4.25}, + {"matrix": [4,8], "label":"M", "x":8.25, "y":4.25}, + {"matrix": [4,9], "label":"<", "x":9.25, "y":4.25}, + {"matrix": [4,10], "label":">", "x":10.25, "y":4.25}, + {"matrix": [4,11], "label":"?", "x":11.25, "y":4.25}, + {"matrix": [4,12], "label":"Shift", "x":12.25, "y":4.25, "w":1.75}, + {"matrix": [4,13], "label":"Fn", "x":14, "y":4.25}, + {"matrix": [4,15], "label":"1", "x":15.25, "y":4.25}, + {"matrix": [4,16], "label":"2", "x":16.25, "y":4.25}, + {"matrix": [4,17], "label":"3", "x":17.25, "y":4.25}, + {"matrix": [5,0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25}, + {"matrix": [5,1], "label":"Win", "x":1.25, "y":5.25, "w":1.25}, + {"matrix": [5,2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25}, + {"matrix": [5,6], "label":"Space", "x":3.75, "y":5.25, "w":6.25}, + {"matrix": [5,10], "label":"Alt", "x":10, "y":5.25, "w":1.25}, + {"matrix": [5,11], "label":"Alt", "x":11.25, "y":5.25, "w":1.25}, + {"matrix": [5,12], "label":"Win", "x":12.5, "y":5.25, "w":1.25}, + {"matrix": [5,13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, + {"matrix": [5,15], "label":"0", "x":15.25, "y":5.25}, + {"matrix": [5,16], "label":"0", "x":16.25, "y":5.25}, + {"matrix": [5,17], "label":".", "x":17.25, "y":5.25} + ] + } + } +} diff --git a/keyboards/hlb/hyperbolas/hyp_s/keymaps/default/keymap.c b/keyboards/hlb/hyperbolas/hyp_s/keymaps/default/keymap.c new file mode 100644 index 0000000000..eb206858c5 --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │/ │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ├───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ | 1 │ 2 │ 3 | + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ├───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ 0 │ 0 │ . │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_P0, KC_P0, KC_PDOT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LEFT, KC_DOWN, KC_RIGHT + ) +}; diff --git a/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/config.h b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/config.h new file mode 100644 index 0000000000..b61818ae31 --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/config.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xBE, 0xF5, 0xDB, 0xD4, 0xA3, 0x2A, 0xAC, 0xDE} + +#define VIAL_UNLOCK_COMBO_ROWS { 2, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 +#define VIAL_TAP_DANCE_ENTRIES 10 +#define VIAL_COMBO_ENTRIES 15 +#define VIAL_KEY_OVERRIDE_ENTRIES 10 diff --git a/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/keymap.c b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/keymap.c new file mode 100644 index 0000000000..eb206858c5 --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │PSc│Scr│Pse│ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │/ │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │ 7 │ 8 │ 9 │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ├───┼───┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │ │ 4 │ 5 │ 6 │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ├───┼───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ | 1 │ 2 │ 3 | + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ├───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│ │ 0 │ 0 │ . │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_PSLS, KC_PAST, KC_PMNS, + 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_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_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_P0, KC_P0, KC_PDOT + ), + [1] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_LEFT, KC_DOWN, KC_RIGHT + ) +}; diff --git a/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/rules.mk b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/vial.json b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/vial.json new file mode 100644 index 0000000000..1814386b9b --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/keymaps/vial/vial.json @@ -0,0 +1,296 @@ +{ + "matrix": { + "rows": 6, + "cols": 18 + }, + "layouts": { + "labels": [ + "Split Backspace", + "ISO Enter", + "Split Left Shift", + "Split Right Shift", + "Numpad 00", + ["Bottom Row", "7U", "6.25U", "WKL"] + ], + "keymap": [ + [ + { + "x": 2.5 + }, + "0,0", + { + "x": 1 + }, + "0,2", + "0,3", + "0,4", + "0,5", + { + "x": 0.5 + }, + "0,6", + "0,7", + "0,8", + "0,9", + { + "x": 0.5 + }, + "0,10", + "0,11", + "0,12", + "0,13", + { + "x": 0.25 + }, + "0,15", + "0,16", + "0,17" + ], + [ + { + "y": 0.25, + "x": 2.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 2 + }, + "1,14\n\n\n0,0", + { + "x": 0.25 + }, + "1,15", + "1,16", + "1,17", + { + "x": 0.25 + }, + "1,13\n\n\n0,1", + "1,14\n\n\n0,1" + ], + [ + { + "x": 2.5, + "w": 1.5 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + "2,12", + { + "w": 1.5 + }, + "2,13\n\n\n1,0", + { + "x": 0.25 + }, + "2,15", + "2,16", + "2,17", + { + "x": 1.75, + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "3,13\n\n\n1,1" + ], + [ + { + "x": 2.5, + "w": 1.75 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "w": 2.25 + }, + "3,13\n\n\n1,0", + { + "x": 0.25 + }, + "3,15", + "3,16", + "3,17", + { + "x": 0.75 + }, + "3,12\n\n\n1,1" + ], + [ + { + "w": 1.25 + }, + "4,0\n\n\n2,1", + "4,1\n\n\n2,1", + { + "x": 0.25, + "w": 2.25 + }, + "4,0\n\n\n2,0", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + { + "w": 2.75 + }, + "4,12\n\n\n3,0", + { + "x": 0.25 + }, + "4,15", + "4,16", + "4,17", + { + "x": 0.25, + "w": 1.75 + }, + "4,12\n\n\n3,1", + "4,13\n\n\n3,1" + ], + [ + { + "x": 2.5, + "w": 1.5 + }, + "5,0\n\n\n5,0", + "5,1\n\n\n5,0", + { + "w": 1.5 + }, + "5,2\n\n\n5,0", + { + "w": 7 + }, + "5,6\n\n\n5,0", + { + "w": 1.5 + }, + "5,11\n\n\n5,0", + "5,12\n\n\n5,0", + { + "w": 1.5 + }, + "5,13\n\n\n5,0", + { + "x": 0.25 + }, + "5,15\n\n\n4,0", + "5,16\n\n\n4,0", + "5,17", + { + "x": 0.25, + "w": 2 + }, + "5,15\n\n\n4,1" + ], + [ + { + "y": 0.25, + "x": 2.5, + "w": 1.25 + }, + "5,0\n\n\n5,1", + { + "w": 1.25 + }, + "5,1\n\n\n5,1", + { + "w": 1.25 + }, + "5,2\n\n\n5,1", + { + "w": 6.25 + }, + "5,6\n\n\n5,1", + { + "w": 1.25 + }, + "5,10\n\n\n5,1", + { + "w": 1.25 + }, + "5,11\n\n\n5,1", + { + "w": 1.25 + }, + "5,12\n\n\n5,1", + { + "w": 1.25 + }, + "5,13\n\n\n5,1" + ], + [ + { + "x": 2.5, + "w": 1.5 + }, + "5,0\n\n\n5,2", + { + "d": true + }, + "5,1\n\n\n5,2", + { + "w": 1.5 + }, + "5,2\n\n\n5,2", + { + "w": 7 + }, + "5,6\n\n\n5,2", + { + "w": 1.5 + }, + "5,11\n\n\n5,2", + { + "d": true + }, + "5,12\n\n\n5,2", + { + "w": 1.5 + }, + "5,13\n\n\n5,2" + ] + ] + } +} diff --git a/keyboards/hlb/hyperbolas/hyp_s/readme.md b/keyboards/hlb/hyperbolas/hyp_s/readme.md new file mode 100644 index 0000000000..ce1fa78577 --- /dev/null +++ b/keyboards/hlb/hyperbolas/hyp_s/readme.md @@ -0,0 +1,26 @@ +# Hyperbolas + +![hyperbolas](https://mint-tomato-83b.notion.site/image/attachment%3A80a8f4b8-9c85-41f6-8fe5-5ce0d04d3ee3%3A4k_2025v6_Hyperbolas16.jpg?table=block&id=2303f3e3-ee19-8076-9b95-e92cb368dec3&spaceId=41a0dc7a-fdbe-4a75-8b60-e3a45cfce97f&width=2000&userId=&cache=v2) + +TKL project from HLB with 8K pcb layout compatibility. + +* Keyboard Maintainer: [H3lli0n](https://github.com/H3lli0n) +* Hardware Supported: HLB Hyperbolas + +Make example for this keyboard (after setting up your build environment): + + make hlb/hyperbolas/hyp-s:default + +Flashing example for this keyboard: + + make hlb/hyperbolas/hyp-s: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 2 times the physical reset button. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. From 0f7eae3a556831d1f639d89b7a281ebf5c5a136b Mon Sep 17 00:00:00 2001 From: AP Date: Tue, 5 Aug 2025 22:03:15 -0400 Subject: [PATCH 11/24] viktus-spmini vial support (#921) * viktus-spmini vial support * Fix ID for spmini * Size reduction Based on https://docs.qmk.fm/squeezing_avr. Local compile reports as " * The firmware size is fine - 25946/28672 (90%, 2726 bytes free)" Also changed unlock combo. * VIAL_UNLOCK_COMBO_ROWS update Fixed dupe key --- .../viktus/sp_mini/keymaps/vial/config.h | 31 ++ .../viktus/sp_mini/keymaps/vial/keymap.c | 135 +++++++++ .../viktus/sp_mini/keymaps/vial/rules.mk | 20 ++ .../viktus/sp_mini/keymaps/vial/vial.json | 285 ++++++++++++++++++ 4 files changed, 471 insertions(+) create mode 100644 keyboards/viktus/sp_mini/keymaps/vial/config.h create mode 100644 keyboards/viktus/sp_mini/keymaps/vial/keymap.c create mode 100644 keyboards/viktus/sp_mini/keymaps/vial/rules.mk create mode 100644 keyboards/viktus/sp_mini/keymaps/vial/vial.json diff --git a/keyboards/viktus/sp_mini/keymaps/vial/config.h b/keyboards/viktus/sp_mini/keymaps/vial/config.h new file mode 100644 index 0000000000..91b53c61d0 --- /dev/null +++ b/keyboards/viktus/sp_mini/keymaps/vial/config.h @@ -0,0 +1,31 @@ +#define VIAL_KEYBOARD_UID {0xE5, 0x2B, 0x48, 0x0A, 0x60, 0xE2, 0x5D, 0x31} + +#define VIAL_UNLOCK_COMBO_ROWS { 1, 7 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 6 } + +#define DYNAMIC_KEYMAP_LAYER_COUNT 3 +#define LAYER_STATE_8BIT +// #define VIAL_COMBO_ENTRIES 8 +// #define VIAL_TAP_DANCE_ENTRIES 8 + +/* +#undef RGBLIGHT_ANIMATIONS +// #define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +// #define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +// #define RGBLIGHT_EFFECT_TWINKLE +*/ + +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +#define RGBLIGHT_BREATHE_TABLE_SIZE 128 // 256(default) or 128 or 64 + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define NO_ACTION_ONESHOT +#define NO_MUSIC_MODE \ No newline at end of file diff --git a/keyboards/viktus/sp_mini/keymaps/vial/keymap.c b/keyboards/viktus/sp_mini/keymaps/vial/keymap.c new file mode 100644 index 0000000000..774cac7cda --- /dev/null +++ b/keyboards/viktus/sp_mini/keymaps/vial/keymap.c @@ -0,0 +1,135 @@ + /* Copyright 2021 jrfhoutx + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +// 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. + + +enum custom_layers { + _BASE, + _FN1, + _FN2, + _FN3, +}; + +enum custom_keycodes { + QWERTY = SAFE_RANGE, +}; + +#define KC_FN1 MO(_FN1) +#define KC_FN2 MO(_FN2) +#define SPFN1 LT(_FN1, KC_SPACE) +#define BSFN2 LT(_FN2, KC_BSPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + MO(1), KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_BSPC, _______, + MO(2), KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, 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_RSFT, KC_UP, + _______, KC_LCTL, KC_LALT, KC_LGUI, KC_FN1, SPFN1, BSFN2, KC_RALT, KC_FN2, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN1] = LAYOUT_all( + _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, 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, _______, + _______, UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, KC_VOLU, KC_LBRC, KC_RBRC, KC_4, KC_5, KC_6, KC_SCLN, _______, _______, + _______, UG_NEXT, UG_HUED, UG_SATD, UG_VALD, KC_VOLD, KC_LCBR, KC_RCBR, KC_1, KC_2, KC_3, _______, KC_UP, + _______, _______, _______, _______, _______, _______, KC_DEL, KC_0, _______, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS, KC_PLUS, _______, + _______, _______, _______, _______, KC_INS, KC_PGUP, KC_HOME, _______, _______, _______, _______, KC_COLN, _______, _______, + _______, _______, _______, _______, KC_DEL, KC_PGDN, KC_END, _______, _______, _______, _______, _______, KC_UP, + _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + +void keyboard_pre_init_user(void) { + gpio_set_pin_output(F5); // initialize F5 for LED + gpio_set_pin_output(F6); // initialize F6 for LED + gpio_set_pin_output(F7); // initialize F7 for LED + +} + +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _FN1: + gpio_write_pin_high(F5); + gpio_write_pin_low(F6); + gpio_write_pin_low(F7); + break; + case _FN2: + gpio_write_pin_high(F6); + gpio_write_pin_low(F5); + gpio_write_pin_low(F7); + break; + case _FN3: // replace 'XXXX' with the layer or function name + gpio_write_pin_high(F7); + gpio_write_pin_low(F5); + gpio_write_pin_low(F6); + break; + case KC_F24: + gpio_write_pin_high(F7); + gpio_write_pin_high(F5); + gpio_write_pin_high(F6); + break; + default: + gpio_write_pin_low(F5); + gpio_write_pin_low(F6); + gpio_write_pin_low(F7); + break; + } + return state; +} + + +bool spongebob_mode = false; +bool spongebob_case = false; +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + if (spongebob_mode) { + switch(keycode) { + case KC_A...KC_Z: + if (record->event.pressed) { + (spongebob_case ^= 1) == 0 ? tap_code16(S(keycode)) : tap_code(keycode); + return false; break; + } + } + } + switch(keycode) { + case QK_KB_0: + if (record->event.pressed) { + spongebob_mode ^= 1; + } + return false; break; + } + return true; +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [1] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [2] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD), ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + // Encoder 1 Encoder 2 +}; +#endif \ No newline at end of file diff --git a/keyboards/viktus/sp_mini/keymaps/vial/rules.mk b/keyboards/viktus/sp_mini/keymaps/vial/rules.mk new file mode 100644 index 0000000000..18b6cd1adc --- /dev/null +++ b/keyboards/viktus/sp_mini/keymaps/vial/rules.mk @@ -0,0 +1,20 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes + +LTO_ENABLE = yes +QMK_SETTINGS = no +COMBO_ENABLE = no +KEY_OVERRIDE_ENABLE = no +TAP_DANCE_ENABLE = no + +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no +EXTRAKEY_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +MUSIC_ENABLE = no + +ENCODER_ENABLE = yes +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/viktus/sp_mini/keymaps/vial/vial.json b/keyboards/viktus/sp_mini/keymaps/vial/vial.json new file mode 100644 index 0000000000..46ee7667eb --- /dev/null +++ b/keyboards/viktus/sp_mini/keymaps/vial/vial.json @@ -0,0 +1,285 @@ +{ + "name": "SP_Mini", + "vendorId": "0x5644", + "productId": "0x534D", + "lighting": "qmk_rgblight", + "matrix": { + "rows": 10, + "cols": 8 + }, + "layouts": { + "labels": [ + "Split Backspace", + [ + "Bottom Row Left", + "2.75u", + "3u", + "2.25u", + "2u" + ], + [ + "Bottom Row Right", + "2.25u", + "3u", + "2.75u" + ] + ], + "keymap": [ + [ + { + "x": 0.25 + }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne", + { + "x": 13 + }, + "1,0\n\n\n\n\n\n\n\n\ne", + "1,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "x": 0.75 + }, + "0,0", + { + "x": 0.25 + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + { + "x": 0.5 + }, + "5,0", + "5,1", + "5,2", + "5,3", + "5,4", + "5,5", + "5,6", + { + "x": 0.25 + }, + "5,7" + ], + [ + { + "y": 0.25, + "x": 0.75 + }, + "1,0", + { + "x": 0.25 + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + { + "x": 0.5 + }, + "6,0", + "6,1", + "6,2", + "6,3", + "6,4", + "6,5\n\n\n0,0", + "6,6\n\n\n0,0", + { + "x": 0.25 + }, + "6,7", + { + "x": 0.25, + "w": 2 + }, + "6,6\n\n\n0,1" + ], + [ + { + "x": 0.75 + }, + "2,0", + { + "x": 0.25, + "w": 1.25 + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + { + "x": 0.5 + }, + "7,0", + "7,1", + "7,2", + "7,3", + "7,4", + { + "w": 1.75 + }, + "7,6", + { + "x": 0.25 + }, + "7,7" + ], + [ + { + "x": 0.75 + }, + "3,0", + { + "x": 0.25, + "w": 1.75 + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + { + "x": 0.5 + }, + "8,1", + "8,2", + "8,3", + "8,4", + { + "w": 1.25 + }, + "8,5" + ], + [ + { + "y": -0.75, + "x": 14.75 + }, + "8,6" + ], + [ + { + "y": -0.25, + "x": 0.75 + }, + "4,0", + { + "x": 0.25, + "w": 1.25 + }, + "4,1\n\n\n1,0", + { + "w": 1.25 + }, + "4,2\n\n\n1,0", + { + "w": 1.25 + }, + "4,3\n\n\n1,0", + { + "w": 2.75 + }, + "4,5\n\n\n1,0", + { + "x": 0.5, + "w": 2.25 + }, + "9,2\n\n\n2,0", + { + "w": 1.25 + }, + "9,3\n\n\n2,0", + "9,4\n\n\n2,0" + ], + [ + { + "y": -0.75, + "x": 13.75 + }, + "9,5", + "9,6", + "9,7" + ], + [ + { + "x": 2, + "w": 1.25 + }, + "4,1\n\n\n1,1", + "4,2\n\n\n1,1", + { + "w": 1.25 + }, + "4,3\n\n\n1,1", + { + "w": 3 + }, + "4,5\n\n\n1,1", + { + "x": 0.5, + "w": 3 + }, + "9,2\n\n\n2,1", + { + "w": 1.5 + }, + "9,4\n\n\n2,1" + ], + [ + { + "x": 2, + "w": 1.5 + }, + "4,1\n\n\n1,2", + { + "w": 1.25 + }, + "4,2\n\n\n1,2", + { + "w": 1.5 + }, + "4,3\n\n\n1,2", + { + "w": 2.25 + }, + "4,5\n\n\n1,2", + { + "x": 0.5, + "w": 2.75 + }, + "9,2\n\n\n2,2", + { + "w": 1.75 + }, + "9,4\n\n\n2,2" + ], + [ + { + "x": 2, + "w": 1.25 + }, + "4,1\n\n\n1,3", + "4,2\n\n\n1,3", + "4,3\n\n\n1,3", + { + "w": 1.25 + }, + "4,4\n\n\n1,3", + { + "w": 2 + }, + "4,5\n\n\n1,3" + ] + ] + } +} \ No newline at end of file From 913283022998091d59cd5d09e147f339a07ad457 Mon Sep 17 00:00:00 2001 From: era <73109780+eerraa@users.noreply.github.com> Date: Sat, 16 Aug 2025 10:01:47 +0900 Subject: [PATCH 12/24] Add Riley (#925) Add Riley --- keyboards/era/comm/Riley/config.h | 8 + keyboards/era/comm/Riley/keyboard.json | 114 +++++++++ .../era/comm/Riley/keymaps/default/keymap.c | 22 ++ .../era/comm/Riley/keymaps/vial/config.h | 7 + .../era/comm/Riley/keymaps/vial/keymap.c | 22 ++ .../era/comm/Riley/keymaps/vial/rules.mk | 2 + .../era/comm/Riley/keymaps/vial/vial.json | 222 ++++++++++++++++++ keyboards/era/comm/Riley/readme.md | 23 ++ keyboards/era/comm/Riley/readme.txt | 53 +++++ keyboards/era/comm/Riley/riley.c | 39 +++ keyboards/era/comm/Riley/riley.h | 6 + 11 files changed, 518 insertions(+) create mode 100644 keyboards/era/comm/Riley/config.h create mode 100644 keyboards/era/comm/Riley/keyboard.json create mode 100644 keyboards/era/comm/Riley/keymaps/default/keymap.c create mode 100644 keyboards/era/comm/Riley/keymaps/vial/config.h create mode 100644 keyboards/era/comm/Riley/keymaps/vial/keymap.c create mode 100644 keyboards/era/comm/Riley/keymaps/vial/rules.mk create mode 100644 keyboards/era/comm/Riley/keymaps/vial/vial.json create mode 100644 keyboards/era/comm/Riley/readme.md create mode 100644 keyboards/era/comm/Riley/readme.txt create mode 100644 keyboards/era/comm/Riley/riley.c create mode 100644 keyboards/era/comm/Riley/riley.h diff --git a/keyboards/era/comm/Riley/config.h b/keyboards/era/comm/Riley/config.h new file mode 100644 index 0000000000..f1b3a4b4a9 --- /dev/null +++ b/keyboards/era/comm/Riley/config.h @@ -0,0 +1,8 @@ +// Copyright 2025 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file diff --git a/keyboards/era/comm/Riley/keyboard.json b/keyboards/era/comm/Riley/keyboard.json new file mode 100644 index 0000000000..697d325a65 --- /dev/null +++ b/keyboards/era/comm/Riley/keyboard.json @@ -0,0 +1,114 @@ +{ + "manufacturer": "eerraa", + "keyboard_name": "Riley", + "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 + }, + "indicators": { + "caps_lock": "GP25" + }, + "matrix_pins": { + "cols": ["GP29", "GP20", "GP19", "GP18", "GP15", "GP14", "GP13", "GP12", "GP11", "GP24", "GP23", "GP22", "GP9", "GP10"], + "rows": ["GP5", "GP8", "GP28", "GP26", "GP27"] + }, + "processor": "RP2040", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"x": 208, "y": 64, "flags": 8}, + {"x": 216, "y": 64, "flags": 8}, + {"x": 224, "y": 64, "flags": 8} + ], + "sleep": true + }, + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0024", + "vid": "0x4552" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP4" + }, + "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": [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": 14, "y": 0}, + {"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.5, "y": 1, "w": 1.5}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"matrix": [3, 1], "x": 1.25, "y": 3}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3}, + {"matrix": [3, 4], "x": 4.25, "y": 3}, + {"matrix": [3, 5], "x": 5.25, "y": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3}, + {"matrix": [3, 7], "x": 7.25, "y": 3}, + {"matrix": [3, 8], "x": 8.25, "y": 3}, + {"matrix": [3, 9], "x": 9.25, "y": 3}, + {"matrix": [3, 10], "x": 10.25, "y": 3}, + {"matrix": [3, 11], "x": 11.25, "y": 3}, + {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25}, + {"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": 3}, + {"matrix": [4, 6], "x": 7, "y": 4}, + {"matrix": [4, 8], "x": 8, "y": 4, "w": 3}, + {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 14.25, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/era/comm/Riley/keymaps/default/keymap.c b/keyboards/era/comm/Riley/keymaps/default/keymap.c new file mode 100644 index 0000000000..2f3b2491d6 --- /dev/null +++ b/keyboards/era/comm/Riley/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2025 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + 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_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_BSLS, + 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_ENT, + KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL, MO(1) + ), + [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_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS , KC_HOME, KC_PGUP, KC_PSCR, KC_SCRL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL , KC_END , KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/comm/Riley/keymaps/vial/config.h b/keyboards/era/comm/Riley/keymaps/vial/config.h new file mode 100644 index 0000000000..2c22a5cbba --- /dev/null +++ b/keyboards/era/comm/Riley/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x08, 0x57, 0xF6, 0x88, 0xF6, 0x14, 0xCD, 0x5F} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 3 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/era/comm/Riley/keymaps/vial/keymap.c b/keyboards/era/comm/Riley/keymaps/vial/keymap.c new file mode 100644 index 0000000000..2f3b2491d6 --- /dev/null +++ b/keyboards/era/comm/Riley/keymaps/vial/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2025 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + 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_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_BSLS, + 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_ENT, + KC_LCTL, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RCTL, MO(1) + ), + [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_DEL, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_INS , KC_HOME, KC_PGUP, KC_PSCR, KC_SCRL, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL , KC_END , KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ) +}; \ No newline at end of file diff --git a/keyboards/era/comm/Riley/keymaps/vial/rules.mk b/keyboards/era/comm/Riley/keymaps/vial/rules.mk new file mode 100644 index 0000000000..6bc7063adc --- /dev/null +++ b/keyboards/era/comm/Riley/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/era/comm/Riley/keymaps/vial/vial.json b/keyboards/era/comm/Riley/keymaps/vial/vial.json new file mode 100644 index 0000000000..c2fa2b4a11 --- /dev/null +++ b/keyboards/era/comm/Riley/keymaps/vial/vial.json @@ -0,0 +1,222 @@ +{ + "name": "RILEY", + "vendorId": "0x4552", + "productId": "0x0024", + "lighting": "none", + "matrix": { + "rows": 5, + "cols": 14 + }, + "layouts": { + "labels": [ + [ + "Backspace", + "Unified", + "Split" + ], + [ + "Enter", + "ANSI", + "ISO" + ], + [ + "Left Shift", + "ANSI", + "ISO" + ], + [ + "Right Shift", + "Unified", + "Split" + ], + [ + "Bottom Row", + "7U", + "Split" + ] + ], + "keymap": [ + [ + { + "x": 2.75, + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13\n\n\n0,0", + { + "x": 1.25, + "c": "#cccccc" + }, + "0,13\n\n\n0,1", + "1,13\n\n\n0,1" + ], + [ + { + "x": 2.75, + "c": "#aaaaaa", + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "2,13\n\n\n1,0", + { + "x": 2, + "c": "#777777", + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "3,13\n\n\n1,1" + ], + [ + { + "x": 2.75, + "c": "#aaaaaa", + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "c": "#777777", + "w": 2.25 + }, + "3,13\n\n\n1,0", + { + "x": 1, + "c": "#cccccc" + }, + "2,12\n\n\n1,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "3,0\n\n\n2,1", + { + "c": "#cccccc" + }, + "3,1\n\n\n2,1", + { + "x": 0.5, + "c": "#aaaaaa", + "w": 2.25 + }, + "3,0\n\n\n2,0", + { + "c": "#cccccc" + }, + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "3,12\n\n\n3,0", + { + "x": 0.5, + "w": 1.75 + }, + "3,12\n\n\n3,1", + { + "c": "#cccccc" + }, + "4,13\n\n\n3,1" + ], + [ + { + "x": 4.25, + "c": "#aaaaaa" + }, + "4,1", + { + "w": 1.5 + }, + "4,2", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n4,0", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,11", + "4,12" + ], + [ + { + "x": 6.75, + "c": "#cccccc", + "w": 3 + }, + "4,4\n\n\n4,1", + "4,6\n\n\n4,1", + { + "w": 3 + }, + "4,8\n\n\n4,1" + ] + ] + } +} diff --git a/keyboards/era/comm/Riley/readme.md b/keyboards/era/comm/Riley/readme.md new file mode 100644 index 0000000000..50445a206d --- /dev/null +++ b/keyboards/era/comm/Riley/readme.md @@ -0,0 +1,23 @@ +# Riley + +* Keyboard Maintainer: [ERA](https://github.com/eerraa) +* Hardware supported: Gok x Lily +* Hardware availability: The Group Buy for this hardware has concluded. The hardware may be available on aftermarket channels. + +Make example for this keyboard (after setting up your build environment): + + make era/comm/riley:default + +Flashing example for this keyboard: + + make era/comm/riley: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 \ No newline at end of file diff --git a/keyboards/era/comm/Riley/readme.txt b/keyboards/era/comm/Riley/readme.txt new file mode 100644 index 0000000000..77ab447bbd --- /dev/null +++ b/keyboards/era/comm/Riley/readme.txt @@ -0,0 +1,53 @@ +################################################## +# 펌웨어 업데이트 방법 (Firmware Update Guide) +################################################## + +[한글 설명] + +■ 펌웨어 업데이트 절차 + +1. 아래 3가지 방법 중 하나를 선택하여 키보드를 '부트로더(Bootloader)' 모드로 진입시킵니다. +2. 부트로더 모드에 정상적으로 진입하면, 컴퓨터에 'RPI-RP2'와 같은 이름의 새로운 이동식 디스크가 나타납니다. +3. 이 디스크에 준비된 펌웨어(.uf2) 파일을 복사하여 붙여넣으면 잠시 후 자동으로 업데이트가 완료됩니다. + + +■ 부트로더 모드 진입 방법 (3가지) + +1. 부트매직(Bootmagic) 사용 + - 키보드의 좌측 상단 키(일반적으로 Esc 키)를 누른 상태로 USB 케이블을 연결합니다. + +2. 물리적 리셋(Physical Reset) 사용 + - 기판(PCB)의 리셋 버튼을 빠르게 두 번 누릅니다. (버튼이 있는 경우) + - 또는, 기판의 'RST' 핀과 'GND' 핀을 핀셋 등으로 짧게 두 번 접촉(쇼트)시킵니다. + - 또는, 'BOOT' 헤더 핀 두 개를 쇼트시킨 상태로 USB 케이블을 연결합니다. + +3. 리셋 키코드(Reset Keycode) 사용 + - 키맵에 'QK_BOOT' 또는 'RESET'으로 미리 설정해 둔 키를 누릅니다. + - (이 방법은 키맵에 해당 기능 키를 미리 할당한 경우에만 사용할 수 있습니다.) + + +====================================================================== + + +[English Description] + +■ How to Flash Firmware + +1. Enter the keyboard's "Bootloader" mode using one of the three methods described below. +2. Once the keyboard is in bootloader mode, a new removable disk (e.g., "RPI-RP2") will appear on your computer. +3. Copy-paste or drag-and-drop your prepared firmware file (e.g., firmware.uf2) onto this disk. The update will complete automatically. + + +■ Three Ways to Enter Bootloader Mode + +1. Using Bootmagic + - Hold down the top-left key of the keyboard (usually the Esc key) while plugging in the USB cable. + +2. Using Physical Reset + - Quickly double-press the reset button on the PCB, if one exists. + - Alternatively, use tweezers to briefly short the 'RST' and 'GND' pins on the PCB twice. + - Alternatively, short the two 'BOOT' header pins while plugging in the USB cable. + +3. Using a Reset Keycode + - Press the key that you have assigned to 'QK_BOOT' or 'RESET' in your keymap. + - (This method only works if you have already configured such a key in your layout.) \ No newline at end of file diff --git a/keyboards/era/comm/Riley/riley.c b/keyboards/era/comm/Riley/riley.c new file mode 100644 index 0000000000..9f3fa0aed1 --- /dev/null +++ b/keyboards/era/comm/Riley/riley.c @@ -0,0 +1,39 @@ +// Copyright 2025 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" +#include "rgb_matrix.h" +#include "riley.h" + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()) { + return false; + } + + led_t led_state = host_keyboard_led_state(); + + if (led_state.caps_lock) { + RGB rgb = hsv_to_rgb((HSV){0, 255, 255}); // Red + rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); + } + + if (led_state.scroll_lock) { + RGB rgb = hsv_to_rgb((HSV){170, 255, 255}); // Blue + rgb_matrix_set_color(1, rgb.r, rgb.g, rgb.b); + } + + if (led_state.num_lock) { + RGB rgb = hsv_to_rgb((HSV){85, 255, 255}); // Green + rgb_matrix_set_color(2, rgb.r, rgb.g, rgb.b); + } + + return true; +} + +void keyboard_post_init_kb(void) { + rgb_matrix_enable_noeeprom(); + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(0, 0, 0); + + keyboard_post_init_user(); +} \ No newline at end of file diff --git a/keyboards/era/comm/Riley/riley.h b/keyboards/era/comm/Riley/riley.h new file mode 100644 index 0000000000..98570ccccb --- /dev/null +++ b/keyboards/era/comm/Riley/riley.h @@ -0,0 +1,6 @@ +// Copyright 2025 Hyojin Bak (@eerraa) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" \ No newline at end of file From af590c42209760ee1c530817fad2a68f8bc6bf5d Mon Sep 17 00:00:00 2001 From: Danny Date: Sun, 31 Aug 2025 07:04:09 -0400 Subject: [PATCH 13/24] Add Iris LM support (#927) --- .../keebio/iris_lm/keymaps/vial/config.h | 7 ++ .../keebio/iris_lm/keymaps/vial/keymap.c | 70 +++++++++++++++++++ .../keebio/iris_lm/keymaps/vial/rules.mk | 3 + .../keebio/iris_lm/keymaps/vial/vial.json | 66 +++++++++++++++++ 4 files changed, 146 insertions(+) create mode 100644 keyboards/keebio/iris_lm/keymaps/vial/config.h create mode 100644 keyboards/keebio/iris_lm/keymaps/vial/keymap.c create mode 100644 keyboards/keebio/iris_lm/keymaps/vial/rules.mk create mode 100644 keyboards/keebio/iris_lm/keymaps/vial/vial.json diff --git a/keyboards/keebio/iris_lm/keymaps/vial/config.h b/keyboards/keebio/iris_lm/keymaps/vial/config.h new file mode 100644 index 0000000000..0228b65aa8 --- /dev/null +++ b/keyboards/keebio/iris_lm/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x97, 0xF0, 0xDF, 0xEC, 0x29, 0x72, 0x1E, 0x31} +#define VIAL_UNLOCK_COMBO_ROWS {0,9} +#define VIAL_UNLOCK_COMBO_COLS {0,5} diff --git a/keyboards/keebio/iris_lm/keymaps/vial/keymap.c b/keyboards/keebio/iris_lm/keymaps/vial/keymap.c new file mode 100644 index 0000000000..6c06313f00 --- /dev/null +++ b/keyboards/keebio/iris_lm/keymaps/vial/keymap.c @@ -0,0 +1,70 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum custom_layer { + _MAIN, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_MAIN] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + QK_GESC, 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_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + 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_HOME, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + KC_LGUI, TL_LOWR, KC_ENT, KC_SPC, TL_UPPR, KC_RALT + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_FN1] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PGUP, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_GRV, _______, KC_UP, _______, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, KC_P0, KC_PGDN, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_PLUS, KC_PIPE, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + RGB_MOD, _______, _______, _______, _______, KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_P1, KC_P2, KC_P3, KC_MINS, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, KC_DEL, KC_DEL, _______, KC_P0 + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_FN2] = 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, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + RGB_TOG, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, QK_BOOT, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + RGB_MOD, KC_MPRV, KC_MNXT, KC_VOLU, KC_PGUP, KC_UNDS, KC_EQL, KC_HOME, RGB_HUI, RGB_SAI, RGB_VAI, KC_BSLS, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + KC_MUTE, KC_MSTP, KC_MPLY, KC_VOLD, KC_PGDN, KC_MINS, KC_LPRN, _______, KC_PLUS, KC_END, RGB_HUD, RGB_SAD, RGB_VAD, _______, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ), + + [_FN3] = LAYOUT( + //┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + //├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ + EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, EE_CLR, + //└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ + _______, _______, _______, _______, _______, _______ + // └────────┴────────┴────────┘ └────────┴────────┴────────┘ + ) +}; diff --git a/keyboards/keebio/iris_lm/keymaps/vial/rules.mk b/keyboards/keebio/iris_lm/keymaps/vial/rules.mk new file mode 100644 index 0000000000..d013bc62da --- /dev/null +++ b/keyboards/keebio/iris_lm/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +VIALRGB_ENABLE = yes diff --git a/keyboards/keebio/iris_lm/keymaps/vial/vial.json b/keyboards/keebio/iris_lm/keymaps/vial/vial.json new file mode 100644 index 0000000000..1d686af65e --- /dev/null +++ b/keyboards/keebio/iris_lm/keymaps/vial/vial.json @@ -0,0 +1,66 @@ +{ + "lighting": "vialrgb", + "matrix": {"rows": 10, "cols": 6}, + "layouts": { + "keymap": [ + [ {"x": 3}, "0,3", {"x": 8}, "5,3" ], + [ + {"y": -0.875, "x": 2}, + "0,2", + {"x": 1}, + "0,4", + {"x": 6}, + "5,4", + {"x": 1}, + "5,2" + ], + [ {"y": -0.875, "x": 5}, "0,5", {"x": 4}, "5,5" ], + [ {"y": -0.875}, "0,0", "0,1", {"x": 12}, "5,1", "5,0" ], + [ {"y": -0.385, "x": 3}, "1,3", {"x": 8}, "6,3" ], + [ + {"y": -0.875, "x": 2}, + "1,2", + {"x": 1}, + "1,4", + {"x": 6}, + "6,4", + {"x": 1}, + "6,2" + ], + [ {"y": -0.875, "x": 5}, "1,5", {"x": 4}, "6,5" ], + [ {"y": -0.875}, "1,0", "1,1", {"x": 12}, "6,1", "6,0" ], + [ {"y": -0.385, "x": 3}, "2,3", {"x": 8}, "7,3" ], + [ + {"y": -0.875, "x": 2}, + "2,2", + {"x": 1}, + "2,4", + {"x": 6}, + "7,4", + {"x": 1}, + "7,2" + ], + [ {"y": -0.875, "x": 5}, "2,5", {"x": 4}, "7,5" ], + [ {"y": -0.875}, "2,0", "2,1", {"x": 12}, "7,1", "7,0" ], + [ {"y": -0.385, "x": 3}, "3,3", {"x": 8}, "8,3" ], + [ + {"y": -0.875, "x": 2}, + "3,2", + {"x": 1}, + "3,4", + {"x": 6}, + "8,4", + {"x": 1}, + "8,2" + ], + [ {"y": -0.875, "x": 5}, "3,5", {"x": 4}, "8,5" ], + [ {"y": -0.875}, "3,0", "3,1", {"x": 12}, "8,1", "8,0" ], + [ {"y": -0.125, "x": 3.5}, "4,2", {"x": 7}, "9,2" ], + [ {"y": -0.875, "x": 4.5}, "4,3", {"x": 5}, "9,3" ], + [ {"r": 30, "rx": 8, "y": 4.13, "x": 0.6}, "4,5" ], + [ {"x": 0.6}, "4,4" ], + [ {"r": -30, "y": -2, "x": -1.6}, "9,5" ], + [ {"x": -1.6}, "9,4" ] + ] + } +} From 1638f5da2bc312b2be3df3a275ccd381ff0c735f Mon Sep 17 00:00:00 2001 From: Rogier Spieker Date: Mon, 1 Sep 2025 06:47:39 +0200 Subject: [PATCH 14/24] Added Keychron Q9 Plus vial keymap (#928) Co-authored-by: Rogier Spieker --- .../ansi_encoder/keymaps/vial/config.h | 8 + .../ansi_encoder/keymaps/vial/keymap.c | 164 ++++++++++++++++ .../ansi_encoder/keymaps/vial/rules.mk | 5 + .../ansi_encoder/keymaps/vial/vial.json | 185 ++++++++++++++++++ 4 files changed, 362 insertions(+) create mode 100644 keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/config.h create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/keymap.c create mode 100755 keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/rules.mk create mode 100644 keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/vial.json diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/config.h b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/config.h new file mode 100644 index 0000000000..0d151f52a2 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x74, 0x8F, 0x33, 0x91, 0x5F, 0x20, 0x08, 0x70} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/keymap.c b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/keymap.c new file mode 100755 index 0000000000..00d9c375c2 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/keymap.c @@ -0,0 +1,164 @@ +/* Based on Keychron Q9 Vial by Keychron (https://www.keychron.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 . + */ + +#include QMK_KEYBOARD_H + +enum layers{ + MAC_BASE, + WIN_BASE, + MAC_FN1, + WIN_FN1, + FN2, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) +#define MO_MAC MO(MAC_FN1) +#define MO_WIN MO(WIN_FN1) +#define MO_FN2 MO(FN2) + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // +------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------------+ ******** + // | | | | | | | | | | | | | | | * * + // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | * MUTE * + // | | | | | | | | | | | | | | | * * + // +------------+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+------------+ ******** + // | | | | | | | | | | | | | | + // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | +--------+ + // | | | | | | | | | | | | | | | | + // +---------------+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---------+--------+ | HOME | + // | | | | | | | | | | | | | | | | + // | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | +--------+ + // | | | | | | | | | | | | | | + // +----------+--------+-+------+---+----+-----+--+--------+--------+--------+--------+-----+--+-----+--+-----+--+-----+--------+--------+--------+ + // | | | | | | | | | | | | | + // | CNTL | OPT | CMD | MAC_FN | SPC | SPC | CMD | MAC_FN | FN2 | LEFT | DOWN | RGHT | + // | | | | | | | | | | | | | + // +----------+----------+----------+----------+--------------------+-----------------------+--------+--------+--------+--------+--------+--------+ + [MAC_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL , KC_LOPT , KC_LCMD, MO_MAC , KC_SPC , KC_SPC , KC_RCMD, MO_MAC , MO_FN2 , KC_LEFT, KC_DOWN ,KC_RGHT + ), + + // +------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------------+ ******** + // | | | | | | | | | | | | | | | * * + // | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | * MUTE * + // | | | | | | | | | | | | | | | * * + // +------------+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+------------+ ******** + // | | | | | | | | | | | | | | + // | CAPS | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | +--------+ + // | | | | | | | | | | | | | | | | + // +---------------+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---------+--------+ | HOME | + // | | | | | | | | | | | | | | | | + // | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | UP | +--------+ + // | | | | | | | | | | | | | | + // +----------+--------+-+------+---+----+-----+--+--------+--------+--------+--------+-----+--+-----+--+-----+--+-----+--------+--------+--------+ + // | | | | | | | | | | | | | + // | CNTL | WIN | ALT | WIN_FN | SPC | SPC | ALT | WIN_FN | FN2 | LEFT | DOWN | RGHT | + // | | | | | | | | | | | | | + // +----------+----------+----------+----------+--------------------+-----------------------+--------+--------+--------+--------+--------+--------+ + [WIN_BASE] = LAYOUT_54_ansi( + 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_MUTE, + 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_LSFT , KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL , KC_LWIN , KC_LALT, MO_WIN , KC_SPC , KC_SPC , KC_RALT, MO_WIN , MO_FN2 , KC_LEFT, KC_DOWN, KC_RGHT + ), + + // +------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------------+ ******** + // | | | | | | | | | | | | | | | * * + // | ` | SCR- | SCR+ | MCTL | LPAD | BRI- | BRI+ | PREV | PLAY | NEXT | VOL- | VOL+ | | | * RGBTGL * + // | | | | | | | | | | | | | | | * * + // +------------+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+------------+ ******** + // | | | | | | | | | | | | | | + // | RGBTGL | RMNEXT | BRI+ | HUE+ | SAT+ | SPD+ | | | | | | | | +--------+ + // | | | | | | | | | | | | | | | | + // +---------------+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---------+--------+ | | + // | | | | | | | | | | | | | | | | + // | | RMPREV | BRI- | HEU- | SAT- | SPD- | NKTGL | | | | | | | +--------+ + // | | | | | | | | | | | | | | + // +----------+--------+-+------+---+----+-----+--+--------+--------+--------+--------+-----+--+-----+--+-----+--+-----+--------+--------+--------+ + // | | | | | | | | | | | | | + // | | | | | | | | | | | | | + // | | | | | | | | | | | | | + // +----------+----------+----------+----------+--------------------+-----------------------+--------+--------+--------+--------+--------+--------+ + [MAC_FN1] = LAYOUT_54_ansi( + KC_GRV , KC_BRID , KC_BRIU, KC_MCTL, KC_LPAD, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______ , RM_TOGG, + RM_TOGG , RM_NEXT , RM_VALU, RM_HUEU, RM_SATU ,RM_SPDU, _______, _______, _______, _______, _______, _______, _______ , _______, + _______ , RM_PREV , RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______ , _______ , _______, _______, _______ , _______ , _______, _______, _______, _______, _______, _______ + ), + + // +------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------------+ ******** + // | | | | | | | | | | | | | | | * * + // | ` | SCR- | SCR+ | TASK | FILE | BRI- | BRI+ | PREV | PLAY | NEXT | VOL- | VOL+ | | | * RGBTGL * + // | | | | | | | | | | | | | | | * * + // +------------+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+------------+ ******** + // | | | | | | | | | | | | | | + // | RGBTGL | RMNEXT | BRI+ | HUE+ | SAT+ | SPD+ | | | | | | | | +--------+ + // | | | | | | | | | | | | | | | | + // +---------------+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---------+--------+ | | + // | | | | | | | | | | | | | | | | + // | | RMPREV | BRI- | HEU- | SAT- | SPD- | NKTGL | | | | | | | +--------+ + // | | | | | | | | | | | | | | + // +----------+--------+-+------+---+----+-----+--+--------+--------+--------+--------+-----+--+-----+--+-----+--+-----+--------+--------+--------+ + // | | | | | | | | | | | | | + // | | | | | | | | | | | | | + // | | | | | | | | | | | | | + // +----------+----------+----------+----------+--------------------+-----------------------+--------+--------+--------+--------+--------+--------+ + [WIN_FN1] = LAYOUT_54_ansi( + KC_GRV , KC_BRID , KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______ , RM_TOGG, + RM_TOGG , RM_NEXT , RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______ , _______, + _______ , RM_PREV , RM_VALD, RM_HUED, RM_SATD, RM_SPDD, NK_TOGG, _______, _______, _______, _______, _______, _______, + _______ , _______ , _______, _______, _______ , _______ , _______, _______, _______, _______, _______, _______ + ), + + // +------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+------------+ ******** + // | | | | | | | | | | | | | | | * * + // | ~ | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | BACK | * * + // | | | | | | | | | | | | | | | * * + // +------------+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+--+-----+------------+ ******** + // | | | | | | | | | | | | | | + // | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | +--------+ + // | | | | | | | | | | | | | | | | + // +---------------+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---+----+---------+--------+ | | + // | | | | | | | | | | | | | | | | + // | | | | | | | | | | | | | | +--------+ + // | | | | | | | | | | | | | | + // +----------+--------+-+------+---+----+-----+--+--------+--------+--------+--------+-----+--+-----+--+-----+--+-----+--------+--------+--------+ + // | | | | | | | | | | | | | + // | | | | | | | | | | | | | + // | | | | | | | | | | | | | + // +----------+----------+----------+----------+--------------------+-----------------------+--------+--------+--------+--------+--------+--------+ + [FN2] = LAYOUT_54_ansi( + KC_TILD , 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_BSPC , _______, + KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, _______ , _______, + _______ , _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______ , _______ , _______, _______, _______ , _______ , _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [MAC_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [WIN_BASE] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [MAC_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [WIN_FN1] = {ENCODER_CCW_CW(RM_VALD, RM_VALU)}, + [FN2] = {ENCODER_CCW_CW(RM_HUED, RM_HUEU)} +}; +#endif diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/rules.mk b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/rules.mk new file mode 100755 index 0000000000..9a67a1220b --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +VIALRGB_ENABLE = yes +ENCODER_MAP_ENABLE = yes + diff --git a/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/vial.json b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/vial.json new file mode 100644 index 0000000000..6ab2c84148 --- /dev/null +++ b/keyboards/keychron/q9_plus/ansi_encoder/keymaps/vial/vial.json @@ -0,0 +1,185 @@ +{ + "name": "Keychron Q9 Plus", + "lighting": "vialrgb", + "matrix": { + "rows": 4, + "cols": 15 + }, + "customKeycodes": [ + { + "name": "Mission Control", + "title": "Mission Control in macOS", + "shortName": "Mission Control" + }, + { + "name": "Launch Pad", + "title": "Launch Pad in macOS", + "shortName": "Launch Pad" + }, + { + "name": "Left Option", + "title": "Left Option in macOS", + "shortName": "Left Option" + }, + { + "name": "Right Option", + "title": "Right Option in macOS", + "shortName": "Right Option" + }, + { + "name": "Left Cmd", + "title": "Left Command in macOS", + "shortName": "Left Command" + }, + { + "name": "Right Cmd", + "title": "Right Command in macOS", + "shortName": "Right Command" + }, + { + "name": "Task View", + "title": "Task View in windows", + "shortName": "Task View" + }, + { + "name": "File Explorer", + "title": "File Explorer in windows", + "shortName": "File Explorer" + } + ], + "layouts": { + "keymap": [ + [ + { + "x": 15.25, + "c": "#aaaaaa" + }, + "0,14", + { + "x": 0.25 + }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne" + ], + [ + { + "w": 1.5 + }, + "0, 0", + "0, 1", + "0, 2", + "0, 3", + "0, 4", + "0, 5", + "0, 6", + "0, 7", + "0, 8", + "0, 9", + "0, 10", + "0, 11", + "0, 12", + { + "w": 1.5 + }, + "0, 13", + { + "x": 0.25, + "c": "#000000", + "t": "#cccccc" + }, + "0, 14" + ], + [ + { + "c": "#cccccc", + "t": "#000000", + "w": 1.75 + }, + "1, 0", + "1, 1", + "1, 2", + "1, 3", + "1, 4", + "1, 5", + "1, 6", + "1, 7", + "1, 8", + "1, 9", + "1, 10", + "1, 11", + { + "w": 2.25 + }, + "1, 13" + ], + [ + { + "y": -0.75, + "x": 15.25 + }, + "1, 14" + ], + [ + { + "y": -0.25, + "w": 2.25 + }, + "2, 0", + "2, 2", + "2, 3", + "2, 4", + "2, 5", + "2, 6", + "2, 7", + "2, 8", + "2, 9", + "2, 10", + "2, 11", + { + "w": 1.75 + }, + "2, 13", + { + "c": "#bbbbbb" + }, + "2, 14" + ], + [ + { + "c": "#cccccc", + "w": 1.25 + }, + "3, 0", + { + "w": 1.25 + }, + "3, 1", + { + "w": 1.25 + }, + "3, 2", + { + "w": 1.25 + }, + "3, 3", + { + "w": 2.25 + }, + "3, 6", + { + "w": 2.75 + }, + "3, 9", + "3, 10", + "3, 11", + "3, 12", + { + "c": "#bbbbbb" + }, + "3, 13", + "3, 14", + "1, 12" + ] + ] + } +} \ No newline at end of file From 3beda8bc8d35ea4e62a3c3c7e9f7c3c509cf2333 Mon Sep 17 00:00:00 2001 From: melonbred <61572569+melonbred@users.noreply.github.com> Date: Sat, 20 Sep 2025 18:34:56 -0700 Subject: [PATCH 15/24] Added mb44v2 keyboard. (#936) --- keyboards/melonbred/mb44v2/keyboard.json | 184 ++++++++++++++++++ .../melonbred/mb44v2/keymaps/default/keymap.c | 49 +++++ .../melonbred/mb44v2/keymaps/vial/config.h | 7 + .../melonbred/mb44v2/keymaps/vial/keymap.c | 49 +++++ .../melonbred/mb44v2/keymaps/vial/rules.mk | 2 + .../melonbred/mb44v2/keymaps/vial/vial.json | 129 ++++++++++++ keyboards/melonbred/mb44v2/readme.md | 27 +++ 7 files changed, 447 insertions(+) create mode 100644 keyboards/melonbred/mb44v2/keyboard.json create mode 100644 keyboards/melonbred/mb44v2/keymaps/default/keymap.c create mode 100644 keyboards/melonbred/mb44v2/keymaps/vial/config.h create mode 100644 keyboards/melonbred/mb44v2/keymaps/vial/keymap.c create mode 100644 keyboards/melonbred/mb44v2/keymaps/vial/rules.mk create mode 100644 keyboards/melonbred/mb44v2/keymaps/vial/vial.json create mode 100644 keyboards/melonbred/mb44v2/readme.md diff --git a/keyboards/melonbred/mb44v2/keyboard.json b/keyboards/melonbred/mb44v2/keyboard.json new file mode 100644 index 0000000000..25810d3767 --- /dev/null +++ b/keyboards/melonbred/mb44v2/keyboard.json @@ -0,0 +1,184 @@ +{ + "manufacturer": "melonbred", + "keyboard_name": "mb44v2", + "maintainer": "melonbred", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "B14", "A2"], + "rows": ["B9", "C15", "C14", "C13"] + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT_default": { + "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, "w": 1.75}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "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": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 5], "x": 3, "y": 3, "w": 6.25}, + + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + }, + "LAYOUT_2u1u_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0, "w": 1.75}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "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": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 2.75}, + {"matrix": [3, 5], "x": 6, "y": 3, "w": 2.25}, + {"matrix": [3, 6], "x": 8.25, "y": 3}, + + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + }, + "LAYOUT_3u_space": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + {"matrix": [0, 1], "x": 1, "y": 0}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0}, + {"matrix": [0, 4], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + {"matrix": [0, 6], "x": 6, "y": 0}, + {"matrix": [0, 7], "x": 7, "y": 0}, + {"matrix": [0, 8], "x": 8, "y": 0}, + {"matrix": [0, 9], "x": 9, "y": 0}, + {"matrix": [0, 10], "x": 10, "y": 0}, + {"matrix": [0, 11], "x": 11, "y": 0, "w": 1.75}, + + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "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": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3, "w": 1.25}, + {"matrix": [3, 2], "x": 2.25, "y": 3}, + {"matrix": [3, 3], "x": 3.25, "y": 3, "w": 3}, + {"matrix": [3, 6], "x": 6.25, "y": 3, "w": 3}, + + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/melonbred/mb44v2/keymaps/default/keymap.c b/keyboards/melonbred/mb44v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..5407baf67a --- /dev/null +++ b/keyboards/melonbred/mb44v2/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2020 melonbred + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LAYER1, + _LAYER2 + +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_default( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + MO(_LAYER2), KC_LGUI, KC_LALT, LT(_LAYER1, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_default( + KC_GRV, KC_QUOT, _______, KC_UP, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_DEL, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PSLS, KC_PMNS, KC_4, KC_5, KC_6, KC_ENT, + KC_LSFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_PAST, KC_PPLS, KC_1, KC_2, KC_3, KC_RSFT, + _______, KC_LGUI, KC_LALT, _______, KC_0, KC_PDOT, XXXXXXX + ), + + [_LAYER2] = LAYOUT_default( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, + _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, KC_RALT, KC_RCTL + ), +}; \ No newline at end of file diff --git a/keyboards/melonbred/mb44v2/keymaps/vial/config.h b/keyboards/melonbred/mb44v2/keymaps/vial/config.h new file mode 100644 index 0000000000..e26f7ab175 --- /dev/null +++ b/keyboards/melonbred/mb44v2/keymaps/vial/config.h @@ -0,0 +1,7 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x0A, 0x90, 0x86, 0x4B, 0x13, 0x9F, 0x88, 0xCC} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 1 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 1 } diff --git a/keyboards/melonbred/mb44v2/keymaps/vial/keymap.c b/keyboards/melonbred/mb44v2/keymaps/vial/keymap.c new file mode 100644 index 0000000000..cee991ad44 --- /dev/null +++ b/keyboards/melonbred/mb44v2/keymaps/vial/keymap.c @@ -0,0 +1,49 @@ +/* Copyright 2024 melonbred + * + * 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 . + */ +#include QMK_KEYBOARD_H + +// Defines names for use in layer keycodes and the keymap +enum layer_names { + _BASE, + _LAYER1, + _LAYER2 +}; + + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_default( + KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH, + MO(_LAYER2), KC_LGUI, KC_LALT, LT(_LAYER1, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT + ), + + [_LAYER1] = LAYOUT_default( + KC_GRV, KC_QUOT, _______, KC_UP, _______, _______, _______, _______, KC_7, KC_8, KC_9, KC_DEL, + KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, KC_PSLS, KC_PMNS, KC_4, KC_5, KC_6, KC_ENT, + KC_LSFT, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_PAST, KC_PPLS, KC_1, KC_2, KC_3, KC_RSFT, + _______, KC_LGUI, KC_LALT, _______, KC_0, KC_PDOT, XXXXXXX + ), + + [_LAYER2] = LAYOUT_default( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD, + _______, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL, KC_RALT, KC_RCTL + ), +}; + diff --git a/keyboards/melonbred/mb44v2/keymaps/vial/rules.mk b/keyboards/melonbred/mb44v2/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/melonbred/mb44v2/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/melonbred/mb44v2/keymaps/vial/vial.json b/keyboards/melonbred/mb44v2/keymaps/vial/vial.json new file mode 100644 index 0000000000..8400f2f563 --- /dev/null +++ b/keyboards/melonbred/mb44v2/keymaps/vial/vial.json @@ -0,0 +1,129 @@ +{ + "name": "mb44v2", + "vendorId": "0x6d62", + "productId": "0x001", + "matrix": { + "rows": 4, + "cols": 12 +}, +"layouts": { + "labels": [ + [ + "Spacebar", + "625 Spacebar", + "2u Split", + "3u Split" + ] + ], + "keymap": [ + [ + "0,0", + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + { + "w": 1.75 + }, + "0,11" + ], + [ + { + "w": 1.25 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + { + "w": 1.5 + }, + "1,11" + ], + [ + { + "w": 1.75 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11" + ], + [ + "3,0", + "3,1\n\n\n0,0", + "3,2\n\n\n0,0", + { + "w": 6.25 + }, + "3,5\n\n\n0,0", + { + "a": 7, + "w": 0.5, + "d": true + }, + "", + { + "a": 4 + }, + "3,9", + "3,10", + "3,11" + ], + [ + { + "x": 1, + "w": 1.25 + }, + "3,1\n\n\n0,1", + "3,2\n\n\n0,1", + { + "w": 2.75 + }, + "3,3\n\n\n0,1", + { + "w": 2.25 + }, + "3,6\n\n\n0,1", + "3,7\n\n\n0,1" + ], + [ + { + "x": 1, + "w": 1.25 + }, + "3,1\n\n\n0,2", + "3,2\n\n\n0,2", + { + "w": 3 + }, + "3,3\n\n\n0,2", + { + "w": 3 + }, + "3,6\n\n\n0,2" + ] +] +} +} \ No newline at end of file diff --git a/keyboards/melonbred/mb44v2/readme.md b/keyboards/melonbred/mb44v2/readme.md new file mode 100644 index 0000000000..d686352eac --- /dev/null +++ b/keyboards/melonbred/mb44v2/readme.md @@ -0,0 +1,27 @@ +# mb44v2 + +![mb44v2](imgur.com image replace me!) + +_A short description of the keyboard/project_ + +- Keyboard Maintainer: [melonbred](https://github.com/melonbred) +- Hardware Supported: _The PCBs, controllers supported_ +- Hardware Availability: _Links to where you can find this hardware_ + +Make example for this keyboard (after setting up your build environment): + + make mb44v2:default + +Flashing example for this keyboard: + + make mb44v2: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 From c75c8897a112bb8fb38b6ce0426299accf4e999a Mon Sep 17 00:00:00 2001 From: Samuel Ainsworth Date: Sat, 20 Sep 2025 22:57:49 -0400 Subject: [PATCH 16/24] add GEIGEIGEIST/TOTEM (#938) See https://github.com/GEIGEIGEIST/TOTEM --- keyboards/geigeigeist/totem/config.h | 18 ++ keyboards/geigeigeist/totem/keyboard.json | 72 +++++ .../totem/keymaps/default/keymap.c | 248 +++++++++++++++ .../geigeigeist/totem/keymaps/vial/config.h | 22 ++ .../geigeigeist/totem/keymaps/vial/keymap.c | 285 ++++++++++++++++++ .../geigeigeist/totem/keymaps/vial/rules.mk | 2 + .../geigeigeist/totem/keymaps/vial/vial.json | 148 +++++++++ keyboards/geigeigeist/totem/readme.md | 23 ++ keyboards/geigeigeist/totem/rules.mk | 1 + keyboards/geigeigeist/totem/totem.c | 40 +++ 10 files changed, 859 insertions(+) create mode 100644 keyboards/geigeigeist/totem/config.h create mode 100644 keyboards/geigeigeist/totem/keyboard.json create mode 100644 keyboards/geigeigeist/totem/keymaps/default/keymap.c create mode 100644 keyboards/geigeigeist/totem/keymaps/vial/config.h create mode 100644 keyboards/geigeigeist/totem/keymaps/vial/keymap.c create mode 100644 keyboards/geigeigeist/totem/keymaps/vial/rules.mk create mode 100644 keyboards/geigeigeist/totem/keymaps/vial/vial.json create mode 100644 keyboards/geigeigeist/totem/readme.md create mode 100644 keyboards/geigeigeist/totem/rules.mk create mode 100644 keyboards/geigeigeist/totem/totem.c diff --git a/keyboards/geigeigeist/totem/config.h b/keyboards/geigeigeist/totem/config.h new file mode 100644 index 0000000000..1c47337510 --- /dev/null +++ b/keyboards/geigeigeist/totem/config.h @@ -0,0 +1,18 @@ +// Copyright 2022 GEIST @geigeigeist +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +// Matrix size +#define MATRIX_ROWS 8 +#define MATRIX_COLS 5 + +// Split communication (vendor serial on RP2040, using GP0/GP1) +#define SERIAL_USART_FULL_DUPLEX // Enable full duplex operation mode. +#define SERIAL_USART_TX_PIN GP0 // USART TX pin +#define SERIAL_USART_RX_PIN GP1 // USART RX pin +#define SERIAL_USART_PIN_SWAP // Swap TX and RX pins if keyboard is master halve. +#define EE_HANDS // Split handedness via eeprom + +// RP2040 bootloader double-tap +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/geigeigeist/totem/keyboard.json b/keyboards/geigeigeist/totem/keyboard.json new file mode 100644 index 0000000000..4982c15fb9 --- /dev/null +++ b/keyboards/geigeigeist/totem/keyboard.json @@ -0,0 +1,72 @@ +{ + "keyboard_name": "TOTEM", + "manufacturer": "GEIST", + "url": "https://github.com/GEIGEIGEIST/TOTEM", + "maintainer": "qmk", + "usb": { + "vid": "0x3A3C", + "pid": "0x0002", + "device_version": "0.3.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "rows": ["GP26", "GP27", "GP28", "GP29"], + "cols": ["GP6", "GP7", "GP3", "GP4", "GP2"] + }, + "diode_direction": "COL2ROW", + "debounce": 5, + "features": { + "swap_hands": true + }, + "split": { + "enabled": true, + "serial": { + "driver": "vendor" + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "label": "L00", "matrix": [0, 0], "x": 1, "y": 1.4 }, + { "label": "L01", "matrix": [0, 1], "x": 2, "y": 0.6 }, + { "label": "L02", "matrix": [0, 2], "x": 3, "y": 0 }, + { "label": "L03", "matrix": [0, 3], "x": 4, "y": 0.5 }, + { "label": "L04", "matrix": [0, 4], "x": 5, "y": 0.65 }, + { "label": "R00", "matrix": [4, 4], "x": 9, "y": 0.65 }, + { "label": "R01", "matrix": [4, 3], "x": 10, "y": 0.5 }, + { "label": "R02", "matrix": [4, 2], "x": 11, "y": 0 }, + { "label": "R03", "matrix": [4, 1], "x": 12, "y": 0.6 }, + { "label": "R04", "matrix": [4, 0], "x": 13, "y": 1.4 }, + { "label": "L10", "matrix": [1, 0], "x": 1, "y": 2.4 }, + { "label": "L11", "matrix": [1, 1], "x": 2, "y": 1.6 }, + { "label": "L12", "matrix": [1, 2], "x": 3, "y": 1 }, + { "label": "L13", "matrix": [1, 3], "x": 4, "y": 1.5 }, + { "label": "L14", "matrix": [1, 4], "x": 5, "y": 1.65 }, + { "label": "R10", "matrix": [5, 4], "x": 9, "y": 1.65 }, + { "label": "R11", "matrix": [5, 3], "x": 10, "y": 1.5 }, + { "label": "R12", "matrix": [5, 2], "x": 11, "y": 1 }, + { "label": "R13", "matrix": [5, 1], "x": 12, "y": 1.6 }, + { "label": "R14", "matrix": [5, 0], "x": 13, "y": 2.4 }, + { "label": "L30", "matrix": [3, 0], "x": 0, "y": 2.9 }, + { "label": "L20", "matrix": [2, 0], "x": 1, "y": 3.4 }, + { "label": "L21", "matrix": [2, 1], "x": 2, "y": 2.6 }, + { "label": "L22", "matrix": [2, 2], "x": 3, "y": 2 }, + { "label": "L23", "matrix": [2, 3], "x": 4, "y": 2.5 }, + { "label": "L24", "matrix": [2, 4], "x": 5, "y": 2.65 }, + { "label": "R20", "matrix": [6, 4], "x": 9, "y": 2.65 }, + { "label": "R21", "matrix": [6, 3], "x": 10, "y": 2.5 }, + { "label": "R22", "matrix": [6, 2], "x": 11, "y": 2 }, + { "label": "R23", "matrix": [6, 1], "x": 12, "y": 2.6 }, + { "label": "R24", "matrix": [6, 0], "x": 13, "y": 3.4 }, + { "label": "R34", "matrix": [7, 0], "x": 14, "y": 2.9 }, + { "label": "L32", "matrix": [3, 2], "x": 3.6, "y": 3.5 }, + { "label": "L33", "matrix": [3, 3], "x": 4.8, "y": 3.65 }, + { "label": "L34", "matrix": [3, 4], "x": 6, "y": 3.85 }, + { "label": "R30", "matrix": [7, 4], "x": 8, "y": 3.85 }, + { "label": "R31", "matrix": [7, 3], "x": 9.2, "y": 3.65 }, + { "label": "R32", "matrix": [7, 2], "x": 10.4, "y": 3.5 } + ] + } + } +} diff --git a/keyboards/geigeigeist/totem/keymaps/default/keymap.c b/keyboards/geigeigeist/totem/keymaps/default/keymap.c new file mode 100644 index 0000000000..409dade783 --- /dev/null +++ b/keyboards/geigeigeist/totem/keymaps/default/keymap.c @@ -0,0 +1,248 @@ +/* + ▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀ + ▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄ + █ █ █ █ █ █ █ █ █ █ █ + ▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀ + █ ▄▄▄█▄▄▄ █ █ + ▀ █ █ █ █▄█ + ▀▀▀▀▀ █ █ █ ▀ + ▀ ▀ ▀ D E F A U L T + +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ +*/ + +#include QMK_KEYBOARD_H + +// ┌─────────────────────────────────────────────────┐ +// │ d e f i n e l a y e r s │ +// └─────────────────────────────────────────────────┘ + +enum totem_layers { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +// ┌─────────────────────────────────────────────────┐ +/* │ d e f i n e k e y c o d e s │ +// └─────────────────────────────────────────────────┘ */ + +enum custom_keycodes { + COLEMAK = SAFE_RANGE, + QWERTY, + LOWER, + RAISE, + ADJUST, + MAKE_H, + SNAP +}; + +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// │ K E Y M A P S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + ┌─────────────────────────────────────────────────┐ + │ q w e r t y │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ Q │ W │ E │ R │ T ││ Y │ U │ I │ O │ P │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ A │ S │ D │ F │ G ││ H │ J │ K │ L │ ; │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ Q │ Z │ X │ C │ V │ B ││ N │ M │ , │ . │ / │ P │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ CTRL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/ + + [_QWERTY] = LAYOUT( + //╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_S), MT(MOD_LCTL, KC_D), MT(MOD_LSFT, KC_F), KC_G, KC_H, MT(MOD_RSFT, KC_J), MT(MOD_LCTL, KC_K), MT(MOD_LALT, KC_L), MT(MOD_LGUI, KC_SCLN), + KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P, + KC_DEL, LT(2, KC_TAB), KC_SPC, KC_ENT, LT(3, KC_ESC), KC_BSPC + ), + + /* + + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ c o l e m a k │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ Q │ W │ F │ P │ G ││ J │ L │ U │ Y │ ; │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ A │ R │ S │ T │ D ││ H │ N │ E │ I │ O │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ Q │ Z │ X │ C │ V │ B ││ K │ M │ , │ . │ / │ ; │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ DEL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/ + + [_COLEMAK] = LAYOUT( + //╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, + MT(MOD_LGUI, KC_A), MT(MOD_LALT, KC_R), MT(MOD_LCTL, KC_S), MT(MOD_LSFT, KC_T), KC_D, KC_H, MT(MOD_RSFT, KC_N), MT(MOD_LCTL, KC_E), MT(MOD_LALT, KC_I), MT(MOD_LGUI, KC_O), + KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, + KC_DEL, LT(2, KC_TAB), KC_SPC, KC_ENT, LT(3, KC_ESC), KC_BSPC + ), + + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ l o w e r │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ CAPSLCK │ NUMLCK │ ↑ │ = │ { ││ } │ 7 │ 8 │ 9 │ + │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ HOME │ ← │ ↓ │ → │ [ ││ ] │ 4 │ 5 │ 6 │ - │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ SCRNSHT │ END │ PG↑ │ SAVE │ PG↓ │ ( ││ ) │ 1 │ 2 │ 3 │ * │ ▼ │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ ▼ │ ▼ │ ▼ ││ ▼ │ ADJUST │ 0 │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */ + + [_LOWER] = LAYOUT( + //╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS, + SNAP, KC_END, KC_PGUP, C(KC_S), KC_PGDN, KC_LPRN, KC_RPRN, KC_P1, KC_P2, KC_P3, KC_PAST, _______, + _______, _______, _______, _______, MO(4), KC_P0 + ), + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ r a i s e │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ ! │ @ │ # │ $ │ % ││ ^ │ & │ Ü │ ° │ / │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ Ä │ è │ SZ │ é │ ││ │ ¥ │ € │ £ │ Ö │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ │ ` │ ~ │ CUE │ │ ││ │ │ │ DM REC1 │ DM STOP │ DM PLY1 │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ GIPHY │ ADJUST │ ▼ ││ ▼ │ ▼ │ ▼ │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */ + + [_RAISE] = LAYOUT( + //╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U), RALT(KC_3), KC_BSLS, + RALT(KC_A), RALT(KC_F), RALT(KC_S), RALT(KC_G), XXXXXXX, XXXXXXX, LSFT(RALT(KC_4)), RALT(KC_5), RALT(KC_4), RALT(KC_O), + XXXXXXX, LSFT(KC_GRV), KC_TILD, RALT(KC_C), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_REC1, DM_RSTP, DM_PLY1, + _______, MO(4), _______, _______, _______, _______ + ), + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ a d j u s t │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ RESET │ │ │ │ ││ │ F7 │ F8 │ F9 │ F12 │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ DEBUG │ QWERTY │ │ │ ││ │ F4 │ F5 │ F6 │ F11 │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ MAKE │ OS SWAP │ COLEMAK │ │ │ ││ │ F1 │ F2 │ F3 │ F10 │ F13 │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ ▼ │ ▼ │ ▼ ││ ▼ │ ▼ │ ▼ │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */ + + [_ADJUST] = LAYOUT( + //╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, + DB_TOGG, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, + MAKE_H, CG_TOGG, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F13, + _______, _______, _______, _______, _______, _______ + ) +}; + +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// │ M A C R O S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case CG_TOGG: + if (record->event.pressed) { + if (!keymap_config.swap_lctl_lgui) { + keymap_config.swap_lctl_lgui = true; // ─── MAC + } else { + keymap_config.swap_lctl_lgui = false; // ─── WIN + } + eeconfig_update_keymap(&keymap_config); + clear_keyboard(); // ──── clear to prevent stuck keys + return false; + } + + // ┌─────────────────────────────────────────────────┐ + // │ l a y e r │ + // └─────────────────────────────────────────────────┘ + + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + + // ┌─────────────────────────────────────────────────┐ + // │ q m k │ + // └─────────────────────────────────────────────────┘ + + case MAKE_H: + if (record->event.pressed) { + SEND_STRING("qmk compile -kb geigeigeist/totem -km default"); + tap_code(KC_ENTER); + } + break; + + // ┌─────────────────────────────────────────────────┐ + // │ p r o d u c t i v i t y │ + // └─────────────────────────────────────────────────┘ + + case SNAP: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + SEND_STRING(SS_LSFT(SS_LCMD(SS_LCTL("4")))); // MAC + } else { + SEND_STRING(SS_LSFT(SS_LWIN("S"))); // WIN + } + } + break; + } + return true; +} +/* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + + ██████ + ██ ▄▄▄▄ + ██ ██▀▀██ + ▀▀ ██▄▄██ + ██████ ▀▀▀▀ + ██ ▄▄▄▄▄▄ + ██ ██▀▀▀▀ + ██ ██████ + ██▄▄▄▄ + ▀▀▀▀▀▀ + ████████ + ██ ██ ██ + ██ ██ ██ + ▀▀ ▀▀ ▀▀ + ████████ + +*/ diff --git a/keyboards/geigeigeist/totem/keymaps/vial/config.h b/keyboards/geigeigeist/totem/keymaps/vial/config.h new file mode 100644 index 0000000000..b106bf0630 --- /dev/null +++ b/keyboards/geigeigeist/totem/keymaps/vial/config.h @@ -0,0 +1,22 @@ +// Copyright 2022 GEIST @geigeigeist +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define VIAL_KEYBOARD_UID \ + { 0xCB, 0x37, 0x36, 0xFE, 0xEE, 0xED, 0xEE, 0x77 } +#define VIAL_UNLOCK_COMBO_ROWS \ + { 0, 4 } +#define VIAL_UNLOCK_COMBO_COLS \ + { 0, 0 } + +// #define TAPPING_TERM 170 +#define TAPPING_TERM 170 + +// Auto Shift +#define NO_AUTO_SHIFT_ALPHA +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE + +#define DYNAMIC_KEYMAP_LAYER_COUNT 5 diff --git a/keyboards/geigeigeist/totem/keymaps/vial/keymap.c b/keyboards/geigeigeist/totem/keymaps/vial/keymap.c new file mode 100644 index 0000000000..16de5f5904 --- /dev/null +++ b/keyboards/geigeigeist/totem/keymaps/vial/keymap.c @@ -0,0 +1,285 @@ +/* + ▀▀▀▀▀ ▀▀▀▀▀ ▀▀█▀▀ + ▄▀▀▀▄ ▄ ▄▀▀▀▄ ▄ ▄▀▀▀▄ █ ▄▀▀▀▄ + █ █ █ █ █ █ █ █ █ █ █ + ▀▀▀ █ ▀▀▀ █ ▀▀▀ ▀ ▀▀▀ + █ ▄▄▄█▄▄▄ █ █ + ▀ █ █ █ █▄█ + ▀▀▀▀▀ █ █ █ ▀ + ▀ ▀ ▀ D E F A U L T + +▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ +*/ + +#include QMK_KEYBOARD_H + +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// │ D E F I N I T I O N S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + +// ┌─────────────────────────────────────────────────┐ +// │ d e f i n e l a y e r s │ +// └─────────────────────────────────────────────────┘ + +enum totem_layers { + _QWERTY, + _COLEMAK, + _LOWER, + _RAISE, + _ADJUST, +}; + +// ┌─────────────────────────────────────────────────┐ +// │ d e f i n e k e y c o d e s │ +// └─────────────────────────────────────────────────┘ + +enum custom_keycodes { COLEMAK = SAFE_RANGE, QWERTY, LOWER, RAISE, ADJUST, OS_SWAP, MAKE_H, SNAP }; + +// ┌─────────────────────────────────────────────────┐ +// │ d e f i n e m a c r o n a m e s │ +// └─────────────────────────────────────────────────┘ + +// LEFT HAND HOME ROW MODS QWERTY ├──────────────────┐ + +#define GUI_A MT(MOD_LGUI, KC_A) +#define ALT_S MT(MOD_LALT, KC_S) +#define CTL_D MT(MOD_LCTL, KC_D) +#define SHT_F MT(MOD_LSFT, KC_F) + +// RIGHT HAND HOME ROW MODS QWERTY ├─────────────────┐ + +#define SHT_J MT(MOD_RSFT, KC_J) +#define CTL_K MT(MOD_LCTL, KC_K) +#define ALT_L MT(MOD_LALT, KC_L) +#define GUI_S MT(MOD_LGUI, KC_SCLN) + +// LEFT HAND HOME ROW MODS COLEMAK ├─────────────────┐ + +#define GUI_A MT(MOD_LGUI, KC_A) +#define ALT_R MT(MOD_LALT, KC_R) +#define CTL_S MT(MOD_LCTL, KC_S) +#define SHT_T MT(MOD_LSFT, KC_T) + +// RIGHT HAND HOME ROW MODS COLEMAK ├────────────────┐ + +#define SHT_N MT(MOD_RSFT, KC_N) +#define CTL_E MT(MOD_LCTL, KC_E) +#define ALT_I MT(MOD_LALT, KC_I) +#define GUI_O MT(MOD_LGUI, KC_O) + +#define LOWER LT(_LOWER, KC_TAB) +#define RAISE LT(_RAISE, KC_ESC) +#define ADJUST MO(_ADJUST) + +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +/* │ K E Y M A P S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ */ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* + ┌─────────────────────────────────────────────────┐ + │ q w e r t y │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ Q │ W │ E │ R │ T ││ Y │ U │ I │ O │ P │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ A │ S │ D │ F │ G ││ H │ J │ K │ L │ ; │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ Q │ Z │ X │ C │ V │ B ││ N │ M │ , │ . │ / │ P │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ CTRL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/ + + [_QWERTY] = LAYOUT( + // ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, GUI_A, ALT_S, CTL_D, SHT_F, KC_G, KC_H, SHT_J, CTL_K, ALT_L, GUI_S, KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_P, KC_DEL, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC), + + /* + + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ c o l e m a k │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ Q │ W │ F │ P │ G ││ J │ L │ U │ Y │ ; │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ A │ R │ S │ T │ D ││ H │ N │ E │ I │ O │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ Q │ Z │ X │ C │ V │ B ││ K │ M │ , │ . │ / │ ; │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ DEL │ LOWER │ SPACE ││ ENTER │ RAISE │ BSPC │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘*/ + + [_COLEMAK] = LAYOUT( + // ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, GUI_A, ALT_R, CTL_S, SHT_T, KC_D, KC_H, SHT_N, CTL_E, ALT_I, GUI_O, KC_Q, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_DEL, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC), + + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ l o w e r │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ CAPSLCK │ NUMLCK │ ↑ │ = │ { ││ } │ 7 │ 8 │ 9 │ + │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ HOME │ ← │ ↓ │ → │ [ ││ ] │ 4 │ 5 │ 6 │ - │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ SCRNSHT │ END │ PG↑ │ SAVE │ PG↓ │ ( ││ ) │ 1 │ 2 │ 3 │ * │ ▼ │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ ▼ │ ▼ │ ▼ ││ ▼ │ ADJUST │ 0 │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */ + + [_LOWER] = LAYOUT( + // ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_CAPS, KC_NUM, KC_UP, KC_EQL, KC_LCBR, KC_RCBR, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_QUOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_LBRC, KC_RBRC, KC_P4, KC_P5, KC_P6, KC_MINS, SNAP, KC_END, KC_PGUP, C(KC_S), KC_PGDN, KC_LPRN, KC_RPRN, KC_P1, KC_P2, KC_P3, KC_PAST, _______, _______, _______, _______, _______, ADJUST, KC_P0), + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ r a i s e │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ ! │ @ │ # │ $ │ % ││ ^ │ & │ Ü │ ° │ / │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ Ä │ è │ SZ │ é │ ││ │ ¥ │ € │ £ │ Ö │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ │ ` │ ~ │ CUE │ │ ││ │ │ │ DM REC1 │ DM STOP │ DM PLY1 │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ GIPHY │ ADJUST │ ▼ ││ ▼ │ ▼ │ ▼ │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */ + + [_RAISE] = LAYOUT( + // ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, RALT(KC_U), RALT(KC_3), KC_BSLS, RALT(KC_A), RALT(KC_F), RALT(KC_S), RALT(KC_G), XXXXXXX, XXXXXXX, LSFT(RALT(KC_4)), RALT(KC_5), RALT(KC_4), RALT(KC_O), XXXXXXX, LSFT(KC_GRV), KC_TILD, RALT(KC_C), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DM_REC1, DM_RSTP, DM_PLY1, _______, ADJUST, _______, _______, _______, _______), + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ a d j u s t │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ RESET │ │ │ │ ││ │ F7 │ F8 │ F9 │ F12 │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ DEBUG │ QWERTY │ │ │ ││ │ F4 │ F5 │ F6 │ F11 │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ MAKE │ OS SWAP │ COLEMAK │ │ │ ││ │ F1 │ F2 │ F3 │ F10 │ F13 │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ ▼ │ ▼ │ ▼ ││ ▼ │ ▼ │ ▼ │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ */ + + [_ADJUST] = LAYOUT( + // ╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F12, DB_TOGG, QWERTY, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F4, KC_F5, KC_F6, KC_F11, MAKE_H, OS_SWAP, COLEMAK, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F10, KC_F13, _______, _______, _______, _______, _______, _______) + /* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + ┌─────────────────────────────────────────────────┐ + │ t e m p l a t e │ ╭╮╭╮╭╮╭╮ + └─────────────────────────────────────────────────┘ │╰╯╰╯╰╯│ + ┌─────────┬─────────┬─────────┬─────────┬──────╨──┐┌──╨──────┬─────────┬─────────┬─────────┬─────────┐ + ╌┄┈┈───═╡ │ │ │ │ ││ │ │ │ │ │ + ├─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┤ + │ │ │ │ │ ││ │ │ │ │ │ + ┌─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┼─────────┼─────────┐ + │ │ │ │ │ │ ││ │ │ │ │ │ │ + └─────────┴─────────┴─────────┼─────────┼─────────┼─────────┤├─────────┼─────────┼─────────┼─────────┴─────────┴─────────┘ + │ │ │ ││ │ │ │ + └─────────┴─────────┴─────────┘└─────────┴─────────┴─────────┘ + + [_TEMPLATE] = LAYOUT( + //╷ ╷ ╷ ╷ ╷ ╷ ╷╷ ╷ ╷ ╷ ╷ ╷ ╷ + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, + ), + */ +}; + +// ┌────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ +// │ M A C R O S │ +// └────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ +// ▝▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▘ + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case OS_SWAP: + if (record->event.pressed) { + if (!keymap_config.swap_lctl_lgui) { + keymap_config.swap_lctl_lgui = true; // ─── MAC + } else { + keymap_config.swap_lctl_lgui = false; // ─── WIN + } + eeconfig_update_keymap(&keymap_config); + clear_keyboard(); // ──── clear to prevent stuck keys + return false; + } + + // ┌─────────────────────────────────────────────────┐ + // │ l a y e r │ + // └─────────────────────────────────────────────────┘ + + case COLEMAK: + if (record->event.pressed) { + set_single_persistent_default_layer(_COLEMAK); + } + return false; + case QWERTY: + if (record->event.pressed) { + set_single_persistent_default_layer(_QWERTY); + } + return false; + + // ┌─────────────────────────────────────────────────┐ + // │ q m k │ + // └─────────────────────────────────────────────────┘ + + case MAKE_H: + if (record->event.pressed) { + SEND_STRING("qmk compile -kb geigeigeist/totem -km default"); + tap_code(KC_ENTER); + } + break; + + // ┌─────────────────────────────────────────────────┐ + // │ p r o d u c t i v i t y │ + // └─────────────────────────────────────────────────┘ + + case SNAP: + if (record->event.pressed) { + if (keymap_config.swap_lctl_lgui) { + SEND_STRING(SS_LSFT(SS_LCMD(SS_LCTL("4")))); // MAC + } else { + SEND_STRING(SS_LSFT(SS_LWIN("S"))); // WIN + } + } + break; + } + return true; +} +/* + ╺━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╸ + + + ██████ + ██ ▄▄▄▄ + ██ ██▀▀██ + ▀▀ ██▄▄██ + ██████ ▀▀▀▀ + ██ ▄▄▄▄▄▄ + ██ ██▀▀▀▀ + ██ ██████ + ██▄▄▄▄ + ▀▀▀▀▀▀ + ████████ + ██ ██ ██ + ██ ██ ██ + ▀▀ ▀▀ ▀▀ + ████████ + +*/ diff --git a/keyboards/geigeigeist/totem/keymaps/vial/rules.mk b/keyboards/geigeigeist/totem/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/geigeigeist/totem/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/geigeigeist/totem/keymaps/vial/vial.json b/keyboards/geigeigeist/totem/keymaps/vial/vial.json new file mode 100644 index 0000000000..e53703a4f6 --- /dev/null +++ b/keyboards/geigeigeist/totem/keymaps/vial/vial.json @@ -0,0 +1,148 @@ +{ + "name": "TOTEM", + "lighting": "none", + "vendorId": "0x3A3C", + "productId": "0x0002", + "matrix": { + "rows": 8, + "cols": 5 + }, + "layouts": { + "keymap": [ + [ + { "y": 0.25, "x": 3 }, + "4,2", + { "x": 9 }, + "0,2" + ], + [ + { "y": -0.5, "x": 4 }, + "4,3", + { "x": 7 }, + "0,3" + ], + [ + { "y": -0.75, "x": 5 }, + "4,4", + { "x": 5 }, + "0,4" + ], + [ + { "y": -0.75, "x": 3 }, + "5,2", + { "x": 9 }, + "1,2" + ], + [ + { "y": -0.5, "x": 4 }, + "5,3", + { "x": 7 }, + "1,3" + ], + [ + { "y": -0.75, "x": 5 }, + "5,4", + { "x": 5 }, + "1,4" + ], + [ + { "y": -0.75, "x": 3 }, + "6,2", + { "x": 9 }, + "2,2" + ], + [ + { "y": -0.5, "x": 4 }, + "6,3", + { "x": 7 }, + "2,3" + ], + [ + { "y": -0.75, "x": 5 }, + "6,4", + { "x": 5 }, + "2,4" + ], + [ + { "rx": 4, "ry": 8.6, "y": -4.6, "x": -0.3999999999999999 }, + "7,2" + ], + [ + { "rx": 13, "y": -4.6, "x": -0.5999999999999996 }, + "3,2" + ], + [ + { "r": 4, "rx": 14.5, "ry": 3.75, "y": -3, "x": -0.5 }, + "0,1" + ], + [ + { "x": -0.5 }, + "1,1" + ], + [ + { "x": -0.5 }, + "2,1" + ], + [ + { "r": 10, "rx": 15.25, "y": -2.35, "x": -0.25 }, + "0,0" + ], + [ + { "x": -0.25 }, + "1,0" + ], + [ + { "y": -0.3999999999999999, "x": 0.75 }, + "3,0" + ], + [ + { "y": -0.6000000000000001, "x": -0.25 }, + "2,0" + ], + [ + { "r": 15, "rx": 4, "ry": 8.6, "y": -4.6, "x": -0.3999999999999999 }, + "7,3" + ], + [ + { "r": 30, "y": -1, "x": -0.3999999999999999 }, + "7,4" + ], + [ + { "r": -30, "rx": 13, "y": -4.6, "x": -0.5999999999999996 }, + "3,4" + ], + [ + { "r": -15, "y": -1, "x": -0.5999999999999996 }, + "3,3" + ], + [ + { "r": -10, "rx": 2, "ry": 3.75, "y": -2.35, "x": -1 }, + "4,0" + ], + [ + { "x": -1 }, + "5,0" + ], + [ + { "y": -0.3999999999999999, "x": -2 }, + "7,0" + ], + [ + { "y": -0.6000000000000001, "x": -1 }, + "6,0" + ], + [ + { "r": -4, "rx": 2.75, "y": -3, "x": -0.75 }, + "4,1" + ], + [ + { "x": -0.75 }, + "5,1" + ], + [ + { "x": -0.75 }, + "6,1" + ] + ] + } +} diff --git a/keyboards/geigeigeist/totem/readme.md b/keyboards/geigeigeist/totem/readme.md new file mode 100644 index 0000000000..a8914900da --- /dev/null +++ b/keyboards/geigeigeist/totem/readme.md @@ -0,0 +1,23 @@ +# TOTEM + +TOTEM is a 38-key column-staggered split keyboard by GEIGEIGEIST designed for Seeed XIAO RP2040 or XIAO nRF52840 BLE. This port targets the wired RP2040 variant. + +- Repository: https://github.com/GEIGEIGEIST/TOTEM +- Controller: Seeed Studio XIAO RP2040 +- Split transport: vendor serial (RP2040) on GP0/GP1 +- Matrix: 8 rows x 5 columns +- Diodes: COL2ROW + +Build + +- Default keymap: + qmk compile -kb geigeigeist/totem -km default + +- Vial keymap: + qmk compile -kb geigeigeist/totem -km vial + +Notes + +- The JSON-driven keyboard definition is in keyboard.json (QMK data-driven format). +- For Vial, the UID and unlock combo are defined in keymaps/vial/config.h, with VIAL_ENABLE in keymaps/vial/rules.mk. +- If using XIAO RP2040 bootloader, double-tap reset is enabled (500ms timeout). diff --git a/keyboards/geigeigeist/totem/rules.mk b/keyboards/geigeigeist/totem/rules.mk new file mode 100644 index 0000000000..6e7633bfe0 --- /dev/null +++ b/keyboards/geigeigeist/totem/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank diff --git a/keyboards/geigeigeist/totem/totem.c b/keyboards/geigeigeist/totem/totem.c new file mode 100644 index 0000000000..b1c0acec82 --- /dev/null +++ b/keyboards/geigeigeist/totem/totem.c @@ -0,0 +1,40 @@ +/* Copyright 2022 + * GEIST @geigeigeist + * + * 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 . + */ + +#include "quantum.h" + +#ifdef SWAP_HANDS_ENABLE + +__attribute__ ((weak)) +const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = + // The LAYOUT macro could work for this, but it was harder to figure out the + // identity using it. + + // This is the mirror, q <-> p, w <-> o, etc... +{ + { {4, 4}, {3, 4}, {2, 4}, {1, 4}, {0, 4} }, + { {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5} }, + { {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6} }, + { {4, 7}, {2, 7}, {1, 7}, {0, 7} }, + + { {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0} }, + { {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1} }, + { {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2} }, + { {4, 3}, {3, 3}, {2, 3}, {0, 3} }, +}; + +#endif // SWAP_HANDS_ENABLE From 7d8197d60bae2d35645955fd188309a452cbb283 Mon Sep 17 00:00:00 2001 From: AkariiinMKII <6019344+AkariiinMKII@users.noreply.github.com> Date: Sun, 21 Sep 2025 10:57:55 +0800 Subject: [PATCH 17/24] Add `MAGIC_TOGGLE_GUI` to keycode ensure list (#930) * add GUI_Toggle * Reorder MAGIC_NO_GUI and MAGIC_UNNO_GUI * Revert "Reorder MAGIC_NO_GUI and MAGIC_UNNO_GUI" This reverts commit 79203031df30447788f6207db660556d0da76f34. --- quantum/vial_ensure_keycode.h | 1 + 1 file changed, 1 insertion(+) diff --git a/quantum/vial_ensure_keycode.h b/quantum/vial_ensure_keycode.h index 9edd478748..320db887b1 100644 --- a/quantum/vial_ensure_keycode.h +++ b/quantum/vial_ensure_keycode.h @@ -525,6 +525,7 @@ _Static_assert(MAGIC_UNSWAP_ALT_GUI == 0x7015, ""); _Static_assert(MAGIC_TOGGLE_ALT_GUI == 0x7016, ""); _Static_assert(MAGIC_NO_GUI == 0x700A, ""); _Static_assert(MAGIC_UNNO_GUI == 0x7009, ""); +_Static_assert(MAGIC_TOGGLE_GUI == 0x700B, ""); _Static_assert(MAGIC_SWAP_GRAVE_ESC == 0x700C, ""); _Static_assert(MAGIC_UNSWAP_GRAVE_ESC == 0x700D, ""); _Static_assert(MAGIC_SWAP_BACKSLASH_BACKSPACE == 0x700E, ""); From d195d8a8e41f9d4f3f99995f50459411ae8a2f92 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Mon, 22 Sep 2025 05:32:12 +0400 Subject: [PATCH 18/24] Add Vial support for keyten/kt60hs_t (#939) * Add Vial keymap * Update vial.json --- .../keyten/kt60hs_t/keymaps/vial/config.h | 8 + .../keyten/kt60hs_t/keymaps/vial/keymap.c | 22 ++ .../keyten/kt60hs_t/keymaps/vial/rules.mk | 2 + .../keyten/kt60hs_t/keymaps/vial/vial.json | 251 ++++++++++++++++++ 4 files changed, 283 insertions(+) create mode 100644 keyboards/keyten/kt60hs_t/keymaps/vial/config.h create mode 100644 keyboards/keyten/kt60hs_t/keymaps/vial/keymap.c create mode 100644 keyboards/keyten/kt60hs_t/keymaps/vial/rules.mk create mode 100644 keyboards/keyten/kt60hs_t/keymaps/vial/vial.json diff --git a/keyboards/keyten/kt60hs_t/keymaps/vial/config.h b/keyboards/keyten/kt60hs_t/keymaps/vial/config.h new file mode 100644 index 0000000000..54474ea002 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xE0, 0x4E, 0xB0, 0x23, 0x7D, 0x60, 0x4B, 0x5E} + +#define VIAL_UNLOCK_COMBO_ROWS {0, 4} +#define VIAL_UNLOCK_COMBO_COLS {0, 13} diff --git a/keyboards/keyten/kt60hs_t/keymaps/vial/keymap.c b/keyboards/keyten/kt60hs_t/keymaps/vial/keymap.c new file mode 100644 index 0000000000..38938bf162 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/keymaps/vial/keymap.c @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/keyten/kt60hs_t/keymaps/vial/rules.mk b/keyboards/keyten/kt60hs_t/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/keyten/kt60hs_t/keymaps/vial/vial.json b/keyboards/keyten/kt60hs_t/keymaps/vial/vial.json new file mode 100644 index 0000000000..5c8593ad89 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/keymaps/vial/vial.json @@ -0,0 +1,251 @@ +{ + "name": "kt60HS-T", + "vendorId": "0xEB69", + "productId": "0x6007", + "lighting": "none", + "matrix": { + "rows": 5, + "cols": 14 + }, + "layouts": { + "labels": [ + "Split Backspace", + [ + "Bottom Row", + "Tsangan", + "WKL", + "HHKB", + "10U" + ] + ], + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "2,13\n\n\n0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "0,13\n\n\n0,1", + "2,13\n\n\n0,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,0", + { + "c": "#cccccc" + }, + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "c": "#777777", + "w": 2.25 + }, + "2,12" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + { + "c": "#aaaaaa", + "w": 1.75 + }, + "4,12", + "3,13" + ], + [ + { + "w": 1.5 + }, + "4,0\n\n\n1,0", + "4,1\n\n\n1,0", + { + "w": 1.5 + }, + "4,2\n\n\n1,0", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n1,0", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n1,0", + "4,11\n\n\n1,0", + { + "w": 1.5 + }, + "4,13\n\n\n1,0" + ], + [ + { + "y": 0.25, + "w": 1.5 + }, + "4,0\n\n\n1,1", + { + "d": true + }, + "4,1\n\n\n1,1", + { + "w": 1.5 + }, + "4,2\n\n\n1,1", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n1,1", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n1,1", + { + "d": true + }, + "4,11\n\n\n1,1", + { + "w": 1.5 + }, + "4,13\n\n\n1,1" + ], + [ + { + "w": 1.5, + "d": true + }, + "4,0\n\n\n1,2", + "4,1\n\n\n1,2", + { + "w": 1.5 + }, + "4,2\n\n\n1,2", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n1,2", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,10\n\n\n1,2", + "4,11\n\n\n1,2", + { + "w": 1.5, + "d": true + }, + "4,13\n\n\n1,2" + ], + [ + { + "w": 1.5 + }, + "4,0\n\n\n1,3", + "4,1\n\n\n1,3", + { + "w": 1.5, + "d": true + }, + "4,2\n\n\n1,3", + { + "x": -1.5, + "c": "#cccccc", + "w": 10 + }, + "4,6\n\n\n1,3", + { + "x": -1.5, + "c": "#aaaaaa", + "w": 1.5, + "d": true + }, + "4,10\n\n\n1,3", + "4,11\n\n\n1,3", + { + "w": 1.5 + }, + "4,13\n\n\n1,3" + ] + ] + } +} From 27304097cacf1f2efd48216ebd020081a1d544bb Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Mon, 22 Sep 2025 05:32:25 +0400 Subject: [PATCH 19/24] Add Vial support (#940) --- .../keyten/ortho_slayer/keymaps/vial/config.h | 8 + .../keyten/ortho_slayer/keymaps/vial/keymap.c | 24 +++ .../keyten/ortho_slayer/keymaps/vial/rules.mk | 2 + .../ortho_slayer/keymaps/vial/vial.json | 167 ++++++++++++++++++ 4 files changed, 201 insertions(+) create mode 100644 keyboards/keyten/ortho_slayer/keymaps/vial/config.h create mode 100644 keyboards/keyten/ortho_slayer/keymaps/vial/keymap.c create mode 100644 keyboards/keyten/ortho_slayer/keymaps/vial/rules.mk create mode 100644 keyboards/keyten/ortho_slayer/keymaps/vial/vial.json diff --git a/keyboards/keyten/ortho_slayer/keymaps/vial/config.h b/keyboards/keyten/ortho_slayer/keymaps/vial/config.h new file mode 100644 index 0000000000..d4ac8b21c4 --- /dev/null +++ b/keyboards/keyten/ortho_slayer/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xF4, 0x18, 0x3E, 0x20, 0xB3, 0xC9, 0xA2, 0xCA} + +#define VIAL_UNLOCK_COMBO_ROWS {0, 9} +#define VIAL_UNLOCK_COMBO_COLS {0, 10} diff --git a/keyboards/keyten/ortho_slayer/keymaps/vial/keymap.c b/keyboards/keyten/ortho_slayer/keymaps/vial/keymap.c new file mode 100644 index 0000000000..ea471d31ef --- /dev/null +++ b/keyboards/keyten/ortho_slayer/keymaps/vial/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT( + MO(1), 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_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_DEL, KC_END, KC_PGDN, KC_P7, KC_P8, KC_KP_9, KC_PPLS, + KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_P4, KC_P5, KC_P6, + 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_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ), + + [1] = 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, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/keyten/ortho_slayer/keymaps/vial/rules.mk b/keyboards/keyten/ortho_slayer/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/keyten/ortho_slayer/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/keyten/ortho_slayer/keymaps/vial/vial.json b/keyboards/keyten/ortho_slayer/keymaps/vial/vial.json new file mode 100644 index 0000000000..5363381bda --- /dev/null +++ b/keyboards/keyten/ortho_slayer/keymaps/vial/vial.json @@ -0,0 +1,167 @@ +{ + "name": "Ortho Slayer", + "vendorId": "0xEB69", + "productId": "0x9001", + "lighting": "none", + "matrix": { + "rows": 10, + "cols": 11 + }, + "layouts": { + "keymap": [ + [ + "0,0", + "1,0", + "0,1", + "1,1", + "0,2", + "1,2", + "0,3", + "1,3", + "0,4", + "1,4", + "0,5", + "1,5", + "0,6", + "1,6", + { + "x": 0.25 + }, + "0,7", + "1,7", + "0,8", + { + "x": 0.25 + }, + "1,8", + "0,9", + "1,9", + "0,10" + ], + [ + "2,0", + "3,0", + "2,1", + "3,1", + "2,2", + "3,2", + "2,3", + "3,3", + "2,4", + "3,4", + "2,5", + "3,5", + "2,6", + "3,6", + { + "x": 0.25 + }, + "2,7", + "3,7", + "2,8", + { + "x": 0.25 + }, + "3,8", + "2,9", + "3,9", + { + "h": 2 + }, + "5,10" + ], + [ + "4,0", + "5,0", + "4,1", + "5,1", + "4,2", + "5,2", + "4,3", + "5,3", + "4,4", + "5,4", + "4,5", + "5,5", + "4,6", + "5,6", + { + "x": 3.5 + }, + "5,9", + "4,9", + "4,10" + ], + [ + { + "w": 2 + }, + "6,0", + "7,0", + "6,2", + "7,2", + "6,3", + "7,3", + "6,4", + "7,4", + "6,5", + "7,5", + "7,6", + { + "w": 2 + }, + "6,6", + { + "x": 1.25 + }, + "6,8", + { + "x": 1.25 + }, + "7,8", + "6,9", + "7,9", + { + "h": 2 + }, + "9,10" + ], + [ + { + "w": 1.25 + }, + "8,0", + "9,0", + { + "w": 1.25 + }, + "8,1", + { + "w": 7 + }, + "8,4", + { + "w": 1.25 + }, + "9,4", + "8,6", + { + "w": 1.25 + }, + "9,6", + { + "x": 0.25 + }, + "8,7", + "9,7", + "8,8", + { + "x": 0.25, + "w": 2 + }, + "9,8", + "8,10" + ] + ] + } +} From 4a430f196047a6437e40009e974a5c3840116748 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Sat, 27 Sep 2025 05:54:18 +0400 Subject: [PATCH 20/24] Add Vial support for keyten/aperture (#941) * Add Vial Support * Reducing firmware size --- .../keyten/aperture/keymaps/vial/config.h | 8 ++ .../keyten/aperture/keymaps/vial/keymap.c | 37 ++++++ .../keyten/aperture/keymaps/vial/rules.mk | 6 + .../keyten/aperture/keymaps/vial/vial.json | 125 ++++++++++++++++++ 4 files changed, 176 insertions(+) create mode 100644 keyboards/keyten/aperture/keymaps/vial/config.h create mode 100644 keyboards/keyten/aperture/keymaps/vial/keymap.c create mode 100644 keyboards/keyten/aperture/keymaps/vial/rules.mk create mode 100644 keyboards/keyten/aperture/keymaps/vial/vial.json diff --git a/keyboards/keyten/aperture/keymaps/vial/config.h b/keyboards/keyten/aperture/keymaps/vial/config.h new file mode 100644 index 0000000000..a813994831 --- /dev/null +++ b/keyboards/keyten/aperture/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x88, 0x8E, 0xA1, 0xC2, 0xC8, 0x7E, 0xAC, 0xEC} + +#define VIAL_UNLOCK_COMBO_ROWS {0, 4} +#define VIAL_UNLOCK_COMBO_COLS {0, 14} diff --git a/keyboards/keyten/aperture/keymaps/vial/keymap.c b/keyboards/keyten/aperture/keymaps/vial/keymap.c new file mode 100644 index 0000000000..174372aa94 --- /dev/null +++ b/keyboards/keyten/aperture/keymaps/vial/keymap.c @@ -0,0 +1,37 @@ + /* Copyright 2022 Ivan Gromov (@key10iq) + * + * 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 . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_65_ansi_blocker_tsangan_split_bs( + 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_DEL, 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_BSPC, KC_PGUP, + 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_PGDN, + 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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_65_ansi_blocker_tsangan_split_bs( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/keyten/aperture/keymaps/vial/rules.mk b/keyboards/keyten/aperture/keymaps/vial/rules.mk new file mode 100644 index 0000000000..ab122a158b --- /dev/null +++ b/keyboards/keyten/aperture/keymaps/vial/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +COMBO_ENABLE = no +MAGIC_ENABLE = no +MOUSEKEY_ENABLE = no diff --git a/keyboards/keyten/aperture/keymaps/vial/vial.json b/keyboards/keyten/aperture/keymaps/vial/vial.json new file mode 100644 index 0000000000..6b89f9fe7d --- /dev/null +++ b/keyboards/keyten/aperture/keymaps/vial/vial.json @@ -0,0 +1,125 @@ +{ + "name": "Aperture", + "vendorId": "0xEB69", + "productId": "0x6501", + "lighting": "none", + "matrix": { + "rows": 5, + "cols": 15 + }, + "layouts": { + "labels": [], + "keymap": [ + [ + "0,0", + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + "0,13", + "2,13", + "0,14" + ], + [ + { + "w": 1.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13", + "1,14" + ], + [ + { + "w": 1.75 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "w": 2.25 + }, + "2,12", + "2,14" + ], + [ + { + "w": 2.25 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + { + "w": 1.75 + }, + "3,12", + "3,13", + "3,14" + ], + [ + { + "w": 1.5 + }, + "4,0", + "4,1", + { + "w": 1.5 + }, + "4,2", + { + "w": 7 + }, + "4,6", + { + "w": 1.5 + }, + "4,10", + { + "x": 0.5 + }, + "4,12", + "4,13", + "4,14" + ] + ] + } +} From 057f3b658b8298f33961f4534ae97de4194b7169 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Sat, 27 Sep 2025 05:54:30 +0400 Subject: [PATCH 21/24] Add Vial support for keyten/diablo (#942) * Add Vial support * Reducing firmware size --- keyboards/keyten/diablo/keymaps/vial/config.h | 8 + keyboards/keyten/diablo/keymaps/vial/keymap.c | 23 ++ keyboards/keyten/diablo/keymaps/vial/rules.mk | 6 + .../keyten/diablo/keymaps/vial/vial.json | 198 ++++++++++++++++++ 4 files changed, 235 insertions(+) create mode 100644 keyboards/keyten/diablo/keymaps/vial/config.h create mode 100644 keyboards/keyten/diablo/keymaps/vial/keymap.c create mode 100644 keyboards/keyten/diablo/keymaps/vial/rules.mk create mode 100644 keyboards/keyten/diablo/keymaps/vial/vial.json diff --git a/keyboards/keyten/diablo/keymaps/vial/config.h b/keyboards/keyten/diablo/keymaps/vial/config.h new file mode 100644 index 0000000000..31aecf9483 --- /dev/null +++ b/keyboards/keyten/diablo/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x1A, 0xF0, 0x59, 0xB1, 0xD9, 0x5B, 0x75, 0x30} + +#define VIAL_UNLOCK_COMBO_ROWS {0, 4} +#define VIAL_UNLOCK_COMBO_COLS {0, 13} diff --git a/keyboards/keyten/diablo/keymaps/vial/keymap.c b/keyboards/keyten/diablo/keymaps/vial/keymap.c new file mode 100644 index 0000000000..3ea6baf7f7 --- /dev/null +++ b/keyboards/keyten/diablo/keymaps/vial/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; diff --git a/keyboards/keyten/diablo/keymaps/vial/rules.mk b/keyboards/keyten/diablo/keymaps/vial/rules.mk new file mode 100644 index 0000000000..ab122a158b --- /dev/null +++ b/keyboards/keyten/diablo/keymaps/vial/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +COMBO_ENABLE = no +MAGIC_ENABLE = no +MOUSEKEY_ENABLE = no diff --git a/keyboards/keyten/diablo/keymaps/vial/vial.json b/keyboards/keyten/diablo/keymaps/vial/vial.json new file mode 100644 index 0000000000..16668fbdb2 --- /dev/null +++ b/keyboards/keyten/diablo/keymaps/vial/vial.json @@ -0,0 +1,198 @@ +{ + "name": "Diablo", + "vendorId": "0xEB69", + "productId": "0x6003", + "lighting": "none", + "matrix": { + "rows": 5, + "cols": 14 + }, + "layouts": { + "labels": [ + "Split Backspace", + "Split Right Shift", + [ + "Bottom Row", + "Tsangan", + "WKL", + "HHKB" + ] + ], + "keymap": [ + [ + "0,0", + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + "0,6", + "0,7", + "0,8", + "0,9", + "0,10", + "0,11", + "0,12", + { + "w": 2 + }, + "0,13\n\n\n0,0", + { + "x": 1 + }, + "0,13\n\n\n0,1", + "2,13\n\n\n0,1" + ], + [ + { + "w": 1.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "1,7", + "1,8", + "1,9", + "1,10", + "1,11", + "1,12", + { + "w": 1.5 + }, + "1,13" + ], + [ + { + "w": 1.75 + }, + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "2,6", + "2,7", + "2,8", + "2,9", + "2,10", + "2,11", + { + "w": 2.25 + }, + "2,12" + ], + [ + { + "w": 2.25 + }, + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + { + "w": 2.75 + }, + "4,12\n\n\n1,0", + { + "x": 0.25, + "w": 1.75 + }, + "4,12\n\n\n1,1", + "3,13\n\n\n1,1" + ], + [ + { + "w": 1.5 + }, + "4,0\n\n\n2,0", + "4,1\n\n\n2,0", + { + "w": 1.5 + }, + "4,2\n\n\n2,0", + { + "w": 7 + }, + "4,6\n\n\n2,0", + { + "w": 1.5 + }, + "4,10\n\n\n2,0", + "4,11\n\n\n2,0", + { + "w": 1.5 + }, + "4,13\n\n\n2,0" + ], + [ + { + "y": 0.25, + "w": 1.5 + }, + "4,0\n\n\n2,1", + { + "d": true + }, + "4,1\n\n\n2,1", + { + "w": 1.5 + }, + "4,2\n\n\n2,1", + { + "w": 7 + }, + "4,6\n\n\n2,1", + { + "w": 1.5 + }, + "4,10\n\n\n2,1", + { + "d": true + }, + "4,11\n\n\n2,1", + { + "w": 1.5 + }, + "4,13\n\n\n2,1" + ], + [ + { + "w": 1.5, + "d": true + }, + "4,0\n\n\n2,2", + "4,1\n\n\n2,2", + { + "w": 1.5 + }, + "4,2\n\n\n2,2", + { + "w": 7 + }, + "4,6\n\n\n2,2", + { + "w": 1.5 + }, + "4,10\n\n\n2,2", + "4,11\n\n\n2,2", + { + "w": 1.5, + "d": true + }, + "4,13\n\n\n2,2" + ] + ] + } +} From 3e23f3339aaff5ccdd6d392b9b2aae29d3cbc9e8 Mon Sep 17 00:00:00 2001 From: jcshumpert <38388154+jcshumpert@users.noreply.github.com> Date: Fri, 26 Sep 2025 21:54:49 -0400 Subject: [PATCH 22/24] Porting Smith & Rune's Magnus175 keyboard (#944) * porting magnus175 hotswap * porting magnus175 soldered --- .../magnus/m75h/keymaps/vial/config.h | 9 + .../magnus/m75h/keymaps/vial/keymap.c | 35 +++ .../magnus/m75h/keymaps/vial/rules.mk | 4 + .../magnus/m75h/keymaps/vial/vial.json | 227 +++++++++++++++ .../magnus/m75s/keymaps/vial/config.h | 9 + .../magnus/m75s/keymaps/vial/keymap.c | 35 +++ .../magnus/m75s/keymaps/vial/rules.mk | 4 + .../magnus/m75s/keymaps/vial/vial.json | 267 ++++++++++++++++++ 8 files changed, 590 insertions(+) create mode 100644 keyboards/smithrune/magnus/m75h/keymaps/vial/config.h create mode 100644 keyboards/smithrune/magnus/m75h/keymaps/vial/keymap.c create mode 100644 keyboards/smithrune/magnus/m75h/keymaps/vial/rules.mk create mode 100644 keyboards/smithrune/magnus/m75h/keymaps/vial/vial.json create mode 100644 keyboards/smithrune/magnus/m75s/keymaps/vial/config.h create mode 100644 keyboards/smithrune/magnus/m75s/keymaps/vial/keymap.c create mode 100644 keyboards/smithrune/magnus/m75s/keymaps/vial/rules.mk create mode 100644 keyboards/smithrune/magnus/m75s/keymaps/vial/vial.json diff --git a/keyboards/smithrune/magnus/m75h/keymaps/vial/config.h b/keyboards/smithrune/magnus/m75h/keymaps/vial/config.h new file mode 100644 index 0000000000..380cbef9a9 --- /dev/null +++ b/keyboards/smithrune/magnus/m75h/keymaps/vial/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x76, 0x50, 0x4D, 0xA1, 0xB0, 0xAF, 0xDE, 0x6C} + +// Esc + Enter +#define VIAL_UNLOCK_COMBO_ROWS { 0, 8 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/smithrune/magnus/m75h/keymaps/vial/keymap.c b/keyboards/smithrune/magnus/m75h/keymaps/vial/keymap.c new file mode 100644 index 0000000000..3dc786a62c --- /dev/null +++ b/keyboards/smithrune/magnus/m75h/keymaps/vial/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 Gondolindrim + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13 , + 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_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_PGUP, + 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_PGDN, + KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( /* Base */ + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/smithrune/magnus/m75h/keymaps/vial/rules.mk b/keyboards/smithrune/magnus/m75h/keymaps/vial/rules.mk new file mode 100644 index 0000000000..b739220324 --- /dev/null +++ b/keyboards/smithrune/magnus/m75h/keymaps/vial/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +KEY_OVERRIDE_ENABLE = no \ No newline at end of file diff --git a/keyboards/smithrune/magnus/m75h/keymaps/vial/vial.json b/keyboards/smithrune/magnus/m75h/keymaps/vial/vial.json new file mode 100644 index 0000000000..4c7e9b0c57 --- /dev/null +++ b/keyboards/smithrune/magnus/m75h/keymaps/vial/vial.json @@ -0,0 +1,227 @@ +{ + "name": "SnR Magnus M75H", + "vendorId": "0x8384", + "productId": "0x1676", + "matrix": { + "rows": 11, + "cols": 15 + }, + "keycodes": [ + "qmk_lighting" + ], + "menus": [ + "qmk_rgblight" + ], + "layouts": { + "labels": [ + "Split backspace" + ], + "keymap": [ + [ + { + "x": 2.5, + "c": "#777777" + }, + "0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.25 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.25 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,13" + ], + [ + { + "y": 0.5, + "x": 2.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "6,7", + "6,8", + "6,9", + "6,10", + "6,11", + "6,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "6,13\n\n\n0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,14", + { + "x": 3.25 + }, + "6,13\n\n\n0,1", + "6,14\n\n\n0,1" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "7,6", + "7,7", + "7,8", + "7,9", + "7,10", + "7,11", + "7,12", + { + "w": 1.5 + }, + "7,13", + { + "x": 0.25 + }, + "8,14" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "8,5", + "8,6", + "8,7", + "8,8", + "8,9", + "8,10", + "8,11", + { + "c": "#777777", + "w": 2.25 + }, + "8,13", + { + "x": 0.25, + "c": "#cccccc" + }, + "9,13" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,2", + "4,3", + "4,4", + "9,5", + "9,6", + "9,7", + "9,8", + "9,9", + "9,10", + "9,11", + { + "c": "#aaaaaa", + "w": 1.75 + }, + "9,12" + ], + [ + { + "y": -0.75, + "x": 16.75, + "c": "#cccccc" + }, + "9,14" + ], + [ + { + "y": -0.25, + "x": 2.5, + "c": "#aaaaaa", + "w": 1.25 + }, + "10,0", + { + "w": 1.25 + }, + "10,1", + { + "w": 1.25 + }, + "10,2", + { + "c": "#cccccc", + "w": 6.25 + }, + "5,6", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11" + ], + [ + { + "y": -0.75, + "x": 15.75, + "c": "#cccccc" + }, + "5,12", + "5,13", + "5,14" + ] + ] + } +} diff --git a/keyboards/smithrune/magnus/m75s/keymaps/vial/config.h b/keyboards/smithrune/magnus/m75s/keymaps/vial/config.h new file mode 100644 index 0000000000..51b69991fd --- /dev/null +++ b/keyboards/smithrune/magnus/m75s/keymaps/vial/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x4E, 0xB9, 0x99, 0xB9, 0x3D, 0x73, 0x42, 0x0C} + +// Esc + Enter +#define VIAL_UNLOCK_COMBO_ROWS { 0, 8 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/smithrune/magnus/m75s/keymaps/vial/keymap.c b/keyboards/smithrune/magnus/m75s/keymaps/vial/keymap.c new file mode 100644 index 0000000000..b53b524916 --- /dev/null +++ b/keyboards/smithrune/magnus/m75s/keymaps/vial/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2023 Gondolindrim + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13 , + 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_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_PGUP, + 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_PGDN, + 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1) , KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( /* Base */ + QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) +}; diff --git a/keyboards/smithrune/magnus/m75s/keymaps/vial/rules.mk b/keyboards/smithrune/magnus/m75s/keymaps/vial/rules.mk new file mode 100644 index 0000000000..b739220324 --- /dev/null +++ b/keyboards/smithrune/magnus/m75s/keymaps/vial/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +KEY_OVERRIDE_ENABLE = no \ No newline at end of file diff --git a/keyboards/smithrune/magnus/m75s/keymaps/vial/vial.json b/keyboards/smithrune/magnus/m75s/keymaps/vial/vial.json new file mode 100644 index 0000000000..c7ea044b0f --- /dev/null +++ b/keyboards/smithrune/magnus/m75s/keymaps/vial/vial.json @@ -0,0 +1,267 @@ +{ + "name": "Smith and Rune Magnus", + "vendorId": "0x8384", + "productId": "0x1675", + "matrix": { + "rows": 11, + "cols": 15 + }, + "keycodes": [ + "qmk_lighting" + ], + "menus": [ + "qmk_backlight_rgblight" + ], + "layouts": { + "labels": [ + "Split backspace", + "ISO Enter", + "Split left shift", + "7U bottom row" + ], + "keymap": [ + [ + { + "x": 2.5, + "c": "#777777" + }, + "0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "0,1", + "0,2", + "0,3", + "0,4", + { + "x": 0.25 + }, + "0,5", + "0,6", + "0,7", + "0,8", + { + "x": 0.25 + }, + "0,9", + "0,10", + "0,11", + "0,12", + { + "x": 0.25 + }, + "0,13" + ], + [ + { + "y": 0.5, + "x": 2.5 + }, + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + "1,6", + "6,7", + "6,8", + "6,9", + "6,10", + "6,11", + "6,12", + { + "c": "#aaaaaa", + "w": 2 + }, + "6,13\n\n\n0,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "7,14", + { + "x": 3.25 + }, + "6,13\n\n\n0,1", + "6,14\n\n\n0,1" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.5 + }, + "2,0", + { + "c": "#cccccc" + }, + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + "7,6", + "7,7", + "7,8", + "7,9", + "7,10", + "7,11", + "7,12", + { + "w": 1.5 + }, + "7,13\n\n\n1,0", + { + "x": 0.25 + }, + "8,14", + { + "x": 4, + "c": "#777777", + "w": 1.25, + "h": 2, + "w2": 1.5, + "h2": 1, + "x2": -0.25 + }, + "8,13\n\n\n1,1" + ], + [ + { + "x": 2.5, + "c": "#aaaaaa", + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "8,5", + "8,6", + "8,7", + "8,8", + "8,9", + "8,10", + "8,11", + { + "c": "#777777", + "w": 2.25 + }, + "8,13\n\n\n1,0", + { + "x": 0.25, + "c": "#cccccc" + }, + "9,13", + { + "x": 3 + }, + "8,12\n\n\n1,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "4,0\n\n\n2,1", + "4,1\n\n\n2,1", + { + "x": 0.25, + "w": 2.25 + }, + "4,0\n\n\n2,0", + { + "c": "#cccccc" + }, + "4,2", + "4,3", + "4,4", + "9,5", + "9,6", + "9,7", + "9,8", + "9,9", + "9,10", + "9,11", + { + "c": "#aaaaaa", + "w": 1.75 + }, + "9,12" + ], + [ + { + "y": -0.75, + "x": 16.75, + "c": "#cccccc" + }, + "9,14" + ], + [ + { + "y": -0.25, + "x": 2.5, + "c": "#aaaaaa", + "w": 1.25 + }, + "10,0\n\n\n3,0", + { + "w": 1.25 + }, + "10,1\n\n\n3,0", + { + "w": 1.25 + }, + "10,2\n\n\n3,0", + { + "c": "#cccccc", + "w": 6.25 + }, + "5,6\n\n\n3,0", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,10", + { + "w": 1.25 + }, + "5,11" + ], + [ + { + "y": -0.75, + "x": 15.75, + "c": "#cccccc" + }, + "5,12", + "5,13", + "5,14" + ], + [ + { + "y": 0.25, + "x": 2.5, + "c": "#aaaaaa", + "w": 1.5 + }, + "10,0\n\n\n3,1", + { + "w": 1.5 + }, + "10,1\n\n\n3,1", + { + "c": "#cccccc", + "w": 7 + }, + "5,6\n\n\n3,1" + ] + ] + } +} From 4b7f74fcf649f66441aaefa19dfb4ebfc3ed20c5 Mon Sep 17 00:00:00 2001 From: obosob Date: Tue, 30 Sep 2025 19:46:04 +0100 Subject: [PATCH 23/24] [ploopyco/trackball] Add vial support (#945) --- .../ploopyco/trackball/keymaps/vial/config.h | 8 +++ .../ploopyco/trackball/keymaps/vial/keymap.c | 25 +++++++++ .../ploopyco/trackball/keymaps/vial/rules.mk | 8 +++ .../ploopyco/trackball/keymaps/vial/vial.json | 54 +++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 keyboards/ploopyco/trackball/keymaps/vial/config.h create mode 100644 keyboards/ploopyco/trackball/keymaps/vial/keymap.c create mode 100644 keyboards/ploopyco/trackball/keymaps/vial/rules.mk create mode 100644 keyboards/ploopyco/trackball/keymaps/vial/vial.json diff --git a/keyboards/ploopyco/trackball/keymaps/vial/config.h b/keyboards/ploopyco/trackball/keymaps/vial/config.h new file mode 100644 index 0000000000..7bb0d74638 --- /dev/null +++ b/keyboards/ploopyco/trackball/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xEE, 0x5B, 0x21, 0xB3, 0x55, 0xDF, 0x2B, 0xA6} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 3, 5 } diff --git a/keyboards/ploopyco/trackball/keymaps/vial/keymap.c b/keyboards/ploopyco/trackball/keymaps/vial/keymap.c new file mode 100644 index 0000000000..83a4a16847 --- /dev/null +++ b/keyboards/ploopyco/trackball/keymaps/vial/keymap.c @@ -0,0 +1,25 @@ +/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * Copyright 2020 Ploopy Corporation + * + * 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 . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base */ + KC_BTN1, KC_BTN3, KC_BTN2, + KC_BTN4, KC_BTN5 + ), +}; diff --git a/keyboards/ploopyco/trackball/keymaps/vial/rules.mk b/keyboards/ploopyco/trackball/keymaps/vial/rules.mk new file mode 100644 index 0000000000..0494672ff9 --- /dev/null +++ b/keyboards/ploopyco/trackball/keymaps/vial/rules.mk @@ -0,0 +1,8 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +QMK_SETTINGS = no + +CAPS_WORD_ENABLE = no +LAYER_LOCK_ENABLE = no +REPEAT_KEY_ENABLE = no diff --git a/keyboards/ploopyco/trackball/keymaps/vial/vial.json b/keyboards/ploopyco/trackball/keymaps/vial/vial.json new file mode 100644 index 0000000000..847e7e6c7b --- /dev/null +++ b/keyboards/ploopyco/trackball/keymaps/vial/vial.json @@ -0,0 +1,54 @@ +{ + "name": "PloopyCo Trackball", + "vendorId": "0x5043", + "productId": "0x5442", + "matrix": { + "rows": 1, + "cols": 6 + }, + "customKeycodes": [ + { + "name": "DPI Config", + "title": "DPI Config", + "shortName": "DPI" + }, + { + "name": "Drag Scroll", + "title": "Drag Scroll", + "shortName": "DragScl" + } + ], + "lighting": "none", + "layouts": { + "keymap": [ + [ + { + "h": 2 + }, + "0,0", + { + "x": 1, + "h": 2 + }, + "0,2", + { + "x": 0.5, + "h": 2 + }, + "0,3", + { + "h": 2 + }, + "0,4" + ], + [ + { + "y": -0.75, + "x": 1, + "h": 1.5 + }, + "0,1" + ] + ] + } +} From 49a40340ee1ee78f60ead8ab01d142010dd84816 Mon Sep 17 00:00:00 2001 From: "Jacky@LAZYDESIGNERS" Date: Sun, 5 Oct 2025 02:43:22 +0800 Subject: [PATCH 24/24] Add support for LAZYDESIGNERS/LittleWing (#949) Add support for LAZYDESIGNERS/LittleWing --- keyboards/lazydesigners/littlewing/info.json | 65 +++++++++++++++++++ .../littlewing/keymaps/default/keymap.c | 29 +++++++++ .../littlewing/keymaps/vial/config.h | 12 ++++ .../littlewing/keymaps/vial/keymap.c | 29 +++++++++ .../littlewing/keymaps/vial/rules.mk | 2 + .../littlewing/keymaps/vial/vial.json | 23 +++++++ keyboards/lazydesigners/littlewing/readme.md | 18 +++++ keyboards/lazydesigners/littlewing/rules.mk | 12 ++++ 8 files changed, 190 insertions(+) create mode 100644 keyboards/lazydesigners/littlewing/info.json create mode 100644 keyboards/lazydesigners/littlewing/keymaps/default/keymap.c create mode 100644 keyboards/lazydesigners/littlewing/keymaps/vial/config.h create mode 100644 keyboards/lazydesigners/littlewing/keymaps/vial/keymap.c create mode 100644 keyboards/lazydesigners/littlewing/keymaps/vial/rules.mk create mode 100644 keyboards/lazydesigners/littlewing/keymaps/vial/vial.json create mode 100644 keyboards/lazydesigners/littlewing/readme.md create mode 100644 keyboards/lazydesigners/littlewing/rules.mk diff --git a/keyboards/lazydesigners/littlewing/info.json b/keyboards/lazydesigners/littlewing/info.json new file mode 100644 index 0000000000..b5ea995b7a --- /dev/null +++ b/keyboards/lazydesigners/littlewing/info.json @@ -0,0 +1,65 @@ +{ + "keyboard_name": "Little Wing", + "manufacturer": "lazydesigners", + "url": "http://lazydesigners.cn", + "maintainer": "lazydesigners", + "usb": { + "vid": "0x4C44", + "pid": "0x0035", + "device_version": "0.0.1" + }, + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": [ "B11", "B10", "B2", "B1", "B0", "B5", "B4", "B3", "A15", "A14" ], + "rows": [ "B13", "A2", "F0", "C15"] + }, + "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": 7, "y": 0}, + {"matrix": [0, 6], "x": 8, "y": 0}, + {"matrix": [0, 7], "x": 9, "y": 0}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "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": 7, "y": 1}, + {"matrix": [1, 6], "x": 8, "y": 1}, + {"matrix": [1, 7], "x": 9, "y": 1}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "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": 7, "y": 2}, + {"matrix": [2, 6], "x": 8, "y": 2}, + {"matrix": [2, 7], "x": 9, "y": 2}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2}, + + {"matrix": [3, 1], "x": 0.25, "y": 3}, + {"matrix": [3, 2], "x": 1.25, "y": 3}, + {"matrix": [3, 3], "x": 2.25, "y": 3}, + {"matrix": [3, 4], "x": 3.25, "y": 3, "w": 1.75}, + {"matrix": [3, 5], "x": 7 , "y": 3, "w": 1.75}, + {"matrix": [3, 6], "x": 8.75, "y": 3}, + {"matrix": [3, 7], "x": 9.25, "y": 3}, + {"matrix": [3, 8], "x": 10.75, "y": 3} + ] + } + } +} diff --git a/keyboards/lazydesigners/littlewing/keymaps/default/keymap.c b/keyboards/lazydesigners/littlewing/keymaps/default/keymap.c new file mode 100644 index 0000000000..8fdce79d02 --- /dev/null +++ b/keyboards/lazydesigners/littlewing/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2025 LAZDESIGNERS +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define LT1_SPC LT(1, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_UP, KC_COMM, + KC_LCTL, KC_LALT, KC_LGUI, LT1_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [2] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + + diff --git a/keyboards/lazydesigners/littlewing/keymaps/vial/config.h b/keyboards/lazydesigners/littlewing/keymaps/vial/config.h new file mode 100644 index 0000000000..ed03a162f8 --- /dev/null +++ b/keyboards/lazydesigners/littlewing/keymaps/vial/config.h @@ -0,0 +1,12 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x8B, 0x2A, 0xBE, 0x80, 0x8B, 0xDF, 0x00, 0x50} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 9 } + +#define VIAL_COMBO_ENTRIES 32 +#define VIAL_TAP_DANCE_ENTRIES 32 +#define DYNAMIC_KEYMAP_LAYER_COUNT 8 diff --git a/keyboards/lazydesigners/littlewing/keymaps/vial/keymap.c b/keyboards/lazydesigners/littlewing/keymaps/vial/keymap.c new file mode 100644 index 0000000000..8fdce79d02 --- /dev/null +++ b/keyboards/lazydesigners/littlewing/keymaps/vial/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2025 LAZDESIGNERS +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +#define LT1_SPC LT(1, KC_SPC) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_DOT, KC_UP, KC_COMM, + KC_LCTL, KC_LALT, KC_LGUI, LT1_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, + KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [2] = LAYOUT( + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), +}; + + diff --git a/keyboards/lazydesigners/littlewing/keymaps/vial/rules.mk b/keyboards/lazydesigners/littlewing/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/lazydesigners/littlewing/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/lazydesigners/littlewing/keymaps/vial/vial.json b/keyboards/lazydesigners/littlewing/keymaps/vial/vial.json new file mode 100644 index 0000000000..94633ea894 --- /dev/null +++ b/keyboards/lazydesigners/littlewing/keymaps/vial/vial.json @@ -0,0 +1,23 @@ +{ + "matrix": {"rows": 4, "cols": 10}, + "layouts": { + "labels": [ + ["Bottom Row", "Regular", "HHKB"] + ], + "keymap": [ + [ + "0,0","0,1","0,2","0,3","0,4",{"x":2},"0,5","0,6","0,7","0,8","0,9" + ], + [ + "1,0","1,1","1,2","1,3","1,4",{"x":2},"1,5","1,6","1,7","1,8","1,9" + ], + [ + "2,0","2,1","2,2","2,3","2,4",{"x":2},"2,5","2,6","2,7","2,8","2,9" + ], + [ + {"w":0.25,"d": true},"\n\n\n0,0","3,1\n\n\n0,0","3,2\n\n\n0,0","3,3\n\n\n0,0",{"w":1.75},"3,4\n\n\n0,0",{"x":2,"w":1.75},"3,5\n\n\n0,0","3,6\n\n\n0,0","3,7\n\n\n0,0","3,8\n\n\n0,0", + {"w":1.25,"d": true},"\n\n\n0,1","3,2\n\n\n0,1","3,3\n\n\n0,1",{"w":1.75},"3,4\n\n\n0,1",{"x":2,"w":1.75},"3,5\n\n\n0,1","3,6\n\n\n0,1","3,7\n\n\n0,1" + ] + ] + } +} diff --git a/keyboards/lazydesigners/littlewing/readme.md b/keyboards/lazydesigners/littlewing/readme.md new file mode 100644 index 0000000000..f7994e95cf --- /dev/null +++ b/keyboards/lazydesigners/littlewing/readme.md @@ -0,0 +1,18 @@ +# Little Wing + +A qaz alice keyboard designed by LAZYDESIGNERS in 2025 by [LAZYDESIGNERS](http://lazydesigners.cn). + +* Keyboard Maintainer: [LAZYDESIGNERS](https://github.com/jackytrabbit) +* Hardware Supported: Little Wing +* Hardware Availability: Check [LAZYDESIGNERS's homepage.](http://lazydesigners.cn) + +Make example for this keyboard (after setting up your vial build environment): + + make lazydesigners/littlewing:vial + +Flashing example for this keyboard: + + make lazydesigners/littlewing:vial:flash + +**Reset Key:** To enter the bootloader, press the boot button and short the reset pads together on the PCB. + diff --git a/keyboards/lazydesigners/littlewing/rules.mk b/keyboards/lazydesigners/littlewing/rules.mk new file mode 100644 index 0000000000..2c43a6d05d --- /dev/null +++ b/keyboards/lazydesigners/littlewing/rules.mk @@ -0,0 +1,12 @@ +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output \ No newline at end of file