From 110de0b512375d33a0936424e05404e4edbee147 Mon Sep 17 00:00:00 2001 From: ebastler Date: Mon, 12 Sep 2022 18:17:01 +0200 Subject: [PATCH 01/28] Add EM.8 keyboard (#18328) by ebastler --- keyboards/linworks/em8/config.h | 8 + keyboards/linworks/em8/info.json | 190 ++++++++++++++++++ .../linworks/em8/keymaps/default/keymap.c | 52 +++++ keyboards/linworks/em8/keymaps/via/keymap.c | 52 +++++ keyboards/linworks/em8/keymaps/via/rules.mk | 1 + keyboards/linworks/em8/readme.md | 22 ++ keyboards/linworks/em8/rules.mk | 1 + 7 files changed, 326 insertions(+) create mode 100644 keyboards/linworks/em8/config.h create mode 100644 keyboards/linworks/em8/info.json create mode 100644 keyboards/linworks/em8/keymaps/default/keymap.c create mode 100644 keyboards/linworks/em8/keymaps/via/keymap.c create mode 100644 keyboards/linworks/em8/keymaps/via/rules.mk create mode 100644 keyboards/linworks/em8/readme.md create mode 100644 keyboards/linworks/em8/rules.mk diff --git a/keyboards/linworks/em8/config.h b/keyboards/linworks/em8/config.h new file mode 100644 index 000000000000..176c814e3521 --- /dev/null +++ b/keyboards/linworks/em8/config.h @@ -0,0 +1,8 @@ +// Copyright 2022 moritz plattner (@moritz plattner) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +// Move Bootmagic key from ~ to ESC (0,0 to 1,0) +#define BOOTMAGIC_LITE_ROW 1 +#define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/linworks/em8/info.json b/keyboards/linworks/em8/info.json new file mode 100644 index 000000000000..e4d58708e519 --- /dev/null +++ b/keyboards/linworks/em8/info.json @@ -0,0 +1,190 @@ +{ + "manufacturer": "Linworks", + "keyboard_name": "EM.8", + "maintainer": "ebastler", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true + }, + "matrix_pins": { + "cols": [ "B5", "B4", "D0", "D1", "D4", "D6", "D7", "F6", "F5", "F4", "F1", "B2", "B6", "C6", "C7" ], + "rows": [ "B7", "B0", "F0", "E6", "F7" ] + }, + "processor": "atmega32u4", + "url": "https://klc-playground.com/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0006", + "vid": "0x4C58" + }, + "indicators": { + "num_lock": "D2", + "caps_lock": "D3", + "scroll_lock": "D5", + "on_state": 0 + }, + "layouts": { + "LAYOUT_em8_2u_backsp": { + "layout": [ + {"x":0, "y":0, "matrix":[1,0] }, + {"x":1.25, "y":0, "matrix":[0,0] }, + {"x":2.25, "y":0, "matrix":[0,1] }, + {"x":3.25, "y":0, "matrix":[0,2] }, + {"x":4.25, "y":0, "matrix":[0,3] }, + {"x":5.25, "y":0, "matrix":[0,4] }, + {"x":6.25, "y":0, "matrix":[0,5] }, + {"x":7.25, "y":0, "matrix":[0,6] }, + {"x":10.25, "y":0, "matrix":[0,7] }, + {"x":11.25, "y":0, "matrix":[0,8] }, + {"x":12.25, "y":0, "matrix":[0,9] }, + {"x":13.25, "y":0, "matrix":[0,10] }, + {"x":14.25, "y":0, "matrix":[0,11] }, + {"x":15.25, "y":0, "matrix":[0,12] }, + {"x":16.25, "y":0, "w": 2, "matrix":[0,13] }, + {"x":18.5, "y":0, "matrix":[0,14] }, + + {"x":0, "y":1, "matrix":[2,0] }, + {"x":1.25, "y":1, "w":1.5, "matrix":[1,1] }, + {"x":2.75, "y":1, "matrix":[1,2] }, + {"x":3.75, "y":1, "matrix":[1,3] }, + {"x":4.75, "y":1, "matrix":[1,4] }, + {"x":5.75, "y":1, "matrix":[1,5] }, + {"x":6.75, "y":1, "matrix":[1,6] }, + {"x":9.75, "y":1, "matrix":[1,7] }, + {"x":10.75, "y":1, "matrix":[1,8] }, + {"x":11.75, "y":1, "matrix":[1,9] }, + {"x":12.75, "y":1, "matrix":[1,10] }, + {"x":13.75, "y":1, "matrix":[1,11] }, + {"x":14.75, "y":1, "matrix":[1,12] }, + {"x":15.75, "y":1, "matrix":[1,13] }, + {"x":16.75, "y":1, "w":1.5, "matrix":[1,14] }, + {"x":18.5, "y":1, "matrix":[2,14] }, + + {"x":0, "y":2, "matrix":[3,0] }, + {"x":1.25, "y":2, "w":1.75, "matrix":[2,1] }, + {"x":3, "y":2, "matrix":[2,2] }, + {"x":4, "y":2, "matrix":[2,3] }, + {"x":5, "y":2, "matrix":[2,4] }, + {"x":6, "y":2, "matrix":[2,5] }, + {"x":7, "y":2, "matrix":[2,6] }, + {"x":10, "y":2, "matrix":[2,7] }, + {"x":11, "y":2, "matrix":[2,8] }, + {"x":12, "y":2, "matrix":[2,9] }, + {"x":13, "y":2, "matrix":[2,10] }, + {"x":14, "y":2, "matrix":[2,11] }, + {"x":15, "y":2, "matrix":[2,12] }, + {"x":16, "y":2, "w":2.25, "matrix":[2,13] }, + + {"x":1.25, "y":3, "w":2.25, "matrix":[3,1] }, + {"x":3.5, "y":3, "matrix":[3,2] }, + {"x":4.5, "y":3, "matrix":[3,3] }, + {"x":5.5, "y":3, "matrix":[3,4] }, + {"x":6.5, "y":3, "matrix":[3,5] }, + {"x":7.5, "y":3, "matrix":[3,6] }, + {"x":9.5, "y":3, "matrix":[3,7] }, + {"x":10.5, "y":3, "matrix":[3,8] }, + {"x":11.5, "y":3, "matrix":[3,9] }, + {"x":12.5, "y":3, "matrix":[3,10] }, + {"x":13.5, "y":3, "matrix":[3,11] }, + {"x":14.5, "y":3, "matrix":[3,12] }, + {"x":15.5, "y":3, "w":1.75, "matrix":[3,13] }, + {"x":17.5, "y":3.25, "matrix":[3,14] }, + + {"x":1.25, "y":4, "w":1.5, "matrix":[4,1] }, + {"x":4.25, "y":4, "w":1.5, "matrix":[4,3] }, + {"x":5.75, "y":4, "w":2.25, "matrix":[4,5] }, + {"x":8, "y":4, "w":1, "matrix":[4,6] }, + {"x":9.5, "y":4, "w":2.75, "matrix":[4,8] }, + {"x":12.25, "y":4, "w":1.5, "matrix":[4,10] }, + {"x":16.5, "y":4.25, "w":1, "matrix":[4,12] }, + {"x":17.5, "y":4.25, "w":1, "matrix":[4,13] }, + {"x":18.5, "y":4.25, "w":1, "matrix":[4,14] } + ] + }, + + "LAYOUT_em8_all": { + "layout": [ + {"x":0, "y":0, "matrix":[1,0] }, + {"x":1.25, "y":0, "matrix":[0,0] }, + {"x":2.25, "y":0, "matrix":[0,1] }, + {"x":3.25, "y":0, "matrix":[0,2] }, + {"x":4.25, "y":0, "matrix":[0,3] }, + {"x":5.25, "y":0, "matrix":[0,4] }, + {"x":6.25, "y":0, "matrix":[0,5] }, + {"x":7.25, "y":0, "matrix":[0,6] }, + {"x":10.25, "y":0, "matrix":[0,7] }, + {"x":11.25, "y":0, "matrix":[0,8] }, + {"x":12.25, "y":0, "matrix":[0,9] }, + {"x":13.25, "y":0, "matrix":[0,10] }, + {"x":14.25, "y":0, "matrix":[0,11] }, + {"x":15.25, "y":0, "matrix":[0,12] }, + {"x":16.25, "y":0, "matrix":[0,13] }, + {"x":17.25, "y":0, "matrix":[4,11] }, + {"x":18.5, "y":0, "matrix":[0,14] }, + + {"x":0, "y":1, "matrix":[2,0] }, + {"x":1.25, "y":1, "w":1.5, "matrix":[1,1] }, + {"x":2.75, "y":1, "matrix":[1,2] }, + {"x":3.75, "y":1, "matrix":[1,3] }, + {"x":4.75, "y":1, "matrix":[1,4] }, + {"x":5.75, "y":1, "matrix":[1,5] }, + {"x":6.75, "y":1, "matrix":[1,6] }, + {"x":9.75, "y":1, "matrix":[1,7] }, + {"x":10.75, "y":1, "matrix":[1,8] }, + {"x":11.75, "y":1, "matrix":[1,9] }, + {"x":12.75, "y":1, "matrix":[1,10] }, + {"x":13.75, "y":1, "matrix":[1,11] }, + {"x":14.75, "y":1, "matrix":[1,12] }, + {"x":15.75, "y":1, "matrix":[1,13] }, + {"x":16.75, "y":1, "w":1.5, "matrix":[1,14] }, + {"x":18.5, "y":1, "matrix":[2,14] }, + + {"x":0, "y":2, "matrix":[3,0] }, + {"x":1.25, "y":2, "w":1.75, "matrix":[2,1] }, + {"x":3, "y":2, "matrix":[2,2] }, + {"x":4, "y":2, "matrix":[2,3] }, + {"x":5, "y":2, "matrix":[2,4] }, + {"x":6, "y":2, "matrix":[2,5] }, + {"x":7, "y":2, "matrix":[2,6] }, + {"x":10, "y":2, "matrix":[2,7] }, + {"x":11, "y":2, "matrix":[2,8] }, + {"x":12, "y":2, "matrix":[2,9] }, + {"x":13, "y":2, "matrix":[2,10] }, + {"x":14, "y":2, "matrix":[2,11] }, + {"x":15, "y":2, "matrix":[2,12] }, + {"x":16, "y":2, "w":2.25, "matrix":[2,13] }, + + {"x":1.25, "y":3, "w":2.25, "matrix":[3,1] }, + {"x":3.5, "y":3, "matrix":[3,2] }, + {"x":4.5, "y":3, "matrix":[3,3] }, + {"x":5.5, "y":3, "matrix":[3,4] }, + {"x":6.5, "y":3, "matrix":[3,5] }, + {"x":7.5, "y":3, "matrix":[3,6] }, + {"x":9.5, "y":3, "matrix":[3,7] }, + {"x":10.5, "y":3, "matrix":[3,8] }, + {"x":11.5, "y":3, "matrix":[3,9] }, + {"x":12.5, "y":3, "matrix":[3,10] }, + {"x":13.5, "y":3, "matrix":[3,11] }, + {"x":14.5, "y":3, "matrix":[3,12] }, + {"x":15.5, "y":3, "w":1.75, "matrix":[3,13] }, + {"x":17.5, "y":3.25, "matrix":[3,14] }, + + {"x":1.25, "y":4, "w":1.5, "matrix":[4,1] }, + {"x":4.25, "y":4, "w":1.5, "matrix":[4,3] }, + {"x":5.75, "y":4, "w":2.25, "matrix":[4,5] }, + {"x":8, "y":4, "w":1, "matrix":[4,6] }, + {"x":9.5, "y":4, "w":2.75, "matrix":[4,8] }, + {"x":12.25, "y":4, "w":1.5, "matrix":[4,10] }, + {"x":16.5, "y":4.25, "w":1, "matrix":[4,12] }, + {"x":17.5, "y":4.25, "w":1, "matrix":[4,13] }, + {"x":18.5, "y":4.25, "w":1, "matrix":[4,14] } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/linworks/em8/keymaps/default/keymap.c b/keyboards/linworks/em8/keymaps/default/keymap.c new file mode 100644 index 000000000000..f195907db908 --- /dev/null +++ b/keyboards/linworks/em8/keymaps/default/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 Moritz Plattner + * + * 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_em8_all( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, + 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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_em8_all( + KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + + [2] = LAYOUT_em8_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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_em8_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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/linworks/em8/keymaps/via/keymap.c b/keyboards/linworks/em8/keymaps/via/keymap.c new file mode 100644 index 000000000000..f195907db908 --- /dev/null +++ b/keyboards/linworks/em8/keymaps/via/keymap.c @@ -0,0 +1,52 @@ +/* Copyright 2022 Moritz Plattner + * + * 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_em8_all( + KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, + 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_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_em8_all( + KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ), + + [2] = LAYOUT_em8_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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [3] = LAYOUT_em8_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_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/linworks/em8/keymaps/via/rules.mk b/keyboards/linworks/em8/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/linworks/em8/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/linworks/em8/readme.md b/keyboards/linworks/em8/readme.md new file mode 100644 index 000000000000..cd8f6a5ba3d3 --- /dev/null +++ b/keyboards/linworks/em8/readme.md @@ -0,0 +1,22 @@ +# EM.8 + +The Ergonomic Modified 8 is a tented ergonomic keyboard and the successor to the EM.7, designed by Syryan and Lx3.The default PCB supports hotswap and the layout options are limited to split or regular backpsace, as well as regular or stepped caps lock. + +* Keyboard maintainer: [ebastler](https://github.com/ebastler) +* Hardware supported: Lin EM.8 +* Hardware availability: Groupbuy. More infos on [the Linworks Discord](https://discord.gg/UC8gTdVnsj) + +Make example for this keyboard (after setting up your build environment): + + make linworks/em8:default + +Flash example for this keyboard: + + make linworks/em8: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). + + +## How to enter the bootloader +* **Bootmagic reset**: Hold down the key `ESC` key and plug in the keyboard (Top left most switch). On older firmware revisions, `~` (top left most switch of the alpha cluster) may be needed instead. +* **Physical reset button**: Briefly press the button on the back of the PCB \ No newline at end of file diff --git a/keyboards/linworks/em8/rules.mk b/keyboards/linworks/em8/rules.mk new file mode 100644 index 000000000000..7ff128fa692e --- /dev/null +++ b/keyboards/linworks/em8/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank \ No newline at end of file From b2ad047d7f09be14667927d058b36737d8248994 Mon Sep 17 00:00:00 2001 From: Purdea Andrei Date: Tue, 13 Sep 2022 01:10:17 +0300 Subject: [PATCH 02/28] Fix keyboard_name for Unicomp Classic/Ultra Classic keyboards (#18327) --- keyboards/unicomp/classic_ultracl_post_2013/info.json | 2 +- keyboards/unicomp/classic_ultracl_pre_2013/info.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/unicomp/classic_ultracl_post_2013/info.json b/keyboards/unicomp/classic_ultracl_post_2013/info.json index fa1a56397081..bfb70eb880e2 100644 --- a/keyboards/unicomp/classic_ultracl_post_2013/info.json +++ b/keyboards/unicomp/classic_ultracl_post_2013/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "Unicomp Spacesaver M", + "keyboard_name": "Unicomp Classic / Ultra Classic (post-2013)", "manufacturer": "Unicomp/Purdea Andrei", "url": "https://github.com/purdeaandrei/overnumpad_controller_1xb", "maintainer": "purdeaandrei", diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/info.json b/keyboards/unicomp/classic_ultracl_pre_2013/info.json index d7f8e9dcbf8f..618a7c1c461d 100644 --- a/keyboards/unicomp/classic_ultracl_pre_2013/info.json +++ b/keyboards/unicomp/classic_ultracl_pre_2013/info.json @@ -1,5 +1,5 @@ { - "keyboard_name": "Unicomp Spacesaver M", + "keyboard_name": "Unicomp Classic / Ultra Classic (pre-2013)", "manufacturer": "Unicomp/Purdea Andrei", "url": "https://github.com/purdeaandrei/overnumpad_controller_1xb", "maintainer": "purdeaandrei", From 2800cd31ae5312c3057e7fb0aa5480aaaf8e541d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Sep 2022 21:10:52 +1000 Subject: [PATCH 03/28] Bump anothrNick/github-tag-action from 1.39.0 to 1.42.0 (#18344) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index aa6576947c84..598613a0fd10 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.39.0 + uses: anothrNick/github-tag-action@1.42.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From 6984c6d3b3b19c00089cad385f21e751a31b4409 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Reibl=20J=C3=A1nos=20D=C3=A1niel?= Date: Wed, 14 Sep 2022 02:20:34 +0200 Subject: [PATCH 04/28] fix: Remove TERM_ON/TERM_OFF from my keymap (#18354) --- layouts/community/ortho_5x12/riblee/keymap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/community/ortho_5x12/riblee/keymap.c b/layouts/community/ortho_5x12/riblee/keymap.c index 5a07fa09adfd..8ccdf41da600 100644 --- a/layouts/community/ortho_5x12/riblee/keymap.c +++ b/layouts/community/ortho_5x12/riblee/keymap.c @@ -196,7 +196,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { */ [_ADJUST] = LAYOUT_ortho_5x12( KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, - _______, QK_BOOT, DEBUG, _______, _______, _______, _______, TERM_ON, TERM_OFF, KC_INS, KC_PSCR, KC_DEL, + _______, QK_BOOT, DEBUG, _______, _______, _______, _______, _______, _______, KC_INS, KC_PSCR, KC_DEL, _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, AG_SWAP, QWERTY, COLEMAK, DVORAK, HUNGARIAN, WORKMAN, _______, _______, _______, _______, UC_MOD, UC_RMOD, NK_TOGG, CG_NORM, CG_SWAP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ From 23666150e968cd7518db77b837a7f0895a8ec063 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Sep 2022 10:36:20 +1000 Subject: [PATCH 05/28] Bump anothrNick/github-tag-action from 1.42.0 to 1.45.0 (#18355) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 598613a0fd10..0e46cb6b134e 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.42.0 + uses: anothrNick/github-tag-action@1.45.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From fc3f2dcb43f2aacdac017ac6c3f0b6ac0241162a Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Wed, 14 Sep 2022 23:16:54 +0800 Subject: [PATCH 06/28] [Keyboard] Replace Nayeon ATmega32u4 config with RP2040 (#18265) --- keyboards/abatskeyboardclub/nayeon/config.h | 113 +----------------- keyboards/abatskeyboardclub/nayeon/info.json | 15 ++- .../nayeon/keymaps/default/keymap.c | 34 ------ .../nayeon/keymaps/iso/keymap.c | 34 ------ .../nayeon/keymaps/via/keymap.c | 34 ------ keyboards/abatskeyboardclub/nayeon/nayeon.c | 27 +++++ keyboards/abatskeyboardclub/nayeon/readme.md | 2 +- keyboards/abatskeyboardclub/nayeon/rules.mk | 21 ++-- 8 files changed, 54 insertions(+), 226 deletions(-) diff --git a/keyboards/abatskeyboardclub/nayeon/config.h b/keyboards/abatskeyboardclub/nayeon/config.h index cb591b8e2486..449f2da113f9 100644 --- a/keyboards/abatskeyboardclub/nayeon/config.h +++ b/keyboards/abatskeyboardclub/nayeon/config.h @@ -19,111 +19,8 @@ along with this program. If not, see . #include "config_common.h" -/* key matrix size */ -#define MATRIX_ROWS 6 -#define MATRIX_COLS 17 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * - */ -#define MATRIX_ROW_PINS { B2, B3, B7, D6, D3, D2 } -#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D5, B0, B1, D1 } - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* - * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN. - */ -#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6 - -#define RGB_DI_PIN E2 -#ifdef RGB_DI_PIN -# define RGBLED_NUM 26 -# define RGBLIGHT_HUE_STEP 8 -# define RGBLIGHT_SAT_STEP 8 -# define RGBLIGHT_VAL_STEP 8 -//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ -//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== or choose animations ==*/ -# define RGBLIGHT_EFFECT_BREATHING -# define RGBLIGHT_EFFECT_RAINBOW_MOOD -# define RGBLIGHT_EFFECT_RAINBOW_SWIRL -//# define RGBLIGHT_EFFECT_SNAKE -//# define RGBLIGHT_EFFECT_KNIGHT -# define RGBLIGHT_EFFECT_CHRISTMAS -# define RGBLIGHT_EFFECT_STATIC_GRADIENT -# define RGBLIGHT_EFFECT_RGB_TEST -# define RGBLIGHT_EFFECT_ALTERNATING -/*== customize breathing effect ==*/ -/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ -//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 -/*==== use exp() and sin() ====*/ -//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 -//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 -#endif - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -#define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -#define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is useful for the Windows task manager shortcut (ctrl+shift+esc). - */ -//#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - - -/* Bootmagic Lite key configuration */ -//#define BOOTMAGIC_LITE_ROW 0 -//#define BOOTMAGIC_LITE_COLUMN 0 +/* RGB Matrix setup */ +#define RGB_DI_PIN GP19 +#define DRIVER_LED_TOTAL 2 +#define RGBLED_NUM 2 +#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral diff --git a/keyboards/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index acba956b06e7..8cafe5aebf55 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -7,10 +7,23 @@ "LAYOUT_ansi": "LAYOUT_tkl_f13_ansi_tsangan", "LAYOUT_iso": "LAYOUT_tkl_f13_iso_tsangan" }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "console": false, + "command": false, + "nkro": false + }, "usb": { "vid": "0x4B47", "pid": "0x0001", - "device_version": "0.0.1" + "device_version": "2.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP18", "GP17", "GP16", "GP15", "GP14", "GP13", "GP12", "GP11", "GP5"], + "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] }, "layouts": { "LAYOUT_tkl_f13_ansi_tsangan": { diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c index 3ea63b5b2402..134fbd4972a8 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/default/keymap.c @@ -25,37 +25,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; - -#ifdef RGBLIGHT_ENABLE - -const rgblight_segment_t PROGMEM ll_none[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_OFF}, - {1, 1, HSV_OFF} -); - -const rgblight_segment_t PROGMEM ll_cl[] = RGBLIGHT_LAYER_SEGMENTS( - {1, 1, HSV_OFF} -); - -const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_OFF} -); - -const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); - -void keyboard_post_init_user(void) { - rgblight_layers = rgb_layers; -} - -bool led_update_user(led_t led_state) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } - - return false; -} -#endif diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c index ae81182accd4..74e74207a353 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/iso/keymap.c @@ -25,37 +25,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; - -#ifdef RGBLIGHT_ENABLE - -const rgblight_segment_t PROGMEM ll_none[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_OFF}, - {1, 1, HSV_OFF} -); - -const rgblight_segment_t PROGMEM ll_cl[] = RGBLIGHT_LAYER_SEGMENTS( - {1, 1, HSV_OFF} -); - -const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_OFF} -); - -const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); - -void keyboard_post_init_user(void) { - rgblight_layers = rgb_layers; -} - -bool led_update_user(led_t led_state) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } - - return false; -} -#endif diff --git a/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c b/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c index a212b820f4c8..062b05ec49be 100644 --- a/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c +++ b/keyboards/abatskeyboardclub/nayeon/keymaps/via/keymap.c @@ -49,37 +49,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; - -#ifdef RGBLIGHT_ENABLE - -const rgblight_segment_t PROGMEM ll_none[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_OFF}, - {1, 1, HSV_OFF} -); - -const rgblight_segment_t PROGMEM ll_cl[] = RGBLIGHT_LAYER_SEGMENTS( - {1, 1, HSV_OFF} -); - -const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( - {0, 1, HSV_OFF} -); - -const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); - -void keyboard_post_init_user(void) { - rgblight_layers = rgb_layers; -} - -bool led_update_user(led_t led_state) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } - - return false; -} -#endif diff --git a/keyboards/abatskeyboardclub/nayeon/nayeon.c b/keyboards/abatskeyboardclub/nayeon/nayeon.c index 14fb22a486f6..6f367d3ed6f9 100644 --- a/keyboards/abatskeyboardclub/nayeon/nayeon.c +++ b/keyboards/abatskeyboardclub/nayeon/nayeon.c @@ -15,3 +15,30 @@ */ #include "nayeon.h" + +led_config_t g_led_config = {{ + // Key Matrix to LED Index + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 1, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, + { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } +}, { + // LED Index to Physical Position + { 5, 40 }, { 211, 0 } +}, { + // LED Index to Flag + LED_FLAG_INDICATOR, LED_FLAG_INDICATOR +}}; + +void rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!host_keyboard_led_state().caps_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(0, 0, 0, 0); + } + if (!host_keyboard_led_state().scroll_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(1, 0, 0, 0); + } + + rgb_matrix_indicators_advanced_user(led_min, led_max); +} diff --git a/keyboards/abatskeyboardclub/nayeon/readme.md b/keyboards/abatskeyboardclub/nayeon/readme.md index f88c1e187db1..7c7c91c1f1de 100644 --- a/keyboards/abatskeyboardclub/nayeon/readme.md +++ b/keyboards/abatskeyboardclub/nayeon/readme.md @@ -5,7 +5,7 @@ Nayeon is a screwless TKL keyboard with an extra key, inspired by a K-pop artist named Im-Nayeon. * Keyboard Maintainer: [Ramon Imbao](https://github.com/ramonimbao) -* Hardware Supported: ATmega32u4 +* Hardware Supported: RP2040 Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/abatskeyboardclub/nayeon/rules.mk b/keyboards/abatskeyboardclub/nayeon/rules.mk index e94c1ace18c6..d106ef4d6aa0 100644 --- a/keyboards/abatskeyboardclub/nayeon/rules.mk +++ b/keyboards/abatskeyboardclub/nayeon/rules.mk @@ -1,20 +1,13 @@ # MCU name -MCU = atmega32u4 +MCU = RP2040 # Bootloader selection -BOOTLOADER = atmel-dfu +BOOTLOADER = rp2040 -# 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 = no # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output +# RGB Matrix +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 +WS2812_DRIVER = vendor LAYOUTS = tkl_f13_ansi_tsangan tkl_f13_ansi_tsangan_split_bs_rshift tkl_f13_iso_tsangan tkl_f13_iso_tsangan_split_bs_rshift + From 87b1b560cbacdadd277450a29e214b35ecacd7c3 Mon Sep 17 00:00:00 2001 From: satorusaka <40286047+satorusaka@users.noreply.github.com> Date: Wed, 14 Sep 2022 23:40:18 +0800 Subject: [PATCH 07/28] [Keyboard] Add skmt/15k keyboard (#18321) Co-authored-by: Joel Challis --- keyboards/skmt/15k/config.h | 79 +++++++++++++++++++++ keyboards/skmt/15k/info.json | 68 ++++++++++++++++++ keyboards/skmt/15k/keymaps/default/keymap.c | 26 +++++++ keyboards/skmt/15k/keymaps/fns/keymap.c | 25 +++++++ keyboards/skmt/15k/keymaps/qwert/keymap.c | 25 +++++++ keyboards/skmt/15k/keymaps/via/keymap.c | 35 +++++++++ keyboards/skmt/15k/keymaps/via/rules.mk | 1 + keyboards/skmt/15k/readme.md | 26 +++++++ keyboards/skmt/15k/rules.mk | 3 + 9 files changed, 288 insertions(+) create mode 100644 keyboards/skmt/15k/config.h create mode 100644 keyboards/skmt/15k/info.json create mode 100644 keyboards/skmt/15k/keymaps/default/keymap.c create mode 100644 keyboards/skmt/15k/keymaps/fns/keymap.c create mode 100644 keyboards/skmt/15k/keymaps/qwert/keymap.c create mode 100644 keyboards/skmt/15k/keymaps/via/keymap.c create mode 100644 keyboards/skmt/15k/keymaps/via/rules.mk create mode 100644 keyboards/skmt/15k/readme.md create mode 100644 keyboards/skmt/15k/rules.mk diff --git a/keyboards/skmt/15k/config.h b/keyboards/skmt/15k/config.h new file mode 100644 index 000000000000..6144e332ea3a --- /dev/null +++ b/keyboards/skmt/15k/config.h @@ -0,0 +1,79 @@ +// Copyright 2022 Jimmy Lye (@satorusaka) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT + +#define FORCE_NKRO + +#define RGB_DI_PIN GP1 // RGB LED pin +#define RGBLED_NUM 15 // Number of LEDs +#define DRIVER_LED_TOTAL 15 // Number of LEDs +#define RGB_DISABLE_WHEN_USB_SUSPENDED +#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 255 +#define RGB_MATRIX_LED_FLUSH_LIMIT 16 +#define RGB_MATRIX_KEYPRESSES + +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/skmt/15k/info.json b/keyboards/skmt/15k/info.json new file mode 100644 index 000000000000..71f3bc24d762 --- /dev/null +++ b/keyboards/skmt/15k/info.json @@ -0,0 +1,68 @@ +{ + "manufacturer": "SKMT", + "keyboard_name": "SKMT 15k", + "maintainer": "satorusaka", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP2", "GP3", "GP4", "GP5", "GP6"], + "rows": ["GP7", "GP8", "GP9"] + }, + "processor": "RP2040", + "url": "https://github.com/satorusaka/15k-macropad", + "usb": { + "device_version": "1.1.0", + "pid": "0x3488", + "vid": "0xFEFE" + }, + "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": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 } + ] + } + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 4, "matrix": [2, 4], "x": 224, "y": 64 }, + { "flags": 4, "matrix": [2, 3], "x": 168, "y": 64 }, + { "flags": 4, "matrix": [2, 2], "x": 112, "y": 64 }, + { "flags": 4, "matrix": [2, 1], "x": 56, "y": 64 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [1, 4], "x": 224, "y": 32 }, + { "flags": 4, "matrix": [1, 3], "x": 168, "y": 32 }, + { "flags": 4, "matrix": [1, 2], "x": 112, "y": 32 }, + { "flags": 4, "matrix": [1, 1], "x": 56, "y": 32 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 32 }, + { "flags": 4, "matrix": [0, 4], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 168, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 112, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 56, "y": 0 }, + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 } + ] + } +} diff --git a/keyboards/skmt/15k/keymaps/default/keymap.c b/keyboards/skmt/15k/keymaps/default/keymap.c new file mode 100644 index 000000000000..bc34dd7ca2d0 --- /dev/null +++ b/keyboards/skmt/15k/keymaps/default/keymap.c @@ -0,0 +1,26 @@ +// Copyright 2022 Jimmy Lye (@satorusaka) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌────┬───┬───┬───┬────┐ + * │ F3 │ 9 │ 6 │ 3 │ fn │ + * ├────┼───┼───┼───┼────┤ + * │ F2 │ 8 │ 5 │ 2 │ . │ + * ├────┼───┼───┼───┼────┤ + * │ F1 │ 7 │ 4 │ 1 │ O │ + * └────┴───┴───┴───┴────┘ + */ + [0] = LAYOUT_default( + KC_F3, KC_KP_9, KC_KP_6, KC_KP_3, LT(1, KC_KP_ENTER), + KC_F2, KC_KP_8, KC_KP_5, KC_KP_2, KC_KP_DOT, + KC_F1, KC_KP_7, KC_KP_4, KC_KP_1, KC_KP_0 + ), + [1] = LAYOUT_default( + RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + RGB_MODE_FORWARD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI, + RGB_MODE_REVERSE,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD + ) +}; diff --git a/keyboards/skmt/15k/keymaps/fns/keymap.c b/keyboards/skmt/15k/keymaps/fns/keymap.c new file mode 100644 index 000000000000..8933260d5fde --- /dev/null +++ b/keyboards/skmt/15k/keymaps/fns/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 Jimmy Lye (@satorusaka) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌────┬───┬───┬───┬────┐ + * │ F3 │ 9 │ 6 │ 3 │ fn │ + * ├────┼───┼───┼───┼────┤ + * │ F2 │ 8 │ 5 │ 2 │ . │ + * ├────┼───┼───┼───┼────┤ + * │ F1 │ 7 │ 4 │ 1 │ O │ + * └────┴───┴───┴───┴────┘ + */ + [0] = LAYOUT_default( + KC_F1, KC_F2, KC_F3, KC_F4, LT(1, KC_KB_MUTE), + KC_F5, KC_F6, KC_F7, KC_F8, KC_KB_VOLUME_UP, + KC_F9, KC_F10, KC_F11, KC_F12, KC_KB_VOLUME_DOWN + ), + [1] = LAYOUT_default( + RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + RGB_MODE_FORWARD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI, + RGB_MODE_REVERSE,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD + ) +}; diff --git a/keyboards/skmt/15k/keymaps/qwert/keymap.c b/keyboards/skmt/15k/keymaps/qwert/keymap.c new file mode 100644 index 000000000000..16464c93bc82 --- /dev/null +++ b/keyboards/skmt/15k/keymaps/qwert/keymap.c @@ -0,0 +1,25 @@ +// Copyright 2022 Jimmy Lye (@satorusaka) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬─────────────────────┐ + * │ Q │ W │ E │ R │ BACKSPACE (LAYER 1) │ + * ├───┼───┼───┼───┼─────────────────────┤ + * │ A │ S │ D │ F │ ENTER │ + * ├───┼───┼───┼───┼─────────────────────┤ + * │ Z │ X │ C │ V │ SPACE │ + * └───┴───┴───┴───┴─────────────────────┘ + */ + [0] = LAYOUT_default( + KC_Q, KC_W, KC_E, KC_R, LT(1, KC_BSPC), + KC_A, KC_S, KC_D, KC_F, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_SPC + ), + [1] = LAYOUT_default( + RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + RGB_MODE_FORWARD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI, + RGB_MODE_REVERSE,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD + ) +}; diff --git a/keyboards/skmt/15k/keymaps/via/keymap.c b/keyboards/skmt/15k/keymaps/via/keymap.c new file mode 100644 index 000000000000..d0384efba08e --- /dev/null +++ b/keyboards/skmt/15k/keymaps/via/keymap.c @@ -0,0 +1,35 @@ +// Copyright 2022 Jimmy Lye (@satorusaka) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┬───┬───┬───┬─────────────────────┐ + * │ Q │ W │ E │ R │ BACKSPACE (LAYER 1) │ + * ├───┼───┼───┼───┼─────────────────────┤ + * │ A │ S │ D │ F │ ENTER │ + * ├───┼───┼───┼───┼─────────────────────┤ + * │ Z │ X │ C │ V │ SPACE │ + * └───┴───┴───┴───┴─────────────────────┘ + */ + [0] = LAYOUT_default( + KC_Q, KC_W, KC_E, KC_R, LT(1, KC_BSPC), + KC_A, KC_S, KC_D, KC_F, LT(2, KC_ENT), + KC_Z, KC_X, KC_C, KC_V, LT(3, KC_SPC) + ), + [1] = LAYOUT_default( + RGB_TOG,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + RGB_MODE_FORWARD,RGB_HUI,RGB_SAI,RGB_VAI,RGB_SPI, + RGB_MODE_REVERSE,RGB_HUD,RGB_SAD,RGB_VAD,RGB_SPD + ), + [2] = LAYOUT_default( + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, + KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS + ), + [3] = LAYOUT_default( + KC_TRNS,KC_TRNS,KC_TRNS,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/skmt/15k/keymaps/via/rules.mk b/keyboards/skmt/15k/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/skmt/15k/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/skmt/15k/readme.md b/keyboards/skmt/15k/readme.md new file mode 100644 index 000000000000..679fb76ca0c4 --- /dev/null +++ b/keyboards/skmt/15k/readme.md @@ -0,0 +1,26 @@ +# skmt_15k_macropad + +![skmt_15k_macropad](https://i.imgur.com/Sl6t4Lmh.jpg) +![skmt_15k_macropad](https://i.imgur.com/SihSIVth.jpg) + +A diy, 3d-printed, 15 key (3x5), hotswap, RGB macropad. + +* Keyboard Maintainer: [Jimmy Lye](https://github.com/satorusaka) +* Hardware Supported: skmt_15k_macropad on rpi pico +* Hardware Availability: [satorusaka/15k-macropad](https://github.com/satorusaka/15k-macropad) + +Make example for this keyboard (after setting up your build environment): + + make skmt/15k:default + +Flashing example for this keyboard: + + make skmt/15k:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard diff --git a/keyboards/skmt/15k/rules.mk b/keyboards/skmt/15k/rules.mk new file mode 100644 index 000000000000..848cfec5a3bd --- /dev/null +++ b/keyboards/skmt/15k/rules.mk @@ -0,0 +1,3 @@ +WS2812_DRIVER = vendor + +LTO_ENABLE = yes From 083ac400e21baefc3d629e28226d5953e473f483 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 14 Sep 2022 08:59:17 -0700 Subject: [PATCH 08/28] GeonWorks Frog Mini Soldered Layout Rework (#18308) --- keyboards/geonworks/frogmini/fms/fms.h | 292 ++++- keyboards/geonworks/frogmini/fms/info.json | 1167 ++++++++++++++++- .../frogmini/fms/keymaps/default/keymap.c | 24 +- .../keymap.c | 47 + .../default_60_hhkb_10u_space/keymap.c | 47 + .../keymap.c | 47 + .../frogmini/fms/keymaps/via/keymap.c | 24 +- 7 files changed, 1590 insertions(+), 58 deletions(-) create mode 100644 keyboards/geonworks/frogmini/fms/keymaps/default_60_ansi_wkl_split_bs_rshift_10u_space/keymap.c create mode 100644 keyboards/geonworks/frogmini/fms/keymaps/default_60_hhkb_10u_space/keymap.c create mode 100644 keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c diff --git a/keyboards/geonworks/frogmini/fms/fms.h b/keyboards/geonworks/frogmini/fms/fms.h index de3ee90f6fca..89880a3c6480 100644 --- a/keyboards/geonworks/frogmini/fms/fms.h +++ b/keyboards/geonworks/frogmini/fms/fms.h @@ -19,12 +19,44 @@ #include "quantum.h" +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │5D │ │0E │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌─┴───┴────┤ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3C │ 2.75u RShift + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ └──────────┘ + * │40 │41 │42 │56 │59 │5A │5B │5C │ Standard + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │41 │42 │56 │59 │5B │5C │ Tsangan/WKL/HHKB + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ + * │40 │ │42 │56 │59 │ │5C │ WKL + * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ + * ┌───┬─────┬───────────────────────────┬─────┬───┐ + * │41 │42 │56 │59 │5B │ ˂──── HHKB + * └───┴─────┴───────────────────────────┴─────┴───┘ + * ┌─────┬───┬───────────────────────────────────────┬───┬─────┐ + * │40 │41 │56 │5B │5C │ Tsangan 10u Space + * └─────┴───┴───────────────────────────────────────┴───┴─────┘ + * ┌─────┬───┬───────────────────────────────────────┬───┬─────┐ + * │40 │ │56 │ │5C │ WKL 10u Space + * └─────┘ └───────────────────────────────────────┘ └─────┘ + * ┌───┬───────────────────────────────────────┬───┐ + * │41 │56 │5B │ ˂──── HHKB 10u Space + * └───┴───────────────────────────────────────┴───┘ + */ + #define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K56, K59, K5A, K5B, K5C, K5D \ + K40, K41, K42, K56, K59, K5A, K5B, K5C \ )\ {\ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ @@ -34,3 +66,259 @@ { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D } \ } + +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K56, K59, K5A, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, ___ } \ +} + +#define LAYOUT_60_ansi_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K56, K59, K5A, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D } \ +} + +#define LAYOUT_60_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K56, K59, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, ___ } \ +} + +#define LAYOUT_60_tsangan_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K56, K59, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, K5D } \ +} + +#define LAYOUT_60_ansi_wkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K56, K59, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, ___, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, ___, K5C, ___ } \ +} + +#define LAYOUT_60_ansi_wkl_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K56, K59, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, ___, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, ___, K5C, K5D } \ +} + +#define LAYOUT_60_hhkb( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K42, K56, K59, K5B \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { ___, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, K5B, ___, K5D } \ +} + +#define LAYOUT_60_tsangan_hhkb_10u_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K56, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, ___, K5B, K5C, K5D } \ +} + +#define LAYOUT_60_hhkb_10u_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K41, K56, K5B \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { ___, K41, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, ___, K5B, ___, K5D } \ +} + +#define LAYOUT_60_ansi_wkl_split_bs_rshift_10u_space( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K56, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, ___, ___, ___, K5C, K5D } \ +} + +#define LAYOUT_60_iso( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K56, K59, K5A, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___ }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, ___ } \ +} + +#define LAYOUT_60_iso_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K56, K59, K5A, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___ }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, K5A, K5B, K5C, K5D } \ +} + +#define LAYOUT_60_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K41, K42, K56, K59, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___ }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, ___ } \ +} + +#define LAYOUT_60_iso_tsangan_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K41, K42, K56, K59, K5B, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___ }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, K5B, K5C, K5D } \ +} + +#define LAYOUT_60_iso_wkl( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K56, K59, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___ }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___ }, \ + { K40, ___, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, ___, K5C, ___ } \ +} + +#define LAYOUT_60_iso_wkl_split_bs_rshift( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K5D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ + K40, K42, K56, K59, K5C \ +)\ +{\ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___ }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \ + { K40, ___, K42, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___, ___ }, \ + { ___, ___, ___, ___, ___, ___, K56, ___, ___, K59, ___, ___, K5C, K5D } \ +} diff --git a/keyboards/geonworks/frogmini/fms/info.json b/keyboards/geonworks/frogmini/fms/info.json index 05210ca2a5a5..34f7f63251bc 100644 --- a/keyboards/geonworks/frogmini/fms/info.json +++ b/keyboards/geonworks/frogmini/fms/info.json @@ -1,30 +1,32 @@ { - "keyboard_name": "Frog Mini FM-S", + "keyboard_name": "Frog Mini FM-S", "manufacturer": "GeonWorks", - "url": "https://geon.works/", - "maintainer": "gondolindrim", + "url": "https://geon.works/", + "maintainer": "gondolindrim", "usb": { "vid": "0x6777", "pid": "0x2D33", - "device_version": "0.0.1", + "device_version": "0.0.1" }, "layouts": { "LAYOUT_all": { - "layout": [ - {"label":"Esc", "x":0, "y":0}, - {"label":"!", "x":1, "y":0}, - {"label":"@", "x":2, "y":0}, - {"label":"#", "x":3, "y":0}, - {"label":"$", "x":4, "y":0}, - {"label":"%", "x":5, "y":0}, - {"label":"^", "x":6, "y":0}, - {"label":"&", "x":7, "y":0}, - {"label":"*", "x":8, "y":0}, - {"label":"(", "x":9, "y":0}, - {"label":")", "x":10, "y":0}, - {"label":"_", "x":11, "y":0}, - {"label":"+", "x":12, "y":0}, + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, @@ -36,9 +38,10 @@ {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, - {"label":"{", "x":11.5, "y":1}, - {"label":"}", "x":12.5, "y":1}, - {"label":"|", "x":13.5, "y":1, "w":1.5}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + {"label":"Caps", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, @@ -49,12 +52,153 @@ {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, - {"label":":", "x":10.75, "y":2}, - {"label":"\"", "x":11.75, "y":2}, - {"x":12.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, + {"label":"Shift", "x":0, "y":3, "w":1.25}, - {"x":1.25, "y":3}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, @@ -62,20 +206,979 @@ {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, - {"label":"<", "x":9.25, "y":3}, - {"label":">", "x":10.25, "y":3}, - {"label":"?", "x":11.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, - {"x":14, "y":3}, + {"label":"Fn", "x":14, "y":3}, + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, - {"x":3.75, "y":4, "w":6.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, - {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}, - {"label":"Bksp", "x":14, "y":0}] + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_tsangan_hhkb": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_ansi_wkl": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_hhkb": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4} + ] + }, + "LAYOUT_60_tsangan_hhkb_10u_space": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Space", "x":2.5, "y":4, "w":10}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_hhkb_10u_space": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Win", "x":1.5, "y":4}, + {"label":"Space", "x":2.5, "y":4, "w":10}, + {"label":"Menu", "x":12.5, "y":4} + ] + }, + "LAYOUT_60_ansi_wkl_split_bs_rshift_10u_space": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2@", "x":2, "y":0}, + {"label":"3#", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + {"label":"\\|", "x":13.5, "y":1, "w":1.5}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'\"", "x":11.75, "y":2}, + {"label":"Enter", "x":12.75, "y":2, "w":2.25}, + + {"label":"Shift", "x":0, "y":3, "w":2.25}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Space", "x":2.5, "y":4, "w":10}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.25}, + {"label":"Win", "x":1.25, "y":4, "w":1.25}, + {"label":"Alt", "x":2.5, "y":4, "w":1.25}, + {"label":"Space", "x":3.75, "y":4, "w":6.25}, + {"label":"Alt", "x":10, "y":4, "w":1.25}, + {"label":"Win", "x":11.25, "y":4, "w":1.25}, + {"label":"Menu", "x":12.5, "y":4, "w":1.25}, + {"label":"Ctrl", "x":13.75, "y":4, "w":1.25} + ] + }, + "LAYOUT_60_iso_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso_tsangan_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Win", "x":1.5, "y":4}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Menu", "x":12.5, "y":4}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso_wkl": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0, "w":2}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":2.75}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] + }, + "LAYOUT_60_iso_wkl_split_bs_rshift": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"1!", "x":1, "y":0}, + {"label":"2\"", "x":2, "y":0}, + {"label":"3\u00a3", "x":3, "y":0}, + {"label":"4$", "x":4, "y":0}, + {"label":"5%", "x":5, "y":0}, + {"label":"6^", "x":6, "y":0}, + {"label":"7&", "x":7, "y":0}, + {"label":"8*", "x":8, "y":0}, + {"label":"9(", "x":9, "y":0}, + {"label":"0)", "x":10, "y":0}, + {"label":"-_", "x":11, "y":0}, + {"label":"=+", "x":12, "y":0}, + {"label":"Bksp", "x":13, "y":0}, + {"label":"Bksp", "x":14, "y":0}, + + {"label":"Tab", "x":0, "y":1, "w":1.5}, + {"label":"Q", "x":1.5, "y":1}, + {"label":"W", "x":2.5, "y":1}, + {"label":"E", "x":3.5, "y":1}, + {"label":"R", "x":4.5, "y":1}, + {"label":"T", "x":5.5, "y":1}, + {"label":"Y", "x":6.5, "y":1}, + {"label":"U", "x":7.5, "y":1}, + {"label":"I", "x":8.5, "y":1}, + {"label":"O", "x":9.5, "y":1}, + {"label":"P", "x":10.5, "y":1}, + {"label":"[{", "x":11.5, "y":1}, + {"label":"]}", "x":12.5, "y":1}, + + {"label":"Caps", "x":0, "y":2, "w":1.75}, + {"label":"A", "x":1.75, "y":2}, + {"label":"S", "x":2.75, "y":2}, + {"label":"D", "x":3.75, "y":2}, + {"label":"F", "x":4.75, "y":2}, + {"label":"G", "x":5.75, "y":2}, + {"label":"H", "x":6.75, "y":2}, + {"label":"J", "x":7.75, "y":2}, + {"label":"K", "x":8.75, "y":2}, + {"label":"L", "x":9.75, "y":2}, + {"label":";:", "x":10.75, "y":2}, + {"label":"'@", "x":11.75, "y":2}, + {"label":"#~", "x":12.75, "y":2}, + {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"Shift", "x":0, "y":3, "w":1.25}, + {"label":"\\|", "x":1.25, "y":3}, + {"label":"Z", "x":2.25, "y":3}, + {"label":"X", "x":3.25, "y":3}, + {"label":"C", "x":4.25, "y":3}, + {"label":"V", "x":5.25, "y":3}, + {"label":"B", "x":6.25, "y":3}, + {"label":"N", "x":7.25, "y":3}, + {"label":"M", "x":8.25, "y":3}, + {"label":",<", "x":9.25, "y":3}, + {"label":".>", "x":10.25, "y":3}, + {"label":"/?", "x":11.25, "y":3}, + {"label":"Shift", "x":12.25, "y":3, "w":1.75}, + {"label":"Fn", "x":14, "y":3}, + + {"label":"Ctrl", "x":0, "y":4, "w":1.5}, + {"label":"Alt", "x":2.5, "y":4, "w":1.5}, + {"label":"Space", "x":4, "y":4, "w":7}, + {"label":"Alt", "x":11, "y":4, "w":1.5}, + {"label":"Ctrl", "x":13.5, "y":4, "w":1.5} + ] } } } diff --git a/keyboards/geonworks/frogmini/fms/keymaps/default/keymap.c b/keyboards/geonworks/frogmini/fms/keymaps/default/keymap.c index 1a259ce3ed3b..e09b7d830d76 100644 --- a/keyboards/geonworks/frogmini/fms/keymaps/default/keymap.c +++ b/keyboards/geonworks/frogmini/fms/keymaps/default/keymap.c @@ -17,31 +17,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( /* Base */ - KC_GESC , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_BSPC + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_RGUI, 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, + 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 ), [2] = 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/geonworks/frogmini/fms/keymaps/default_60_ansi_wkl_split_bs_rshift_10u_space/keymap.c b/keyboards/geonworks/frogmini/fms/keymaps/default_60_ansi_wkl_split_bs_rshift_10u_space/keymap.c new file mode 100644 index 000000000000..49a78a33821d --- /dev/null +++ b/keyboards/geonworks/frogmini/fms/keymaps/default_60_ansi_wkl_split_bs_rshift_10u_space/keymap.c @@ -0,0 +1,47 @@ +/* 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_wkl_split_bs_rshift_10u_space( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_SPC, KC_RCTL +), +[1] = LAYOUT_60_ansi_wkl_split_bs_rshift_10u_space( + 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 +), +[2] = LAYOUT_60_ansi_wkl_split_bs_rshift_10u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_60_ansi_wkl_split_bs_rshift_10u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/geonworks/frogmini/fms/keymaps/default_60_hhkb_10u_space/keymap.c b/keyboards/geonworks/frogmini/fms/keymaps/default_60_hhkb_10u_space/keymap.c new file mode 100644 index 000000000000..bcb4ea1aeada --- /dev/null +++ b/keyboards/geonworks/frogmini/fms/keymaps/default_60_hhkb_10u_space/keymap.c @@ -0,0 +1,47 @@ +/* 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_hhkb_10u_space( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LGUI, KC_SPC, MO(1) +), +[1] = LAYOUT_60_hhkb_10u_space( + 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 +), +[2] = LAYOUT_60_hhkb_10u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_60_hhkb_10u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c b/keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c new file mode 100644 index 000000000000..384669101d71 --- /dev/null +++ b/keyboards/geonworks/frogmini/fms/keymaps/default_60_tsangan_hhkb_10u_space/keymap.c @@ -0,0 +1,47 @@ +/* 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_tsangan_hhkb_10u_space( /* Base */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), + KC_LCTL, KC_LGUI, KC_SPC, MO(1), KC_RCTL +), +[1] = LAYOUT_60_tsangan_hhkb_10u_space( + 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 +), +[2] = LAYOUT_60_tsangan_hhkb_10u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +), +[3] = LAYOUT_60_tsangan_hhkb_10u_space( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/geonworks/frogmini/fms/keymaps/via/keymap.c b/keyboards/geonworks/frogmini/fms/keymaps/via/keymap.c index 1a259ce3ed3b..e09b7d830d76 100644 --- a/keyboards/geonworks/frogmini/fms/keymaps/via/keymap.c +++ b/keyboards/geonworks/frogmini/fms/keymaps/via/keymap.c @@ -17,31 +17,31 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( /* Base */ - KC_GESC , KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_BSPC + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_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, KC_RGUI, 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, + 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 ), [2] = 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS -) + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS +) }; From 624ab64750ed05e6da46ce3c261e97c7e39c6206 Mon Sep 17 00:00:00 2001 From: jels <66403163+Jels02@users.noreply.github.com> Date: Thu, 15 Sep 2022 03:56:09 +1000 Subject: [PATCH 09/28] [Keyboard] Add Calice (#17929) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/qwertlekeys/calice/calice.c | 17 ++++ keyboards/qwertlekeys/calice/calice.h | 44 +++++++++ keyboards/qwertlekeys/calice/config.h | 47 +++++++++ keyboards/qwertlekeys/calice/info.json | 98 +++++++++++++++++++ .../calice/keymaps/default/keymap.c | 38 +++++++ .../qwertlekeys/calice/keymaps/via/keymap.c | 54 ++++++++++ .../qwertlekeys/calice/keymaps/via/rules.mk | 1 + keyboards/qwertlekeys/calice/readme.md | 23 +++++ keyboards/qwertlekeys/calice/rules.mk | 19 ++++ 9 files changed, 341 insertions(+) create mode 100644 keyboards/qwertlekeys/calice/calice.c create mode 100644 keyboards/qwertlekeys/calice/calice.h create mode 100644 keyboards/qwertlekeys/calice/config.h create mode 100644 keyboards/qwertlekeys/calice/info.json create mode 100644 keyboards/qwertlekeys/calice/keymaps/default/keymap.c create mode 100644 keyboards/qwertlekeys/calice/keymaps/via/keymap.c create mode 100644 keyboards/qwertlekeys/calice/keymaps/via/rules.mk create mode 100644 keyboards/qwertlekeys/calice/readme.md create mode 100644 keyboards/qwertlekeys/calice/rules.mk diff --git a/keyboards/qwertlekeys/calice/calice.c b/keyboards/qwertlekeys/calice/calice.c new file mode 100644 index 000000000000..d284544964a7 --- /dev/null +++ b/keyboards/qwertlekeys/calice/calice.c @@ -0,0 +1,17 @@ +/* copyright 2021 Joah Nelson (jels) +* +* 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 +* MERAHANTABILITY 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 "calice.h" diff --git a/keyboards/qwertlekeys/calice/calice.h b/keyboards/qwertlekeys/calice/calice.h new file mode 100644 index 000000000000..e418266dd904 --- /dev/null +++ b/keyboards/qwertlekeys/calice/calice.h @@ -0,0 +1,44 @@ +/* copyright 2021 Joah Nelson (jels) +* +* 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 +* MERAHANTABILITY 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 ____ KC_NO + + +#define LAYOUT_all( \ + K0B0, K0A0, K0B1, K0A1, K0B2, K0A2, K0B3, K0A4, K0B4, K0A5, K0B5, K0A6, K0B6, K0A7, K0B7, \ + K1B0, K1A0, K1B1, K1A1, K1B2, K1A2, K1B3, K1A4, K1B4, K1A5, K1B5, K1A6, K1B6, K2B6, K1A7, K1B7, \ + K2B0, K2A0, K2B1, K2A1, K2B2, K2A2, K2B3, K2A4, K2B4, K2A5, K2B5, K2A6, K3B6, K2A7, K2B7, \ + K3B0, K3A0, K3B1, K3A1, K3B2, K3A2, K3B3, K3A4, K3B4, K3A5, K3B5, K3A6, K3A7, K3B7, \ + K4B0, K4A0, K4B1, K4A1, K4B2, K4A2, K4B3, K4A4, K4B4, K4A5, K4B5, K4A6, K4B6, K4A7, \ + K5B0, K5A0, K5B2, K5A2, K5A4, K5A5, K5B6, K5A7, K5B7 \ +){ \ + {K0A0, K0A1, K0A2, ____, K0A4, K0A5, K0A6, K0A7}, \ + {K0B0, K0B1, K0B2, K0B3, K0B4, K0B5, K0B6, K0B7}, \ + {K1A0, K1A1, K1A2, ____, K1A4, K1A5, K1A6, K1A7}, \ + {K1B0, K1B1, K1B2, K1B3, K1B4, K1B5, K1B6, K1B7}, \ + {K2A0, K2A1, K2A2, ____, K2A4, K2A5, K2A6, K2A7}, \ + {K2B0, K2B1, K2B2, K2B3, K2B4, K2B5, K2B6, K2B7}, \ + {K3A0, K3A1, K3A2, ____, K3A4, K3A5, K3A6, K3A7}, \ + {K3B0, K3B1, K3B2, K3B3, K3B4, K3B5, K3B6, K3B7}, \ + {K4A0, K4A1, K4A2, ____, K4A4, K4A5, K4A6, K4A7}, \ + {K4B0, K4B1, K4B2, K4B3, K4B4, K4B5, K4B6, ____}, \ + {K5A0, ____, K5A2, ____, K5A4, K5A5, ____, K5A7}, \ + {K5B0, ____, K5B2, ____, ____, ____, K5B6, K5B7} \ +} diff --git a/keyboards/qwertlekeys/calice/config.h b/keyboards/qwertlekeys/calice/config.h new file mode 100644 index 000000000000..b23c5d642aa1 --- /dev/null +++ b/keyboards/qwertlekeys/calice/config.h @@ -0,0 +1,47 @@ + /* Copyright 2021 Joah Nelson (Jels) + * + * 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 "config_common.h" + +/* Define Matrix size */ +#define MATRIX_ROWS 12 +#define MATRIX_COLS 8 + +#define BOOTMAGIC_LITE_COLUMN 0 +#define BOOTMAGIC_LITE_ROW 1 + +/*Define Matrix Pins */ +#define MATRIX_ROW_PINS {F0, F1, F5, F4, C6, C7, B5, B6, D4, D2, D5, D3} +#define MATRIX_COL_PINS {D7, B4, F7, F6, D1, B7, B3, B2} + +#define LED_CAPS_LOCK_PIN D6 + +/* Envoder */ +#define ENCODERS_PAD_A {B0} +#define ENCODERS_PAD_B {B1} + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE diff --git a/keyboards/qwertlekeys/calice/info.json b/keyboards/qwertlekeys/calice/info.json new file mode 100644 index 000000000000..d88ada389451 --- /dev/null +++ b/keyboards/qwertlekeys/calice/info.json @@ -0,0 +1,98 @@ +{ + "keyboard_name": "Calice", + "manufacturer": "QwertleKeys", + "url": "", + "maintainer": "Jels", + "usb": { + "vid": "0x716B", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"label":"1,0", "x":0.5, "y":0}, + {"label":"0,0", "x":1.75, "y":0}, + {"label":"1,1", "x":2.75, "y":0}, + {"label":"0,1", "x":3.75, "y":0}, + {"label":"1,2", "x":4.75, "y":0}, + {"label":"0,2", "x":6.25, "y":0}, + {"label":"1,3", "x":7.25, "y":0}, + {"label":"0,4", "x":8.25, "y":0}, + {"label":"1,4", "x":9.25, "y":0}, + {"label":"0,5", "x":10.75, "y":0}, + {"label":"1,5", "x":11.75, "y":0}, + {"label":"0,6", "x":12.75, "y":0}, + {"label":"1,6", "x":13.75, "y":0}, + {"label":"0,7", "x":15, "y":0}, + {"label":"1,7", "x":16.75, "y":0}, + {"label":"3,7", "x":17, "y":1}, + {"label":"3,0", "x":1.25, "y":1.25}, + {"label":"2,0", "x":2.25, "y":1.25}, + {"label":"3,1", "x":3.25, "y":1.25}, + {"label":"2,1", "x":4.25, "y":1.25}, + {"label":"3,2", "x":5.25, "y":1.25}, + {"label":"2,2", "x":6.25, "y":1.25}, + {"label":"3,3", "x":7.25, "y":1.25}, + {"label":"2,4", "x":8.75, "y":1.25}, + {"label":"3,4", "x":9.75, "y":1.25}, + {"label":"2,5", "x":10.75, "y":1.25}, + {"label":"3,5", "x":11.75, "y":1.25}, + {"label":"2,6", "x":12.75, "y":1.25}, + {"label":"3,6", "x":13.75, "y":1.25}, + {"label":"5,6", "x":14.75, "y":1.25}, + {"label":"2,7", "x":15.75, "y":1.25}, + {"label":"5,7", "x":17.25, "y":2}, + {"label":"5,0", "x":1, "y":2.25, "w":1.5}, + {"label":"4,0", "x":2.5, "y":2.25}, + {"label":"5,1", "x":3.5, "y":2.25}, + {"label":"4,1", "x":4.5, "y":2.25}, + {"label":"5,2", "x":5.5, "y":2.25}, + {"label":"4,2", "x":6.5, "y":2.25}, + {"label":"5,3", "x":8.5, "y":2.25}, + {"label":"4,4", "x":9.5, "y":2.25}, + {"label":"5,4", "x":10.5, "y":2.25}, + {"label":"4,5", "x":11.5, "y":2.25}, + {"label":"5,5", "x":12.5, "y":2.25}, + {"label":"4,6", "x":13.5, "y":2.25}, + {"label":"7,6", "x":14.5, "y":2.25}, + {"label":"4,7", "x":15.5, "y":2.25, "w":1.5}, + {"label":"7,7", "x":17.5, "y":3}, + {"label":"7,0", "x":0.75, "y":3.25, "w":1.75}, + {"label":"6,0", "x":2.5, "y":3.25}, + {"label":"7,1", "x":3.5, "y":3.25}, + {"label":"6,1", "x":4.5, "y":3.25}, + {"label":"7,2", "x":5.5, "y":3.25}, + {"label":"6,2", "x":6.5, "y":3.25}, + {"label":"7,3", "x":9, "y":3.25}, + {"label":"6,4", "x":10, "y":3.25}, + {"label":"7,4", "x":11, "y":3.25}, + {"label":"6,5", "x":12, "y":3.25}, + {"label":"7,5", "x":13, "y":3.25}, + {"label":"6,6", "x":14, "y":3.25}, + {"label":"6,7", "x":15, "y":3.25, "w":2.25}, + {"label":"9,0", "x":0.5, "y":4.25, "w":2.25}, + {"label":"8,0", "x":2.75, "y":4.25}, + {"label":"9,1", "x":3.75, "y":4.25}, + {"label":"8,1", "x":4.75, "y":4.25}, + {"label":"9,2", "x":5.75, "y":4.25}, + {"label":"8,2", "x":6.75, "y":4.25}, + {"label":"9,3", "x":8.75, "y":4.25}, + {"label":"8,4", "x":9.75, "y":4.25}, + {"label":"9,4", "x":10.75, "y":4.25}, + {"label":"8,5", "x":11.75, "y":4.25}, + {"label":"9,5", "x":12.75, "y":4.25}, + {"label":"8,6", "x":13.75, "y":4.25}, + {"label":"9,6", "x":14.75, "y":4.25, "w":1.75}, + {"label":"8,7", "x":16.5, "y":4.25}, + {"label":"11,0", "x":0.5, "y":5.25, "w":1.5}, + {"label":"10,0", "x":3.25, "y":5.25, "w":1.5}, + {"label":"11,2", "x":4.75, "y":5.25, "w":2.25}, + {"label":"10,2", "x":7, "y":5.25}, + {"label":"10,4", "x":8.25, "y":5.25, "w":2.75}, + {"label":"10,5", "x":11, "y":5.25, "w":1.5}, + {"label":"11,6", "x":15.5, "y":5.25}, + {"label":"10,7", "x":16.5, "y":5.25}, + {"label":"11,7", "x":17.5, "y":5.25}] + } + } +} diff --git a/keyboards/qwertlekeys/calice/keymaps/default/keymap.c b/keyboards/qwertlekeys/calice/keymaps/default/keymap.c new file mode 100644 index 000000000000..d9876034defa --- /dev/null +++ b/keyboards/qwertlekeys/calice/keymaps/default/keymap.c @@ -0,0 +1,38 @@ +/* copyright 2021 Joah Nelson (jels) +* +* 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 +* MERAHANTABILITY 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] = { + +//base layer +[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_F13, KC_DEL, + 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_GRV, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT +), +[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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/qwertlekeys/calice/keymaps/via/keymap.c b/keyboards/qwertlekeys/calice/keymaps/via/keymap.c new file mode 100644 index 000000000000..102b20aa5ca3 --- /dev/null +++ b/keyboards/qwertlekeys/calice/keymaps/via/keymap.c @@ -0,0 +1,54 @@ +/* copyright 2021 Joah Nelson (jels) +* +* 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 +* MERAHANTABILITY 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] = { + +//base layer +[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_F13, KC_DEL, + 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_GRV, KC_HOME, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP, + KC_CAPS, 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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT +), +[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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +[2] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), +[3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/qwertlekeys/calice/keymaps/via/rules.mk b/keyboards/qwertlekeys/calice/keymaps/via/rules.mk new file mode 100644 index 000000000000..036bd6d1c3ec --- /dev/null +++ b/keyboards/qwertlekeys/calice/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/qwertlekeys/calice/readme.md b/keyboards/qwertlekeys/calice/readme.md new file mode 100644 index 000000000000..9fc7d570cf17 --- /dev/null +++ b/keyboards/qwertlekeys/calice/readme.md @@ -0,0 +1,23 @@ +# Calice + +![Calice](https://i.imgur.com/5Xsw1ojl.jpg) + +## A 75% Alice + +* Keyboard Maintainer: [jels](https://github.com/Jels02) +* Hardware Supported: Calice PCB +* Hardware Availabililty: Groupbuy + +Make example for this keyboard (after setting up your build environment): + + make qwertlekeys/calice:default + +Flashing example for this keyboard: + + make qwertlekeys/calice: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). + +* **Bootmagic reset**: Hold down the top left key (ESC) and plug in the keyboard +* **Physical reset button**: Briefly press the button on the back of the PCB +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/qwertlekeys/calice/rules.mk b/keyboards/qwertlekeys/calice/rules.mk new file mode 100644 index 000000000000..cef940efac9a --- /dev/null +++ b/keyboards/qwertlekeys/calice/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader Selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # 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 +ENCODER_ENABLE = yes From 017398c283fe5a189d7d029f60587342be47b002 Mon Sep 17 00:00:00 2001 From: Andrew Kannan Date: Wed, 14 Sep 2022 14:13:13 -0400 Subject: [PATCH 10/28] [Keyboard] Add Vector PCB (#17380) --- keyboards/cannonkeys/vector/info.json | 35 +++++++++++++++ .../vector/keymaps/default/keymap.c | 45 +++++++++++++++++++ .../cannonkeys/vector/keymaps/via/keymap.c | 45 +++++++++++++++++++ .../cannonkeys/vector/keymaps/via/rules.mk | 1 + keyboards/cannonkeys/vector/readme.md | 25 +++++++++++ keyboards/cannonkeys/vector/rules.mk | 2 + 6 files changed, 153 insertions(+) create mode 100644 keyboards/cannonkeys/vector/info.json create mode 100644 keyboards/cannonkeys/vector/keymaps/default/keymap.c create mode 100644 keyboards/cannonkeys/vector/keymaps/via/keymap.c create mode 100644 keyboards/cannonkeys/vector/keymaps/via/rules.mk create mode 100644 keyboards/cannonkeys/vector/readme.md create mode 100644 keyboards/cannonkeys/vector/rules.mk diff --git a/keyboards/cannonkeys/vector/info.json b/keyboards/cannonkeys/vector/info.json new file mode 100644 index 000000000000..1247fa390372 --- /dev/null +++ b/keyboards/cannonkeys/vector/info.json @@ -0,0 +1,35 @@ +{ + "manufacturer": "CannonKeys", + "keyboard_name": "Vector", + "maintainer": "awkannan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["C13", "C15", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3"], + "rows": ["C14", "A1", "B14", "B15", "A8"] + }, + "indicators": { + "caps_lock": "B3", + "on_state": 0 + }, + "processor": "STM32F072", + "url": "", + "usb": { + "device_version": "1.0.0", + "vid": "0xCA04", + "pid": "0x000C" + }, + "layouts": { + "LAYOUT_all": { + "layout": [{"matrix": [0,0], "x":0, "y":0}, {"matrix": [0,1], "x":1, "y":0}, {"matrix": [0,2], "x":2, "y":0}, {"matrix": [0,3], "x":3, "y":0}, {"matrix": [0,4], "x":4, "y":0}, {"matrix": [0,5], "x":5, "y":0}, {"matrix": [0,6], "x":6, "y":0}, {"matrix": [0,7], "x":7, "y":0}, {"matrix": [0,8], "x":8, "y":0}, {"matrix": [0,9], "x":9, "y":0}, {"matrix": [0,10], "x":10, "y":0}, {"matrix": [0,11], "x":11, "y":0}, {"matrix": [0,12], "x":12, "y":0}, {"matrix": [0,13], "x":13, "y":0}, {"matrix": [2,12], "x":14, "y":0}, {"matrix": [1,0], "x":0, "y":1, "w":1.5}, {"matrix": [1,1], "x":1.5, "y":1}, {"matrix": [1,2], "x":2.5, "y":1}, {"matrix": [1,3], "x":3.5, "y":1}, {"matrix": [1,4], "x":4.5, "y":1}, {"matrix": [1,5], "x":5.5, "y":1}, {"matrix": [1,6], "x":6.5, "y":1}, {"matrix": [1,7], "x":7.5, "y":1}, {"matrix": [1,8], "x":8.5, "y":1}, {"matrix": [1,9], "x":9.5, "y":1}, {"matrix": [1,10], "x":10.5, "y":1}, {"matrix": [1,11], "x":11.5, "y":1}, {"matrix": [1,12], "x":12.5, "y":1}, {"matrix": [1,13], "x":13.5, "y":1, "w":1.5}, {"matrix": [2,0], "x":0, "y":2, "w":1.75}, {"matrix": [2,1], "x":1.75, "y":2}, {"matrix": [2,2], "x":2.75, "y":2}, {"matrix": [2,3], "x":3.75, "y":2}, {"matrix": [2,4], "x":4.75, "y":2}, {"matrix": [2,5], "x":5.75, "y":2}, {"matrix": [2,6], "x":6.75, "y":2}, {"matrix": [2,7], "x":7.75, "y":2}, {"matrix": [2,8], "x":8.75, "y":2}, {"matrix": [2,9], "x":9.75, "y":2}, {"matrix": [2,10], "x":10.75, "y":2}, {"matrix": [2,11], "x":11.75, "y":2}, {"matrix": [2,13], "x":12.75, "y":2, "w":2.25}, {"matrix": [3,0], "x":0, "y":3, "w":1.25}, {"matrix": [3,1], "x":1.25, "y":3}, {"matrix": [3,2], "x":2.25, "y":3}, {"matrix": [3,3], "x":3.25, "y":3}, {"matrix": [3,4], "x":4.25, "y":3}, {"matrix": [3,5], "x":5.25, "y":3}, {"matrix": [3,6], "x":6.25, "y":3}, {"matrix": [3,7], "x":7.25, "y":3}, {"matrix": [3,8], "x":8.25, "y":3}, {"matrix": [3,9], "x":9.25, "y":3}, {"matrix": [3,10], "x":10.25, "y":3}, {"matrix": [3,11], "x":11.25, "y":3}, {"matrix": [3,12], "x":12.25, "y":3, "w":1.75}, {"matrix": [3,13], "x":14, "y":3}, {"matrix": [4,0], "x":0, "y":4, "w":1.5}, {"matrix": [4,1], "x":1.5, "y":4}, {"matrix": [4,2], "x":2.5, "y":4, "w":1.5}, {"matrix": [4,5], "x":4, "y":4, "w":3}, {"matrix": [4,7], "x":7, "y":4}, {"matrix": [4,9], "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":13.5, "y":4, "w":1.5}] + } + } +} diff --git a/keyboards/cannonkeys/vector/keymaps/default/keymap.c b/keyboards/cannonkeys/vector/keymaps/default/keymap.c new file mode 100644 index 000000000000..7def0bb31d33 --- /dev/null +++ b/keyboards/cannonkeys/vector/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + RGB_TOG, RGB_MOD, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_BRTG, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, + BL_INC, BL_DEC, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/vector/keymaps/via/keymap.c b/keyboards/cannonkeys/vector/keymaps/via/keymap.c new file mode 100644 index 000000000000..28b3492f0e40 --- /dev/null +++ b/keyboards/cannonkeys/vector/keymaps/via/keymap.c @@ -0,0 +1,45 @@ +// Copyright 2022 Andrew Kannan (@awkannan) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layer_names { + _BASE, + _FN1, + _FN2, + _FN3 +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BASE] = LAYOUT_all( + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [_FN1] = LAYOUT_all( + KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, RESET + ), + + [_FN2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [_FN3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/cannonkeys/vector/keymaps/via/rules.mk b/keyboards/cannonkeys/vector/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/cannonkeys/vector/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/cannonkeys/vector/readme.md b/keyboards/cannonkeys/vector/readme.md new file mode 100644 index 000000000000..1abbb258194e --- /dev/null +++ b/keyboards/cannonkeys/vector/readme.md @@ -0,0 +1,25 @@ +# Vector + +*A PCB mount 60% designed by ai03* + +* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan) +* Hardware Supported: STM32F072CBT6 +* Hardware Availability: [CannonKeys](https://cannonkeys.com) + +Make example for this keyboard (after setting up your build environment): + + make cannonkeys/vector:default + +Flashing example for this keyboard: + + make cannonkeys/vector: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**: Swap the boot switch on the back of the PCB to "1" and hit the reset button +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/cannonkeys/vector/rules.mk b/keyboards/cannonkeys/vector/rules.mk new file mode 100644 index 000000000000..0ab54aaaf718 --- /dev/null +++ b/keyboards/cannonkeys/vector/rules.mk @@ -0,0 +1,2 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -v FFFF -p FFFF From 0abde386ae46600d0ac12b13a480c060e3292bd9 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Wed, 14 Sep 2022 16:54:24 -0600 Subject: [PATCH 11/28] Remove `RESET` keycodes from fjlabs keyboards (#18364) --- keyboards/fjlabs/avalon/keymaps/default/keymap.c | 2 +- keyboards/fjlabs/avalon/keymaps/via/keymap.c | 2 +- keyboards/fjlabs/sinanjuwk/keymaps/default/keymap.c | 2 +- keyboards/fjlabs/sinanjuwk/keymaps/via/keymap.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/fjlabs/avalon/keymaps/default/keymap.c b/keyboards/fjlabs/avalon/keymaps/default/keymap.c index 3601ba8fed1f..b5e2b84480d8 100644 --- a/keyboards/fjlabs/avalon/keymaps/default/keymap.c +++ b/keyboards/fjlabs/avalon/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_all( KC_TRNS, KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, QK_BOOT, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/fjlabs/avalon/keymaps/via/keymap.c b/keyboards/fjlabs/avalon/keymaps/via/keymap.c index 08869cc59d14..61aa6f155cbf 100644 --- a/keyboards/fjlabs/avalon/keymaps/via/keymap.c +++ b/keyboards/fjlabs/avalon/keymaps/via/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_all( KC_TRNS, KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_BSPC, KC_DEL, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, KC_PGUP, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, QK_BOOT, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT diff --git a/keyboards/fjlabs/sinanjuwk/keymaps/default/keymap.c b/keyboards/fjlabs/sinanjuwk/keymaps/default/keymap.c index e5dcc81c4fd6..1dd28d8d1347 100644 --- a/keyboards/fjlabs/sinanjuwk/keymaps/default/keymap.c +++ b/keyboards/fjlabs/sinanjuwk/keymaps/default/keymap.c @@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_all( KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, 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/fjlabs/sinanjuwk/keymaps/via/keymap.c b/keyboards/fjlabs/sinanjuwk/keymaps/via/keymap.c index 2520da0cda56..dc1fd0d4f5c0 100644 --- a/keyboards/fjlabs/sinanjuwk/keymaps/via/keymap.c +++ b/keyboards/fjlabs/sinanjuwk/keymaps/via/keymap.c @@ -33,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_LAYER1] = LAYOUT_all( KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, RESET, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, 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, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS From 01f31bf28ebcb5721229697c93dc6e0b2d5b66d7 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 15 Sep 2022 01:03:55 +0100 Subject: [PATCH 12/28] [Docs] RESET -> QK_BOOT (#18365) --- docs/api_docs.md | 2 +- docs/configurator_default_keymaps.md | 4 ++-- docs/driver_installation_zadig.md | 2 +- docs/faq_misc.md | 2 +- docs/feature_audio.md | 4 ++-- docs/flashing.md | 26 +++++++++++----------- docs/flashing_bootloadhid.md | 2 +- docs/ja/api_docs.md | 2 +- docs/ja/faq_misc.md | 2 +- docs/ja/feature_audio.md | 2 +- docs/ja/flashing.md | 12 +++++----- docs/ja/flashing_bootloadhid.md | 2 +- docs/ja/keycodes.md | 8 +++---- docs/ja/quantum_keycodes.md | 8 +++---- docs/platformdev_chibios_earlyinit.md | 2 +- docs/zh-cn/api_docs.md | 2 +- docs/zh-cn/configurator_default_keymaps.md | 4 ++-- docs/zh-cn/flashing.md | 20 ++++++++--------- docs/zh-cn/flashing_bootloadhid.md | 2 +- 19 files changed, 54 insertions(+), 54 deletions(-) diff --git a/docs/api_docs.md b/docs/api_docs.md index eefb61a54d24..e2f970f3ab42 100644 --- a/docs/api_docs.md +++ b/docs/api_docs.md @@ -16,7 +16,7 @@ This service is an asynchronous API for compiling custom keymaps. You POST some "layers": [ ["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_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_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"], ["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_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"], - ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] + ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","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","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] ] } ``` diff --git a/docs/configurator_default_keymaps.md b/docs/configurator_default_keymaps.md index d2b14ec41101..3fea15166af6 100644 --- a/docs/configurator_default_keymaps.md +++ b/docs/configurator_default_keymaps.md @@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, + 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_MPLY, KC_MNXT, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), @@ -84,7 +84,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD", + "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_MPLY", "KC_MNXT", "KC_VOLD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "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/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 003629ba9a00..3b2c0b74dc41 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -8,7 +8,7 @@ We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have ## Installation -Put your keyboard into bootloader mode, either by hitting the `RESET` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. +Put your keyboard into bootloader mode, either by hitting the `QK_BOOT` keycode (which may be on a different layer), or by pressing the reset switch that's usually located on the underside of the board. If your keyboard has neither, try holding Escape or Space+`B` as you plug it in (see the [Bootmagic Lite](feature_bootmagic.md) docs for more details). Some boards use [Command](feature_command.md) instead of Bootmagic; in this case, you can enter bootloader mode by hitting Left Shift+Right Shift+`B` or Left Shift+Right Shift+Escape at any point while the keyboard is plugged in. Some keyboards may have specific instructions for entering the bootloader. For example, the [Bootmagic Lite](feature_bootmagic.md) key (default: Escape) might be on a different key, e.g. Left Control; or the magic combination for Command (default: Left Shift+Right Shift) might require you to hold something else, e.g. Left Control+Right Control. Refer to the board's README file if you are unsure. To put a device in bootloader mode with USBaspLoader, tap the `RESET` button while holding down the `BOOT` button. diff --git a/docs/faq_misc.md b/docs/faq_misc.md index 9e34a048156c..287ca7711d13 100644 --- a/docs/faq_misc.md +++ b/docs/faq_misc.md @@ -10,7 +10,7 @@ You probably don't want to "brick" your keyboard, making it impossible to rewrite firmware onto it. Here are some of the parameters to show what things are (and likely aren't) too risky. -- If your keyboard map does not include RESET, then, to get into DFU +- If your keyboard map does not include QK_BOOT, then, to get into DFU mode, you will need to press the reset button on the PCB, which requires unscrewing the bottom. - Messing with tmk_core / common files might make the keyboard diff --git a/docs/feature_audio.md b/docs/feature_audio.md index 5b84dc774732..8c02f7c15307 100644 --- a/docs/feature_audio.md +++ b/docs/feature_audio.md @@ -114,7 +114,7 @@ The audio core offers interface functions to get/set/change the tone multiplexin There's a couple of different sounds that will automatically be enabled without any other configuration: ``` STARTUP_SONG // plays when the keyboard starts up (audio.c) -GOODBYE_SONG // plays when you press the RESET key (quantum.c) +GOODBYE_SONG // plays when you press the QK_BOOT key (quantum.c) AG_NORM_SONG // plays when you press AG_NORM (quantum.c) AG_SWAP_SONG // plays when you press AG_SWAP (quantum.c) CG_NORM_SONG // plays when you press CG_NORM (quantum.c) @@ -177,7 +177,7 @@ The available keycodes for audio are: |`AUDIO_INIT_DELAY` | *Not defined* |Enables delay during startup song to accomidate for USB startup issues. | |`AUDIO_ENABLE_TONE_MULTIPLEXING` | *Not defined* |Enables time splicing/multiplexing to create multiple tones simutaneously. | |`STARTUP_SONG` | `STARTUP_SOUND` |Plays when the keyboard starts up (audio.c) | -|`GOODBYE_SONG` | `GOODBYE_SOUND` |Plays when you press the RESET key (quantum.c) | +|`GOODBYE_SONG` | `GOODBYE_SOUND` |Plays when you press the QK_BOOT key (quantum.c) | |`AG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press AG_NORM (process_magic.c) | |`AG_SWAP_SONG` | `AG_SWAP_SOUND` |Plays when you press AG_SWAP (process_magic.c) | |`CG_NORM_SONG` | `AG_NORM_SOUND` |Plays when you press CG_NORM (process_magic.c) | diff --git a/docs/flashing.md b/docs/flashing.md index 5e5dcb34e4ce..b3f055f6cb27 100644 --- a/docs/flashing.md +++ b/docs/flashing.md @@ -34,7 +34,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Press the `RESET` keycode + * Press the `QK_BOOT` keycode * Press the `RESET` button on the PCB if available * Short RST to GND quickly 2. Wait for the OS to detect the device @@ -87,7 +87,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters; some variants may require you to reset twice within 750 milliseconds): - * Press the `RESET` keycode + * Press the `QK_BOOT` keycode * Press the `RESET` button on the PCB if available * Short RST to GND quickly 2. Wait for the OS to detect the device @@ -123,7 +123,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods (you only have 7 seconds to flash once it enters): - * Press the `RESET` keycode + * Press the `QK_BOOT` keycode * Press the `RESET` button on the Teensy or PCB if available * short RST to GND quickly 2. Wait for the OS to detect the device @@ -153,7 +153,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Press the `RESET` keycode + * Press the `QK_BOOT` keycode * Keep the `BOOT` button held while quickly tapping the `RESET` button on the PCB 2. Wait for the OS to detect the device 3. Flash a .hex file @@ -182,7 +182,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode + * Tap the `QK_BOOT` keycode * Hold the salt key while plugging the keyboard in - for PS2AVRGB boards, this is usually the key connected to MCU pins A0 and B0, otherwise it will be documented in your keyboard's readme 2. Wait for the OS to detect the device 3. Flash a .hex file @@ -223,7 +223,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Press the `RESET` keycode + * Press the `QK_BOOT` keycode * Press the `RESET` button on the PCB if available * short RST to GND quickly 2. Wait for the OS to detect the device @@ -256,7 +256,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode (may not work on STM32F042 devices) + * Tap the `QK_BOOT` keycode (may not work on STM32F042 devices) * If a reset circuit is present, tap the `RESET` button on the PCB; some boards may also have a toggle switch that must be flipped * Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge 2. Wait for the OS to detect the device @@ -292,7 +292,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode + * Tap the `QK_BOOT` keycode * If a reset circuit is present, tap the `RESET` button on the PCB * Otherwise, you need to bridge `BOOT0` to VCC (via `BOOT0` button or jumper), short `RESET` to GND (via `RESET` button or jumper), and then let go of the `BOOT0` bridge 2. Wait for the OS to detect the device @@ -316,7 +316,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode + * Tap the `QK_BOOT` keycode * Press the `RESET` button on the PCB 2. Wait for the OS to detect the device 3. Flash a .bin file @@ -342,7 +342,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode + * Tap the `QK_BOOT` keycode * Double-tap the `nRST` button on the PCB. 2. Wait for the OS to detect the device 3. Copy the .uf2 file to the new USB disk @@ -353,7 +353,7 @@ or CLI Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode + * Tap the `QK_BOOT` keycode * Double-tap the `nRST` button on the PCB. 2. Wait for the OS to detect the device 3. Flash via QMK CLI eg. `qmk flash --keyboard handwired/onekey/blackpill_f411_tinyuf2 --keymap default` @@ -381,7 +381,7 @@ Compatible flashers: Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `QK_BOOTLOADER` keycode + * Tap the `QK_BOOT` keycode * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable. * Double-tap the `RESET` button on the PCB1. 2. Wait for the OS to detect the device @@ -393,7 +393,7 @@ or CLI Flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `QK_BOOTLOADER` keycode + * Tap the `QK_BOOT` keycode * Hold the `BOOTSEL` button on the PCB while plugin in the usb cable. * Double-tap the `RESET` button on the PCB1. 2. Wait for the OS to detect the device diff --git a/docs/flashing_bootloadhid.md b/docs/flashing_bootloadhid.md index 213c7c1321ac..aacf2cc2c428 100644 --- a/docs/flashing_bootloadhid.md +++ b/docs/flashing_bootloadhid.md @@ -5,7 +5,7 @@ ps2avr(GB) boards use an ATmega32A microcontroller and a different bootloader. I General flashing sequence: 1. Enter the bootloader using any of the following methods: - * Tap the `RESET` keycode (may not work on all devices) + * Tap the `QK_BOOT` keycode (may not work on all devices) * Hold the salt key while plugging the keyboard in (usually documented within keyboard readme) 2. Wait for the OS to detect the device 3. Flash a .hex file diff --git a/docs/ja/api_docs.md b/docs/ja/api_docs.md index 34ed50c4972a..96ddbb561882 100644 --- a/docs/ja/api_docs.md +++ b/docs/ja/api_docs.md @@ -21,7 +21,7 @@ "layers": [ ["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_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_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"], ["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_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"], - ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] + ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","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","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] ] } ``` diff --git a/docs/ja/faq_misc.md b/docs/ja/faq_misc.md index 38917df2eec4..24a0e18235d0 100644 --- a/docs/ja/faq_misc.md +++ b/docs/ja/faq_misc.md @@ -13,7 +13,7 @@ あなたはおそらくキーボードを「文鎮化」したくないでしょう。文鎮化するとファームウェアを書き換えられないようになります。リスクがあまりに高い(そしてそうでないかもしれない)ものの一部のリストを示します。 -- キーボードマップに RESET が含まれない場合、DFU モードに入るには、PCB のリセットボタンを押す必要があります。底部のネジを外す必要があります。 +- キーボードマップに QK_BOOT が含まれない場合、DFU モードに入るには、PCB のリセットボタンを押す必要があります。底部のネジを外す必要があります。 - tmk_core / common にあるファイルを触るとキーボードが操作不能になるかもしれません。 - .hex ファイルが大きすぎると問題を引き起こします; `make dfu` コマンドはブロックを削除し、サイズを検査し(おっと、間違った順序です!)、エラーを出力し、 キーボードへの書き込みに失敗し、DFU モードのままになります。 diff --git a/docs/ja/feature_audio.md b/docs/ja/feature_audio.md index ca7820e3c48a..2d1fd8f78a49 100644 --- a/docs/ja/feature_audio.md +++ b/docs/ja/feature_audio.md @@ -23,7 +23,7 @@ Timer 3: ``` STARTUP_SONG // キーボードの起動時に再生 (audio.c) -GOODBYE_SONG // RESET キーを押すと再生 (quantum.c) +GOODBYE_SONG // QK_BOOT キーを押すと再生 (quantum.c) AG_NORM_SONG // AG_NORM キーを押すと再生 (quantum.c) AG_SWAP_SONG // AG_SWAP キーを押すと再生 (quantum.c) CG_NORM_SONG // CG_NORM キーを押すと再生 (quantum.c) diff --git a/docs/ja/flashing.md b/docs/ja/flashing.md index 0245250cee97..ce6646d4fece 100644 --- a/docs/ja/flashing.md +++ b/docs/ja/flashing.md @@ -34,7 +34,7 @@ BOOTLOADER = atmel-dfu 書き込み手順: -1. `RESET` キーコードを押すか、RESET ボタンをタップします(または RST を GND にショートします)。 +1. `QK_BOOT` キーコードを押すか、RESET ボタンをタップします(または RST を GND にショートします)。 2. OS がデバイスを検知するのを待ちます。 3. メモリを消去します(自動的に実行されるかもしれません) 4. .hex ファイルを書き込みます @@ -94,7 +94,7 @@ BOOTLOADER = caterina 書き込み手順: -1. `RESET` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます) +1. `QK_BOOT` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます) 2. OS がデバイスを検知するのを待ちます。 3. .hex ファイルを書き込みます 4. デバイスが自動的にリセットされるのを待ちます @@ -141,7 +141,7 @@ BOOTLOADER = halfkay 書き込み手順: -1. `RESET` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます) +1. `QK_BOOT` キーコードを押すか、RST をすばやく GND にショートします (入力後7秒で書き込みます) 2. OS がデバイスを検知するのを待ちます。 3. .hex ファイルを書き込みます 4. デバイスをアプリケーションモードにリセットします(自動的に実行されるかもしれません) @@ -172,7 +172,7 @@ BOOTLOADER = USBasp 書き込み手順: -1. `RESET` キーコードを押すか、RST を GND にすばやくショートしながら、ブートピンを GND にショートしたままにします。 +1. `QK_BOOT` キーコードを押すか、RST を GND にすばやくショートしながら、ブートピンを GND にショートしたままにします。 2. OS がデバイスを検知するのを待ちます。 3. .hex ファイルを書き込みます 4. デバイスをアプリケーションモードにリセットします(自動的に実行されるかもしれません) @@ -203,7 +203,7 @@ BOOTLOADER = bootloadHID 書き込み手順: 1. 以下のいずれかの方法を使ってブートローダに入ります: - * `RESET` キーコードをタップします (全てのデバイスでは動作しないかもしれません) + * `QK_BOOT` キーコードをタップします (全てのデバイスでは動作しないかもしれません) * キーボードを接続しながらソルトキーを押し続けます (通常はキーボードの readme に書かれています) 2. OS がデバイスを検知するのを待ちます。 3. .hex ファイルを書き込みます @@ -227,7 +227,7 @@ BOOTLOADER = bootloadHID 書き込み手順: 1. 以下のいずれかの方法を使ってブートローダに入ります: - * `RESET` キーコードをタップします (STM32F042 デバイスでは動作しないかもしれません) + * `QK_BOOT` キーコードをタップします (STM32F042 デバイスでは動作しないかもしれません) * リセット回路が存在する場合、RESET ボタンをタップします * それ以外の場合は、(BOOT0 ボタンあるいはブリッジ経由で)BOOT0 を VCC にブリッジし、(REEST ボタンあるいはブリッジ経由で)RESET を GND にショートし、BOOT0 ブリッジを放す必要があります。 2. OS がデバイスを検知するのを待ちます。 diff --git a/docs/ja/flashing_bootloadhid.md b/docs/ja/flashing_bootloadhid.md index ddcd776c240d..5c67bd5f293d 100644 --- a/docs/ja/flashing_bootloadhid.md +++ b/docs/ja/flashing_bootloadhid.md @@ -10,7 +10,7 @@ ps2avr(GB) キーボードは ATmega32A マイクロコントローラを使い 一般的な書き込みシーケンス: 1. 以下のいずれかの方法を使ってブートローダに入ります: - * `RESET` キーコードをタップします (全てのデバイスでは動作しないかもしれません) + * `QK_BOOT` キーコードをタップします (全てのデバイスでは動作しないかもしれません) * ソルトキーを押し続けながらキーボードを接続します (通常はキーボードの readme に書かれています) 2. OS がデバイスを検知するのを待ちます。 3. .hex ファイルを書き込みます diff --git a/docs/ja/keycodes.md b/docs/ja/keycodes.md index c5c075bb2b6a..aa8c72237292 100644 --- a/docs/ja/keycodes.md +++ b/docs/ja/keycodes.md @@ -228,10 +228,10 @@ [Quantum キーコード](ja/quantum_keycodes.md#qmk-keycodes) も見てください。 |キー |エイリアス |説明 | -|--------------|-----------|---------------------------------------------------------| -|`RESET` | |ファームウエア書き込みのためにキーボードをブートローダーモードにします | -|`DEBUG` | |デバッグモードを切り替えます | -|`EEPROM_RESET`|`EEP_RST` |キーボードの EEPROM (不揮発メモリ) を再初期化します | +|-----------------|---------|---------------------------------------------------------| +|`QK_BOOTLOADER` |`QK_BOOT`|ファームウエア書き込みのためにキーボードをブートローダーモードにします | +|`QK_DEBUG_TOGGLE`|`DB_TOGG`|デバッグモードを切り替えます | +|`QK_CLEAR_EEPROM`|`EE_CLR` |キーボードの EEPROM (不揮発メモリ) を再初期化します | ## オーディオキー :id=audio-keys diff --git a/docs/ja/quantum_keycodes.md b/docs/ja/quantum_keycodes.md index ffcc49446096..0795520c6e3d 100644 --- a/docs/ja/quantum_keycodes.md +++ b/docs/ja/quantum_keycodes.md @@ -14,7 +14,7 @@ quantum 内の全てのキーコードは `0x0000` と `0xFFFF` の間の数値 ## QMK キーコード :id=qmk-keycodes | キー | エイリアス | 説明 | -|----------------|------------|--------------------------------------------------------| -| `RESET` | | 書き込みのために、キーボードを bootloader モードにする | -| `DEBUG` | | デバッグモードの切り替え | -| `EEPROM_RESET` | `EEP_RST` | キーボードの EEPROM (永続化メモリ) を再初期化する | +|-----------------|---------|--------------------------------------------------------| +|`QK_BOOTLOADER` |`QK_BOOT`| 書き込みのために、キーボードを bootloader モードにする | +|`QK_DEBUG_TOGGLE`|`DB_TOGG`| デバッグモードの切り替え | +|`QK_CLEAR_EEPROM`|`EE_CLR` | キーボードの EEPROM (永続化メモリ) を再初期化する | diff --git a/docs/platformdev_chibios_earlyinit.md b/docs/platformdev_chibios_earlyinit.md index e1256f27144e..bc4924722271 100644 --- a/docs/platformdev_chibios_earlyinit.md +++ b/docs/platformdev_chibios_earlyinit.md @@ -12,7 +12,7 @@ The function `early_hardware_init_pre` is the earliest possible code that can be This is executed before RAM gets cleared, and before clocks or GPIOs are configured; for example, ChibiOS delays are not likely to work at this point. After executing this function, RAM on the MCU may be zero'ed. Assigning values to variables during execution of this function may be overwritten. -As such, if you wish to override this API consider limiting use to writing to low-level registers. The default implementation of this function can be configured to jump to bootloader if a `RESET` key was pressed: +As such, if you wish to override this API consider limiting use to writing to low-level registers. The default implementation of this function can be configured to jump to bootloader if a `QK_BOOT` key was pressed: | `config.h` override | Description | Default | |-----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------| diff --git a/docs/zh-cn/api_docs.md b/docs/zh-cn/api_docs.md index a2df9ec20ad2..b853a1bca50f 100644 --- a/docs/zh-cn/api_docs.md +++ b/docs/zh-cn/api_docs.md @@ -21,7 +21,7 @@ "layers": [ ["KC_GRV","KC_1","KC_2","KC_3","KC_4","KC_5","KC_6","KC_7","KC_8","KC_9","KC_0","KC_MINS","KC_EQL","KC_GRV","KC_BSPC","KC_PGUP","KC_TAB","KC_Q","KC_W","KC_E","KC_R","KC_T","KC_Y","KC_U","KC_I","KC_O","KC_P","KC_LBRC","KC_RBRC","KC_BSLS","KC_PGDN","KC_CAPS","KC_A","KC_S","KC_D","KC_F","KC_G","KC_H","KC_J","KC_K","KC_L","KC_SCLN","KC_QUOT","KC_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_RO","KC_RSFT","KC_UP","KC_LCTL","KC_LGUI","KC_LALT","KC_MHEN","KC_SPC","KC_SPC","KC_HENK","KC_RALT","KC_RCTL","MO(1)","KC_LEFT","KC_DOWN","KC_RIGHT"], ["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_TRNS","KC_DEL","BL_STEP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","_______","KC_TRNS","KC_PSCR","KC_SLCK","KC_PAUS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_PGUP","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_LEFT","KC_PGDN","KC_RGHT"], - ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","RESET","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] + ["KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","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","MO(2)","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","KC_TRNS","MO(1)","KC_TRNS","KC_TRNS","KC_TRNS"] ] } ``` diff --git a/docs/zh-cn/configurator_default_keymaps.md b/docs/zh-cn/configurator_default_keymaps.md index 135029b7e258..82e4ca818dbd 100644 --- a/docs/zh-cn/configurator_default_keymaps.md +++ b/docs/zh-cn/configurator_default_keymaps.md @@ -61,7 +61,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_all( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD, + 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_MPLY, KC_MNXT, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), @@ -89,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DEC", "BL_INC", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU", - "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RESET", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD", + "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_MPLY", "KC_MNXT", "KC_VOLD", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "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/docs/zh-cn/flashing.md b/docs/zh-cn/flashing.md index 5833cd38fa6d..559b8742d037 100644 --- a/docs/zh-cn/flashing.md +++ b/docs/zh-cn/flashing.md @@ -34,7 +34,7 @@ BOOTLOADER = atmel-dfu 刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 如果PCB上有 `RESET` 键,点击之 * 快速短接一下RST到GND 2. 等待操作系统识别到设备 @@ -84,7 +84,7 @@ BOOTLOADER = caterina 刷写过程: 1. 使用如下任一方式进入bootloader模式(进入该模式后只有7秒时间可以刷写;一些型号需要你在750ms内重置两次): - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 如果PCB上有 `RESET` 键,点击之 * 快速短接一下RST到GND 2. 等待操作系统识别到设备 @@ -117,7 +117,7 @@ BOOTLOADER = halfkay 刷写过程: 1. 使用如下任一方式进入bootloader模式(进入该模式后只有7秒时间可以刷写): - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 如果Teensy上或PCB上有 `RESET` 键,点击之 * 快速短接一下RST到GND 2. 等待操作系统识别到设备 @@ -144,7 +144,7 @@ BOOTLOADER = usbasploader 刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 在按住 `BOOT` 按钮时,快速点击一下PCB上的 `RESET` 2. 等待操作系统识别到设备 3. 将.hex文件刷写进去 @@ -171,7 +171,7 @@ BOOTLOADER = bootloadhid 刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 在按住“盐键”(salt key)时插入键盘 - 在PS2AVRGB板上,通常在MCU的A0及B0引脚上有这个按键,否则请查看键盘的使用说明。 2. 等待操作系统识别到设备 3. 将.hex文件刷写进去 @@ -212,7 +212,7 @@ BOOTLOADER = qmk-hid 刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 如果PCB上有 `RESET` 键,点击之 * 快速短接一下RST到GND 2. 等待操作系统识别到设备 @@ -242,7 +242,7 @@ BOOTLOADER = stm32-dfu 刷写过程: 1. 使用如下任一方式进入bootloader模式(进入该模式后只有7秒时间可以刷写): - * 点击 `RESET` 键码(对STM32F042设备可能无效) + * 点击 `QK_BOOT` 键码(对STM32F042设备可能无效) * 如果有重置电路,点击PCB上的 `RESET` 键;有些主控板上可能会有一个开关需要先打开 * 否则,你需要将 `BOOT0` 接线到VCC(通过 `BOOT0` 按钮或跳线),短接 `RESET` 至GND(通过 `RESET` 按钮或条线),然后断开 `BOOT0` 的接线。 2. 等待操作系统识别到设备 @@ -275,7 +275,7 @@ BOOTLOADER = stm32duino 刷写过程: 1. 使用如下任一方式进入bootloader模式(进入该模式后只有7秒时间可以刷写): - * 点击 `RESET` 键码(对STM32F042设备可能无效) + * 点击 `QK_BOOT` 键码(对STM32F042设备可能无效) * 如果有重置电路,点击PCB上的 `RESET` 键;有些主控板上可能会有一个开关需要先打开 * 否则,你需要将 `BOOT0` 接线到VCC(通过 `BOOT0` 按钮或跳线),短接 `RESET` 至GND(通过 `RESET` 按钮或条线),然后断开 `BOOT0` 的接线。 2. 等待操作系统识别到设备 @@ -296,7 +296,7 @@ Input Club出品的键盘使用NXP Kinetis微控制器而非STM32,并使用了 刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码(有可能只能进入到“安全”bootloader模式,参见[这里](https://github.com/qmk/qmk_firmware/issues/6112)) + * 点击 `QK_BOOT` 键码(有可能只能进入到“安全”bootloader模式,参见[这里](https://github.com/qmk/qmk_firmware/issues/6112)) * 如果PCB上有 `RESET` 键,点击之 2. 等待操作系统识别到设备 3. 将.bin文件刷写进去 @@ -322,7 +322,7 @@ BOOTLOADER = tinyuf2 刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码 + * 点击 `QK_BOOT` 键码 * 双击PCB上的 `nRST` 键 2. 等待操作系统识别到设备 3. 将.uf2文件拷贝到新出现的USB存储设备上 diff --git a/docs/zh-cn/flashing_bootloadhid.md b/docs/zh-cn/flashing_bootloadhid.md index 70139c1e1258..c5e944f94779 100644 --- a/docs/zh-cn/flashing_bootloadhid.md +++ b/docs/zh-cn/flashing_bootloadhid.md @@ -10,7 +10,7 @@ ps2avr(GB)基于一片ATmega32A微控制器及特殊的bootloader,无法使用 常规刷写过程: 1. 使用如下任一方式进入bootloader模式: - * 点击 `RESET` 键码(一些设备上不管用) + * 点击 `QK_BOOT` 键码(一些设备上不管用) * 在按住“盐键”(salt key)时插入键盘(该键一般会在键盘使用说明上写明) 2. 等待操作系统识别到设备 3. 将.hex文件刷写进去 From 3fbc3ac8ad9fbd08a26da46ef09482570839ebb4 Mon Sep 17 00:00:00 2001 From: Drew Hamilton Date: Thu, 15 Sep 2022 09:04:40 +0900 Subject: [PATCH 13/28] [Keyboard] Add a new keyboard 'plum47' (#18359) --- keyboards/plum47/info.json | 80 ++++++++++++++++++++ keyboards/plum47/keymaps/default/keymap.c | 84 +++++++++++++++++++++ keyboards/plum47/keymaps/via/keymap.c | 92 +++++++++++++++++++++++ keyboards/plum47/keymaps/via/rules.mk | 1 + keyboards/plum47/readme.md | 28 +++++++ keyboards/plum47/rules.mk | 1 + 6 files changed, 286 insertions(+) create mode 100644 keyboards/plum47/info.json create mode 100644 keyboards/plum47/keymaps/default/keymap.c create mode 100644 keyboards/plum47/keymaps/via/keymap.c create mode 100644 keyboards/plum47/keymaps/via/rules.mk create mode 100644 keyboards/plum47/readme.md create mode 100644 keyboards/plum47/rules.mk diff --git a/keyboards/plum47/info.json b/keyboards/plum47/info.json new file mode 100644 index 000000000000..9ad37d176804 --- /dev/null +++ b/keyboards/plum47/info.json @@ -0,0 +1,80 @@ +{ + "manufacturer": "Masayuki Takagi", + "keyboard_name": "plum47", + "maintainer": "awh-tokyo", + "bootloader": "caterina", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "B5", "B4", "E6", "D7"], + "rows": ["D1", "D0", "D4", "C6"] + }, + "processor": "atmega32u4", + "url": "ihttps://github.com/takagi/plum47_buildguide", + "usb": { + "device_version": "1.0.0", + "pid": "0x5E14", + "vid": "0xFEED" + }, + "debounce": 5, + "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": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "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": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3, "w": 2 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] + } + } +} diff --git a/keyboards/plum47/keymaps/default/keymap.c b/keyboards/plum47/keymaps/default/keymap.c new file mode 100644 index 000000000000..dc6642d7f175 --- /dev/null +++ b/keyboards/plum47/keymaps/default/keymap.c @@ -0,0 +1,84 @@ +/* Copyright 2020 Masayuki Takagi + * + * 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 { + _QWERTY = 0, + _LOWER, + _RAISE +}; + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT( + 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_ESC, 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_ENT , + KC_NO, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +) + +}; + diff --git a/keyboards/plum47/keymaps/via/keymap.c b/keyboards/plum47/keymaps/via/keymap.c new file mode 100644 index 000000000000..8927fa4f7610 --- /dev/null +++ b/keyboards/plum47/keymaps/via/keymap.c @@ -0,0 +1,92 @@ +/* Copyright 2020 Masayuki Takagi + * + * 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 { + _QWERTY = 0, + _LOWER, + _RAISE, + _BLANK +}; + +#define LOWER FN_MO13 +#define RAISE FN_MO23 + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT( + 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_ESC, 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_ENT , + KC_NO, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_LOWER] = LAYOUT( + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +/* Raise + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 | | |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ +[_RAISE] = LAYOUT( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY +), + +// Blank layer because via needs 4 by default +[_BLANK] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) +}; + diff --git a/keyboards/plum47/keymaps/via/rules.mk b/keyboards/plum47/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/plum47/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/plum47/readme.md b/keyboards/plum47/readme.md new file mode 100644 index 000000000000..7e8745249c15 --- /dev/null +++ b/keyboards/plum47/readme.md @@ -0,0 +1,28 @@ +# plum47 + +![plum47](https://i.imgur.com/t3rjsWIh.png) + +Plum47 is a 4-row, 12-column (47 key) ortholinear keyboard sold domestically in Japan as a +home build kit. It features MX sockets for hot-swap keyswitch support, and a bezel-less +acrylic sandwich case. The controller is a Pro Micro. + +* Keyboard Developer: [Masayuki Takagi](https://github.com/takagi) +* Keyboard submitted by [Andrew Hamilton](https://github.com/awh-tokyo) +* Hardware Supported: plum47 keyboard kit including PCB and Pro Micro controller +* Hardware Availability: https://shop.yushakobo.jp/products/consign_plum47 + +Make example for this keyboard (after setting up your build environment): + + make plum47:default + +Flashing example for this keyboard: + + make plum47: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 as follows: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard diff --git a/keyboards/plum47/rules.mk b/keyboards/plum47/rules.mk new file mode 100644 index 000000000000..6e7633bfe015 --- /dev/null +++ b/keyboards/plum47/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From f483520ff9b66cebacf880c4b079b2c490a7e80a Mon Sep 17 00:00:00 2001 From: ENDO Katsuhiro Date: Thu, 15 Sep 2022 09:14:19 +0900 Subject: [PATCH 14/28] Fix problem that Chidori is not recognized by host computer. (#17882) --- keyboards/kagizaraya/chidori/config.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/keyboards/kagizaraya/chidori/config.h b/keyboards/kagizaraya/chidori/config.h index 90de362e8b51..cf9c38b64fd1 100644 --- a/keyboards/kagizaraya/chidori/config.h +++ b/keyboards/kagizaraya/chidori/config.h @@ -152,3 +152,11 @@ along with this program. If not, see . /* Bootmagic Lite key configuration */ // #define BOOTMAGIC_LITE_ROW 0 // #define BOOTMAGIC_LITE_COLUMN 0 + +/* USB config */ +#define USB_MAX_POWER_CONSUMPTION 100 +#define USB_COUNT_SOF 0 +#define USB_INTR_CFG_SET (1 << ISC01) +#define USB_INTR_ENABLE_BIT INT0 +#define USB_INTR_PENDING_BIT INTF0 +#define USB_INTR_VECTOR INT0_vect From 56bad5d357d0d670a64db12107e9d687e566e759 Mon Sep 17 00:00:00 2001 From: Vino Rodrigues <366673+vinorodrigues@users.noreply.github.com> Date: Thu, 15 Sep 2022 16:52:38 +1000 Subject: [PATCH 15/28] [Keyboard] Removal of deprecated defines in IDOBAO keyboards (#18358) --- keyboards/idobao/id42/config.h | 1 - keyboards/idobao/id75/v1/config.h | 21 ++++++++++++++++----- keyboards/idobao/id80/v2/config.h | 24 ++++++++++++------------ keyboards/idobao/id87/v1/config.h | 21 ++++++++++++++++----- keyboards/idobao/montex/v1/config.h | 23 ++++++++++++++++------- keyboards/idobao/montex/v2/config.h | 1 - 6 files changed, 60 insertions(+), 31 deletions(-) diff --git a/keyboards/idobao/id42/config.h b/keyboards/idobao/id42/config.h index ca26f503c06f..a95578a9b365 100755 --- a/keyboards/idobao/id42/config.h +++ b/keyboards/idobao/id42/config.h @@ -14,7 +14,6 @@ /* Change the USB polling rate [default = 1000Hz (1ms)] and * use larger value of keys per scan for elite games */ #define USB_POLLING_INTERVAL_MS 2 // 500Hz -#define QMK_KEYS_PER_SCAN 12 /* LED Matrix & Animations */ #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id75/v1/config.h b/keyboards/idobao/id75/v1/config.h index 8671bbcd750e..0bb05a810c13 100644 --- a/keyboards/idobao/id75/v1/config.h +++ b/keyboards/idobao/id75/v1/config.h @@ -45,11 +45,22 @@ along with this program. If not, see . #define RGB_DI_PIN F0 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 16 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 + // 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 + + #define RGBLED_NUM 16 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 #endif /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ diff --git a/keyboards/idobao/id80/v2/config.h b/keyboards/idobao/id80/v2/config.h index 02bc0f68091b..a007cff40cef 100644 --- a/keyboards/idobao/id80/v2/config.h +++ b/keyboards/idobao/id80/v2/config.h @@ -70,18 +70,18 @@ along with this program. If not, see . #define RGBLIGHT_VAL_STEP 8 #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */ #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */ -/*== all animations enable ==*/ - #define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ -// #define RGBLIGHT_EFFECT_BREATHING -// #define RGBLIGHT_EFFECT_RAINBOW_MOOD -// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL -// #define RGBLIGHT_EFFECT_SNAKE -// #define RGBLIGHT_EFFECT_KNIGHT -// #define RGBLIGHT_EFFECT_CHRISTMAS -// #define RGBLIGHT_EFFECT_STATIC_GRADIENT -// #define RGBLIGHT_EFFECT_RGB_TEST -// #define RGBLIGHT_EFFECT_ALTERNATING + + // 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 #endif /* Bootmagic Lite key configuration: use the Esc key */ diff --git a/keyboards/idobao/id87/v1/config.h b/keyboards/idobao/id87/v1/config.h index 3d60f14f1e9a..6c2d6fc9ce53 100644 --- a/keyboards/idobao/id87/v1/config.h +++ b/keyboards/idobao/id87/v1/config.h @@ -50,9 +50,20 @@ along with this program. If not, see . #define RGB_DI_PIN E2 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 22 /* 16 Bottom 6 top*/ -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 + // 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 + + #define RGBLED_NUM 22 /* 16 Bottom 6 top*/ + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 #endif diff --git a/keyboards/idobao/montex/v1/config.h b/keyboards/idobao/montex/v1/config.h index 6cd45b2598f6..fe1ea61d3535 100644 --- a/keyboards/idobao/montex/v1/config.h +++ b/keyboards/idobao/montex/v1/config.h @@ -44,13 +44,22 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE - - #define RGB_DI_PIN B1 #ifdef RGB_DI_PIN -#define RGBLIGHT_ANIMATIONS -#define RGBLED_NUM 4 -#define RGBLIGHT_HUE_STEP 8 -#define RGBLIGHT_SAT_STEP 8 -#define RGBLIGHT_VAL_STEP 8 + // 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 + + #define RGBLED_NUM 4 + #define RGBLIGHT_HUE_STEP 8 + #define RGBLIGHT_SAT_STEP 8 + #define RGBLIGHT_VAL_STEP 8 #endif diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h index 47d43ca458a6..98ba567203d3 100755 --- a/keyboards/idobao/montex/v2/config.h +++ b/keyboards/idobao/montex/v2/config.h @@ -15,7 +15,6 @@ #define DRIVER_LED_TOTAL 27 // -4 disabled underglow LEDs #endif - // #define RGBLIGHT_ANIMATIONS // don't use, please explicitly define // #define RGB_MATRIX_FRAMEBUFFER_EFFECTS // don't use, too few key to make it look good #define RGB_MATRIX_KEYPRESSES From 57c35bd8177d975f3a62505e51d531d1f4587215 Mon Sep 17 00:00:00 2001 From: ziptyze Date: Thu, 15 Sep 2022 14:16:58 -0400 Subject: [PATCH 16/28] [Keyboard] Add pi40 (#18207) Co-authored-by: Joel Challis Co-authored-by: Ryan --- keyboards/1upkeyboards/pi40/config.h | 99 ++++++ keyboards/1upkeyboards/pi40/halconf.h | 7 + keyboards/1upkeyboards/pi40/info.json | 115 +++++++ .../pi40/keymaps/default/keymap.c | 124 +++++++ .../pi40/keymaps/default/rules.mk | 1 + .../1upkeyboards/pi40/keymaps/via/keymap.c | 268 +++++++++++++++ .../1upkeyboards/pi40/keymaps/via/rules.mk | 4 + keyboards/1upkeyboards/pi40/lib/glcdfont.c | 231 +++++++++++++ keyboards/1upkeyboards/pi40/mcuconf.h | 10 + keyboards/1upkeyboards/pi40/pi40.c | 312 ++++++++++++++++++ keyboards/1upkeyboards/pi40/readme.md | 38 +++ keyboards/1upkeyboards/pi40/rules.mk | 26 ++ 12 files changed, 1235 insertions(+) create mode 100644 keyboards/1upkeyboards/pi40/config.h create mode 100644 keyboards/1upkeyboards/pi40/halconf.h create mode 100644 keyboards/1upkeyboards/pi40/info.json create mode 100644 keyboards/1upkeyboards/pi40/keymaps/default/keymap.c create mode 100644 keyboards/1upkeyboards/pi40/keymaps/default/rules.mk create mode 100644 keyboards/1upkeyboards/pi40/keymaps/via/keymap.c create mode 100644 keyboards/1upkeyboards/pi40/keymaps/via/rules.mk create mode 100644 keyboards/1upkeyboards/pi40/lib/glcdfont.c create mode 100644 keyboards/1upkeyboards/pi40/mcuconf.h create mode 100644 keyboards/1upkeyboards/pi40/pi40.c create mode 100644 keyboards/1upkeyboards/pi40/readme.md create mode 100644 keyboards/1upkeyboards/pi40/rules.mk diff --git a/keyboards/1upkeyboards/pi40/config.h b/keyboards/1upkeyboards/pi40/config.h new file mode 100644 index 000000000000..5bda238430fa --- /dev/null +++ b/keyboards/1upkeyboards/pi40/config.h @@ -0,0 +1,99 @@ +// Copyright 2022 ziptyze (@ziptyze) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +#define DYNAMIC_KEYMAP_LAYER_COUNT 10 + +#ifdef OLED_ENABLE +# define OLED_DISPLAY_128X32 +#define I2C1_SCL_PIN GP17 +#define I2C1_SDA_PIN GP16 +#define I2C_DRIVER I2CD1 +#define OLED_BRIGHTNESS 128 +#define OLED_FONT_H "keyboards/1upkeyboards/pi40/lib/glcdfont.c" +#endif + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 12 + +#define DIODE_DIRECTION COL2ROW + +#define MATRIX_ROW_PINS { GP21, GP20, GP19, GP18 } +#define MATRIX_COL_PINS { GP1, GP2, GP3, GP4, GP5, GP6, GP7, GP8, GP9, GP10, GP11, GP12 } + +#define ENCODERS_PAD_A { GP14 } +#define ENCODERS_PAD_B { GP13 } + +#define RGB_DI_PIN GP0 +#define DRIVER_LED_TOTAL 47 +#define RGBLED_NUM 47 +# define RGB_MATRIX_KEYPRESSES // reacts to keypresses +# define RGB_MATRIX_FRAMEBUFFER_EFFECTS +# define RGBLIGHT_LIMIT_VAL 150 +#ifdef RGB_MATRIX_ENABLE +# define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended +# define RGB_MATRIX_MAXIMUM_BRIGHTNESS 150 +// RGB Matrix Animation modes. Explicitly enabled +// For full list of effects, see: +// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects +# define ENABLE_RGB_MATRIX_ALPHAS_MODS +# define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +# define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_BREATHING +# define ENABLE_RGB_MATRIX_BAND_SAT +# define ENABLE_RGB_MATRIX_BAND_VAL +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +# define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +# define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +# define ENABLE_RGB_MATRIX_CYCLE_ALL +# define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +# define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +# define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN +# define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +# define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +# define ENABLE_RGB_MATRIX_CYCLE_SPIRAL +# define ENABLE_RGB_MATRIX_DUAL_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_BEACON +# define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +# define ENABLE_RGB_MATRIX_RAINDROPS +# define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +# define ENABLE_RGB_MATRIX_HUE_BREATHING +# define ENABLE_RGB_MATRIX_HUE_PENDULUM +# define ENABLE_RGB_MATRIX_HUE_WAVE +# define ENABLE_RGB_MATRIX_PIXEL_RAIN +# define ENABLE_RGB_MATRIX_PIXEL_FLOW +# define ENABLE_RGB_MATRIX_PIXEL_FRACTAL +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +# define ENABLE_RGB_MATRIX_TYPING_HEATMAP +# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +# define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +# define ENABLE_RGB_MATRIX_SPLASH +# define ENABLE_RGB_MATRIX_MULTISPLASH +# define ENABLE_RGB_MATRIX_SOLID_SPLASH +# define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH +#endif + +#define DEBOUNCE 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +#define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +#define LOCKING_RESYNC_ENABLE + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/halconf.h b/keyboards/1upkeyboards/pi40/halconf.h new file mode 100644 index 000000000000..39fbe3e88c26 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/halconf.h @@ -0,0 +1,7 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define HAL_USE_I2C TRUE + +#include_next \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/info.json b/keyboards/1upkeyboards/pi40/info.json new file mode 100644 index 000000000000..69f95e3be3a6 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/info.json @@ -0,0 +1,115 @@ +{ + "keyboard_name": "pi40", + "manufacturer": "1upkeyboards", + "usb": { + "vid": "0x6F75", + "pid": "0x5600", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT": { + "layout": [ + { "matrix": [3, 6], "x": 11, "y": 0 }, + { "matrix": [0, 0], "x": 0, "y": 1 }, + { "matrix": [0, 1], "x": 1, "y": 1 }, + { "matrix": [0, 2], "x": 2, "y": 1 }, + { "matrix": [0, 3], "x": 3, "y": 1 }, + { "matrix": [0, 4], "x": 4, "y": 1 }, + { "matrix": [0, 5], "x": 5, "y": 1 }, + { "matrix": [0, 6], "x": 6, "y": 1 }, + { "matrix": [0, 7], "x": 7, "y": 1 }, + { "matrix": [0, 8], "x": 8, "y": 1 }, + { "matrix": [0, 9], "x": 9, "y": 1 }, + { "matrix": [0, 10], "x": 10, "y": 1 }, + { "matrix": [0, 11], "x": 11, "y": 1 }, + { "matrix": [1, 0], "x": 0, "y": 2 }, + { "matrix": [1, 1], "x": 1, "y": 2 }, + { "matrix": [1, 2], "x": 2, "y": 2 }, + { "matrix": [1, 3], "x": 3, "y": 2 }, + { "matrix": [1, 4], "x": 4, "y": 2 }, + { "matrix": [1, 5], "x": 5, "y": 2 }, + { "matrix": [1, 6], "x": 6, "y": 2 }, + { "matrix": [1, 7], "x": 7, "y": 2 }, + { "matrix": [1, 8], "x": 8, "y": 2 }, + { "matrix": [1, 9], "x": 9, "y": 2 }, + { "matrix": [1, 10], "x": 10, "y": 2 }, + { "matrix": [1, 11], "x": 11, "y": 2 }, + { "matrix": [2, 0], "x": 0, "y": 3 }, + { "matrix": [2, 1], "x": 1, "y": 3 }, + { "matrix": [2, 2], "x": 2, "y": 3 }, + { "matrix": [2, 3], "x": 3, "y": 3 }, + { "matrix": [2, 4], "x": 4, "y": 3 }, + { "matrix": [2, 5], "x": 5, "y": 3 }, + { "matrix": [2, 6], "x": 6, "y": 3 }, + { "matrix": [2, 7], "x": 7, "y": 3 }, + { "matrix": [2, 8], "x": 8, "y": 3 }, + { "matrix": [2, 9], "x": 9, "y": 3 }, + { "matrix": [2, 10], "x": 10, "y": 3 }, + { "matrix": [2, 11], "x": 11, "y": 3 }, + { "matrix": [3, 0], "x": 0, "y": 4 }, + { "matrix": [3, 1], "x": 1, "y": 4 }, + { "matrix": [3, 2], "x": 2, "y": 4 }, + { "matrix": [3, 3], "x": 3, "y": 4 }, + { "matrix": [3, 4], "x": 4, "y": 4 }, + { "matrix": [3, 5], "x": 5, "y": 4, "w": 2}, + { "matrix": [3, 7], "x": 7, "y": 4 }, + { "matrix": [3, 8], "x": 8, "y": 4 }, + { "matrix": [3, 9], "x": 9, "y": 4 }, + { "matrix": [3, 10], "x": 10, "y": 4 }, + { "matrix": [3, 11], "x": 11, "y": 4 } + ] + }, + "LAYOUT_ortho_4x12": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, + { "matrix": [0, 1], "x": 1, "y": 0 }, + { "matrix": [0, 2], "x": 2, "y": 0 }, + { "matrix": [0, 3], "x": 3, "y": 0 }, + { "matrix": [0, 4], "x": 4, "y": 0 }, + { "matrix": [0, 5], "x": 5, "y": 0 }, + { "matrix": [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": [1, 0], "x": 0, "y": 1 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "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": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3, "label": "ENC" }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c new file mode 100644 index 000000000000..e417828f72b3 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/keymaps/default/keymap.c @@ -0,0 +1,124 @@ +/* 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 + +enum layer_names { + _ONE = 0, + _TWO, + _THREE, + _FOUR +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ╱⎺⎺⎺⎺╲ + * |RGBTOG| + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_ONE] = LAYOUT ( + RGB_TOG, + 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_ESC, 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_ENT , + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ╱⎺⎺⎺⎺╲ + * | MUTE | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_TWO] = LAYOUT ( + KC_MUTE, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ╱⎺⎺⎺⎺╲ + * | MUTE | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | Mute | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_THREE] = LAYOUT ( + KC_MUTE, + 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ╱⎺⎺⎺⎺╲ + * | MUTE | + * v-----------------------RGB CONTROL------------------v ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | Mute | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_FOUR] = LAYOUT ( + KC_MUTE, + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, + [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } +}; +#endif diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk new file mode 100644 index 000000000000..a40474b4d5c7 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/keymaps/via/keymap.c b/keyboards/1upkeyboards/pi40/keymaps/via/keymap.c new file mode 100644 index 000000000000..48c201f0a374 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/keymaps/via/keymap.c @@ -0,0 +1,268 @@ +/* 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 + +enum layer_names { + _ONE = 0, + _TWO, + _THREE, + _FOUR, + _FIVE, + _SIX, + _SEVEN, + _EIGHT, + _NINE, + _TEN +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* Qwerty + * ╱⎺⎺⎺⎺╲ + * |RGBTOG| + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Esc | A | S | D | F | G | H | J | K | L | ; | ' | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |Enter | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |Adjust| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ + [_ONE] = LAYOUT ( + RGB_TOG, + 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_ESC, 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_ENT , + MO(3), KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT + ), + + /* Lower + * ╱⎺⎺⎺⎺╲ + * | MUTE | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_TWO] = LAYOUT ( + KC_MUTE, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Raise + * ╱⎺⎺⎺⎺╲ + * | MUTE | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | Mute | | Next | Vol- | Vol+ | Play | + * `-----------------------------------------------------------------------------------' + */ + [_THREE] = LAYOUT ( + KC_MUTE, + 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_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, + _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______, + _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY + ), + + /* Adjust (Lower + Raise) + * ╱⎺⎺⎺⎺╲ + * | MUTE | + * v-----------------------RGB CONTROL------------------v ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | Reset|Debug | RGB |RGBMOD| HUE+ | HUE- | SAT+ | SAT- |BRGTH+|BRGTH-| Del | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | Mute | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_FOUR] = LAYOUT ( + KC_MUTE, + _______, QK_BOOT, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL , + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Placeholder + * ╱⎺⎺⎺⎺╲ + * | | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_FIVE] = LAYOUT ( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Placeholder + * ╱⎺⎺⎺⎺╲ + * | | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_SIX] = LAYOUT ( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Placeholder + * ╱⎺⎺⎺⎺╲ + * | | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_SEVEN] = LAYOUT ( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Placeholder + * ╱⎺⎺⎺⎺╲ + * | | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_EIGHT] = LAYOUT ( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Placeholder + * ╱⎺⎺⎺⎺╲ + * | | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_NINE] = LAYOUT ( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + /* Placeholder + * ╱⎺⎺⎺⎺╲ + * | | + * ╲⎽⎽⎽⎽╱ + * ,-----------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | | | | | | | | | | | | | + * `-----------------------------------------------------------------------------------' + */ + [_TEN] = LAYOUT ( + _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_ONE] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD) }, + [_TWO] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_THREE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FOUR] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [_FIVE] = { ENCODER_CCW_CW(_______, _______) }, + [_SIX] = { ENCODER_CCW_CW(_______, _______) }, + [_SEVEN] = { ENCODER_CCW_CW(_______, _______) }, + [_EIGHT] = { ENCODER_CCW_CW(_______, _______) }, + [_NINE] = { ENCODER_CCW_CW(_______, _______) }, + [_TEN] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/1upkeyboards/pi40/keymaps/via/rules.mk b/keyboards/1upkeyboards/pi40/keymaps/via/rules.mk new file mode 100644 index 000000000000..bf70b1f3e09f --- /dev/null +++ b/keyboards/1upkeyboards/pi40/keymaps/via/rules.mk @@ -0,0 +1,4 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes + +ENCODER_MAP_ENABLE = yes \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/lib/glcdfont.c b/keyboards/1upkeyboards/pi40/lib/glcdfont.c new file mode 100644 index 000000000000..4b354756b609 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/lib/glcdfont.c @@ -0,0 +1,231 @@ +// Copyright 2022 @filterpaper +// SPDX-License-Identifier: GPL-2.0+ + +#include "progmem.h" + +static const unsigned char PROGMEM font[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, + 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, + 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, + 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xE0, 0x18, 0x02, + 0x00, 0x3C, 0x1E, 0x06, 0x0E, 0x0A, + 0x1A, 0x0E, 0x26, 0xFF, 0xBF, 0x0D, + 0x00, 0x80, 0x80, 0x81, 0xFF, 0xFE, + 0xF8, 0x01, 0x01, 0x03, 0x03, 0x03, + 0x03, 0x05, 0x05, 0x02, 0x02, 0x0A, + 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, + 0x0C, 0x04, 0x10, 0x18, 0x20, 0xC0, + 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xD0, 0x58, 0x78, + 0x68, 0x2C, 0x24, 0x34, 0xF4, 0xF4, + 0x3C, 0x3C, 0xFC, 0xF8, 0xF8, 0x70, + 0xF0, 0xE0, 0xE0, 0xC0, 0xC0, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xC0, 0x7C, 0x07, 0x80, 0xE0, + 0x60, 0x64, 0xE2, 0x60, 0x10, 0x10, + 0x20, 0x22, 0x12, 0x17, 0x3F, 0x0B, + 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, + 0x6F, 0xFC, 0xE0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, + 0x60, 0x60, 0x70, 0x70, 0xF0, 0xF0, + 0xD0, 0xD0, 0xD0, 0xD0, 0x50, 0x50, + 0x50, 0x70, 0x78, 0x78, 0x78, 0x7C, + 0x7F, 0x7D, 0x7C, 0x5E, 0x4F, 0x44, + 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x38, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x58, 0x46, 0x47, 0x41, + 0x41, 0x01, 0x01, 0x03, 0x03, 0x42, + 0x42, 0x42, 0x46, 0x46, 0x46, 0x46, + 0x42, 0x43, 0x43, 0x73, 0x77, 0x72, + 0x70, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x61, 0x67, 0x6F, 0x7E, 0x78, + 0x78, 0x70, 0x70, 0x70, 0x70, 0x70, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, + 0x40, 0x40, 0x40, 0x48, 0x58, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +}; diff --git a/keyboards/1upkeyboards/pi40/mcuconf.h b/keyboards/1upkeyboards/pi40/mcuconf.h new file mode 100644 index 000000000000..df94cb034606 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2022 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef RP_I2C_USE_I2C0 +#undef RP_I2C_USE_I2C1 +#define RP_I2C_USE_I2C0 TRUE +#define RP_I2C_USE_I2C1 FALSE \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/pi40.c b/keyboards/1upkeyboards/pi40/pi40.c new file mode 100644 index 000000000000..8e2fc4c3d3ec --- /dev/null +++ b/keyboards/1upkeyboards/pi40/pi40.c @@ -0,0 +1,312 @@ +/* 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 "quantum.h" + +#ifdef OLED_ENABLE + +static uint32_t oled_logo_timer = 0; +static bool clear_logo = true; +static const char PROGMEM my_logo[] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x1f, 0xff, 0xff, 0xff, 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, + 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xfb, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xff, + 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }; + +#endif + +#ifdef RGB_MATRIX_ENABLE +led_config_t g_led_config = { { + // Key Matrix to LED Index + { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, + { 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, + { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 }, + { 46, 45, 44, 43, 42, 41, NO_LED, 40, 39, 38, 37, 36 } +}, { + // LED Index to Physical Position + { 9, 8 }, { 28, 8 }, { 46, 8 }, { 65, 8 }, { 84, 8 }, { 102, 8 }, { 121, 8 }, { 140, 8 }, { 159, 8 }, { 177, 8 }, { 196, 8 }, { 215, 8 }, + { 215, 24 }, { 196, 24 }, { 177, 24 }, { 159, 24 }, { 140, 24 }, { 121, 24 }, { 102, 24 }, { 84, 24 }, { 65, 24 }, { 46, 24 }, { 28, 24 }, { 9, 24 }, + { 9, 40 }, { 28, 40 }, { 46, 40 }, { 65, 40 }, { 84, 40 }, { 102, 40 }, { 121, 40 }, { 140, 40 }, { 159, 40 }, { 177, 40 }, { 196, 40 }, { 215, 40 }, + { 215, 56 }, { 196, 56 }, { 177, 56 }, { 159, 56 }, { 140, 56 }, { 112, 56 }, { 84, 56 }, { 65, 56 }, { 46, 56 }, { 28, 56 }, { 9, 56 } +}, { + // LED Index to Flag + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, +} }; +#endif + +#ifdef OLED_ENABLE + +void init_timer(void){ + oled_logo_timer = timer_read32(); +}; + +void user_oled_magic(void) { + // Host Keyboard Layer Status + oled_write_P(PSTR("Layer: "), false); + + switch (get_highest_layer(layer_state)) { + case 0: + oled_write_P(PSTR("One\n"), false); + break; + case 1: + oled_write_P(PSTR("Two\n"), false); + break; + case 2: + oled_write_P(PSTR("Three\n"), false); + break; + case 3: + oled_write_P(PSTR("Four\n"), false); + break; + case 4: + oled_write_P(PSTR("Five\n"), false); + break; + case 5: + oled_write_P(PSTR("Six\n"), false); + break; + case 6: + oled_write_P(PSTR("Seven\n"), false); + break; + case 7: + oled_write_P(PSTR("Eight\n"), false); + break; + case 8: + oled_write_P(PSTR("Nine\n"), false); + break; + case 9: + oled_write_P(PSTR("Ten\n"), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined"), false); + } + + // Host Keyboard LED Status + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.caps_lock ? PSTR("Cap(x) ") : PSTR("Cap( ) "), false); + oled_write_P(led_state.num_lock ? PSTR("Num(x) ") : PSTR("Num( ) "), false); + oled_write_P(led_state.scroll_lock ? PSTR("Scrl(x)") : PSTR("Scrl( )"), false); + + + switch (rgb_matrix_get_mode()) { + case 1: + oled_write_P(PSTR("Solid Color\n "), false); + break; + case 2: + oled_write_P(PSTR("Alphas Mods\n "), false); + break; + case 3: + oled_write_P(PSTR("Gradient Up Down\n "), false); + break; + case 4: + oled_write_P(PSTR("Gradient Left Right\n "), false); + break; + case 5: + oled_write_P(PSTR("Breathing\n "), false); + break; + case 6: + oled_write_P(PSTR("Band Sat\n "), false); + break; + case 7: + oled_write_P(PSTR("Band Val\n "), false); + break; + case 8: + oled_write_P(PSTR("Band Pinwheel Sat\n "), false); + break; + case 9: + oled_write_P(PSTR("Band Pinwheel Val\n "), false); + break; + case 10: + oled_write_P(PSTR("Band Spiral Sat\n "), false); + break; + case 11: + oled_write_P(PSTR("Band Spiral Val\n "), false); + break; + case 12: + oled_write_P(PSTR("Cycle All\n "), false); + break; + case 13: + oled_write_P(PSTR("Cycle Left Right\n "), false); + break; + case 14: + oled_write_P(PSTR("Cycle Up Down\n "), false); + break; + case 15: + oled_write_P(PSTR("Rainbow\nMoving Chevron "), false); + break; + case 16: + oled_write_P(PSTR("Cycle Out In\n "), false); + break; + case 17: + oled_write_P(PSTR("Cycle Out In Dual\n "), false); + break; + case 18: + oled_write_P(PSTR("Cycle Pinwheel\n "), false); + break; + case 19: + oled_write_P(PSTR("Cycle Spiral\n "), false); + break; + case 20: + oled_write_P(PSTR("Dual Beacon\n "), false); + break; + case 21: + oled_write_P(PSTR("Rainbow Beacon\n "), false); + break; + case 22: + oled_write_P(PSTR("Rainbow Pinwheels\n "), false); + break; + case 23: + oled_write_P(PSTR("Raindrops\n "), false); + break; + case 24: + oled_write_P(PSTR("Jellybean Raindrops\n "), false); + break; + case 25: + oled_write_P(PSTR("Hue Breathing\n "), false); + break; + case 26: + oled_write_P(PSTR("Hue Pendulum\n "), false); + break; + case 27: + oled_write_P(PSTR("Hue Wave\n "), false); + break; + case 28: + oled_write_P(PSTR("Pixel Rain\n "), false); + break; + case 29: + oled_write_P(PSTR("Pixel Flow\n "), false); + break; + case 30: + oled_write_P(PSTR("Pixel Fractal\n "), false); + break; + case 31: + oled_write_P(PSTR("Typing Heatmap\n "), false); + break; + case 32: + oled_write_P(PSTR("Digital Rain\n "), false); + break; + case 33: + oled_write_P(PSTR("Solid Reactive\nSimple "), false); + break; + case 34: + oled_write_P(PSTR("Solid Reactive\n "), false); + break; + case 35: + oled_write_P(PSTR("Solid Reactive\nWide "), false); + break; + case 36: + oled_write_P(PSTR("Solid Reactive\nMultiwide "), false); + break; + case 37: + oled_write_P(PSTR("Solid Reactive\nCross "), false); + break; + case 38: + oled_write_P(PSTR("Solid Reactive\nMulticross "), false); + break; + case 39: + oled_write_P(PSTR("Solid Reactive\nNexus "), false); + break; + case 40: + oled_write_P(PSTR("Solid Reactive\nMultinexus "), false); + break; + case 41: + oled_write_P(PSTR("Splash\n "), false); + break; + case 42: + oled_write_P(PSTR("Multisplash\n "), false); + break; + case 43: + oled_write_P(PSTR("Solid Splash\n "), false); + break; + case 44: + oled_write_P(PSTR("Solid Multisplash\n "), false); + break; + default: + // Or use the write_ln shortcut over adding '\n' to the end of your string + oled_write_ln_P(PSTR("Undefined\n "), false); + } + +} + +void render_logo(void) { + oled_write_raw_P(my_logo, sizeof(my_logo)); +} + +void clear_screen(void) { + if (clear_logo){ + for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) { + for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) { + oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j); + } + } + clear_logo = false; + } +} + +oled_rotation_t oled_init_kb(oled_rotation_t rotation) { + return OLED_ROTATION_180; +} + +void keyboard_post_init_kb(void) { + init_timer(); + + keyboard_post_init_user(); +} + +# define SHOW_LOGO 5000 +bool oled_task_kb(void) { + if (!oled_task_user()) { return false; } + if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){ + render_logo(); + }else{ + clear_screen(); + user_oled_magic(); + } + return false; +} + +#endif \ No newline at end of file diff --git a/keyboards/1upkeyboards/pi40/readme.md b/keyboards/1upkeyboards/pi40/readme.md new file mode 100644 index 000000000000..95ddec435878 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/readme.md @@ -0,0 +1,38 @@ +# pi40 + +![pi40](https://i.imgur.com/ONVtaVZh.jpeg) + +The pi40 is a 4x12 ortholinear keyboard with a fixed 2u spacebar using a Raspberry Pi Pico for the controller. + +It includes options for a rotary encoder, SSD1306 oled, and per-key in-switch RGB LEDs. + +All unused GPIO pins are broken out on the main pcb, as well as the available voltage pins. + +This firmware also includes the option for VIA which includes configuration options for the rotary encoder, matrix lighting, and up to 10 layers. + +Default oled configuration displays: + - current layer + - caps lock status + - num lock status + - scroll lock status + - current RGB lighting mode + +* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) +* Hardware Availability: (https://1upkeyboards.com/shop/keyboard-kits/diy-40-kits/pi40-keyboard-kit/) + +Make example for this keyboard (after setting up your build environment): + + make 1upkeyboards/pi40:default + +Flashing example for this keyboard: + + make 1upkeyboards/pi40:default:flash + +See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). + +## Bootloader + +Enter the bootloader in 2 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix, the top left key, and plug in the keyboard +* **BOOTSEL button**: Hold down the BOOTSEL button on the pico, and plug in the keyboard diff --git a/keyboards/1upkeyboards/pi40/rules.mk b/keyboards/1upkeyboards/pi40/rules.mk new file mode 100644 index 000000000000..ecf7a9ce3ad0 --- /dev/null +++ b/keyboards/1upkeyboards/pi40/rules.mk @@ -0,0 +1,26 @@ +# MCU name +MCU = RP2040 +BOOTLOADER = rp2040 +BOARD = GENERIC_RP_RP2040 + +# 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 = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +RGB_MATRIX_ENABLE = yes +RGB_MATRIX_DRIVER = WS2812 + +WS2812_DRIVER = vendor +ENCODER_ENABLE = yes + +OLED_ENABLE = yes +OLED_DRIVER = SSD1306 \ No newline at end of file From 617f957e82d8c5213f77ce8003c4c17439d26077 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 16 Sep 2022 02:03:18 +0100 Subject: [PATCH 17/28] Fix handwired/swiftrax/bumblebee layout macro (#18377) --- keyboards/handwired/swiftrax/bumblebee/bumblebee.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/handwired/swiftrax/bumblebee/bumblebee.h b/keyboards/handwired/swiftrax/bumblebee/bumblebee.h index 2d1fdf7a46cd..1ab4c00abca1 100644 --- a/keyboards/handwired/swiftrax/bumblebee/bumblebee.h +++ b/keyboards/handwired/swiftrax/bumblebee/bumblebee.h @@ -16,7 +16,7 @@ along with this program. If not, see . */ #pragma once -#define KC_NO XXX +#define XXX KC_NO #include "quantum.h" From cf88d956130ef847677cf4defd1f21d4e72c677f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 16 Sep 2022 18:19:10 +1000 Subject: [PATCH 18/28] Add ability to remove temporary files during multibuild. (#18381) --- lib/python/qmk/cli/multibuild.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/multibuild.py b/lib/python/qmk/cli/multibuild.py index a1db669ca818..5e0f0b5188ac 100755 --- a/lib/python/qmk/cli/multibuild.py +++ b/lib/python/qmk/cli/multibuild.py @@ -28,6 +28,7 @@ def _is_split(keyboard_name): return True if 'SPLIT_KEYBOARD' in rules_mk and rules_mk['SPLIT_KEYBOARD'].lower() == 'yes' else False +@cli.argument('-t', '--no-temp', arg_only=True, action='store_true', help="Remove temporary files during build.") @cli.argument('-j', '--parallel', type=int, default=1, help="Set the number of parallel make jobs; 0 means unlimited.") @cli.argument('-c', '--clean', arg_only=True, action='store_true', help="Remove object files before compiling.") @cli.argument('-f', '--filter', arg_only=True, action='append', default=[], help="Filter the list of keyboards based on the supplied value in rules.mk. Supported format is 'SPLIT_KEYBOARD=yes'. May be passed multiple times.") @@ -77,11 +78,26 @@ def multibuild(cli): || {{ grep '\[WARNINGS\]' "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" >/dev/null 2>&1 && printf "Build %-64s \e[1;33m[WARNINGS]\e[0m\\n" "{keyboard_name}:{cli.args.keymap}" ; }} \\ || printf "Build %-64s \e[1;32m[OK]\e[0m\\n" "{keyboard_name}:{cli.args.keymap}" @rm -f "{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}" || true - """# noqa ) # yapf: enable + if cli.args.no_temp: + # yapf: disable + f.write( + f"""\ + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{cli.args.keymap}.elf" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{cli.args.keymap}.map" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{cli.args.keymap}.hex" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{cli.args.keymap}.bin" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/{keyboard_safe}_{cli.args.keymap}.uf2" 2>/dev/null || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}" || true + @rm -rf "{QMK_FIRMWARE}/.build/obj_{keyboard_safe}_{cli.args.keymap}" || true +"""# noqa + ) + # yapf: enable + f.write('\n') + cli.run([make_cmd, *get_make_parallel_args(cli.args.parallel), '-f', makefile.as_posix(), 'all'], capture_output=False, stdin=DEVNULL) # Check for failures From 1ec8ae8a49f02ae732cc5315d75bf2a6505fe00d Mon Sep 17 00:00:00 2001 From: an_achronism <87213873+an-achronism@users.noreply.github.com> Date: Fri, 16 Sep 2022 17:25:16 +0100 Subject: [PATCH 19/28] Initial support for Tetromino added (#18341) by the spherical lad @an-achronism --- keyboards/an_achronism/tetromino/README.md | 42 ++++ keyboards/an_achronism/tetromino/config.h | 31 +++ keyboards/an_achronism/tetromino/info.json | 184 ++++++++++++++++++ .../tetromino/keymaps/default/keymap.c | 62 ++++++ .../tetromino/keymaps/indicators/config.h | 30 +++ .../tetromino/keymaps/indicators/keymap.c | 124 ++++++++++++ keyboards/an_achronism/tetromino/rules.mk | 2 + 7 files changed, 475 insertions(+) create mode 100644 keyboards/an_achronism/tetromino/README.md create mode 100644 keyboards/an_achronism/tetromino/config.h create mode 100644 keyboards/an_achronism/tetromino/info.json create mode 100644 keyboards/an_achronism/tetromino/keymaps/default/keymap.c create mode 100644 keyboards/an_achronism/tetromino/keymaps/indicators/config.h create mode 100644 keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c create mode 100644 keyboards/an_achronism/tetromino/rules.mk diff --git a/keyboards/an_achronism/tetromino/README.md b/keyboards/an_achronism/tetromino/README.md new file mode 100644 index 000000000000..0fae9a821d95 --- /dev/null +++ b/keyboards/an_achronism/tetromino/README.md @@ -0,0 +1,42 @@ +# tetromino + +![tetromino](https://i.postimg.cc/RSfJkbTP/IMG-2428.jpg) +* Keyboard Maintainer: [an_achronism](https://github.com/an-achronism) +* Hardware Availability: Currently in prototyping stage, so only via [Discord](https://discord.gg/8hpygm4PgW) + +This project started for one reason alone: I suspected that I would hate typing on an ortholinear keyboard and wanted to find out if I was correct. + +It ended up turning into something a little more interesting, at least from my perspective. Much of this was driven by my general dissatisfaction with how RGB LEDs tend to be used in keyboards. I'd been talking for quite some time about how I'd like to build RGB behaviours into my keyboards that had a purely functional purpose, rather than existing mostly to look cool. Specifically, I wanted to represent layer and lock statuses in a way I've never seen anybody else do. For instance, turning on Caps Lock would not switch on a single Caps Lock indicator LED, but rather light up all of the keys that would behave differently because of Caps Lock being switched on, meaning A-Z but nothing else. The other indicators (Num and Scroll Lock) would do something very similar. Activating a custom keymap layer would also light up only the keys that were mapped differently on that layer compared to the base layer. + +I managed to implement a custom function to achieve exactly the desired RGB LED functionality, but for reasons that mostly have to do with following general QMK guidelines, this (relatively large) custom function is not included in the default keymap. If you want it, flash the "indicators" keymap instead. + +## Compiling the firmware + +You'll first need to set up a build environment for QMK (see below). Once you've done that, you can run a `make` for the keymap of your choice. + +The default keymap does NOT have my preferred custom RGB behaviour in it, in the interests of keeping with QMK repository's preference of keeping the default keymap as straightforward as possible (the custom RGB function is relatively large). If you don't care about having that, you can just do this: + + make tetromino:default + +If however you do want my custom RGB matrix behaviour, do this: + + make tetromino:indicators + +This will give you the RGB behaviour described in the section above. + +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). + +## Entering the bootloader + +You'll need to do this to flash or reflash the firmware. You can enter the bootloader in a number of different ways: + +* **Physical reset button**: If you have a reset button soldered on, and the keyboard is fully assembled, you should be able to reach into the hole in the underside of the case while the keyboard is connected and double-press the reset button (push it twice in quick succession). Only pressing it once will reset the microcontroller, but won't put it into bootloader mode. +* **Physical BOOTSEL button**: Regardless of whether you have a reset button soldered into place, there is a BOOTSEL button included onboard the Raspberry Pi Pico that hosts the microcontroller. With the keyboard disconnected, press and hold down the BOOTSEL button and connect the keyboard, then release BOOTSEL. +* **Bootmagic reset**: Hold down the top left key and plug in the keyboard (similar to the BOOTSEL method above). +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available in your keymap. + +Once that's done, you should see a USB mass storage device appear in your operating system pertaining to the RP2040's bootloader. This indicates that the MCU is ready to flash a firmware of your choice. + +## Flashing the firmware + +The RP2040 MCU comes preflashed with a UF2 bootloader which, once activated by one of the methods above, allows the user to flash a firmware by simply dragging and dropping the firmware file into the USB mass storage device that appears in the OS. In this case, drag and drop the .uf2 file for your corresponding QMK firmware (compiled previously as per instructions above) into the relevant USB device and the firmware should flash, then the keyboard will immediately restart with the firmware on it, ready to use. Happy typing! diff --git a/keyboards/an_achronism/tetromino/config.h b/keyboards/an_achronism/tetromino/config.h new file mode 100644 index 000000000000..6208224465de --- /dev/null +++ b/keyboards/an_achronism/tetromino/config.h @@ -0,0 +1,31 @@ +/* +Copyright 2022 an_achronism (@an-achronism) + +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 RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define DRIVER_LED_TOTAL 70 + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/an_achronism/tetromino/info.json b/keyboards/an_achronism/tetromino/info.json new file mode 100644 index 000000000000..b8aae9d201ed --- /dev/null +++ b/keyboards/an_achronism/tetromino/info.json @@ -0,0 +1,184 @@ +{ + "manufacturer": "an_achronism", + "keyboard_name": "tetromino", + "maintainer": "an-achronism", + "processor": "RP2040", + "bootloader": "rp2040", + "url": "https://github.com/an-achronism/tetromino", + "usb": { + "device_version": "1.0.0", + "pid": "0x3435", + "vid": "0x4161" + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": false, + "rgb_matrix": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", + "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"], + "rows": ["GP16", "GP17", "GP18", "GP19", "GP20"] + }, + "layouts": { + "LAYOUT_ortho_5x14": { + "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 }, + { "matrix": [1, 1], "x": 1, "y": 1 }, + { "matrix": [1, 2], "x": 2, "y": 1 }, + { "matrix": [1, 3], "x": 3, "y": 1 }, + { "matrix": [1, 4], "x": 4, "y": 1 }, + { "matrix": [1, 5], "x": 5, "y": 1 }, + { "matrix": [1, 6], "x": 6, "y": 1 }, + { "matrix": [1, 7], "x": 7, "y": 1 }, + { "matrix": [1, 8], "x": 8, "y": 1 }, + { "matrix": [1, 9], "x": 9, "y": 1 }, + { "matrix": [1, 10], "x": 10, "y": 1 }, + { "matrix": [1, 11], "x": 11, "y": 1 }, + { "matrix": [1, 12], "x": 12, "y": 1 }, + { "matrix": [1, 13], "x": 13, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2 }, + { "matrix": [2, 1], "x": 1, "y": 2 }, + { "matrix": [2, 2], "x": 2, "y": 2 }, + { "matrix": [2, 3], "x": 3, "y": 2 }, + { "matrix": [2, 4], "x": 4, "y": 2 }, + { "matrix": [2, 5], "x": 5, "y": 2 }, + { "matrix": [2, 6], "x": 6, "y": 2 }, + { "matrix": [2, 7], "x": 7, "y": 2 }, + { "matrix": [2, 8], "x": 8, "y": 2 }, + { "matrix": [2, 9], "x": 9, "y": 2 }, + { "matrix": [2, 10], "x": 10, "y": 2 }, + { "matrix": [2, 11], "x": 11, "y": 2 }, + { "matrix": [2, 12], "x": 12, "y": 2 }, + { "matrix": [2, 13], "x": 13, "y": 2 }, + { "matrix": [3, 0], "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 1, "y": 3 }, + { "matrix": [3, 2], "x": 2, "y": 3 }, + { "matrix": [3, 3], "x": 3, "y": 3 }, + { "matrix": [3, 4], "x": 4, "y": 3 }, + { "matrix": [3, 5], "x": 5, "y": 3 }, + { "matrix": [3, 6], "x": 6, "y": 3 }, + { "matrix": [3, 7], "x": 7, "y": 3 }, + { "matrix": [3, 8], "x": 8, "y": 3 }, + { "matrix": [3, 9], "x": 9, "y": 3 }, + { "matrix": [3, 10], "x": 10, "y": 3 }, + { "matrix": [3, 11], "x": 11, "y": 3 }, + { "matrix": [3, 12], "x": 12, "y": 3 }, + { "matrix": [3, 13], "x": 13, "y": 3 }, + { "matrix": [4, 0], "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1, "y": 4 }, + { "matrix": [4, 2], "x": 2, "y": 4 }, + { "matrix": [4, 3], "x": 3, "y": 4 }, + { "matrix": [4, 4], "x": 4, "y": 4 }, + { "matrix": [4, 5], "x": 5, "y": 4 }, + { "matrix": [4, 6], "x": 6, "y": 4 }, + { "matrix": [4, 7], "x": 7, "y": 4 }, + { "matrix": [4, 8], "x": 8, "y": 4 }, + { "matrix": [4, 9], "x": 9, "y": 4 }, + { "matrix": [4, 10], "x": 10, "y": 4 }, + { "matrix": [4, 11], "x": 11, "y": 4 }, + { "matrix": [4, 12], "x": 12, "y": 4 }, + { "matrix": [4, 13], "x": 13, "y": 4 } + ] + } + }, + "rgblight": { + "led_count": 70, + "pin": "GP26" + }, + "rgb_matrix": { + "driver": "WS2812", + "layout": [ + { "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 }, + { "flags": 4, "matrix": [0, 1], "x": 17, "y": 0 }, + { "flags": 4, "matrix": [0, 2], "x": 34, "y": 0 }, + { "flags": 4, "matrix": [0, 3], "x": 52, "y": 0 }, + { "flags": 4, "matrix": [0, 4], "x": 69, "y": 0 }, + { "flags": 4, "matrix": [0, 5], "x": 86, "y": 0 }, + { "flags": 4, "matrix": [0, 6], "x": 103, "y": 0 }, + { "flags": 4, "matrix": [0, 7], "x": 121, "y": 0 }, + { "flags": 4, "matrix": [0, 8], "x": 138, "y": 0 }, + { "flags": 4, "matrix": [0, 9], "x": 155, "y": 0 }, + { "flags": 4, "matrix": [0, 10], "x": 172, "y": 0 }, + { "flags": 4, "matrix": [0, 11], "x": 190, "y": 0 }, + { "flags": 4, "matrix": [0, 12], "x": 207, "y": 0 }, + { "flags": 4, "matrix": [0, 13], "x": 224, "y": 0 }, + { "flags": 4, "matrix": [1, 0], "x": 0, "y": 16 }, + { "flags": 4, "matrix": [1, 1], "x": 17, "y": 16 }, + { "flags": 4, "matrix": [1, 2], "x": 34, "y": 16 }, + { "flags": 4, "matrix": [1, 3], "x": 52, "y": 16 }, + { "flags": 4, "matrix": [1, 4], "x": 69, "y": 16 }, + { "flags": 4, "matrix": [1, 5], "x": 86, "y": 16 }, + { "flags": 4, "matrix": [1, 6], "x": 103, "y": 16 }, + { "flags": 4, "matrix": [1, 7], "x": 121, "y": 16 }, + { "flags": 4, "matrix": [1, 8], "x": 138, "y": 16 }, + { "flags": 4, "matrix": [1, 9], "x": 155, "y": 16 }, + { "flags": 4, "matrix": [1, 10], "x": 172, "y": 16 }, + { "flags": 4, "matrix": [1, 11], "x": 190, "y": 16 }, + { "flags": 4, "matrix": [1, 12], "x": 207, "y": 16 }, + { "flags": 4, "matrix": [1, 13], "x": 224, "y": 16 }, + { "flags": 4, "matrix": [2, 0], "x": 0, "y": 32 }, + { "flags": 4, "matrix": [2, 1], "x": 17, "y": 32 }, + { "flags": 4, "matrix": [2, 2], "x": 34, "y": 32 }, + { "flags": 4, "matrix": [2, 3], "x": 52, "y": 32 }, + { "flags": 4, "matrix": [2, 4], "x": 69, "y": 32 }, + { "flags": 4, "matrix": [2, 5], "x": 86, "y": 32 }, + { "flags": 4, "matrix": [2, 6], "x": 103, "y": 32 }, + { "flags": 4, "matrix": [2, 7], "x": 121, "y": 32 }, + { "flags": 4, "matrix": [2, 8], "x": 138, "y": 32 }, + { "flags": 4, "matrix": [2, 9], "x": 155, "y": 32 }, + { "flags": 4, "matrix": [2, 10], "x": 172, "y": 32 }, + { "flags": 4, "matrix": [2, 11], "x": 190, "y": 32 }, + { "flags": 4, "matrix": [2, 12], "x": 207, "y": 32 }, + { "flags": 4, "matrix": [2, 13], "x": 224, "y": 32 }, + { "flags": 4, "matrix": [3, 0], "x": 0, "y": 48 }, + { "flags": 4, "matrix": [3, 1], "x": 17, "y": 48 }, + { "flags": 4, "matrix": [3, 2], "x": 34, "y": 48 }, + { "flags": 4, "matrix": [3, 3], "x": 52, "y": 48 }, + { "flags": 4, "matrix": [3, 4], "x": 69, "y": 48 }, + { "flags": 4, "matrix": [3, 5], "x": 86, "y": 48 }, + { "flags": 4, "matrix": [3, 6], "x": 103, "y": 48 }, + { "flags": 4, "matrix": [3, 7], "x": 121, "y": 48 }, + { "flags": 4, "matrix": [3, 8], "x": 138, "y": 48 }, + { "flags": 4, "matrix": [3, 9], "x": 155, "y": 48 }, + { "flags": 4, "matrix": [3, 10], "x": 172, "y": 48 }, + { "flags": 4, "matrix": [3, 11], "x": 190, "y": 48 }, + { "flags": 4, "matrix": [3, 12], "x": 207, "y": 48 }, + { "flags": 4, "matrix": [3, 13], "x": 224, "y": 48 }, + { "flags": 4, "matrix": [4, 0], "x": 0, "y": 64 }, + { "flags": 4, "matrix": [4, 1], "x": 17, "y": 64 }, + { "flags": 4, "matrix": [4, 2], "x": 34, "y": 64 }, + { "flags": 4, "matrix": [4, 3], "x": 52, "y": 64 }, + { "flags": 4, "matrix": [4, 4], "x": 69, "y": 64 }, + { "flags": 4, "matrix": [4, 5], "x": 86, "y": 64 }, + { "flags": 4, "matrix": [4, 6], "x": 103, "y": 64 }, + { "flags": 4, "matrix": [4, 7], "x": 121, "y": 64 }, + { "flags": 4, "matrix": [4, 8], "x": 138, "y": 64 }, + { "flags": 4, "matrix": [4, 9], "x": 155, "y": 64 }, + { "flags": 4, "matrix": [4, 10], "x": 172, "y": 64 }, + { "flags": 4, "matrix": [4, 11], "x": 190, "y": 64 }, + { "flags": 4, "matrix": [4, 12], "x": 207, "y": 64 }, + { "flags": 4, "matrix": [4, 13], "x": 224, "y": 64 } + ] + } +} diff --git a/keyboards/an_achronism/tetromino/keymaps/default/keymap.c b/keyboards/an_achronism/tetromino/keymaps/default/keymap.c new file mode 100644 index 000000000000..4f47154c6970 --- /dev/null +++ b/keyboards/an_achronism/tetromino/keymaps/default/keymap.c @@ -0,0 +1,62 @@ +/* +Copyright 2022 an_achronism (@an-achronism) + +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] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab| Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Ctl│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │UK#│Rtn| + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Sft│ ↑ │App| + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Esc│Ctl│Alt│GUI│L_1│Spc│L_2|GUI│Alt│Ctl|UK\│ ← │ ↓ │ → │ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_ortho_5x14( + 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_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_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_NUHS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RSFT_T(KC_APP), + KC_ESC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_RGUI, KC_RALT, KC_RCTL, KC_NUBS, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x14( + KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PEQL, _______, _______, _______, KC_PWR, + _______, _______, KC_UP, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_PAUS, KC_ESC, _______, KC_SLEP, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, KC_CALC, + KC_CAPS, _______, _______, _______, _______, KC_PAUS, KC_P1, KC_P2, KC_P3, KC_PENT, _______, KC_CAPS, _______, _______, + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_ortho_5x14( + _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, + _______, KC_F4, KC_F3, KC_F2, KC_F1, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, C(KC_BRK), KC_ESC, _______, _______, + _______, KC_F8, KC_F7, KC_F6, KC_F5, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MPRV, KC_MNXT, KC_MPLY, + KC_CAPS, KC_F12, KC_F11, KC_F10, KC_F9, C(KC_BRK),_______, _______, _______, _______, _______, KC_CAPS, _______, KC_PSCR, + _______, _______, _______, _______, MO(3), _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_ortho_5x14( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/an_achronism/tetromino/keymaps/indicators/config.h b/keyboards/an_achronism/tetromino/keymaps/indicators/config.h new file mode 100644 index 000000000000..f117063fb1a5 --- /dev/null +++ b/keyboards/an_achronism/tetromino/keymaps/indicators/config.h @@ -0,0 +1,30 @@ +/* +Copyright 2022 an_achronism (@an-achronism) + +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 RGB_TRIGGER_ON_KEYDOWN + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT diff --git a/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c b/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c new file mode 100644 index 000000000000..8f56c41be603 --- /dev/null +++ b/keyboards/an_achronism/tetromino/keymaps/indicators/keymap.c @@ -0,0 +1,124 @@ +/* +Copyright 2022 an_achronism (@an-achronism) + +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] = { + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Tab| Q │ W │ E | R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bsp│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Ctl│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │UK#│Rtn| + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Sft│ ↑ │App| + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │Esc│Ctl│Alt│GUI│L_1│Spc│L_2|GUI│Alt│Ctl|UK\│ ← │ ↓ │ → │ + * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ + */ + [0] = LAYOUT_ortho_5x14( + 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_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_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_NUHS, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, RSFT_T(KC_APP), + KC_ESC, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, MO(2), KC_RGUI, KC_RALT, KC_RCTL, KC_NUBS, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ortho_5x14( + KC_BRID, KC_BRIU, _______, _______, _______, _______, KC_NUM, KC_PSLS, KC_PAST, KC_PEQL, _______, _______, _______, KC_PWR, + _______, _______, KC_UP, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, KC_PAUS, KC_ESC, _______, KC_SLEP, + _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______, _______, _______, KC_CALC, + KC_CAPS, _______, _______, _______, _______, KC_PAUS, KC_P1, KC_P2, KC_P3, KC_PENT, _______, KC_CAPS, _______, _______, + _______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_ortho_5x14( + _______, _______, _______, _______, _______, _______, KC_SCRL, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_MSTP, + _______, KC_F4, KC_F3, KC_F2, KC_F1, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, C(KC_BRK), KC_ESC, _______, _______, + _______, KC_F8, KC_F7, KC_F6, KC_F5, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, KC_MPRV, KC_MNXT, KC_MPLY, + KC_CAPS, KC_F12, KC_F11, KC_F10, KC_F9, C(KC_BRK),_______, _______, _______, _______, _______, KC_CAPS, _______, KC_PSCR, + _______, _______, _______, _______, MO(3), _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_ortho_5x14( + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +// Initialise RBG matrix with all LEDs set to solid colour and zero HSV (i.e. off): +void keyboard_post_init_user(void) { + rgb_matrix_mode_noeeprom(RGB_MATRIX_SOLID_COLOR); + rgb_matrix_sethsv_noeeprom(HSV_OFF); +}; + +// Custom RGB indicator behaviour: +void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { + uint8_t led_processed_count = 0; + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + for (uint8_t col = 0; col < MATRIX_COLS; ++col) { + if (led_processed_count == RGB_MATRIX_LED_PROCESS_LIMIT){ + return; + } + uint8_t led_index = g_led_config.matrix_co[row][col]; + uint16_t keycode = keymap_key_to_keycode(0, (keypos_t){col,row}); + if (led_index >= led_min && led_index <= led_max && led_index != NO_LED) { + // Light base layer arrow keys orange if Scroll Lock is on, otherwise light them magenta: + led_processed_count++; + if (keycode >= KC_RIGHT && keycode <= KC_UP) { + if (host_keyboard_led_state().scroll_lock) { + rgb_matrix_set_color(led_index, RGB_ORANGE); + } else { + rgb_matrix_set_color(led_index, RGB_MAGENTA); + } + } + // Light alpha keys (A-Z only) red if Caps Lock is on: + if (host_keyboard_led_state().caps_lock && keycode >= KC_A && keycode <= KC_Z) { + rgb_matrix_set_color(led_index, RGB_RED); + } + // Whenever a layer above base is active, recolour only the keys that are different on that layer: + if (get_highest_layer(layer_state) > 0) { + uint8_t layer = get_highest_layer(layer_state); + uint16_t momentary_keycode = keymap_key_to_keycode(layer, (keypos_t){col,row}); + if (momentary_keycode > KC_TRNS) { + switch(layer) { + case 2: + // The uppermost layer is blue: + rgb_matrix_set_color(led_index, RGB_BLUE); + break; + case 1: + // The middle layer is green, except that the numpad section turns + // orange when Num Lock is on: + if (host_keyboard_led_state().num_lock && + (momentary_keycode == KC_KP_EQUAL || + (momentary_keycode >= KC_NUM_LOCK && momentary_keycode <= KC_KP_DOT) + )) { + rgb_matrix_set_color(led_index, RGB_ORANGE); + } else { + rgb_matrix_set_color(led_index, RGB_GREEN); + } + break; + default: + break; + } + } + } + } + } + } +} diff --git a/keyboards/an_achronism/tetromino/rules.mk b/keyboards/an_achronism/tetromino/rules.mk new file mode 100644 index 000000000000..ff20f6e38e43 --- /dev/null +++ b/keyboards/an_achronism/tetromino/rules.mk @@ -0,0 +1,2 @@ +# Use dedicated PIO on Raspberry Pi Pico for RGB LEDs: +WS2812_DRIVER = vendor From 799046fd9de389f15651d121d64f5be373e7dffe Mon Sep 17 00:00:00 2001 From: npspears <40127181+npspears@users.noreply.github.com> Date: Fri, 16 Sep 2022 12:37:39 -0500 Subject: [PATCH 20/28] Quark revision - rotary encoder and 7u support (#17664) by npspears --- keyboards/checkerboards/quark/config.h | 21 ++--- keyboards/checkerboards/quark/info.json | 57 ++++++++++++ .../quark/keymaps/default_5x12_7u/config.h | 19 ++++ .../quark/keymaps/default_5x12_7u/keymap.c | 86 +++++++++++++++++++ .../checkerboards/quark/keymaps/via/keymap.c | 8 ++ .../checkerboards/quark/keymaps/via/rules.mk | 1 + keyboards/checkerboards/quark/quark.c | 12 +++ keyboards/checkerboards/quark/quark.h | 18 +++- keyboards/checkerboards/quark/rules.mk | 4 +- 9 files changed, 207 insertions(+), 19 deletions(-) create mode 100644 keyboards/checkerboards/quark/keymaps/default_5x12_7u/config.h create mode 100644 keyboards/checkerboards/quark/keymaps/default_5x12_7u/keymap.c diff --git a/keyboards/checkerboards/quark/config.h b/keyboards/checkerboards/quark/config.h index dda0f9f1890a..295629f885cc 100644 --- a/keyboards/checkerboards/quark/config.h +++ b/keyboards/checkerboards/quark/config.h @@ -38,22 +38,6 @@ /* Locking resynchronize hack */ #define LOCKING_RESYNC_ENABLE -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - // ws2812 options #define RGB_DI_PIN D0 // pin the DI on the ws2812 is hooked-up to #define RGBLIGHT_ANIMATIONS // run RGB animations @@ -61,3 +45,8 @@ #define RGBLIGHT_HUE_STEP 12 // units to step when in/decreasing hue #define RGBLIGHT_SAT_STEP 12 // units to step when in/decresing saturation #define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) + +// rotary encoder parameters +#define ENCODERS_PAD_A { B0 } +#define ENCODERS_PAD_B { D1 } +#define ENCODER_RESOLUTION 4 diff --git a/keyboards/checkerboards/quark/info.json b/keyboards/checkerboards/quark/info.json index 6b08316a0f3d..d3a571d627ab 100644 --- a/keyboards/checkerboards/quark/info.json +++ b/keyboards/checkerboards/quark/info.json @@ -127,6 +127,63 @@ {"x": 10.5, "y": 4, "w": 1.5} ] }, + "LAYOUT_ortho_5x12_7u": { + "layout": [ + {"x":0, "y":0}, + {"x":1, "y":0}, + {"x":2, "y":0}, + {"x":3, "y":0}, + {"x":4, "y":0}, + {"x":5, "y":0}, + {"x":6, "y":0}, + {"x":7, "y":0}, + {"x":8, "y":0}, + {"x":9, "y":0}, + {"x":10, "y":0}, + {"x":11, "y":0}, + {"x":0, "y":1}, + {"x":1, "y":1}, + {"x":2, "y":1}, + {"x":3, "y":1}, + {"x":4, "y":1}, + {"x":5, "y":1}, + {"x":6, "y":1}, + {"x":7, "y":1}, + {"x":8, "y":1}, + {"x":9, "y":1}, + {"x":10, "y":1}, + {"x":11, "y":1}, + {"x":0, "y":2}, + {"x":1, "y":2}, + {"x":2, "y":2}, + {"x":3, "y":2}, + {"x":4, "y":2}, + {"x":5, "y":2}, + {"x":6, "y":2}, + {"x":7, "y":2}, + {"x":8, "y":2}, + {"x":9, "y":2}, + {"x":10, "y":2}, + {"x":11, "y":2}, + {"x":0, "y":3}, + {"x":1, "y":3}, + {"x":2, "y":3}, + {"x":3, "y":3}, + {"x":4, "y":3}, + {"x":5, "y":3}, + {"x":6, "y":3}, + {"x":7, "y":3}, + {"x":8, "y":3}, + {"x":9, "y":3}, + {"x":10, "y":3}, + {"x":11, "y":3}, + {"x":0, "y":4, "w":1.25}, + {"x":1.25, "y":4, "w":1.25}, + {"x":2.5, "y":4, "w":7}, + {"x":9.5, "y":4, "w":1.25}, + {"x":10.75, "y":4, "w":1.25} + ] + }, "LAYOUT_ortho_4x12": { "layout": [ {"x": 0, "y": 0}, diff --git a/keyboards/checkerboards/quark/keymaps/default_5x12_7u/config.h b/keyboards/checkerboards/quark/keymaps/default_5x12_7u/config.h new file mode 100644 index 000000000000..c6f30237d16a --- /dev/null +++ b/keyboards/checkerboards/quark/keymaps/default_5x12_7u/config.h @@ -0,0 +1,19 @@ +/* Copyright 2020 Nathan Spears + * + * 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 TAPPING_TOGGLE 2 diff --git a/keyboards/checkerboards/quark/keymaps/default_5x12_7u/keymap.c b/keyboards/checkerboards/quark/keymaps/default_5x12_7u/keymap.c new file mode 100644 index 000000000000..e5797a4e9ebf --- /dev/null +++ b/keyboards/checkerboards/quark/keymaps/default_5x12_7u/keymap.c @@ -0,0 +1,86 @@ +/* Copyright 2020 Nathan Spears + * + * 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 for task manager and such +#define CALTDEL LCTL(LALT(KC_DEL)) +#define TSKMGR LCTL(LSFT(KC_ESC)) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* [0] + * ,-----------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+------| + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Del | + * |------------+------+------+------+------+-------------+------+------+------+------+------| + * | CTL & ESC | A | S | D | F | G | H | J | K | L | ; | " | + * |------------+------+------+------+------+------|------+------+------+------+------+------| + * | Shift | Z | X | C | V | B | N | M | , | . | / |Enter | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+------| + * | OS | Alt | Space & Layer | Caps | Layer 2 | + * `-----------------------------------------------------------------------------------------' + */ + [0] = LAYOUT_ortho_5x12_7u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, + CTL_T(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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, + KC_LGUI, KC_LALT, LT(1, KC_SPC), KC_CAPS, TT(2) + ), + + /* [1] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+----| + * | ~ | ! | @ | # | $ | % | | ^ | & | * | ( | ) | BCKSPC | + * |------------+------+------+------+------+-------------+------+------+------+------+----| + * | \ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | / | + * |------------+------+------+------+------+------|------+------+------+------+------+----| + * | | | | | | | | + | = | | | | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+----| + * | ESC | CTRL-ALT-DEL | | | '|' | ` | + * `---------------------------------------------------------------------------------------' + */ + [1] = LAYOUT_ortho_5x12_7u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC, + KC_SLSH, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PPLS, KC_EQL, _______, _______, _______, + KC_ESC, CALTDEL, _______, KC_NUBS, KC_GRV + ), + + /* [2] + * ,---------------------------------------------------------------------------------------. + * | = | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | + * |------------+------+------+------+------+------+------+------+------+------+------+---| + * | | | | UP | | | | _ | | [ | ] | | + * |------------+------+------+------+------+-------------+------+------+------+------+---| + * | | | LEFT | DOWN | RIGHT | | | - | | [ | ] | | + * |------------+------+------+------+------+-----+-----+------+------+------+------+-----| + * | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | + * |-------+-------+-------+-------+-------+-------+------+------+------+------+------+---| + * | QK_BOOT | | | | | | + * `---------------------------------------------------------------------------------------' + */ + [2] = LAYOUT_ortho_5x12_7u( + KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, + _______, _______, _______, KC_UP, _______, _______, _______, KC_UNDS, _______, KC_LBRC, KC_RBRC, _______, + _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, KC_MINS, _______, KC_LCBR, KC_RCBR, _______, + KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, + QK_BOOT, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/checkerboards/quark/keymaps/via/keymap.c b/keyboards/checkerboards/quark/keymaps/via/keymap.c index 01e916bfe4c4..f8a5c215f11c 100644 --- a/keyboards/checkerboards/quark/keymaps/via/keymap.c +++ b/keyboards/checkerboards/quark/keymaps/via/keymap.c @@ -84,3 +84,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { QK_BOOT, _______, _______, _______, _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(_______, _______) }, + [2] = { ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/checkerboards/quark/keymaps/via/rules.mk b/keyboards/checkerboards/quark/keymaps/via/rules.mk index 1e5b99807cb7..f1adcab005e8 100644 --- a/keyboards/checkerboards/quark/keymaps/via/rules.mk +++ b/keyboards/checkerboards/quark/keymaps/via/rules.mk @@ -1 +1,2 @@ VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/checkerboards/quark/quark.c b/keyboards/checkerboards/quark/quark.c index 02610c420324..736b95542484 100644 --- a/keyboards/checkerboards/quark/quark.c +++ b/keyboards/checkerboards/quark/quark.c @@ -15,3 +15,15 @@ */ #include "quark.h" + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code_delay(KC_VOLD, 10); + } else { + tap_code_delay(KC_VOLU, 10); + } + } + return true; +} diff --git a/keyboards/checkerboards/quark/quark.h b/keyboards/checkerboards/quark/quark.h index e1af96eb7643..be2cc3f932dc 100644 --- a/keyboards/checkerboards/quark/quark.h +++ b/keyboards/checkerboards/quark/quark.h @@ -39,13 +39,27 @@ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ - k40, k41, k43, k48, k4A, k4B \ + k40, k41, k44, k47, k4A, k4B \ ) { \ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ - { k40, k41, XXX, XXX, k43, XXX, XXX, k48, XXX, XXX, k4A, k4B } \ + { k40, k41, XXX, XXX, k44, XXX, XXX, k47, XXX, XXX, k4A, k4B } \ +} + +#define LAYOUT_ortho_5x12_7u( \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, \ + k40, k41, k44, k4A, k4B \ +) { \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B }, \ + { k40, k41, XXX, XXX, k44, XXX, XXX, XXX, XXX, XXX, k4A, k4B } \ } #define LAYOUT_ortho_4x12( \ diff --git a/keyboards/checkerboards/quark/rules.mk b/keyboards/checkerboards/quark/rules.mk index f56c1ed29e08..a161eb06d3d0 100644 --- a/keyboards/checkerboards/quark/rules.mk +++ b/keyboards/checkerboards/quark/rules.mk @@ -17,9 +17,11 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output UNICODE_ENABLE = yes # Unicode +ENCODER_ENABLE = yes # Enable Rotary Encoders -LAYOUTS = ortho_4x12 planck_mit # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no + +LAYOUTS = ortho_4x12 planck_mit From 4781a798cab353397cf2ab92908a49096d505891 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Sep 2022 22:03:32 +0100 Subject: [PATCH 21/28] Bump anothrNick/github-tag-action from 1.45.0 to 1.46.0 (#18386) Bumps [anothrNick/github-tag-action](https://github.com/anothrNick/github-tag-action) from 1.45.0 to 1.46.0. - [Release notes](https://github.com/anothrNick/github-tag-action/releases) - [Commits](https://github.com/anothrNick/github-tag-action/compare/1.45.0...1.46.0) --- updated-dependencies: - dependency-name: anothrNick/github-tag-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 0e46cb6b134e..6205dbe11ccd 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.45.0 + uses: anothrNick/github-tag-action@1.46.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From 3444dd5e2d9c5438bf919eb4b6afd3cba3cb65b2 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Sun, 18 Sep 2022 02:01:46 -0400 Subject: [PATCH 22/28] [keyboard] kbdfans/kbd75rgb info.json fix (#18391) --- keyboards/kbdfans/kbd75rgb/info.json | 95 ++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/keyboards/kbdfans/kbd75rgb/info.json b/keyboards/kbdfans/kbd75rgb/info.json index 4c008f031088..32201ff19205 100644 --- a/keyboards/kbdfans/kbd75rgb/info.json +++ b/keyboards/kbdfans/kbd75rgb/info.json @@ -7,5 +7,100 @@ "vid": "0x4B42", "pid": "0x6063", "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_75_ansi": { + "layout": [ + {"label": "Esc", "x":0, "y":0}, + {"label": "F1", "x":1, "y":0}, + {"label": "F2", "x":2, "y":0}, + {"label": "F3", "x":3, "y":0}, + {"label": "F4", "x":4, "y":0}, + {"label": "F5", "x":5, "y":0}, + {"label": "F6", "x":6, "y":0}, + {"label": "F7", "x":7, "y":0}, + {"label": "F8", "x":8, "y":0}, + {"label": "F9", "x":9, "y":0}, + {"label": "F10", "x":10, "y":0}, + {"label": "F11", "x":11, "y":0}, + {"label": "F12", "x":12, "y":0}, + {"label": "PrintScr", "x":13, "y":0}, + {"label": "Ins", "x":14, "y":0}, + {"label": "Home", "x":15, "y":0}, + + {"label": "`~", "x":0, "y":1}, + {"label": "1!", "x":1, "y":1}, + {"label": "2@", "x":2, "y":1}, + {"label": "3#", "x":3, "y":1}, + {"label": "4$", "x":4, "y":1}, + {"label": "5%", "x":5, "y":1}, + {"label": "6^", "x":6, "y":1}, + {"label": "7&", "x":7, "y":1}, + {"label": "8*", "x":8, "y":1}, + {"label": "9(", "x":9, "y":1}, + {"label": "0)", "x":10, "y":1}, + {"label": "-_", "x":11, "y":1}, + {"label": "+=", "x":12, "y":1}, + {"label": "Backspace", "x":13, "y":1, "w":2}, + {"label": "End", "x":15, "y":1}, + + {"label": "Tab", "x":0, "y":2, "w":1.5}, + {"label": "Q", "x":1.5, "y":2}, + {"label": "W", "x":2.5, "y":2}, + {"label": "E", "x":3.5, "y":2}, + {"label": "R", "x":4.5, "y":2}, + {"label": "T", "x":5.5, "y":2}, + {"label": "Y", "x":6.5, "y":2}, + {"label": "U", "x":7.5, "y":2}, + {"label": "I", "x":8.5, "y":2}, + {"label": "O", "x":9.5, "y":2}, + {"label": "P", "x":10.5, "y":2}, + {"label": "[{", "x":11.5, "y":2}, + {"label": "]}", "x":12.5, "y":2}, + {"label": "\\|", "x":13.5, "y":2, "w":1.5}, + {"label": "Pg Up", "x":15, "y":2}, + + {"label": "Caps Lock", "x":0, "y":3, "w":1.75}, + {"label": "A", "x":1.75, "y":3}, + {"label": "S", "x":2.75, "y":3}, + {"label": "D", "x":3.75, "y":3}, + {"label": "F", "x":4.75, "y":3}, + {"label": "G", "x":5.75, "y":3}, + {"label": "H", "x":6.75, "y":3}, + {"label": "J", "x":7.75, "y":3}, + {"label": "K", "x":8.75, "y":3}, + {"label": "L", "x":9.75, "y":3}, + {"label": ";:", "x":10.75, "y":3}, + {"label": "\"'", "x":11.75, "y":3}, + {"label": "Enter", "x":12.75, "y":3, "w":2.25}, + {"label": "Pg Dn", "x":15, "y":3}, + + {"label": "Shift", "x":0, "y":4, "w":2.25}, + {"label": "Z", "x":2.25, "y":4}, + {"label": "X", "x":3.25, "y":4}, + {"label": "C", "x":4.25, "y":4}, + {"label": "V", "x":5.25, "y":4}, + {"label": "B", "x":6.25, "y":4}, + {"label": "N", "x":7.25, "y":4}, + {"label": "M", "x":8.25, "y":4}, + {"label": ",<", "x":9.25, "y":4}, + {"label": ".>", "x":10.25, "y":4}, + {"label": "/?", "x":11.25, "y":4}, + {"label": "Shift", "x":12.25, "y":4, "w":1.75}, + {"label": "Up", "x":14, "y":4}, + {"label": "Del", "x":15, "y":4}, + + {"label": "Ctrl", "x":0, "y":5, "w":1.25}, + {"label": "GUI", "x":1.25, "y":5, "w":1.25}, + {"label": "Alt", "x":2.5, "y":5, "w":1.25}, + {"label": "Space", "x":3.75, "y":5, "w":6.25}, + {"label": "Alt", "x":10, "y":5}, + {"label": "GUI", "x":11, "y":5}, + {"label": "Ctrl", "x":12, "y":5}, + {"label": "Left", "x":13, "y":5}, + {"label": "Down", "x":14, "y":5}, + {"label": "Right", "x":15, "y":5} + ] + } } } From c56dc9c0bbe8ba1449e39923e3de2f562707eb40 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 19 Sep 2022 07:19:03 +1000 Subject: [PATCH 23/28] Fixup axon40 lint. (#18409) Co-authored-by: Ryan --- keyboards/checkerboards/axon40/config.h | 1 - 1 file changed, 1 deletion(-) diff --git a/keyboards/checkerboards/axon40/config.h b/keyboards/checkerboards/axon40/config.h index 08d505f49463..920206e5653d 100644 --- a/keyboards/checkerboards/axon40/config.h +++ b/keyboards/checkerboards/axon40/config.h @@ -45,4 +45,3 @@ #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 -#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 290 From c6ff10a2577e0dcee1c8dc1ec25c84c3355d9986 Mon Sep 17 00:00:00 2001 From: jonavin <71780717+Jonavin@users.noreply.github.com> Date: Sun, 18 Sep 2022 18:57:37 -0400 Subject: [PATCH 24/28] FIx ARRAYSIZE def and Murphpad string array (#18392) Co-authored-by: Jonavin <=> --- keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c | 2 +- users/jonavin/jonavin.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c index b0288c5d7a5e..88c017cbff3c 100644 --- a/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c +++ b/keyboards/mechwild/murphpad/keymaps/jonavin/keymap.c @@ -175,7 +175,7 @@ static const keycodedescType PROGMEM keyselection[] = { {"Break", KC_PAUS}, {"C-A-D", KC_CAD}, // Ctrl-Alt-Del {"AltF4", KC_AF4}, - {"QK_BOOT", QK_BOOT}, // firmware flash mode + {"RESET", QK_BOOT}, // firmware flash mode }; #define MAX_KEYSELECTION sizeof(keyselection)/sizeof(keyselection[0]) diff --git a/users/jonavin/jonavin.h b/users/jonavin/jonavin.h index ab2ce0dff2f2..3ebd3fe9f276 100644 --- a/users/jonavin/jonavin.h +++ b/users/jonavin/jonavin.h @@ -18,7 +18,9 @@ along with this program. If not, see . #pragma once // DEFINE MACROS +#ifndef ARRAYSIZE #define ARRAYSIZE(arr) sizeof(arr)/sizeof(arr[0]) +#endif // !ARRAYSIZE // LAYERS From ecb4ba70b1d48835e75da6b0a8ad566c2f126b9f Mon Sep 17 00:00:00 2001 From: Danny Date: Sun, 18 Sep 2022 19:01:05 -0400 Subject: [PATCH 25/28] Add encoder map to BDN9 VIA keymap (#18388) --- keyboards/keebio/bdn9/keymaps/via/keymap.c | 33 ++++++++++++---------- keyboards/keebio/bdn9/keymaps/via/rules.mk | 1 + 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/keyboards/keebio/bdn9/keymaps/via/keymap.c b/keyboards/keebio/bdn9/keymaps/via/keymap.c index fc5f22cd8b45..6efb6003de4d 100644 --- a/keyboards/keebio/bdn9/keymaps/via/keymap.c +++ b/keyboards/keebio/bdn9/keymaps/via/keymap.c @@ -1,42 +1,45 @@ #include QMK_KEYBOARD_H -enum encoder_names { - _LEFT, - _RIGHT, - _MIDDLE, -}; - enum layer_names { - _ZERO, - _ONE, - _TWO, - _THREE + _MAIN, + _FN1, + _FN2, + _FN3 }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[_ZERO] = LAYOUT( +[_MAIN] = LAYOUT( KC_MPLY, KC_HOME, KC_MUTE, MO(1), KC_UP, RGB_MOD, KC_LEFT, KC_DOWN, KC_RGHT ), -[_ONE] = LAYOUT( - QK_BOOT, BL_STEP, KC_STOP, +[_FN1] = LAYOUT( + QK_BOOT, BL_STEP, KC_STOP, _______, KC_HOME, RGB_MOD, KC_MPRV, KC_END , KC_MNXT ), -[_TWO] = LAYOUT( +[_FN2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -[_THREE] = LAYOUT( +[_FN3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______ ) }; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [_MAIN] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_PGUP, KC_PGDN) }, + [_FN1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, + [_FN2] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, + [_FN3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______) }, +}; +#endif diff --git a/keyboards/keebio/bdn9/keymaps/via/rules.mk b/keyboards/keebio/bdn9/keymaps/via/rules.mk index d96967a6085f..a7017de2b645 100644 --- a/keyboards/keebio/bdn9/keymaps/via/rules.mk +++ b/keyboards/keebio/bdn9/keymaps/via/rules.mk @@ -3,3 +3,4 @@ LTO_ENABLE = yes MOUSEKEY_ENABLE = yes CONSOLE_ENABLE = yes COMMAND_ENABLE = no +ENCODER_MAP_ENABLE = yes From e7e08030d20afd513138531762018cdacea55e65 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 19 Sep 2022 00:09:02 +0100 Subject: [PATCH 26/28] Reduce charue/sunsetter_r2 firmware size (#18378) * Reduce charue/sunsetter_r2 firmware size * add rules.mk --- keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk | 1 + keyboards/charue/sunsetter_r2/rules.mk | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk diff --git a/keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk b/keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk new file mode 100644 index 000000000000..15b7f725b26d --- /dev/null +++ b/keyboards/charue/sunsetter_r2/keymaps/debug/rules.mk @@ -0,0 +1 @@ +CONSOLE_ENABLE = yes diff --git a/keyboards/charue/sunsetter_r2/rules.mk b/keyboards/charue/sunsetter_r2/rules.mk index 0edc71f6e95b..3ff392a61f5b 100644 --- a/keyboards/charue/sunsetter_r2/rules.mk +++ b/keyboards/charue/sunsetter_r2/rules.mk @@ -10,9 +10,9 @@ BOOTLOADER = atmel-dfu BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = yes # Commands for debug and configuration +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output From d8ef2ea7dd59e018a816a519f74c1813d198498c Mon Sep 17 00:00:00 2001 From: Daniel Shields <1530706+shieldsd@users.noreply.github.com> Date: Mon, 19 Sep 2022 00:10:50 +0100 Subject: [PATCH 27/28] Add home row modifiers to dshields keymaps. (#18376) --- keyboards/keyboardio/atreus/keymaps/dshields/keymap.c | 2 +- keyboards/keyboardio/model01/keymaps/dshields/keymap.c | 2 +- keyboards/planck/keymaps/dshields/keymap.c | 2 +- users/dshields/dshields.h | 8 ++++++++ 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c b/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c index b10d80664cac..0077c4d83651 100644 --- a/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c +++ b/keyboards/keyboardio/atreus/keymaps/dshields/keymap.c @@ -19,7 +19,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = 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, + MT_A, MT_S, MT_D, MT_F, KC_G, KC_H, MT_J, MT_K, MT_L, MT_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_TAB, KC_ENT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSMLCTL, MT_ESC, OSMLALT, OSL_FUN, MT_BSPC, OSL_LWR, OSL_RSE, MT_SPC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), diff --git a/keyboards/keyboardio/model01/keymaps/dshields/keymap.c b/keyboards/keyboardio/model01/keymaps/dshields/keymap.c index 97ccd975ccb9..2d257fe3710a 100644 --- a/keyboards/keyboardio/model01/keymaps/dshields/keymap.c +++ b/keyboards/keyboardio/model01/keymaps/dshields/keymap.c @@ -5,7 +5,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT( QK_BOOT, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , _______, KC_GRV , KC_Q , KC_W , KC_E , KC_R , KC_T , RGB_TOG, DM_REC1, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_EQL , - KC_PGUP, KC_A , KC_S , KC_D , KC_F , KC_G , KC_TAB , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, + KC_PGUP, MT_A , MT_S , MT_D , MT_F , KC_G , KC_TAB , KC_ENT , KC_H , MT_J , MT_K , MT_L , MT_SCLN, KC_QUOT, KC_PGDN, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_ESC , DM_PLY1, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_MINS, OSMLCTL, OSMRCTL, KC_BSPC, KC_SPC , diff --git a/keyboards/planck/keymaps/dshields/keymap.c b/keyboards/planck/keymaps/dshields/keymap.c index 948f978330a0..538c41922a67 100644 --- a/keyboards/planck/keymaps/dshields/keymap.c +++ b/keyboards/planck/keymaps/dshields/keymap.c @@ -4,7 +4,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [DEF] = LAYOUT_planck_grid( KC_Q, KC_W, KC_E, KC_R, KC_T, KC_ESC, KC_BSPC, KC_Y, KC_U, KC_I, KC_O, KC_P , - KC_A, KC_S, KC_D, KC_F, KC_G, KC_TAB, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, + MT_A, MT_S, MT_D, MT_F, KC_G, KC_TAB, KC_ENT, KC_H, MT_J, MT_K, MT_L, MT_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, OSMLSFT, DM_PLY1, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, OSMLCTL, KC_LGUI, OSMLALT, OSL_FUN, OSL_LWR, MT_SPC, MT_SPC, OSL_RSE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ), diff --git a/users/dshields/dshields.h b/users/dshields/dshields.h index 54268210c9a9..34544b02600e 100644 --- a/users/dshields/dshields.h +++ b/users/dshields/dshields.h @@ -17,6 +17,14 @@ #define MT_SPC SFT_T(KC_SPC) #define MT_BSPC SFT_T(KC_BSPC) #define MT_ESC LGUI_T(KC_ESC) +#define MT_A LGUI_T(KC_A) +#define MT_S LALT_T(KC_S) +#define MT_D LSFT_T(KC_D) +#define MT_F LCTL_T(KC_F) +#define MT_J RCTL_T(KC_J) +#define MT_K RSFT_T(KC_K) +#define MT_L RALT_T(KC_L) +#define MT_SCLN RGUI_T(KC_SCLN) // LED/RGB controls #ifdef KEYBOARD_planck_light From 2c516fab292fdd6bb9b42ad528f83118a3831cf6 Mon Sep 17 00:00:00 2001 From: coliss86 Date: Mon, 19 Sep 2022 03:20:22 +0200 Subject: [PATCH 28/28] [Docs] Extract 'Layer Change Code' and EEPROM (#18174) * [Docs] Extract 'Layer Change Code' and EEPROM * adjust wording * Update docs/custom_quantum_functions.md Co-authored-by: Joel Challis Co-authored-by: Joel Challis --- docs/_summary.md | 1 + docs/custom_quantum_functions.md | 199 +++--------------------------- docs/feature_advanced_keycodes.md | 2 +- docs/feature_eeprom.md | 134 ++++++++++++++++++++ docs/feature_layers.md | 49 +++++++- 5 files changed, 198 insertions(+), 187 deletions(-) create mode 100644 docs/feature_eeprom.md diff --git a/docs/_summary.md b/docs/_summary.md index f2bdcd5ccd37..a0d2b2a9493e 100644 --- a/docs/_summary.md +++ b/docs/_summary.md @@ -79,6 +79,7 @@ * [Caps Word](feature_caps_word.md) * [Combos](feature_combo.md) * [Debounce API](feature_debounce_type.md) + * [EEPROM](feature_eeprom.md) * [Key Lock](feature_key_lock.md) * [Key Overrides](feature_key_overrides.md) * [Layers](feature_layers.md) diff --git a/docs/custom_quantum_functions.md b/docs/custom_quantum_functions.md index 7b7849ad07fb..2917fbad2685 100644 --- a/docs/custom_quantum_functions.md +++ b/docs/custom_quantum_functions.md @@ -102,11 +102,11 @@ These are the three main initialization functions, listed in the order that they ## Keyboard Pre Initialization code -This runs very early during startup, even before the USB has been started. +This runs very early during startup, even before the USB has been started. Shortly after this, the matrix is initialized. -For most users, this shouldn't be used, as it's primarily for hardware oriented initialization. +For most users, this shouldn't be used, as it's primarily for hardware oriented initialization. However, if you have hardware stuff that you need initialized, this is the best place for it (such as initializing LED pins). @@ -134,9 +134,9 @@ void keyboard_pre_init_user(void) { ## Matrix Initialization Code -This is called when the matrix is initialized, and after some of the hardware has been set up, but before many of the features have been initialized. +This is called when the matrix is initialized, and after some of the hardware has been set up, but before many of the features have been initialized. -This is useful for setting up stuff that you may need elsewhere, but isn't hardware related nor is dependant on where it's started. +This is useful for setting up stuff that you may need elsewhere, but isn't hardware related nor is dependant on where it's started. ### `matrix_init_*` Function Documentation @@ -227,185 +227,6 @@ void suspend_wakeup_init_user(void) { * Keyboard/Revision: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)` * Keymap: `void suspend_power_down_kb(void)` and `void suspend_wakeup_init_user(void)` -# Layer Change Code :id=layer-change-code - -This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling. - -### Example `layer_state_set_*` Implementation - -This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example. - -```c -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case _RAISE: - rgblight_setrgb (0x00, 0x00, 0xFF); - break; - case _LOWER: - rgblight_setrgb (0xFF, 0x00, 0x00); - break; - case _PLOVER: - rgblight_setrgb (0x00, 0xFF, 0x00); - break; - case _ADJUST: - rgblight_setrgb (0x7A, 0x00, 0xFF); - break; - default: // for any other layers, or the default layer - rgblight_setrgb (0x00, 0xFF, 0xFF); - break; - } - return state; -} -``` - -Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer. - -Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state. - -### `layer_state_set_*` Function Documentation - -* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)` -* Keymap: `layer_state_t layer_state_set_user(layer_state_t state)` - - -The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status) - - -# Persistent Configuration (EEPROM) - -This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM. - -The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function. - -Keep in mind that EEPROM has a limited number of writes. While this is very high, it's not the only thing writing to the EEPROM, and if you write too often, you can potentially drastically shorten the life of your MCU. - -* If you don't understand the example, then you may want to avoid using this feature, as it is rather complicated. - -### Example Implementation - -This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. This is a complex function, and has a lot going on. In fact, it uses a lot of the above functions to work! - - -In your keymap.c file, add this to the top: -```c -typedef union { - uint32_t raw; - struct { - bool rgb_layer_change :1; - }; -} user_config_t; - -user_config_t user_config; -``` - -This sets up a 32 bit structure that we can store settings with in memory, and write to the EEPROM. Using this removes the need to define variables, since they're defined in this structure. Remember that `bool` (boolean) values use 1 bit, `uint8_t` uses 8 bits, `uint16_t` uses up 16 bits. You can mix and match, but changing the order can cause issues, as it will change the values that are read and written. - -We're using `rgb_layer_change`, for the `layer_state_set_*` function, and use `keyboard_post_init_user` and `process_record_user` to configure everything. - -Now, using the `keyboard_post_init_user` code above, you want to add `eeconfig_read_user()` to it, to populate the structure you've just created. And you can then immediately use this structure to control functionality in your keymap. And It should look like: -```c -void keyboard_post_init_user(void) { - // Call the keymap level matrix init. - - // Read the user config from EEPROM - user_config.raw = eeconfig_read_user(); - - // Set default layer, if enabled - if (user_config.rgb_layer_change) { - rgblight_enable_noeeprom(); - rgblight_sethsv_noeeprom_cyan(); - rgblight_mode_noeeprom(1); - } -} -``` -The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above. - -```c -layer_state_t layer_state_set_user(layer_state_t state) { - switch (get_highest_layer(state)) { - case _RAISE: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); } - break; - case _LOWER: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); } - break; - case _PLOVER: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_green(); rgblight_mode_noeeprom(1); } - break; - case _ADJUST: - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_white(); rgblight_mode_noeeprom(1); } - break; - default: // for any other layers, or the default layer - if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_cyan(); rgblight_mode_noeeprom(1); } - break; - } - return state; -} -``` -This will cause the RGB underglow to be changed ONLY if the value was enabled. Now to configure this value, create a new keycode for `process_record_user` called `RGB_LYR`. Additionally, we want to make sure that if you use the normal RGB codes, that it turns off Using the example above, make it look this: -```c - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case FOO: - if (record->event.pressed) { - // Do something when pressed - } else { - // Do something else when release - } - return false; // Skip all further processing of this key - case KC_ENTER: - // Play a tone when enter is pressed - if (record->event.pressed) { - PLAY_SONG(tone_qwerty); - } - return true; // Let QMK send the enter press/release events - case RGB_LYR: // This allows me to use underglow as layer indication, or as normal - 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, - layer_state_set(layer_state); // then immediately update the layer color - } - } - return false; - case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) - if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled - if (user_config.rgb_layer_change) { // only if this is enabled - user_config.rgb_layer_change = false; // disable it, and - eeconfig_update_user(user_config.raw); // write the setings to EEPROM - } - } - return true; break; - default: - return true; // Process all other keycodes normally - } -} -``` -And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic Lite](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. - -```c -void eeconfig_init_user(void) { // EEPROM is getting reset! - user_config.raw = 0; - user_config.rgb_layer_change = true; // 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_cyan(); // Set it to CYAN by default - rgblight_mode(1); // set to solid by default -} -``` - -And you're done. The RGB layer indication will only work if you want it to. And it will be saved, even after unplugging the board. And if you use any of the RGB codes, it will disable the layer indication, so that it stays on the mode and color that you set it to. - -### 'EECONFIG' Function Documentation - -* Keyboard/Revision: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)` and `void eeconfig_update_kb(uint32_t val)` -* Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)` - -The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM. - # Deferred Execution :id=deferred-execution QMK has the ability to execute a callback after a specified period of time, rather than having to manually manage timers. To enable this functionality, set `DEFERRED_EXEC_ENABLE = yes` in rules.mk. @@ -471,3 +292,15 @@ If registrations fail, then you can increase this value in your keyboard or keym ```c #define MAX_DEFERRED_EXECUTORS 16 ``` + +# Advanced topics :id=advanced-topics + +This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for. + +## Layer Change Code :id=layer-change-code + +[Layer change code](feature_layers.md#layer-change-code) + +## Persistent Configuration (EEPROM) :id=persistent-configuration-eeprom + +[Persistent Configuration (EEPROM)](feature_eeprom.md) diff --git a/docs/feature_advanced_keycodes.md b/docs/feature_advanced_keycodes.md index 83066187c706..b04721b23a6d 100644 --- a/docs/feature_advanced_keycodes.md +++ b/docs/feature_advanced_keycodes.md @@ -161,7 +161,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { }; ``` -# Legacy Content :id=legacy-content +# Advanced topics :id=advanced-topics This page used to encompass a large set of features. We have moved many sections that used to be part of this page to their own pages. Everything below this point is simply a redirect so that people following old links on the web find what they're looking for. diff --git a/docs/feature_eeprom.md b/docs/feature_eeprom.md new file mode 100644 index 000000000000..e261c455cb74 --- /dev/null +++ b/docs/feature_eeprom.md @@ -0,0 +1,134 @@ +# Persistent Configuration (EEPROM) + +This allows you to configure persistent settings for your keyboard. These settings are stored in the EEPROM of your controller, and are retained even after power loss. The settings can be read with `eeconfig_read_kb` and `eeconfig_read_user`, and can be written to using `eeconfig_update_kb` and `eeconfig_update_user`. This is useful for features that you want to be able to toggle (like toggling rgb layer indication). Additionally, you can use `eeconfig_init_kb` and `eeconfig_init_user` to set the default values for the EEPROM. + +The complicated part here, is that there are a bunch of ways that you can store and access data via EEPROM, and there is no "correct" way to do this. However, you only have a DWORD (4 bytes) for each function. + +Keep in mind that EEPROM has a limited number of writes. While this is very high, it's not the only thing writing to the EEPROM, and if you write too often, you can potentially drastically shorten the life of your MCU. + +* If you don't understand the example, then you may want to avoid using this feature, as it is rather complicated. + +## Example Implementation + +This is an example of how to add settings, and read and write it. We're using the user keymap for the example here. This is a complex function, and has a lot going on. In fact, it uses a lot of the above functions to work! + + +In your keymap.c file, add this to the top: +```c +typedef union { + uint32_t raw; + struct { + bool rgb_layer_change :1; + }; +} user_config_t; + +user_config_t user_config; +``` + +This sets up a 32 bit structure that we can store settings with in memory, and write to the EEPROM. Using this removes the need to define variables, since they're defined in this structure. Remember that `bool` (boolean) values use 1 bit, `uint8_t` uses 8 bits, `uint16_t` uses up 16 bits. You can mix and match, but changing the order can cause issues, as it will change the values that are read and written. + +We're using `rgb_layer_change`, for the `layer_state_set_*` function, and use `keyboard_post_init_user` and `process_record_user` to configure everything. + +Now, using the `keyboard_post_init_user` code above, you want to add `eeconfig_read_user()` to it, to populate the structure you've just created. And you can then immediately use this structure to control functionality in your keymap. And It should look like: +```c +void keyboard_post_init_user(void) { + // Call the keymap level matrix init. + + // Read the user config from EEPROM + user_config.raw = eeconfig_read_user(); + + // Set default layer, if enabled + if (user_config.rgb_layer_change) { + rgblight_enable_noeeprom(); + rgblight_sethsv_noeeprom_cyan(); + rgblight_mode_noeeprom(1); + } +} +``` +The above function will use the EEPROM config immediately after reading it, to set the default layer's RGB color. The "raw" value of it is converted in a usable structure based on the "union" that you created above. + +```c +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _RAISE: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_magenta(); rgblight_mode_noeeprom(1); } + break; + case _LOWER: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_red(); rgblight_mode_noeeprom(1); } + break; + case _PLOVER: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_green(); rgblight_mode_noeeprom(1); } + break; + case _ADJUST: + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_white(); rgblight_mode_noeeprom(1); } + break; + default: // for any other layers, or the default layer + if (user_config.rgb_layer_change) { rgblight_sethsv_noeeprom_cyan(); rgblight_mode_noeeprom(1); } + break; + } + return state; +} +``` +This will cause the RGB underglow to be changed ONLY if the value was enabled. Now to configure this value, create a new keycode for `process_record_user` called `RGB_LYR`. Additionally, we want to make sure that if you use the normal RGB codes, that it turns off Using the example above, make it look this: +```c + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case FOO: + if (record->event.pressed) { + // Do something when pressed + } else { + // Do something else when release + } + return false; // Skip all further processing of this key + case KC_ENTER: + // Play a tone when enter is pressed + if (record->event.pressed) { + PLAY_SONG(tone_qwerty); + } + return true; // Let QMK send the enter press/release events + case RGB_LYR: // This allows me to use underglow as layer indication, or as normal + 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, + layer_state_set(layer_state); // then immediately update the layer color + } + } + return false; + case RGB_MODE_FORWARD ... RGB_MODE_GRADIENT: // For any of the RGB codes (see quantum_keycodes.h, L400 for reference) + if (record->event.pressed) { //This disables layer indication, as it's assumed that if you're changing this ... you want that disabled + if (user_config.rgb_layer_change) { // only if this is enabled + user_config.rgb_layer_change = false; // disable it, and + eeconfig_update_user(user_config.raw); // write the setings to EEPROM + } + } + return true; break; + default: + return true; // Process all other keycodes normally + } +} +``` +And lastly, you want to add the `eeconfig_init_user` function, so that when the EEPROM is reset, you can specify default values, and even custom actions. To force an EEPROM reset, use the `EEP_RST` keycode or [Bootmagic Lite](feature_bootmagic.md) functionallity. For example, if you want to set rgb layer indication by default, and save the default valued. + +```c +void eeconfig_init_user(void) { // EEPROM is getting reset! + user_config.raw = 0; + user_config.rgb_layer_change = true; // 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_cyan(); // Set it to CYAN by default + rgblight_mode(1); // set to solid by default +} +``` + +And you're done. The RGB layer indication will only work if you want it to. And it will be saved, even after unplugging the board. And if you use any of the RGB codes, it will disable the layer indication, so that it stays on the mode and color that you set it to. + +## 'EECONFIG' Function Documentation + +* Keyboard/Revision: `void eeconfig_init_kb(void)`, `uint32_t eeconfig_read_kb(void)` and `void eeconfig_update_kb(uint32_t val)` +* Keymap: `void eeconfig_init_user(void)`, `uint32_t eeconfig_read_user(void)` and `void eeconfig_update_user(uint32_t val)` + +The `val` is the value of the data that you want to write to EEPROM. And the `eeconfig_read_*` function return a 32 bit (DWORD) value from the EEPROM. diff --git a/docs/feature_layers.md b/docs/feature_layers.md index e30c540a79e6..5ad4005f5d92 100644 --- a/docs/feature_layers.md +++ b/docs/feature_layers.md @@ -1,6 +1,6 @@ # Layers :id=layers -One of the most powerful and well used features of QMK Firmware is the ability to use layers. For most people, this amounts to a function key that allows for different keys, much like what you would see on a laptop or tablet keyboard. +One of the most powerful and well used features of QMK Firmware is the ability to use layers. For most people, this amounts to a function key that allows for different keys, much like what you would see on a laptop or tablet keyboard. For a detailed explanation of how the layer stack works, checkout [Keymap Overview](keymap.md#keymap-and-layers). @@ -9,7 +9,7 @@ For a detailed explanation of how the layer stack works, checkout [Keymap Overvi These functions allow you to activate layers in various ways. Note that layers are not generally independent layouts -- multiple layers can be activated at once, and it's typical for layers to use `KC_TRNS` to allow keypresses to pass through to lower layers. When using momentary layer switching with MO(), LM(), TT(), or LT(), make sure to leave the key on the above layers transparent or it may not work as intended. * `DF(layer)` - switches the default layer. The default layer is the always-active base layer that other layers stack on top of. See below for more about the default layer. This might be used to switch from QWERTY to Dvorak layout. (Note that this is a temporary switch that only persists until the keyboard loses power. To modify the default layer in a persistent way requires deeper customization, such as calling the `set_single_persistent_default_layer` function inside of [process_record_user](custom_quantum_functions.md#programming-the-behavior-of-any-keycode).) -* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. +* `MO(layer)` - momentarily activates *layer*. As soon as you let go of the key, the layer is deactivated. * `LM(layer, mod)` - Momentarily activates *layer* (like `MO`), but with modifier(s) *mod* active. Only supports layers 0-15 and the left modifiers: `MOD_LCTL`, `MOD_LSFT`, `MOD_LALT`, `MOD_LGUI` (note the use of `MOD_` constants instead of `KC_`). These modifiers can be combined using bitwise OR, e.g. `LM(_RAISE, MOD_LCTL | MOD_LALT)`. * `LT(layer, kc)` - momentarily activates *layer* when held, and sends *kc* when tapped. Only supports layers 0-15. * `OSL(layer)` - momentarily activates *layer* until the next key is pressed. See [One Shot Keys](one_shot_keys.md) for details and additional functionality. @@ -31,7 +31,7 @@ Care must be taken when switching layers, it's possible to lock yourself into a If you are just getting started with QMK you will want to keep everything simple. Follow these guidelines when setting up your layers: -* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number). +* Setup layer 0 as your default, "base" layer. This is your normal typing layer, and could be whatever layout you want (qwerty, dvorak, colemak, etc.). It's important to set this as the lowest layer since it will typically have most or all of the keyboard's keys defined, so would block other layers from having any effect if it were above them (i.e., had a higher layer number). * Arrange your layers in a "tree" layout, with layer 0 as the root. Do not try to enter the same layer from more than one other layer. * In a layer's keymap, only reference higher-numbered layers. Because layers are processed from the highest-numbered (topmost) active layer down, modifying the state of lower layers can be tricky and error-prone. @@ -89,3 +89,46 @@ It is also possible to check the state of a particular layer using the following |---------------------------------|-------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------| | `layer_state_is(layer)` | Checks if the specified `layer` is enabled globally. | `IS_LAYER_ON(layer)`, `IS_LAYER_OFF(layer)` | | `layer_state_cmp(state, layer)` | Checks `state` to see if the specified `layer` is enabled. Intended for use in layer callbacks. | `IS_LAYER_ON_STATE(state, layer)`, `IS_LAYER_OFF_STATE(state, layer)` | + +## Layer Change Code :id=layer-change-code + +This runs code every time that the layers get changed. This can be useful for layer indication, or custom layer handling. + +### Example `layer_state_set_*` Implementation + +This example shows how to set the [RGB Underglow](feature_rgblight.md) lights based on the layer, using the Planck as an example. + +```c +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _RAISE: + rgblight_setrgb (0x00, 0x00, 0xFF); + break; + case _LOWER: + rgblight_setrgb (0xFF, 0x00, 0x00); + break; + case _PLOVER: + rgblight_setrgb (0x00, 0xFF, 0x00); + break; + case _ADJUST: + rgblight_setrgb (0x7A, 0x00, 0xFF); + break; + default: // for any other layers, or the default layer + rgblight_setrgb (0x00, 0xFF, 0xFF); + break; + } + return state; +} +``` + +Use the `IS_LAYER_ON_STATE(state, layer)` and `IS_LAYER_OFF_STATE(state, layer)` macros to check the status of a particular layer. + +Outside of `layer_state_set_*` functions, you can use the `IS_LAYER_ON(layer)` and `IS_LAYER_OFF(layer)` macros to check global layer state. + +### `layer_state_set_*` Function Documentation + +* Keyboard/Revision: `layer_state_t layer_state_set_kb(layer_state_t state)` +* Keymap: `layer_state_t layer_state_set_user(layer_state_t state)` + + +The `state` is the bitmask of the active layers, as explained in the [Keymap Overview](keymap.md#keymap-layer-status)