From 02a98ccd7104a9fe1600fced4881dec0060b4416 Mon Sep 17 00:00:00 2001 From: Gilbert Creemers <144808356+FlamingPhoenix40@users.noreply.github.com> Date: Mon, 23 Jun 2025 04:52:16 +0200 Subject: [PATCH 01/36] Add Vial support to ProjectD Tinker 65 ANSI (#895) * Add support for ProjectD Tinker65 ANSI Reduced nr. of layers from 13 to 4 and disabled some features to save space, because otherwise wouldn't fit EPROM * All features enabled by default All features now enabled by default, and only nr. of layers reduced to make fit. Can uncomment lines in rules.mk to squeeze a bit more free space out if features are not needed. * Fix nr. of layers in keyboard.json When uploading to github for the pull request, forgot to edit the keyboard.json to decrease the number of layers. Only did that in my local offline clone. * Moved layer reduction to vial/config.h and reverted main keyboard.json Reverted main keyboard.json back to default for upstream QMK compatibility. Put redefinition of layers back in vial/config.h but added a #undef to get rid of the definition from keyboard.json that caused this method to not build. --- .../65/projectd_65_ansi/keymaps/vial/config.h | 11 ++ .../65/projectd_65_ansi/keymaps/vial/keymap.c | 93 ++++++++++++ .../65/projectd_65_ansi/keymaps/vial/rules.mk | 7 + .../projectd_65_ansi/keymaps/vial/vial.json | 132 ++++++++++++++++++ 4 files changed, 243 insertions(+) create mode 100644 keyboards/projectd/65/projectd_65_ansi/keymaps/vial/config.h create mode 100644 keyboards/projectd/65/projectd_65_ansi/keymaps/vial/keymap.c create mode 100644 keyboards/projectd/65/projectd_65_ansi/keymaps/vial/rules.mk create mode 100644 keyboards/projectd/65/projectd_65_ansi/keymaps/vial/vial.json diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/config.h b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/config.h new file mode 100644 index 0000000000..9c04eb639a --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/config.h @@ -0,0 +1,11 @@ +/* SPDX-Licence-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xBC, 0xF1, 0xF0, 0x04, 0x32, 0x4B, 0x34, 0xE8} + +#define VIAL_UNLOCK_COMBO_ROWS { 1, 8 } +#define VIAL_UNLOCK_COMBO_COLS { 3, 4 } + +#undef DYNAMIC_KEYMAP_LAYER_COUNT +#define DYNAMIC_KEYMAP_LAYER_COUNT 4 \ No newline at end of file diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/keymap.c new file mode 100644 index 0000000000..f8700f624b --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/keymap.c @@ -0,0 +1,93 @@ +/* Copyright 2023 GSKY + * + * 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. +enum my_keycodes { + RGB_R = QK_USER, + RGB_G, + RGB_B, + RGB_W, + SW_cy, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + + switch (keycode) { + + case RGB_R: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_G: + if (record->event.pressed) { + rgb_matrix_sethsv(85, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_B: + if (record->event.pressed) { + rgb_matrix_sethsv(170, 255, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case RGB_W: + if (record->event.pressed) { + rgb_matrix_sethsv(0, 0, 255); + rgb_matrix_mode(1); + } + return false; /* Skip all further processing of this key */ + + case SW_cy: + rgb_matrix_sethsv(0, 255, 255); + rgb_matrix_mode(13); + return false; /* Skip all further processing of this key */ + + + default: + return true; /* Process all other keycodes normally */ + } +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[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_BSPC, KC_DEL, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT), +[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, RM_TOGG, RM_NEXT, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RM_VALU, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU), +[2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + 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, RGB_R, RGB_G, RGB_B, RGB_W, SW_cy, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/projectd/65/projectd_65_ansi/keymaps/vial/rules.mk b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/rules.mk new file mode 100644 index 0000000000..b51cd069fa --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/rules.mk @@ -0,0 +1,7 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +# TAP_DANCE_ENABLE = no +# COMBO_ENABLE = no +# KEY_OVERRIDE_ENABLE = no +LTO_ENABLE = yes +VIALRGB_ENABLE = yes \ No newline at end of file diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/vial.json b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/vial.json new file mode 100644 index 0000000000..bae261ae01 --- /dev/null +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/vial/vial.json @@ -0,0 +1,132 @@ +{ + "lighting": "vialrgb", + + "matrix": { + "rows": 9, + "cols": 8 + }, + "layouts": { + + "keymap": [ + [ + "1,3", + "1,7", + "2,7", + "3,7", + "4,7", + "4,6", + "5,6", + "5,7", + "6,7", + "7,7", + "8,7", + "8,6", + "6,6", + { + "w": 2 + }, + "7,1", + "2,3" + ], + [ + { + "w": 1.5 + }, + "1,1", + "1,0", + "2,0", + "3,0", + "4,0", + "4,1", + "5,1", + "5,0", + "6,0", + "7,0", + "8,0", + "8,1", + "6,1", + { + "w": 1.5 + }, + "7,5", + "7,3" + ], + [ + { + "w": 1.75 + }, + "2,1", + "1,2", + "2,2", + "3,2", + "4,2", + "4,3", + "5,3", + "5,2", + "6,2", + "7,2", + "8,2", + "8,3", + { + "w": 2.25 + }, + "8,4", + "2,6" + ], + [ + { + "w": 2.25 + }, + "0,0", + "1,4", + "2,4", + "3,4", + "4,4", + "4,5", + "5,5", + "5,4", + "6,4", + "7,4", + "8,5", + { + "w": 1.75 + }, + "0,7", + "1,6", + "6,3" + ], + [ + { + "w": 1.25 + }, + "0,6", + { + "w": 1.25 + }, + "0,5", + { + "w": 1.25 + }, + "0,2", + { + "w": 6.25 + }, + "0,1", + { + "w": 1.25 + }, + "3,6", + { + "w": 1.25 + }, + "3,3", + { + "x": 0.5 + }, + "0,3", + "1,5", + "2,5" + ] +] + } +} \ No newline at end of file From 7afc4ba45cfc89b0bc1c7b0470ae467542160e28 Mon Sep 17 00:00:00 2001 From: Nam Date: Sun, 29 Jun 2025 07:52:38 +1000 Subject: [PATCH 02/36] Add zed60 vial support (#903) --- .../mechlovin/zed60/keymaps/vial/config.h | 9 + .../mechlovin/zed60/keymaps/vial/keymap.c | 36 +++ .../mechlovin/zed60/keymaps/vial/rules.mk | 2 + .../mechlovin/zed60/keymaps/vial/vial.json | 258 ++++++++++++++++++ 4 files changed, 305 insertions(+) create mode 100644 keyboards/mechlovin/zed60/keymaps/vial/config.h create mode 100644 keyboards/mechlovin/zed60/keymaps/vial/keymap.c create mode 100644 keyboards/mechlovin/zed60/keymaps/vial/rules.mk create mode 100644 keyboards/mechlovin/zed60/keymaps/vial/vial.json diff --git a/keyboards/mechlovin/zed60/keymaps/vial/config.h b/keyboards/mechlovin/zed60/keymaps/vial/config.h new file mode 100644 index 0000000000..30a59393ee --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/vial/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x2B, 0x0A, 0xDC, 0xF4, 0xC9, 0x54, 0xDE, 0xDF} + +// Esc + Enter +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } \ No newline at end of file diff --git a/keyboards/mechlovin/zed60/keymaps/vial/keymap.c b/keyboards/mechlovin/zed60/keymaps/vial/keymap.c new file mode 100644 index 0000000000..d71ba8685e --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/vial/keymap.c @@ -0,0 +1,36 @@ +/* Copyright 2022 Mechlovin' + * + * 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 + +#define LT1_CAP LT(1, KC_CAPS) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_60_ansi_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_BSPC, KC_DEL, + 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, + LT1_CAP, 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, TO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT_60_ansi_split_bs_rshift( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PENT, + _______, _______, _______, _______, _______, _______, _______, _______, KC_P0, KC_P1, KC_P2, KC_P3, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + +}; diff --git a/keyboards/mechlovin/zed60/keymaps/vial/rules.mk b/keyboards/mechlovin/zed60/keymaps/vial/rules.mk new file mode 100644 index 0000000000..6bc7063adc --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes \ No newline at end of file diff --git a/keyboards/mechlovin/zed60/keymaps/vial/vial.json b/keyboards/mechlovin/zed60/keymaps/vial/vial.json new file mode 100644 index 0000000000..916d55cb5d --- /dev/null +++ b/keyboards/mechlovin/zed60/keymaps/vial/vial.json @@ -0,0 +1,258 @@ +{ + "matrix": { + "rows": 5, + "cols": 14 + }, + "keycodes": [ + "qmk_lighting" + ], + "lighting": "qmk_rgblight", + "menus": [ + "qmk_rgblight" + ], + "layouts": { + "labels": [ + "Split Backspace", + "2.75U Right Shift", + [ + "Bottom Row", + "6.25U", + "7U", + "HHKB" + ], + "Left Shift ISO", + "Enter ISO" + ], + "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": "#aaaaaa", + "w": 2 + }, + "0,13\n\n\n0,0", + { + "x": 0.25 + }, + "0,13\n\n\n0,1", + "2,12\n\n\n0,1" + ], + [ + { + "x": 2.5, + "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", + { + "c": "#aaaaaa", + "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 + }, + "1,13\n\n\n4,1" + ], + [ + { + "x": 2.5, + "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": "#aaaaaa" + }, + "2,13\n\n\n4,1" + ], + [ + { + "w": 1.25 + }, + "3,0\n\n\n3,1", + "3,1\n\n\n3,1", + { + "x": 0.25, + "w": 2.25 + }, + "3,0\n\n\n3,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": 1.75 + }, + "3,12\n\n\n1,0", + "3,13\n\n\n1,0", + { + "x": 0.25, + "w": 2.75 + }, + "3,12\n\n\n1,1" + ], + [ + { + "x": 2.5, + "w": 1.25 + }, + "4,0\n\n\n2,0", + { + "w": 1.25 + }, + "4,1\n\n\n2,0", + { + "w": 1.25 + }, + "4,2\n\n\n2,0", + { + "c": "#cccccc", + "w": 6.25 + }, + "4,6\n\n\n2,0", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "4,10\n\n\n2,0", + { + "w": 1.25 + }, + "4,11\n\n\n2,0", + { + "w": 1.25 + }, + "4,12\n\n\n2,0", + { + "w": 1.25 + }, + "4,13\n\n\n2,0" + ], + [ + { + "y": 0.5, + "x": 2.5, + "w": 1.5 + }, + "4,0\n\n\n2,1", + "4,1\n\n\n2,1", + { + "w": 1.5 + }, + "4,2\n\n\n2,1", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,1", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,11\n\n\n2,1", + "4,12\n\n\n2,1", + { + "w": 1.5 + }, + "4,13\n\n\n2,1" + ], + [ + { + "x": 2.5, + "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", + { + "c": "#cccccc", + "w": 7 + }, + "4,6\n\n\n2,2", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "4,11\n\n\n2,2", + "4,12\n\n\n2,2", + { + "w": 1.5, + "d": true + }, + "4,13\n\n\n2,2" + ] + ] + } +} From 9a60a335a8168032f49ee8194b8257d69dd0375d Mon Sep 17 00:00:00 2001 From: chillKB <107592205+chillKB@users.noreply.github.com> Date: Sat, 28 Jun 2025 21:53:59 -0700 Subject: [PATCH 03/36] add Vial support for ghoul TKL (#904) --- keyboards/chill/ghoul/keymaps/vial/config.h | 10 + keyboards/chill/ghoul/keymaps/vial/keymap.c | 24 ++ keyboards/chill/ghoul/keymaps/vial/rules.mk | 2 + keyboards/chill/ghoul/keymaps/vial/vial.json | 253 +++++++++++++++++++ 4 files changed, 289 insertions(+) create mode 100644 keyboards/chill/ghoul/keymaps/vial/config.h create mode 100644 keyboards/chill/ghoul/keymaps/vial/keymap.c create mode 100644 keyboards/chill/ghoul/keymaps/vial/rules.mk create mode 100644 keyboards/chill/ghoul/keymaps/vial/vial.json diff --git a/keyboards/chill/ghoul/keymaps/vial/config.h b/keyboards/chill/ghoul/keymaps/vial/config.h new file mode 100644 index 0000000000..48820c8ec8 --- /dev/null +++ b/keyboards/chill/ghoul/keymaps/vial/config.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x18, 0x52, 0x25, 0x11, 0xB7, 0xD1, 0x23, 0x0D} + +#define VIAL_UNLOCK_COMBO_ROWS {0, 3} +#define VIAL_UNLOCK_COMBO_COLS {0, 12} + +#define BACKLIGHT_BREATHING diff --git a/keyboards/chill/ghoul/keymaps/vial/keymap.c b/keyboards/chill/ghoul/keymaps/vial/keymap.c new file mode 100644 index 0000000000..9fb9329eb1 --- /dev/null +++ b/keyboards/chill/ghoul/keymaps/vial/keymap.c @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [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_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______, + BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/chill/ghoul/keymaps/vial/rules.mk b/keyboards/chill/ghoul/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/chill/ghoul/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/chill/ghoul/keymaps/vial/vial.json b/keyboards/chill/ghoul/keymaps/vial/vial.json new file mode 100644 index 0000000000..e4acbbee0b --- /dev/null +++ b/keyboards/chill/ghoul/keymaps/vial/vial.json @@ -0,0 +1,253 @@ +{ + "name": "Ghoul", + "vendorId": "0xC01D", + "productId": "0xFC87", + "lighting": "qmk_backlight", + "matrix": { + "rows": 6, + "cols": 17 + }, + "layouts": { + "labels": [ + "Split Backspace", + "Split Right Shift", + "Tsangan Bottom Row" + ], + "keymap": [ + [ + { + "c": "#aaaaaa" + }, + "0,0", + { + "x": 1, + "c": "#cccccc" + }, + "0,2", + "0,3", + "0,4", + "0,5", + { + "x": 0.5, + "c": "#aaaaaa" + }, + "0,6", + "0,7", + "0,8", + "0,9", + { + "x": 0.5, + "c": "#cccccc" + }, + "0,10", + "0,11", + "0,12", + "0,13", + { + "x": 0.25, + "c": "#aaaaaa" + }, + "0,14", + "0,15", + "0,16" + ], + [ + { + "y": 0.5, + "c": "#cccccc" + }, + "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", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13\n\n\n0,0", + { + "x": 0.25 + }, + "1,14", + "1,15", + "1,16", + { + "x": 1, + "c": "#cccccc" + }, + "1,13\n\n\n0,1", + "3,13\n\n\n0,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "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", + "2,12", + { + "w": 1.5 + }, + "2,13", + { + "x": 0.25, + "c": "#aaaaaa" + }, + "2,14", + "2,15", + "2,16" + ], + [ + { + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#aaaaaa", + "w": 2.25 + }, + "3,12" + ], + [ + { + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + { + "c": "#aaaaaa", + "w": 2.75 + }, + "4,12\n\n\n1,0", + { + "x": 1.25 + }, + "4,15", + { + "x": 1.25, + "w": 1.75 + }, + "4,12\n\n\n1,1", + "4,13\n\n\n1,1" + ], + [ + { + "w": 1.25 + }, + "5,0\n\n\n2,0", + { + "w": 1.25 + }, + "5,1\n\n\n2,0", + { + "w": 1.25 + }, + "5,2\n\n\n2,0", + { + "c": "#cccccc", + "w": 6.25 + }, + "5,6\n\n\n2,0", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "5,10\n\n\n2,0", + { + "w": 1.25 + }, + "5,11\n\n\n2,0", + { + "w": 1.25 + }, + "5,12\n\n\n2,0", + { + "w": 1.25 + }, + "5,13\n\n\n2,0", + { + "x": 0.25 + }, + "5,14", + "5,15", + "5,16" + ], + [ + { + "y": 0.25, + "w": 1.5 + }, + "5,0\n\n\n2,1", + "5,1\n\n\n2,1", + { + "w": 1.5 + }, + "5,2\n\n\n2,1", + { + "c": "#cccccc", + "w": 7 + }, + "5,6\n\n\n2,1", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "5,11\n\n\n2,1", + "5,12\n\n\n2,1", + { + "w": 1.5 + }, + "5,13\n\n\n2,1" + ] + ] + } +} 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 04/36] 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 05/36] 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 06/36] 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 07/36] 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 08/36] 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 09/36] 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 10/36] 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 11/36] 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 12/36] 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 13/36] 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 14/36] 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 15/36] 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 16/36] 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 17/36] 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 18/36] 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 19/36] 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 20/36] 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 21/36] 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 22/36] 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 23/36] 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 24/36] 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 25/36] 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 26/36] [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 27/36] 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 From b3c966238bf74850024d5d424c1c078e62780229 Mon Sep 17 00:00:00 2001 From: "A.L.Ko" Date: Sun, 12 Oct 2025 11:27:25 +0500 Subject: [PATCH 28/36] Cantordeon (#950) * +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 * +alko/cornedeon_mini; +alko/cantordeon; * *alko/cantordeon/READMI.md; * *alko/cantordeon/READMI.md; * cornedeon_mini uid fixed * -rev1_5 removed * removed keymap vial_mini * removed keymap vial_mini --------- 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/cantordeon/README.md | 27 +++ keyboards/alko/cantordeon/config.h | 18 ++ keyboards/alko/cantordeon/keyboard.json | 107 ++++++++++ .../alko/cantordeon/keymaps/default/keymap.c | 30 +++ .../alko/cantordeon/keymaps/vial/config.h | 34 ++++ .../alko/cantordeon/keymaps/vial/keymap.c | 67 +++++++ .../alko/cantordeon/keymaps/vial/rules.mk | 18 ++ .../alko/cantordeon/keymaps/vial/vial.json | 25 +++ keyboards/alko/cornedeon/README.md | 11 +- .../alko/cornedeon/keymaps/vial/config.h | 4 +- .../alko/cornedeon/keymaps/vial/rules.mk | 17 +- .../alko/cornedeon/keymaps/vial/vial.json | 2 +- keyboards/alko/cornedeon/rev1_5/config.h | 1 - keyboards/alko/cornedeon/rev1_5/keyboard.json | 46 ----- keyboards/alko/cornedeon/rev2/config.h | 4 +- keyboards/alko/cornedeon/rev2/keyboard.json | 33 +--- keyboards/alko/cornedeon/rev2z/config.h | 18 ++ keyboards/alko/cornedeon/rev2z/keyboard.json | 182 ++++++++++++++++++ keyboards/alko/cornedeon_mini/README.md | 13 ++ keyboards/alko/cornedeon_mini/info.json | 134 +++++++++++++ .../cornedeon_mini/keymaps/default/config.h | 22 +++ .../cornedeon_mini/keymaps/default/keymap.c | 44 +++++ .../alko/cornedeon_mini/keymaps/vial/config.h | 34 ++++ .../alko/cornedeon_mini/keymaps/vial/keymap.c | 67 +++++++ .../alko/cornedeon_mini/keymaps/vial/rules.mk | 18 ++ .../cornedeon_mini/keymaps/vial/vial.json | 25 +++ keyboards/alko/cornedeon_mini/rev2z/config.h | 18 ++ .../alko/cornedeon_mini/rev2z/keyboard.json | 173 +++++++++++++++++ 28 files changed, 1098 insertions(+), 94 deletions(-) create mode 100644 keyboards/alko/cantordeon/README.md create mode 100644 keyboards/alko/cantordeon/config.h create mode 100644 keyboards/alko/cantordeon/keyboard.json create mode 100644 keyboards/alko/cantordeon/keymaps/default/keymap.c create mode 100644 keyboards/alko/cantordeon/keymaps/vial/config.h create mode 100644 keyboards/alko/cantordeon/keymaps/vial/keymap.c create mode 100644 keyboards/alko/cantordeon/keymaps/vial/rules.mk create mode 100644 keyboards/alko/cantordeon/keymaps/vial/vial.json delete mode 100644 keyboards/alko/cornedeon/rev1_5/config.h delete mode 100644 keyboards/alko/cornedeon/rev1_5/keyboard.json create mode 100644 keyboards/alko/cornedeon/rev2z/config.h create mode 100644 keyboards/alko/cornedeon/rev2z/keyboard.json create mode 100644 keyboards/alko/cornedeon_mini/README.md create mode 100644 keyboards/alko/cornedeon_mini/info.json create mode 100644 keyboards/alko/cornedeon_mini/keymaps/default/config.h create mode 100644 keyboards/alko/cornedeon_mini/keymaps/default/keymap.c create mode 100644 keyboards/alko/cornedeon_mini/keymaps/vial/config.h create mode 100644 keyboards/alko/cornedeon_mini/keymaps/vial/keymap.c create mode 100644 keyboards/alko/cornedeon_mini/keymaps/vial/rules.mk create mode 100644 keyboards/alko/cornedeon_mini/keymaps/vial/vial.json create mode 100644 keyboards/alko/cornedeon_mini/rev2z/config.h create mode 100644 keyboards/alko/cornedeon_mini/rev2z/keyboard.json diff --git a/keyboards/alko/cantordeon/README.md b/keyboards/alko/cantordeon/README.md new file mode 100644 index 0000000000..8aca3e556c --- /dev/null +++ b/keyboards/alko/cantordeon/README.md @@ -0,0 +1,27 @@ +# Cantordeon + +Inspired by [El Cantor HS](https://github.com/azhizhinov/ELCANTORHS) + +![Cantordeon](https://cornedeon.ru/img/cantordeon_1_over.jpg) + +This keyboard a mod of El Cantor HS with rp2040 MCU and diode matrix, optimized for handwired. + +* Keyboard Maintainer: [alko](https://github.com/alko-kbd/) +* Gallery: [Cornedeon](https://cornedeon.ru) +* Case 3D Model: [Thingiverse](https://www.thingiverse.com/thing:7161522) +* Hardware Supported: rp2040-zero + +## Build firmware + +qmk compile -kb alko/cantordeon -km vial + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the two top left keys (top right for right side) and plug in the keyboard. +* **Physical reset button**: + * Press and hold the BOOT button. + * Press and release the RESET button. + * Release the BOOT button. + diff --git a/keyboards/alko/cantordeon/config.h b/keyboards/alko/cantordeon/config.h new file mode 100644 index 0000000000..11abebf505 --- /dev/null +++ b/keyboards/alko/cantordeon/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 GP1 +#define SERIAL_USART_TX_PIN GP0 +//#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/cantordeon/keyboard.json b/keyboards/alko/cantordeon/keyboard.json new file mode 100644 index 0000000000..80b032abc5 --- /dev/null +++ b/keyboards/alko/cantordeon/keyboard.json @@ -0,0 +1,107 @@ +{ + "manufacturer": "alko", + "keyboard_name": "Cantordeon", + "maintainer": "alko", + "url": "https://github.com/alko-kbd/cantordeon", + "usb": { + "vid": "0x4653", + "pid": "0x0004", + "suspend_wakeup_delay": 200, + "device_version": "1.0.0" + }, + "processor": "RP2040", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "oled": false, + "rgblight": false, + "rgb_matrix": false, + "encoder": false + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP15", "GP14", "GP13"], + "rows": ["GP4", "GP5", "GP6", "GP7"] + }, + "bootmagic": { + "enabled": true, + "matrix": [ 0, 1 ] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [4, 1] + }, + "matrix_pins": { + "right": { + "cols": ["GP9", "GP8", "GP7", "GP6", "GP5", "GP4"], + "rows": ["GP28", "GP27", "GP26", "GP15"] + } + }, + "handedness": { + "pin": "GP29" + }, + "serial": { + "driver": "vendor" + }, + "transport": { + "sync": { + "matrix_state": true + }, + "watchdog": true + } + }, + "layouts": { + "LAYOUT": { + "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": 2.5, "y": 3}, + {"matrix": [3, 1], "x": 3.5, "y": 3.25}, + {"matrix": [3, 2], "x": 4.5, "y": 3.5}, + {"matrix": [3, 3], "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}, + {"matrix": [7, 3], "x": 10.5, "y": 3} + ] + } + } +} diff --git a/keyboards/alko/cantordeon/keymaps/default/keymap.c b/keyboards/alko/cantordeon/keymaps/default/keymap.c new file mode 100644 index 0000000000..49d5e4d178 --- /dev/null +++ b/keyboards/alko/cantordeon/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// Copyright 2021 azhizhinov (@azhizhinov) +// SPDX-License-Identifier: GPL-2.0-or-late +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_GRV, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_TAB, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RBRC, + KC_LALT, KC_LSFT, MO(1), KC_BSPC, KC_ENT, MO(2), KC_SPC, RCTL(KC_BSPC) + ), + [1] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_UP, KC_RGHT, KC_NO, KC_HOME, KC_NO, + KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_DOWN, KC_NO, KC_NO, KC_END, KC_RALT, + KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, MO(3), KC_SPC, RCTL(KC_BSPC) + ), + [2] = LAYOUT( + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + KC_LCTL, KC_BSPC, KC_C, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_LSFT, KC_X, KC_V, KC_S, KC_L, KC_NO, KC_UNDS, KC_PLUS, KC_PMNS, KC_NO, KC_NO, KC_RALT, + KC_LALT, KC_LGUI, MO(3), KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC) + ), + [3] = LAYOUT( + KC_TAB, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_LCTL, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, KC_GRV, + KC_LSFT, KC_CAPS, KC_NO, KC_NO, KC_NO, KC_NO, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, KC_RALT, + KC_LALT, KC_LGUI, KC_TRNS, KC_ESC, KC_ENT, KC_TRNS, KC_SPC, RCTL(KC_BSPC) + ) +}; diff --git a/keyboards/alko/cantordeon/keymaps/vial/config.h b/keyboards/alko/cantordeon/keymaps/vial/config.h new file mode 100644 index 0000000000..c5984ee3d9 --- /dev/null +++ b/keyboards/alko/cantordeon/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 {0x85, 0x86, 0x45, 0x19, 0x3D, 0x36, 0xA3, 0x90} +#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/cantordeon/keymaps/vial/keymap.c b/keyboards/alko/cantordeon/keymaps/vial/keymap.c new file mode 100644 index 0000000000..085dfedcdf --- /dev/null +++ b/keyboards/alko/cantordeon/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_LALT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RGUI, 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_LALT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, 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_CALC, KC_TRNS, KC_PENT, KC_ENT, KC_TRNS, KC_CAPS, 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, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX + //`-----------------------------------------------------' `-----------------------------------------------------' + ) +}; + diff --git a/keyboards/alko/cantordeon/keymaps/vial/rules.mk b/keyboards/alko/cantordeon/keymaps/vial/rules.mk new file mode 100644 index 0000000000..2c8798fe27 --- /dev/null +++ b/keyboards/alko/cantordeon/keymaps/vial/rules.mk @@ -0,0 +1,18 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes + +RGBLIGHT_ENABLE = no +RGB_MATRIX_ENABLE = no # Can't have RGBLIGHT and RGB_MATRIX at the same time. +VIALRGB_ENABLE = no +MOUSEKEY_ENABLE = yes +OLED_ENABLE = no +OLED_DRIVER = SSD1306 +EXTRAKEY_ENABLE = yes +COMBO_ENABLE = yes + +QMK_SETTINGS = yes + +CAPS_WORD_ENABLE = yes +LAYER_LOCK_ENABLE = yes +REPEAT_KEY_ENABLE = yes diff --git a/keyboards/alko/cantordeon/keymaps/vial/vial.json b/keyboards/alko/cantordeon/keymaps/vial/vial.json new file mode 100644 index 0000000000..0bf2b8367c --- /dev/null +++ b/keyboards/alko/cantordeon/keymaps/vial/vial.json @@ -0,0 +1,25 @@ +{ + "matrix": { "rows": 8, "cols": 6 }, + "layouts": { + "keymap": [ + [{"x":3},"0,3",{"x":9.5},"4,2"], + [{"y":-0.75,"x":2},"0,2",{"x":1},"0,4",{"x":7.5},"4,1",{"x":1},"4,3"], + [{"y":-0.9,"x":5},"0,5",{"x":5.5},"4,0"], + [{"y":-0.35},"0,0","0,1",{"x":1},"1,3",{"x":9.5},"5,2",{"x":1},"4,4","4,5"], + [{"y":-0.75,"x":2},"1,2",{"x":1},"1,4",{"x":7.5},"5,1",{"x":1},"5,3"], + [{"y":-0.99,"x":5},"1,5",{"x":5.5},"5,0"], + [{"y":-0.35},"1,0","1,1",{"x":1},"2,3",{"x":9.5},"6,2",{"x":1},"5,4","5,5"], + [{"y":-0.75,"x":2},"2,2",{"x":1},"2,4",{"x":7.5},"6,1",{"x":1},"6,3"], + [{"y":-0.89,"x":5},"2,5",{"x":5.5},"6,0"], + [{"y":-0.35},"2,0","2,1",{"x":13.5},"6,4","6,5"], + [{"rx":5,"ry":3.5,"x":0.1,"r":5},"3,1"], + [{"rx":3.6,"y":0.1,"x":0.2,"r":-5},"3,0"], + [{"rx":6.5,"y":0.2,"x":-0.05,"r":15},"3,2"], + [{"rx":7.5,"y":0.45,"x":0.4,"r":25},"3,3"], + [{"rx":12.9,"y":0.1,"x":-0.2,"r":5},"7,3"], + [{"rx":11.5,"ry":3.5,"x":-0.1,"r":-5},"7,2"], + [{"rx":10,"y":0.45,"x":0.05,"r":-15},"7,1"], + [{"rx":9,"y":0.9,"x":-0.4,"r":-25},"7,0"] + ] + } +} diff --git a/keyboards/alko/cornedeon/README.md b/keyboards/alko/cornedeon/README.md index 5ea8627341..9ee33b3066 100644 --- a/keyboards/alko/cornedeon/README.md +++ b/keyboards/alko/cornedeon/README.md @@ -2,9 +2,18 @@ ## 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) +Keyboard Maintainer: [alko](https://github.com/alko-kbd/cornedeon) [alko-kbd@alk0.ru](mailto:alko-kbd@alk0.ru) + +Web Site: [cornedeon.ru](https://cornedeon.ru) + Hardware Supported: Corne 3 PCB, Handwired ![Corne3-based Cornedeon](https://cornedeon.ru/img/cornedeon_3_overviev.jpg) +Revisions: + +rev2 - promicro rp2040 + +rev2z - rp2040 zero + qmk compile -kb alko/cornedeon/rev2 -km vial diff --git a/keyboards/alko/cornedeon/keymaps/vial/config.h b/keyboards/alko/cornedeon/keymaps/vial/config.h index fc243f8896..3af8b41f42 100644 --- a/keyboards/alko/cornedeon/keymaps/vial/config.h +++ b/keyboards/alko/cornedeon/keymaps/vial/config.h @@ -22,6 +22,8 @@ along with this program. If not, see . #define VIAL_UNLOCK_COMBO_ROWS {0, 0} #define VIAL_UNLOCK_COMBO_COLS {0, 1} +//#define DYNAMIC_KEYMAP_LAYER_COUNT 6 + // For master half only when MASTER_LEFT/MASTER_RIGHT using //#define WAIT_FOR_USB @@ -30,5 +32,3 @@ along with this program. If not, see . //#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/rules.mk b/keyboards/alko/cornedeon/keymaps/vial/rules.mk index 1243e76d14..765a84fd53 100644 --- a/keyboards/alko/cornedeon/keymaps/vial/rules.mk +++ b/keyboards/alko/cornedeon/keymaps/vial/rules.mk @@ -1,18 +1,7 @@ VIA_ENABLE = yes VIAL_ENABLE = yes LTO_ENABLE = yes +MEDIA_KEY_ENABLE = yes +CONSUMER_ENABLE = yes +COMBO_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 index de2e6f7b1f..c3caa88fd8 100644 --- a/keyboards/alko/cornedeon/keymaps/vial/vial.json +++ b/keyboards/alko/cornedeon/keymaps/vial/vial.json @@ -1,5 +1,5 @@ { - "lighting": "vialrgb", + "lighting": "none", "matrix": { "rows": 8, "cols": 6 }, "layouts": { "keymap": [ diff --git a/keyboards/alko/cornedeon/rev1_5/config.h b/keyboards/alko/cornedeon/rev1_5/config.h deleted file mode 100644 index 74f9e7d32a..0000000000 --- a/keyboards/alko/cornedeon/rev1_5/config.h +++ /dev/null @@ -1 +0,0 @@ -#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 deleted file mode 100644 index cd433d042c..0000000000 --- a/keyboards/alko/cornedeon/rev1_5/keyboard.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "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 index ef09659326..a215ed8d05 100644 --- a/keyboards/alko/cornedeon/rev2/config.h +++ b/keyboards/alko/cornedeon/rev2/config.h @@ -6,7 +6,7 @@ //#define SERIAL_USART_FULL_DUPLEX //#define SERIAL_USART_RX_PIN GP2 //#define SERIAL_USART_TX_PIN GP1 -#define USE_SERIAL +//#define USE_SERIAL //#define SOFT_SERIAL_PIN GP1 //#define USB_VBUS_PIN GP2 @@ -14,5 +14,3 @@ #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 index 5c647b1844..fab85931af 100644 --- a/keyboards/alko/cornedeon/rev2/keyboard.json +++ b/keyboards/alko/cornedeon/rev2/keyboard.json @@ -5,19 +5,18 @@ "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, + "bootmagic": false, + "extrakey": false, + "mousekey": false, + "nkro": false, "oled": false, "rgblight": false, - "rgb_matrix": true, - "mousekey": true, + "rgb_matrix": false, "encoder": false }, "diode_direction": "COL2ROW", @@ -26,7 +25,7 @@ "rows": ["GP4", "GP5", "GP6", "GP7"] }, "bootmagic": { - "enabled": true, + "enabled": false, "matrix": [ 0, 1 ] }, "split": { @@ -113,24 +112,6 @@ "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, @@ -178,5 +159,5 @@ "solid_multisplash": true }, "sleep": true - }, + } } diff --git a/keyboards/alko/cornedeon/rev2z/config.h b/keyboards/alko/cornedeon/rev2z/config.h new file mode 100644 index 0000000000..11abebf505 --- /dev/null +++ b/keyboards/alko/cornedeon/rev2z/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 GP1 +#define SERIAL_USART_TX_PIN GP0 +//#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/rev2z/keyboard.json b/keyboards/alko/cornedeon/rev2z/keyboard.json new file mode 100644 index 0000000000..0de192d201 --- /dev/null +++ b/keyboards/alko/cornedeon/rev2z/keyboard.json @@ -0,0 +1,182 @@ +{ + "maintainer": "alko", + "manufacturer": "alko", + "keyboard_name": "Cornedeon v2z", + "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": ["GP28", "GP27", "GP26", "GP15", "GP14", "GP13"], + "rows": ["GP4", "GP5", "GP6", "GP7"] + }, + "bootmagic": { + "enabled": true, + "matrix": [ 0, 1 ] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [4, 1] + }, + "handedness": { + "pin": "GP29" + }, + "serial": { + "driver": "vendor", + }, + "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": "GP3" + }, + "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 + }, +} diff --git a/keyboards/alko/cornedeon_mini/README.md b/keyboards/alko/cornedeon_mini/README.md new file mode 100644 index 0000000000..4fdb2e2751 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/README.md @@ -0,0 +1,13 @@ +# Cornedeon Keyboard +## Based on Corne Keyboard [CRKBD](https://github.com/foostan/crkbd) +Improved Corne 3 keyboard with full 4x5 matrix. + +Keyboard Maintainer: [alko](https://github.com/alko-kbd/) [alko-kbd@alk0.ru](mailto:alko-kbd@alk0.ru) + +Web Site: [cornedeon.ru](https://cornedeon.ru) + +Hardware Supported: Handwired + +![Corne3-based Cornedeon](https://cornedeon.ru/img/cornedeon_mini_mx.jpg) + +qmk compile -kb alko/cornedeon_mini/rev2z -km vial diff --git a/keyboards/alko/cornedeon_mini/info.json b/keyboards/alko/cornedeon_mini/info.json new file mode 100644 index 0000000000..f5b1d1b180 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/info.json @@ -0,0 +1,134 @@ +{ + "maintainer": "alko", + "manufacturer": "alko", + "keyboard_name": "Cornedeon Mini", + "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": 1, "y": 0.3}, + {"matrix": [0, 1], "x": 2, "y": 0.1}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0.1}, + {"matrix": [0, 4], "x": 5, "y": 0.2}, + + {"matrix": [4, 4], "x": 9, "y": 0.2}, + {"matrix": [4, 3], "x": 10, "y": 0.1}, + {"matrix": [4, 2], "x": 11, "y": 0}, + {"matrix": [4, 1], "x": 12, "y": 0.1}, + {"matrix": [4, 0], "x": 13, "y": 0.3}, + + {"matrix": [1, 0], "x": 1, "y": 1.3}, + {"matrix": [1, 1], "x": 2, "y": 1.1}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1.1}, + {"matrix": [1, 4], "x": 5, "y": 1.2}, + + {"matrix": [5, 4], "x": 9, "y": 1.2}, + {"matrix": [5, 3], "x": 10, "y": 1.1}, + {"matrix": [5, 2], "x": 11, "y": 1}, + {"matrix": [5, 1], "x": 12, "y": 1.1}, + {"matrix": [5, 0], "x": 13, "y": 1.3}, + + {"matrix": [2, 0], "x": 1, "y": 2.3}, + {"matrix": [2, 1], "x": 2, "y": 2.1}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2.1}, + {"matrix": [2, 4], "x": 5, "y": 2.2}, + + {"matrix": [6, 4], "x": 9, "y": 2.2}, + {"matrix": [6, 3], "x": 10, "y": 2.1}, + {"matrix": [6, 2], "x": 11, "y": 2}, + {"matrix": [6, 1], "x": 12, "y": 2.1}, + {"matrix": [6, 0], "x": 13, "y": 2.3}, + + {"matrix": [3, 0], "x": 1, "y": 3.7}, + {"matrix": [3, 1], "x": 2, "y": 3.7}, + {"matrix": [3, 2], "x": 4, "y": 3.7}, + {"matrix": [3, 3], "x": 5, "y": 3.7}, + {"matrix": [3, 4], "x": 6, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 4], "x": 8, "y": 3.2, "h": 1.5}, + {"matrix": [7, 3], "x": 9, "y": 3.7}, + {"matrix": [7, 2], "x": 10, "y": 3.7} + {"matrix": [7, 1], "x": 12, "y": 3.7} + {"matrix": [7, 0], "x": 13, "y": 3.7} + ] + } + }, + "rgb_matrix": { + "driver": "ws2812", + "max_brightness": 120 + "led_count": 36, + "split": true, + "split_count": [18, 18], + "layout": [ + {"matrix": [0, 0], "x": 16, "y": 7, "flags": 4}, + {"matrix": [0, 1], "x": 33, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 68, "y": 2, "flags": 4}, + {"matrix": [0, 4], "x": 85, "y": 4, "flags": 4}, + + {"matrix": [1, 0], "x": 16, "y": 24, "flags": 4}, + {"matrix": [1, 1], "x": 33, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 50, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 68, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 85, "y": 21, "flags": 4}, + + {"matrix": [2, 0], "x": 16, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 33, "y": 37, "flags": 4}, + {"matrix": [2, 2], "x": 50, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 68, "y": 37, "flags": 4}, + {"matrix": [2, 4], "x": 85, "y": 39, "flags": 4}, + + {"matrix": [3, 2], "x": 60, "y": 55, "flags": 1}, + {"matrix": [3, 3], "x": 80, "y": 58, "flags": 1}, + {"matrix": [3, 4], "x": 95, "y": 63, "flags": 1}, + + {"matrix": [4, 0], "x": 208, "y": 7, "flags": 4}, + {"matrix": [4, 1], "x": 191, "y": 3, "flags": 4}, + {"matrix": [4, 2], "x": 174, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 156, "y": 2, "flags": 4}, + {"matrix": [4, 4], "x": 139, "y": 4, "flags": 4}, + + {"matrix": [5, 0], "x": 208, "y": 24, "flags": 4}, + {"matrix": [5, 1], "x": 191, "y": 20, "flags": 4}, + {"matrix": [5, 2], "x": 174, "y": 13, "flags": 4}, + {"matrix": [5, 3], "x": 156, "y": 19, "flags": 4}, + {"matrix": [5, 4], "x": 139, "y": 21, "flags": 4}, + + {"matrix": [6, 0], "x": 208, "y": 42, "flags": 4}, + {"matrix": [6, 1], "x": 191, "y": 37, "flags": 4}, + {"matrix": [6, 2], "x": 174, "y": 35, "flags": 4}, + {"matrix": [6, 3], "x": 156, "y": 37, "flags": 4}, + {"matrix": [6, 4], "x": 139, "y": 39, "flags": 4}, + + {"matrix": [7, 2], "x": 164, "y": 55, "flags": 1}, + {"matrix": [7, 3], "x": 144, "y": 58, "flags": 1}, + {"matrix": [7, 4], "x": 129, "y": 63, "flags": 1}, + ], + }, + "rgblight": { + "max_brightness": 120 + } +} diff --git a/keyboards/alko/cornedeon_mini/keymaps/default/config.h b/keyboards/alko/cornedeon_mini/keymaps/default/config.h new file mode 100644 index 0000000000..b045efebfc --- /dev/null +++ b/keyboards/alko/cornedeon_mini/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_mini/keymaps/default/keymap.c b/keyboards/alko/cornedeon_mini/keymaps/default/keymap.c new file mode 100644 index 0000000000..5672d02dc5 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/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_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_SCLN, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------| + XXXXXXX,XXXXXXX, KC_LSFT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RCTL, XXXXXXX, XXXXXXX + //`--------------------------------------------' `--------------------------------------------' + ), + [1] = LAYOUT( + //,--------------------------------------------. ,--------------------------------------------. + KC_ESC, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_TAB, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_SLSH, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_LALT, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3, KC_UNDS, KC_BSLS, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_LSFT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, XXXXXXX, XXXXXXX + //`--------------------------------------------' `--------------------------------------------' + ) +}; diff --git a/keyboards/alko/cornedeon_mini/keymaps/vial/config.h b/keyboards/alko/cornedeon_mini/keymaps/vial/config.h new file mode 100644 index 0000000000..71461fab5e --- /dev/null +++ b/keyboards/alko/cornedeon_mini/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 {0xEE, 0x73, 0x08, 0xC4, 0xE2, 0x27, 0x05, 0x16} +#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_mini/keymaps/vial/keymap.c b/keyboards/alko/cornedeon_mini/keymaps/vial/keymap.c new file mode 100644 index 0000000000..470962abf3 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/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_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_SCLN, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------| + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+-------| + XXXXXXX,XXXXXXX, KC_LSFT, TL_LOWR, KC_SPC, KC_SPC, TL_UPPR, KC_RCTL, XXXXXXX, XXXXXXX + //`--------------------------------------------' `--------------------------------------------' + ), + [1] = LAYOUT( + //,--------------------------------------------. ,--------------------------------------------. + KC_ESC, KC_LPRN, KC_RPRN, KC_PLUS,KC_MINUS, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_TAB, KC_LBRC, KC_RBRC,KC_DQUO, KC_SLASH, KC_4, KC_5, KC_6,KC_KP_DOT,KC_SLSH, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + KC_LALT, KC_LCBR, KC_RCBR, KC_LT, KC_GT, KC_1, KC_2, KC_3, KC_UNDS, KC_BSLS, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_LSFT, KC_TRNS, KC_SPC, KC_ENT, KC_TRNS, KC_RGUI, XXXXXXX, XXXXXXX + //`--------------------------------------------' `--------------------------------------------' + ), + [2] = LAYOUT( + //,--------------------------------------------. ,--------------------------------------------. + 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_PMNS, KC_PDOT, KC_KP_4, KC_KP_5, KC_KP_6, KC_F4, KC_F5, KC_F6, KC_F11, KC_NUM, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + XXXXXXX, KC_PEQL, KC_KP_1, KC_KP_2, KC_KP_3, KC_F1, KC_F2, KC_F3, KC_F12, KC_APP, + //|--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------| + XXXXXXX, XXXXXXX, KC_CALC, KC_TRNS, KC_PENT, KC_ENT, KC_TRNS, KC_CAPS, XXXXXXX, XXXXXXX + //`--------------------------------------------' `--------------------------------------------' + ), + [3] = LAYOUT( + //,--------------------------------------------. ,---------------------------------------------. + 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, KC_TRNS, XXXXXXX, XXXXXXX, KC_TRNS, XXXXXXX, XXXXXXX, XXXXXXX + //`--------------------------------------------' `--------------------------------------------' + ) +}; + diff --git a/keyboards/alko/cornedeon_mini/keymaps/vial/rules.mk b/keyboards/alko/cornedeon_mini/keymaps/vial/rules.mk new file mode 100644 index 0000000000..1243e76d14 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/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_mini/keymaps/vial/vial.json b/keyboards/alko/cornedeon_mini/keymaps/vial/vial.json new file mode 100644 index 0000000000..39a0be8bfb --- /dev/null +++ b/keyboards/alko/cornedeon_mini/keymaps/vial/vial.json @@ -0,0 +1,25 @@ +{ + "lighting": "vialrgb", + "matrix": { "rows": 8, "cols": 5 }, + "layouts": { + "keymap": [ + [{"y":1,"x":3.5},"0,2",{"x":7.5},"4,2"], + [{"y":-0.875,"x":2.5},"0,1",{"x":1},"0,3",{"x":5.5},"4,3",{"x":1},"4,1"], + [{"y":-0.875,"x":5.5},"0,4",{"x":3.5},"4,4"], + [{"y":-0.875,"x":1.5},"0,0",{"x":11.5},"4,0"], + [{"y":-0.375,"x":3.5},"1,2",{"x":7.5},"5,2"], + [{"y":-0.875,"x":2.5},"1,1",{"x":1},"1,3",{"x":5.5},"5,3",{"x":1},"5,1"], + [{"y":-0.875,"x":5.5},"1,4",{"x":3.5},"5,4"], + [{"y":-0.875,"x":1.5},"1,0",{"x":11.5},"5,0"], + [{"y":-0.375,"x":3.5},"2,2",{"x":7.5},"6,2"], + [{"y":-0.875,"x":2.5},"2,1",{"x":1},"2,3",{"x":5.5},"6,3",{"x":1},"6,1"], + [{"y":-0.875,"x":5.5},"2,4",{"x":3.5},"6,4"], + [{"y":-0.875,"x":1.5},"2,0",{"x":11.5},"6,0"], + [{"y":-0.125,"x":4},"3,2",{"x":6.5},"7,2"], + [{"r":15,"rx":4.5,"ry":9.1,"y":-4.85,"x":-0.5},"3,3"], + [{"r":30,"rx":5.4,"ry":9.3,"y":-5.05,"x":-1.4,"h":1.5},"3,4"], + [{"r":-30,"rx":11.1,"y":-5.05,"x":0.4,"h":1.5},"7,4"], + [{"r":-15,"rx":12,"ry":9.1,"y":-4.85,"x":-0.5},"7,3"] + ] + } +} diff --git a/keyboards/alko/cornedeon_mini/rev2z/config.h b/keyboards/alko/cornedeon_mini/rev2z/config.h new file mode 100644 index 0000000000..11abebf505 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/rev2z/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 GP1 +#define SERIAL_USART_TX_PIN GP0 +//#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_mini/rev2z/keyboard.json b/keyboards/alko/cornedeon_mini/rev2z/keyboard.json new file mode 100644 index 0000000000..04c4373020 --- /dev/null +++ b/keyboards/alko/cornedeon_mini/rev2z/keyboard.json @@ -0,0 +1,173 @@ +{ + "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": ["GP14", "GP15", "GP26", "GP27", "GP28"], + "rows": ["GP4", "GP5", "GP6", "GP7"] + }, + "bootmagic": { + "enabled": true, + "matrix": [ 0, 1 ] + }, + "split": { + "enabled": true, + "bootmagic": { + "matrix": [4, 1] + }, + "handedness": { + "pin": "GP8" + }, + "serial": { + "driver": "vendor", + }, + "transport": { + "sync": { + "matrix_state": true + }, + "watchdog": true + } + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 1, "y": 0.3}, + {"matrix": [0, 1], "x": 2, "y": 0.1}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0.1}, + {"matrix": [0, 4], "x": 5, "y": 0.2}, + + {"matrix": [4, 4], "x": 9, "y": 0.2}, + {"matrix": [4, 3], "x": 10, "y": 0.1}, + {"matrix": [4, 2], "x": 11, "y": 0}, + {"matrix": [4, 1], "x": 12, "y": 0.1}, + {"matrix": [4, 0], "x": 13, "y": 0.3}, + + {"matrix": [1, 0], "x": 1, "y": 1.3}, + {"matrix": [1, 1], "x": 2, "y": 1.1}, + {"matrix": [1, 2], "x": 3, "y": 1}, + {"matrix": [1, 3], "x": 4, "y": 1.1}, + {"matrix": [1, 4], "x": 5, "y": 1.2}, + + {"matrix": [5, 4], "x": 9, "y": 1.2}, + {"matrix": [5, 3], "x": 10, "y": 1.1}, + {"matrix": [5, 2], "x": 11, "y": 1}, + {"matrix": [5, 1], "x": 12, "y": 1.1}, + {"matrix": [5, 0], "x": 13, "y": 1.3}, + + {"matrix": [2, 0], "x": 1, "y": 2.3}, + {"matrix": [2, 1], "x": 2, "y": 2.1}, + {"matrix": [2, 2], "x": 3, "y": 2}, + {"matrix": [2, 3], "x": 4, "y": 2.1}, + {"matrix": [2, 4], "x": 5, "y": 2.2}, + + {"matrix": [6, 4], "x": 9, "y": 2.2}, + {"matrix": [6, 3], "x": 10, "y": 2.1}, + {"matrix": [6, 2], "x": 11, "y": 2}, + {"matrix": [6, 1], "x": 12, "y": 2.1}, + {"matrix": [6, 0], "x": 13, "y": 2.3}, + + {"matrix": [3, 0], "x": 1, "y": 3.7}, + {"matrix": [3, 1], "x": 2, "y": 3.7}, + {"matrix": [3, 2], "x": 4, "y": 3.7}, + {"matrix": [3, 3], "x": 5, "y": 3.7}, + {"matrix": [3, 4], "x": 6, "y": 3.2, "h": 1.5}, + + {"matrix": [7, 4], "x": 8, "y": 3.2, "h": 1.5}, + {"matrix": [7, 3], "x": 9, "y": 3.7}, + {"matrix": [7, 2], "x": 10, "y": 3.7} + {"matrix": [7, 1], "x": 12, "y": 3.7} + {"matrix": [7, 0], "x": 13, "y": 3.7} + ] + } + }, + "ws2812": { + "driver": "vendor", + "pin": "GP3" + }, + "rgblight": { + "led_count": 36, + "split": true, + "split_count": [18, 18], + "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 8e0675360cd50ddbda9eda139020ff23c3d6195b Mon Sep 17 00:00:00 2001 From: andrew morton Date: Sat, 18 Oct 2025 11:09:02 -0600 Subject: [PATCH 29/36] feat(glyphkbd_v2): Add vial support (#953) --- .../galile0/glyphkbd_v2/keymaps/vial/config.h | 5 + .../galile0/glyphkbd_v2/keymaps/vial/keymap.c | 105 ++++++++++++++++++ .../galile0/glyphkbd_v2/keymaps/vial/rules.mk | 7 ++ .../glyphkbd_v2/keymaps/vial/vial.json | 104 +++++++++++++++++ 4 files changed, 221 insertions(+) create mode 100644 keyboards/galile0/glyphkbd_v2/keymaps/vial/config.h create mode 100644 keyboards/galile0/glyphkbd_v2/keymaps/vial/keymap.c create mode 100644 keyboards/galile0/glyphkbd_v2/keymaps/vial/rules.mk create mode 100644 keyboards/galile0/glyphkbd_v2/keymaps/vial/vial.json diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/vial/config.h b/keyboards/galile0/glyphkbd_v2/keymaps/vial/config.h new file mode 100644 index 0000000000..f92b27f3de --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/vial/config.h @@ -0,0 +1,5 @@ +#pragma once + +#define VIAL_KEYBOARD_UID {0x45, 0x25, 0xF0, 0xF1, 0x0B, 0x44, 0x5B, 0x30} +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 15 } diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/vial/keymap.c b/keyboards/galile0/glyphkbd_v2/keymaps/vial/keymap.c new file mode 100644 index 0000000000..15ad99b61f --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/vial/keymap.c @@ -0,0 +1,105 @@ +/* + *Copyright 2024 Fabian Leijström (@galile0-designs) + * + *This program is free software: you can redistribute it and/or modify + *it under the terms of the GNU General Public License as published by + *the Free Software Foundation, either version 2 of the License, or + *(at your option) any later version. + * + *This program is distributed in the hope that it will be useful, + *but WITHOUT ANY WARRANTY; without even the implied warranty of + *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + *GNU General Public License for more details. + * + *You should have received a copy of the GNU General Public License + *along with this program. If not, see . + */ + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │ ESC │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ BS │ │ INS │HOME │PGUP │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ TAB │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │ DEL │ END │PGDN │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │CAPS │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ENTER│ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │SHIFT│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │SHIFT│ │ UP │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │CTRL │ │ SYS │ ALT │LOWER│ SPACE │SPACE│RAISE│ ALT │ SYS │ │CTRL │ │LEFT │DOWN │RIGHT│ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [0] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_BSLS, 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_NO, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_RALT, KC_RGUI, KC_NO, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* FUNCTION LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │PAUSE│ F1 │ F2 │ F3 │ F4 │ F5 │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ │ PRT │ │ │ + * │PLAY │ │ │ │ │ │ │ │ │ │ │ │ │ │ SCR │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [1] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_MPLY, 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_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + + /* SYMBOLS LAYER + * ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ ┌─────┬─────┬─────┐ + * │ │ │ │ │ │ │ │ │ │ ` │ = │ + │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ └─────┴─────┴─────┘ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├─────┼─────┼─────┼─────┼─────┼─────┴─────┼─────┼─────┼─────┼─────┼─────┼─────┤ ┌─────┼─────┼─────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * └─────┴─────┴─────┴─────┴─────┴───────────┴─────┴─────┴─────┴─────┴─────┴─────┘ └─────┴─────┴─────┘ + */ + + [2] = LAYOUT( + //******** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** ********** + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_GRV, KC_EQL, KC_PPLS, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ) +}; diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/vial/rules.mk b/keyboards/galile0/glyphkbd_v2/keymaps/vial/rules.mk new file mode 100644 index 0000000000..0514b14378 --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/vial/rules.mk @@ -0,0 +1,7 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes + +CAPS_WORD_ENABLE = no +LAYER_LOCK_ENABLE = no +REPEAT_KEY_ENABLE = no \ No newline at end of file diff --git a/keyboards/galile0/glyphkbd_v2/keymaps/vial/vial.json b/keyboards/galile0/glyphkbd_v2/keymaps/vial/vial.json new file mode 100644 index 0000000000..02f2e3a6eb --- /dev/null +++ b/keyboards/galile0/glyphkbd_v2/keymaps/vial/vial.json @@ -0,0 +1,104 @@ +{ + "name": "Glyphkbd V2", + "vendorId": "0x4744", + "productId": "0x0001", + "lighting": "none", + "matrix": { + "rows": 5, + "cols": 16 + }, + "layouts": { + "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", + { "x": 0.5 }, + "0,13", + "0,14", + "0,15" + ], + [ + "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", + { "x": 0.5 }, + "1,13", + "1,14", + "1,15" + ], + [ + "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" + ], + [ + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + "3,12", + { "x": 1.5 }, + "3,14" + ], + [ + "4,0", + "4,1", + "4,2", + "4,3", + "4,4", + { "w": 2 }, + "4,5", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + "4,12", + { "x": 0.5 }, + "4,13", + "4,14", + "4,15" + ] + ] + }, + "vial_protocol": 1 +} \ No newline at end of file From 2663d32aa89c9abbe8c0b115051abef579d74baf Mon Sep 17 00:00:00 2001 From: Eric Kotato Date: Sat, 18 Oct 2025 21:07:13 +0300 Subject: [PATCH 30/36] Add Vial support for Glorious GMMK V2 65 ANSI (#954) --- .../gmmk/gmmk2/p65/ansi/keymaps/vial/config.h | 8 + .../gmmk/gmmk2/p65/ansi/keymaps/vial/keymap.c | 55 ++++++ .../gmmk/gmmk2/p65/ansi/keymaps/vial/rules.mk | 3 + .../gmmk2/p65/ansi/keymaps/vial/vial.json | 170 ++++++++++++++++++ 4 files changed, 236 insertions(+) create mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/config.h create mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/keymap.c create mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/rules.mk create mode 100644 keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/vial.json diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/config.h b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/config.h new file mode 100644 index 0000000000..51c0a9a9a1 --- /dev/null +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x97, 0x93, 0xA5, 0x42, 0xB0, 0xB2, 0x94, 0x68} + +#define VIAL_UNLOCK_COMBO_ROWS { 1, 8 } +#define VIAL_UNLOCK_COMBO_COLS { 3, 4 } diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/keymap.c b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/keymap.c new file mode 100644 index 0000000000..567ea686f8 --- /dev/null +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2021 Glorious, LLC + * + * 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 + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Keymap _BL: Base Layer (Default Layer) + */ +[0] = LAYOUT_65_ansi_blocker( + 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_DEL, + 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_END, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* Keymap _FL: Function Layer + */ +[1] = LAYOUT_65_ansi_blocker( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, RGB_HUI, RGB_HUD, RGB_SPD, RGB_SPI, KC_MUTE, KC_VOLD, KC_VOLU, KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_VAI, KC_HOME, + _______, _______, _______, QK_BOOT, _______, _______, RGB_RMOD, RGB_VAD, RGB_MOD + ), + +[2] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +[3] = LAYOUT_65_ansi_blocker( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/rules.mk b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/rules.mk new file mode 100644 index 0000000000..d013bc62da --- /dev/null +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +VIALRGB_ENABLE = yes diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/vial.json b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/vial.json new file mode 100644 index 0000000000..3a572371ce --- /dev/null +++ b/keyboards/gmmk/gmmk2/p65/ansi/keymaps/vial/vial.json @@ -0,0 +1,170 @@ +{ + "name": "GMMK V2 65 ANSI", + "vendorId": "0x320F", + "productId": "0x5045", + "matrix": { + "rows": 9, + "cols": 8 + }, + "lighting": "vialrgb", + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "1,3", + { + "c": "#cccccc" + }, + "1,7", + "2,7", + "3,7", + "4,7", + "4,6", + "5,6", + "5,7", + "6,7", + "7,7", + "8,7", + "8,6", + "6,6", + { + "c": "#aaaaaa", + "w": 2 + }, + "7,1", + { + "c": "#cccccc" + }, + "2,5" + ], + [ + { + "c": "#aaaaaa", + "w": 1.5 + }, + "1,1", + { + "c": "#cccccc" + }, + "1,0", + "2,0", + "3,0", + "4,0", + "4,1", + "5,1", + "5,0", + "6,0", + "7,0", + "8,0", + "8,1", + "6,1", + { + "w": 1.5 + }, + "7,6", + "2,6" + ], + [ + { + "c": "#aaaaaa", + "w": 1.75 + }, + "2,1", + { + "c": "#cccccc" + }, + "1,2", + "2,2", + "3,2", + "4,2", + "4,3", + "5,3", + "5,2", + "6,2", + "7,2", + "8,2", + "8,3", + { + "c": "#777777", + "w": 2.25 + }, + "8,4", + { + "c": "#cccccc" + }, + "6,5" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "0,0", + { + "c": "#cccccc" + }, + "1,4", + "2,4", + "3,4", + "4,4", + "4,5", + "5,5", + "5,4", + "6,4", + "7,4", + "8,5", + { + "c": "#aaaaaa", + "w": 1.75 + }, + "0,7", + { + "c": "#777777" + }, + "3,5", + { + "c": "#cccccc" + }, + "0,1" + ], + [ + { + "c": "#aaaaaa", + "w": 1.25 + }, + "0,6", + { + "w": 1.25 + }, + "1,5", + { + "w": 1.25 + }, + "2,3", + { + "c": "#cccccc", + "w": 6.25 + }, + "3,1", + { + "c": "#aaaaaa", + "w": 1.25 + }, + "3,6", + { + "w": 1.25 + }, + "3,3", + { + "x": 0.5, + "c": "#777777" + }, + "0,3", + "7,3", + "0,5" + ] + ] + } +} From 5ce9ae935b3419374bcb8c0863291b480d58f337 Mon Sep 17 00:00:00 2001 From: Coom <1655787+coomstoolbox@users.noreply.github.com> Date: Mon, 20 Oct 2025 09:43:41 +0900 Subject: [PATCH 31/36] Add support handwired/ziyoulang_k3_mod (#955) --- .../ziyoulang_k3_mod/keymaps/vial/config.h | 8 + .../ziyoulang_k3_mod/keymaps/vial/keymap.c | 56 ++++ .../ziyoulang_k3_mod/keymaps/vial/rules.mk | 2 + .../ziyoulang_k3_mod/keymaps/vial/vial.json | 244 ++++++++++++++++++ 4 files changed, 310 insertions(+) create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/config.h create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/keymap.c create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/rules.mk create mode 100644 keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/vial.json diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/config.h b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/config.h new file mode 100644 index 0000000000..d8e46e37d5 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/config.h @@ -0,0 +1,8 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x01, 0x0B, 0x6B, 0xD3, 0x32, 0xC7, 0xB0, 0x93} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 4 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 20 } diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/keymap.c b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/keymap.c new file mode 100644 index 0000000000..711cb415d6 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/keymap.c @@ -0,0 +1,56 @@ +// 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│Del│ │Hom│Ins│PgU│PgD│ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┴───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│ │Num│ / │ * │ - │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┼───┤ + * │ 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 │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬┬──┴┼───┼┴──┬┼───┼───┤Ent│ + * │Ctrl│GUI │Alt │ │Alt│ Fn│Ctr││ ← │ ↓ │ → ││ 0 │ . │ │ + * └────┴────┴────┴────────────────────────┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘ + */ + [0] = LAYOUT_96_ansi( + 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_DEL, KC_HOME, KC_INS, KC_PGUP, KC_PGDN, + + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_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_PPLS, + 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_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_P1, KC_P2, KC_P3, KC_PENT, + KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_PDOT, + KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_96_ansi( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END, _______, KC_SCRL, KC_PAUS, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ), + [2] = LAYOUT_96_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______ + ) +}; diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/rules.mk b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/rules.mk new file mode 100644 index 0000000000..4f7618e9b2 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes diff --git a/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/vial.json b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/vial.json new file mode 100644 index 0000000000..d9a0872661 --- /dev/null +++ b/keyboards/handwired/ziyoulang_k3_mod/keymaps/vial/vial.json @@ -0,0 +1,244 @@ +{ + "name": "ziyoulang k3 mod", + "vendorId": "0x5006", + "productId": "0xE002", + "matrix": { + "rows": 6, + "cols": 21 + }, + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "c": "#cccccc" + }, + "0,2", + "0,3", + "0,4", + "0,5", + { + "c": "#aaaaaa" + }, + "0,6", + "0,7", + "0,8", + "0,9", + { + "c": "#cccccc" + }, + "0,10", + "0,11", + "0,12", + "0,13", + { + "c": "#aaaaaa" + }, + "0,14", + "0,15", + { + "x": 0.5 + }, + "0,16", + "0,17", + "0,18", + "0,19" + ], + [ + { + "y": 0.25, + "c": "#cccccc" + }, + "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", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13", + { + "x": 0.5 + }, + "1,17", + "1,18", + "1,19", + "1,20" + ], + [ + { + "w": 1.5 + }, + "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", + "2,12", + { + "w": 1.5 + }, + "3,13", + { + "x": 0.5 + }, + "2,17", + "2,18", + "2,19", + { + "c": "#aaaaaa", + "h": 2 + }, + "2,20" + ], + [ + { + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + "3,12", + { + "c": "#777777", + "w": 2.25 + }, + "2,13", + { + "x": 0.5, + "c": "#cccccc" + }, + "3,17", + "3,18", + "3,19" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + "4,11", + { + "c": "#aaaaaa", + "w": 1.75 + }, + "4,13", + { + "x": 1.5, + "c": "#cccccc" + }, + "4,17", + "4,18", + "4,19", + { + "c": "#777777", + "h": 2 + }, + "4,20" + ], + [ + { + "y": -0.75, + "x": 14.25, + "c": "#aaaaaa" + }, + "4,15" + ], + [ + { + "y": -0.25, + "w": 1.25 + }, + "5,0", + { + "w": 1.25 + }, + "5,2", + { + "w": 1.25 + }, + "5,3", + { + "c": "#777777", + "w": 6.25 + }, + "5,6", + { + "c": "#aaaaaa" + }, + "5,10", + { + "c": "#777777" + }, + "5,11", + { + "c": "#aaaaaa" + }, + "5,13", + { + "x": 3.5, + "c": "#cccccc" + }, + "5,17", + "5,19" + ], + [ + { + "y": -0.75, + "x": 13.25, + "c": "#aaaaaa" + }, + "5,14", + "5,15", + "5,16" + ] + ] + } +} From 9b624c5ac41110d0beed8bfa876432ea358dea75 Mon Sep 17 00:00:00 2001 From: Scramble Tools <162384439+scrambletools@users.noreply.github.com> Date: Sat, 1 Nov 2025 23:57:02 -0700 Subject: [PATCH 32/36] fix(quantum): Add static assertions for LAG keycode (#957) --- quantum/vial_ensure_keycode.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/quantum/vial_ensure_keycode.h b/quantum/vial_ensure_keycode.h index 320db887b1..4a43131ea0 100644 --- a/quantum/vial_ensure_keycode.h +++ b/quantum/vial_ensure_keycode.h @@ -298,6 +298,8 @@ _Static_assert(LALT_T(kc) == 0x2400, ""); _Static_assert(LALT(kc) == 0x400, ""); _Static_assert(LCA_T(kc) == 0x2500, ""); _Static_assert(LCA(kc) == 0x500, ""); +_Static_assert(LAG_T(kc) == 0x2c00, ""); +_Static_assert(LAG(kc) == 0xc00, ""); _Static_assert(LCAG_T(kc) == 0x2d00, ""); _Static_assert(LCAG(kc) == 0xd00, ""); _Static_assert(LCG_T(kc) == 0x2900, ""); From 7594e6be0d19ea856733b424032023e68037a917 Mon Sep 17 00:00:00 2001 From: Wizzard Date: Mon, 3 Nov 2025 03:02:21 +0100 Subject: [PATCH 33/36] Add vial support for kbdfans/odin75 (#956) Co-authored-by: Wizzard --- .../kbdfans/odin75/keymaps/vial/config.h | 23 ++ .../kbdfans/odin75/keymaps/vial/keymap.c | 29 +++ .../kbdfans/odin75/keymaps/vial/rules.mk | 53 +++++ .../kbdfans/odin75/keymaps/vial/vial.json | 202 ++++++++++++++++++ 4 files changed, 307 insertions(+) create mode 100755 keyboards/kbdfans/odin75/keymaps/vial/config.h create mode 100755 keyboards/kbdfans/odin75/keymaps/vial/keymap.c create mode 100755 keyboards/kbdfans/odin75/keymaps/vial/rules.mk create mode 100755 keyboards/kbdfans/odin75/keymaps/vial/vial.json diff --git a/keyboards/kbdfans/odin75/keymaps/vial/config.h b/keyboards/kbdfans/odin75/keymaps/vial/config.h new file mode 100755 index 0000000000..f124241369 --- /dev/null +++ b/keyboards/kbdfans/odin75/keymaps/vial/config.h @@ -0,0 +1,23 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xE3, 0xFD, 0x75, 0x4F, 0xFA, 0xB8, 0xF2, 0x00} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } + +/* Reduce firmare size */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 +#define VIAL_TAP_DANCE_ENTRIES 4 + +#ifndef NO_DEBUG +#define NO_DEBUG +#endif + +#ifndef NO_PRINT +#define NO_PRINT +#endif + +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION diff --git a/keyboards/kbdfans/odin75/keymaps/vial/keymap.c b/keyboards/kbdfans/odin75/keymaps/vial/keymap.c new file mode 100755 index 0000000000..d49d812716 --- /dev/null +++ b/keyboards/kbdfans/odin75/keymaps/vial/keymap.c @@ -0,0 +1,29 @@ +/* Copyright 2022 DZTECH + * + * 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE, KC_PGUP, KC_PGDN, + 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_HOME, KC_END, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_PAUSE, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; + diff --git a/keyboards/kbdfans/odin75/keymaps/vial/rules.mk b/keyboards/kbdfans/odin75/keymaps/vial/rules.mk new file mode 100755 index 0000000000..4dc28e6145 --- /dev/null +++ b/keyboards/kbdfans/odin75/keymaps/vial/rules.mk @@ -0,0 +1,53 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LT0_ENABLE = yes + +# software features +AUTO_SHIFT_ENABLE = no +AUTOCORRECT_ENABLE = no +CAPS_WORD_ENABLE = no +COMBO_ENABLE = no +COMMAND_ENABLE = no +DEBOUNCE_TYPE = sym_defer_pr +DIGITIZER_ENABLE = no +DYNAMIC_MACRO_ENABLE = no +EXTRAKEY_ENABLE = no +KEY_LOCK_ENABLE = no +KEY_OVERRIDE_ENABLE = no +LAYER_LOCK_ENABLE = no +LEADER_ENABLE = no +MOUSEKEY_ENABLE = no +NKRO_ENABLE = yes +OS_DETECTION_ENABLE = no +PROGRAMMABLE_BUTTON_ENABLE = no +QMK_SETTINGS = yes +REPEAT_KEY_ENABLE = no +SECURE_ENABLE = yes +SEND_STRING_ENABLE = yes +SEQUENCER_ENABLE = no +TAP_DANCE_ENABLE = yes +TRI_LAYER_ENABLE = no +UNICODE_COMMON = no +UNICODE_ENABLE = no +WPM_ENABLE = yes + +# hardware features +AUDIO_ENABLE = no +BACKLIGHT_ENABLE = no +BATTERY_ENABLE = no +BLUETOOTH_ENABLE = no +DIP_SWITCH_ENABLE = no +DIP_SWITCH_MAP_ENABLE = no +ENCODER_ENABLE = no +ENCODER_MAP_ENABLE = no +HAPTIC_ENABLE = no +JOYSTICK_ENABLE = no +MIDI_ENABLE = no +OLED_ENABLE = yes +POINTING_DEVICE_ENABLE = no +PS2_MOUSE_ENABLE = no +PS2_ENABLE = no +RGBLIGHT_ENABLE = no +SPLIT_KEYBOARD = no +STENO_ENABLE = no +VIALRGB_ENABLE = no diff --git a/keyboards/kbdfans/odin75/keymaps/vial/vial.json b/keyboards/kbdfans/odin75/keymaps/vial/vial.json new file mode 100755 index 0000000000..a1ff1ed903 --- /dev/null +++ b/keyboards/kbdfans/odin75/keymaps/vial/vial.json @@ -0,0 +1,202 @@ +{ + "name": "ODIN75", + "vendorId": "0x4B42", + "productId": "0x6072", + "lighting": "none", + "matrix": { + "rows": 6, + "cols": 16 + }, + "layouts": { + "keymap": [ + [ + { + "c": "#777777" + }, + "0,0", + { + "x": 0.25, + "c": "#aaaaaa" + }, + "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", + { + "x": 0.25 + }, + "0,14", + "0,15" + ], + [ + { + "y": 0.5, + "c": "#cccccc" + }, + "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", + { + "c": "#aaaaaa", + "w": 2 + }, + "1,13", + { + "x": 0.25 + }, + "1,14", + "1,15" + ], + [ + { + "w": 1.5 + }, + "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", + "2,12", + { + "c": "#aaaaaa", + "w": 1.5 + }, + "2,13", + { + "x": 0.25 + }, + "2,14", + "2,15" + ], + [ + { + "w": 1.75 + }, + "3,0", + { + "c": "#cccccc" + }, + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + "3,6", + "3,7", + "3,8", + "3,9", + "3,10", + "3,11", + { + "c": "#777777", + "w": 2.25 + }, + "3,13" + ], + [ + { + "c": "#aaaaaa", + "w": 2.25 + }, + "4,0", + { + "c": "#cccccc" + }, + "4,1", + "4,2", + "4,3", + "4,4", + "4,5", + "4,6", + "4,7", + "4,8", + "4,9", + "4,10", + { + "c": "#aaaaaa", + "w": 1.75 + }, + "4,11", + "4,13" + ], + [ + { + "y": -0.75, + "x": 15.25 + }, + "4,14" + ], + [ + { + "y": -0.25, + "w": 1.5 + }, + "5,0", + "5,1", + { + "w": 1.5 + }, + "5,2", + { + "w": 7 + }, + "5,6", + { + "w": 1.5 + }, + "5,10", + { + "w": 1.5 + }, + "5,11" + ], + [ + { + "y": -0.75, + "x": 14.25 + }, + "5,13", + "5,14", + "5,15" + ] + ] + } +} From 63fd8a414cf6c5fcf0e30a550ae362b467014153 Mon Sep 17 00:00:00 2001 From: Joan Delilah Pepin <123522141+JoanDelilahPepin@users.noreply.github.com> Date: Fri, 7 Nov 2025 23:25:23 -0800 Subject: [PATCH 34/36] Add Vial support for 1upkeyboards/pi60_rgb_v2 (#958) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create vial keymap with proper 14-column matrix configuration - Fix matrix mapping to match LAYOUT_60_ansi - Enable VIALRGB support for RGB control - Add 10 layers with RGB controls on layer 1 - Include custom tap settings and macro configuration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Joan Delilah Pepin Co-authored-by: Claude --- .../pi60_rgb_v2/keymaps/vial/config.h | 17 +++ .../pi60_rgb_v2/keymaps/vial/keymap.c | 100 ++++++++++++++++++ .../pi60_rgb_v2/keymaps/vial/rules.mk | 4 + .../pi60_rgb_v2/keymaps/vial/vial.json | 97 +++++++++++++++++ 4 files changed, 218 insertions(+) create mode 100644 keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/config.h create mode 100644 keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/keymap.c create mode 100644 keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/rules.mk create mode 100644 keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/vial.json diff --git a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/config.h b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/config.h new file mode 100644 index 0000000000..94adfa74a7 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/config.h @@ -0,0 +1,17 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x8B, 0x7C, 0x4D, 0x3E, 0x2F, 0x1A, 0x9B, 0x5C} + +/* Vial unlock combo - ESC + Enter */ +#define VIAL_UNLOCK_COMBO_ROWS { 0, 2 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 13 } + +/* Custom settings */ +#define TAPPING_TERM 235 +#define PERMISSIVE_HOLD +#define DYNAMIC_KEYMAP_MACRO_COUNT 56 +#define DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE 8192 +#define VIAL_TAP_DANCE_ENTRIES 32 +#define VIAL_COMBO_ENTRIES 32 \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/keymap.c b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/keymap.c new file mode 100644 index 0000000000..1129ea0b12 --- /dev/null +++ b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/keymap.c @@ -0,0 +1,100 @@ +/* Copyright 2022 ziptyze + * + * 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( + KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL + ), + + [1] = LAYOUT_60_ansi( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [4] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [5] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [6] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [7] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [8] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [9] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/rules.mk b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/rules.mk new file mode 100644 index 0000000000..2025063fbc --- /dev/null +++ b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +LTO_ENABLE = yes +VIALRGB_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/vial.json b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/vial.json new file mode 100644 index 0000000000..5f8747d6fe --- /dev/null +++ b/keyboards/1upkeyboards/pi60_rgb_v2/keymaps/vial/vial.json @@ -0,0 +1,97 @@ +{ + "lighting": "vialrgb", + "matrix": { + "rows": 5, + "cols": 14 + }, + "layouts": { + "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" + ], + [ + {"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,13" + ], + [ + {"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}, + "3,13" + ], + [ + {"w": 1.25}, + "4,0", + {"w": 1.25}, + "4,1", + {"w": 1.25}, + "4,2", + {"w": 6.25}, + "4,5", + {"w": 1.25}, + "4,9", + {"w": 1.25}, + "4,10", + {"w": 1.25}, + "4,12", + {"w": 1.25}, + "4,13" + ] + ] + } +} \ No newline at end of file From ee55271bb07969e3bf4cc2f556ef9bf3ebcd0746 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sun, 16 Nov 2025 10:57:25 +0100 Subject: [PATCH 35/36] add mkbd65 --- keyboards/mkbd65/README.md | 41 ++++++ keyboards/mkbd65/config.h | 12 ++ keyboards/mkbd65/keymaps/ansi/README.md | 59 ++++++++ keyboards/mkbd65/keymaps/ansi/keymap.c | 23 +++ keyboards/mkbd65/keymaps/iso/README.md | 55 +++++++ keyboards/mkbd65/keymaps/iso/keymap.c | 22 +++ keyboards/mkbd65/keymaps/vial/config.h | 9 ++ keyboards/mkbd65/keymaps/vial/keymap.c | 23 +++ keyboards/mkbd65/keymaps/vial/rules.mk | 4 + keyboards/mkbd65/keymaps/vial/vial.json | 21 +++ keyboards/mkbd65/rev0/keyboard.json | 174 ++++++++++++++++++++++ keyboards/mkbd65/rev0/mkbd65.c | 6 + keyboards/mkbd65/rev0/mkbd65.h | 70 +++++++++ keyboards/mkbd65/rev0/rules.mk | 4 + keyboards/mkbd65/rev1/keyboard.json | 187 ++++++++++++++++++++++++ keyboards/mkbd65/rev1/mkbd65.c | 4 + keyboards/mkbd65/rev1/mkbd65.h | 44 ++++++ keyboards/mkbd65/rev1/rules.mk | 2 + keyboards/mkbd65/rules.mk | 19 +++ 19 files changed, 779 insertions(+) create mode 100644 keyboards/mkbd65/README.md create mode 100644 keyboards/mkbd65/config.h create mode 100644 keyboards/mkbd65/keymaps/ansi/README.md create mode 100644 keyboards/mkbd65/keymaps/ansi/keymap.c create mode 100644 keyboards/mkbd65/keymaps/iso/README.md create mode 100644 keyboards/mkbd65/keymaps/iso/keymap.c create mode 100644 keyboards/mkbd65/keymaps/vial/config.h create mode 100644 keyboards/mkbd65/keymaps/vial/keymap.c create mode 100644 keyboards/mkbd65/keymaps/vial/rules.mk create mode 100644 keyboards/mkbd65/keymaps/vial/vial.json create mode 100644 keyboards/mkbd65/rev0/keyboard.json create mode 100644 keyboards/mkbd65/rev0/mkbd65.c create mode 100644 keyboards/mkbd65/rev0/mkbd65.h create mode 100644 keyboards/mkbd65/rev0/rules.mk create mode 100644 keyboards/mkbd65/rev1/keyboard.json create mode 100644 keyboards/mkbd65/rev1/mkbd65.c create mode 100644 keyboards/mkbd65/rev1/mkbd65.h create mode 100644 keyboards/mkbd65/rev1/rules.mk create mode 100644 keyboards/mkbd65/rules.mk diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md new file mode 100644 index 0000000000..817bde28b3 --- /dev/null +++ b/keyboards/mkbd65/README.md @@ -0,0 +1,41 @@ +![mkbd65](https://gitlab.com/mkbd65/qmk-firmware/-/raw/mkbd65/keyboards/mkbd65/mkbd65.png?inline=false) + +# mkbd65 + +A mobile keyboard addon for modern smartphones. + +- Keyboard Maintainer: [XenGi](https://xengi.de) +- Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb) +- Hardware Availability: - + +Flashing this keyboard with `en-us-intl` layout (after setting up your build environment): + +``` +qmk flash -kb mkbd65:rev1 -km en-us-intl +``` + +Available layouts: + + - en-us-intl (ansi) + - de (iso) + +You can find community provided layouts here: https://gitlab.com/mkbd65/community + +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). + +--- + +Copyright 2023 XenGi mkbd65@xengi.de @XenGi + +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 . diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h new file mode 100644 index 0000000000..4b3907c132 --- /dev/null +++ b/keyboards/mkbd65/config.h @@ -0,0 +1,12 @@ +// Copyright 2023 XenGi +// SPDX-License-Identifier: GPL-2.0-or-later + +// optimize firmware +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define LAYER_STATE_8BIT + +// disable features to save on code size +#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT + diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md new file mode 100644 index 0000000000..f68aaf41fc --- /dev/null +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -0,0 +1,59 @@ +# The English US International keymap for mkbd65 rev0 by XenGi + +This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. + +It is based on the "English (intl., with AltGr dead keys)" layout. + +This is the key matrix (no label means the key from layer 0 will be used): + +``` +0: no mod +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +1: mod shift +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +2: mod altgr +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +3: mod fn +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +``` + diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c new file mode 100644 index 0000000000..b023feab91 --- /dev/null +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "quantum.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi( /* Base layer */ + 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_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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + ), + + [1] = LAYOUT_ansi( /* Function layer */ + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + ) +}; diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md new file mode 100644 index 0000000000..9a5f9b176f --- /dev/null +++ b/keyboards/mkbd65/keymaps/iso/README.md @@ -0,0 +1,55 @@ +# The iso-like keymap for mkbd65 rev0 + +It's actually just ANSI but with an upright `Enter` key. + +``` +0: no mod +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ \ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║AltG║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +1: mod shift +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ | ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║░░░░║AltG║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +2: mod alt +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ¬ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║░░░░║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +3: mod fn +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +``` + diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c new file mode 100644 index 0000000000..a7dd99463e --- /dev/null +++ b/keyboards/mkbd65/keymaps/iso/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_iso( /* Base layer */ + 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_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, + 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + ), + + [1] = LAYOUT_iso( /* Function layer */ + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_APP, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + ), +}; diff --git a/keyboards/mkbd65/keymaps/vial/config.h b/keyboards/mkbd65/keymaps/vial/config.h new file mode 100644 index 0000000000..94b0e3cfbe --- /dev/null +++ b/keyboards/mkbd65/keymaps/vial/config.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-3.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x5D, 0x8F, 0x39, 0xCE, 0xCD, 0x38, 0x3D, 0x2D} + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 11 } + diff --git a/keyboards/mkbd65/keymaps/vial/keymap.c b/keyboards/mkbd65/keymaps/vial/keymap.c new file mode 100644 index 0000000000..b023feab91 --- /dev/null +++ b/keyboards/mkbd65/keymaps/vial/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "quantum.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_ansi( /* Base layer */ + 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_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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + ), + + [1] = LAYOUT_ansi( /* Function layer */ + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + ) +}; diff --git a/keyboards/mkbd65/keymaps/vial/rules.mk b/keyboards/mkbd65/keymaps/vial/rules.mk new file mode 100644 index 0000000000..bc2d883a68 --- /dev/null +++ b/keyboards/mkbd65/keymaps/vial/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes + +ACTION_TAPPING_ENABLE = yes diff --git a/keyboards/mkbd65/keymaps/vial/vial.json b/keyboards/mkbd65/keymaps/vial/vial.json new file mode 100644 index 0000000000..8b5e9598b4 --- /dev/null +++ b/keyboards/mkbd65/keymaps/vial/vial.json @@ -0,0 +1,21 @@ +{ + "lighting": "none", + "name": "mkbd65", + "vendorId": "0x4803", + "productId": "0x1209", + "matrix": { + "rows": 5, + "cols": 13 + }, + "layouts": { + "keymap": [ + ["0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10",{"w":2},"0,11"], + ["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"], + ["2,0","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10",{"w":2},"2,11"], + ["3,0","3,1","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10",{"w":2},"3,11"], + ["4,0","4,1","4,2","4,3",{"w":3},"4,4","4,7","4,8","4,9","4,10","4,11","4,12"] + ] + } +} + + diff --git a/keyboards/mkbd65/rev0/keyboard.json b/keyboards/mkbd65/rev0/keyboard.json new file mode 100644 index 0000000000..35269aaa5c --- /dev/null +++ b/keyboards/mkbd65/rev0/keyboard.json @@ -0,0 +1,174 @@ +{ + "manufacturer": "XenGi", + "keyboard_name": "mkbd65", + "maintainer": "XenGi", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Press the button marked RESET on the back of the PCB", + "bootmagic": { + "enabled": true, + "matrix": [0, 0] + }, + "build": { + "lto": true + }, + "debounce": 5, + "diode_direction": "ROW2COL", + "encoder": { + "enabled": false + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "split": { + "enabled": false + }, + "tags": ["mobile", "65%"], + "url": "https://mkbd65.xengi.de", + "usb": { + "device_version": "0.0.1", + "pid": "0x4803", + "vid": "0x1209" + }, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, + {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, + {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, + {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, + {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, + {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, + {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, + {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, + {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, + {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, + {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, + {"label": "\\", "matrix": [1, 12], "x": 1, "y": 12}, + {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, + {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, + {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, + {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, + {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, + {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, + {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, + {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, + {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, + {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, + {"label": "Enter", "matrix": [2, 11], "x": 2, "y": 11, "w": 2}, + {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, + {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, + {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, + {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, + {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, + {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, + {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, + {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, + {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, + {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, + {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, + {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, + {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, + {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, + {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, + {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, + {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, + {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, + {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, + {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, + {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, + {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, + {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, + {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, + {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, + {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, + {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, + {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, + {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, + {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, + {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, + {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, + {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, + {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, + {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, + {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, + {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, + {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, + {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, + {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, + {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, + {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, + {"label": "\\", "matrix": [2, 11], "x": 2, "y": 11}, + {"label": "Enter", "matrix": [1, 12], "x": 1, "y": 12, "h": 2}, + {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, + {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, + {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, + {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, + {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, + {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, + {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, + {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, + {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, + {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, + {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, + {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, + {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, + {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, + {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, + {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, + {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, + {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, + {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, + {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, + {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, + {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mkbd65/rev0/mkbd65.c b/keyboards/mkbd65/rev0/mkbd65.c new file mode 100644 index 0000000000..2cde260fa0 --- /dev/null +++ b/keyboards/mkbd65/rev0/mkbd65.c @@ -0,0 +1,6 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mkbd65.h" +#include "quantum.h" + diff --git a/keyboards/mkbd65/rev0/mkbd65.h b/keyboards/mkbd65/rev0/mkbd65.h new file mode 100644 index 0000000000..798a87ce44 --- /dev/null +++ b/keyboards/mkbd65/rev0/mkbd65.h @@ -0,0 +1,70 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifndef MKBD65_H +#define MKBD65_H + +/* LAYOUT_ansi + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤ + * │ │ │ │ │ 3.0U │ │ │ │ │ │ │ + * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘ + * This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ + K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ + { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ +} + +/* LAYOUT_iso + * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══════╗ + * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ║ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ + * ╟───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───╢ + * ║ │ │ │ │ 3.0U │ │ │ │ │ │ ║ + * ╚═══╧═══╧═══╧═══╧═══════════╧═══╧═══╧═══╧═══╧═══╧═══╝ + */ +#define LAYOUT_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ + K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ + { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ +} + +#endif diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk new file mode 100644 index 0000000000..de2da8afe1 --- /dev/null +++ b/keyboards/mkbd65/rev0/rules.mk @@ -0,0 +1,4 @@ +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT diff --git a/keyboards/mkbd65/rev1/keyboard.json b/keyboards/mkbd65/rev1/keyboard.json new file mode 100644 index 0000000000..2329e8bc52 --- /dev/null +++ b/keyboards/mkbd65/rev1/keyboard.json @@ -0,0 +1,187 @@ +{ + "manufacturer": "XenGi", + "keyboard_name": "mkbd65", + "maintainer": "XenGi", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "debounce": 5, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": false, + "rgblight": false + }, + "bootmagic": { + "enabled": true, + "matrix": [0, 0] + }, + "matrix_pins": { + "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"], + "rows": ["B12", "B13", "B14", "B15", "A8"] + }, + "processor": "atmega32u4", + "url": "https://mkbd65.xengi.de", + "bootloader_instructions": "Press the button marked RESET on the back of the PCB", + "tags": ["mobile", "65%"], + "usb": { + "device_version": "1.0.0", + "pid": "0x4803", + "vid": "0x1209" + }, + "build": { + "lto": true + }, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, + { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, + { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, + { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, + { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, + { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, + { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, + { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, + { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, + { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, + { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, + { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, + { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, + + { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, + { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, + { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, + { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, + { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, + { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, + { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, + { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, + { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, + { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, + { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, + { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, + { "matrix": [1, 12], "x": 1, "y": 12, "label": "\\" }, + + { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, + { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, + { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, + { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, + { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, + { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, + { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, + { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, + { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, + { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, + { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, + { "matrix": [2, 11], "x": 2, "y": 11, "label": "Enter" }, + { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, + + { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, + { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, + { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, + { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, + { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, + { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, + { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, + { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, + { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, + { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, + { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, + { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "RShift" }, + { "matrix": [3, 12], "x": 3, "y": 11, "w": 2, "label": "RShift" }, + + { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, + { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, + { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, + { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, + { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, + { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, + { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, + { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, + { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, + { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, + { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, + { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, + { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } + ] + }, + "LAYOUT_iso": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, + { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, + { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, + { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, + { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, + { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, + { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, + { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, + { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, + { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, + { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, + { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, + { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, + + { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, + { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, + { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, + { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, + { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, + { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, + { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, + { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, + { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, + { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, + { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, + { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, + { "matrix": [1, 12], "x": 1, "y": 12, "label": "Enter" }, + + { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, + { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, + { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, + { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, + { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, + { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, + { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, + { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, + { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, + { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, + { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, + { "matrix": [2, 11], "x": 2, "y": 11, "label": "\\" }, + { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, + + { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, + { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, + { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, + { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, + { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, + { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, + { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, + { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, + { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, + { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, + { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, + { "matrix": [3, 11], "x": 3, "y": 11, "label": "RShift" }, + { "matrix": [3, 12], "x": 3, "y": 12, "label": "RShift" }, + + { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, + { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, + { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, + { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, + { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, + { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, + { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, + { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, + { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, + { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, + { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, + { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, + { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } + ] + } + } +} + diff --git a/keyboards/mkbd65/rev1/mkbd65.c b/keyboards/mkbd65/rev1/mkbd65.c new file mode 100644 index 0000000000..baca6508d4 --- /dev/null +++ b/keyboards/mkbd65/rev1/mkbd65.c @@ -0,0 +1,4 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mkbd65.h" diff --git a/keyboards/mkbd65/rev1/mkbd65.h b/keyboards/mkbd65/rev1/mkbd65.h new file mode 100644 index 0000000000..759166bbcf --- /dev/null +++ b/keyboards/mkbd65/rev1/mkbd65.h @@ -0,0 +1,44 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifndef MKBD65_H +#define MKBD65_H + +#include "quantum.h" + +/* LAYOUT + * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝ + * This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 } \ +} + +#endif diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk new file mode 100644 index 0000000000..e5116166cc --- /dev/null +++ b/keyboards/mkbd65/rev1/rules.mk @@ -0,0 +1,2 @@ +MCU = STM32F072 +BOOTLOADER = stm32-dfu diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk new file mode 100644 index 0000000000..3287da9fbd --- /dev/null +++ b/keyboards/mkbd65/rules.mk @@ -0,0 +1,19 @@ +# AVR MCU Options +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + +# Feature Options +MAGIC_ENABLE = no +AUDIO_ENABLE = no +KEY_OVERRIDE_ENABLE = no +LEADER_ENABLE = no +MIDI_ENABLE = no +UNICODE_ENABLE = no +BLUETOOTH_ENABLE = no +MUSIC_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = yes +AVR_USE_MINIMAL_PRINTF = yes + From 65b45d8f7e58cee86c9aafb4a4d1f4fb32c697b7 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sun, 16 Nov 2025 10:57:25 +0100 Subject: [PATCH 36/36] add mkbd65 --- keyboards/mkbd65/config.h | 2 +- keyboards/mkbd65/keymaps/vial/rules.mk | 1 - keyboards/mkbd65/keymaps/vial/vial.json | 7 +++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h index 4b3907c132..24dcb61a6c 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -7,6 +7,6 @@ #define LAYER_STATE_8BIT // disable features to save on code size -#define NO_ACTION_TAPPING +//#define NO_ACTION_TAPPING #define NO_ACTION_ONESHOT diff --git a/keyboards/mkbd65/keymaps/vial/rules.mk b/keyboards/mkbd65/keymaps/vial/rules.mk index bc2d883a68..c8b47d5fb5 100644 --- a/keyboards/mkbd65/keymaps/vial/rules.mk +++ b/keyboards/mkbd65/keymaps/vial/rules.mk @@ -1,4 +1,3 @@ VIA_ENABLE = yes VIAL_ENABLE = yes -ACTION_TAPPING_ENABLE = yes diff --git a/keyboards/mkbd65/keymaps/vial/vial.json b/keyboards/mkbd65/keymaps/vial/vial.json index 8b5e9598b4..a0dcc4a136 100644 --- a/keyboards/mkbd65/keymaps/vial/vial.json +++ b/keyboards/mkbd65/keymaps/vial/vial.json @@ -8,10 +8,13 @@ "cols": 13 }, "layouts": { + "labels": [ + "ISO Enter" + ], "keymap": [ ["0,0","0,1","0,2","0,3","0,4","0,5","0,6","0,7","0,8","0,9","0,10",{"w":2},"0,11"], - ["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"], - ["2,0","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10",{"w":2},"2,11"], + ["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\n\n\n0,0",{"x":1.25,"h":2},"1,12\n\n\n0,1"], + ["2,0","2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10",{"w":2},"2,11\n\n\n0,0",{"x":0.25},"2,11\n\n\n0,1"], ["3,0","3,1","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10",{"w":2},"3,11"], ["4,0","4,1","4,2","4,3",{"w":3},"4,4","4,7","4,8","4,9","4,10","4,11","4,12"] ]